# Depositing Funds Depositing refers to sending fiat or crypto funds from external accounts into a Rail account. In order to send a deposit into the rail platform you need to request deposit instructions on the account you wish to send funds into. Rails unique virtual accounting model may present you with multiple instructions for a single account depending on the rails that are available to you. ## Push Push means the source account has to initiate the transaction. Fedwire, Swift support Push only. ACH supports both Push and Pull. To get the `PUSH` deposit instructions, call the [`deposits` endpoint](/api-docs/openapi/rail-spec#operation/createDeposits) with - `deposit_type` of `PUSH` - `deposit_destination.destination_account_id` set to the `account_id` where the funds need to be deposited into. You will get the deposit instructions for the rails supported by the account. Use these instructions to send funds into platform. You can send any number of physical transactions (i.e. deposits) to a single set of deposit instructions. Specifically - you only need to create deposit instructions once, and then can reuse them. On receipt of physical funds, Rail and our partner banks will perform exhaustive screening and transaction monitoring prior to showing in the available balance. Simulating a Deposit in Sandbox In sandbox, to simulate a fiat deposit, enter the `memo` in the response object in the "Confirm Deposit" screens in the Management UI. Use [Subscriptions](/guides/subscriptions) to get automatic notifications of deposits and the changes of deposit instructions. ## Pull Pull means the destination has to initiate the transaction. ACH supports both Push and Pull. To initiate a `PULL` deposit instrucution, follow the following steps: 1. Setup a Fiat US Linked counterparty type. [Click here](/guides/counterparties#fiat-us-linked) to learn more. 2. Create the `PULL` deposit using the [`deposits` endpoint](/api-docs/openapi/rail-spec#operation/createDeposits). Use the counterparty as the `source_counterparty_id` and set the `amount` you wish to pull. 3. To complete the `PULL` deposit operation, you have to Accept the Deposit. You can do that by calling the [`deposits/{DEPOSIT_ID}/accept` endpoint](/api-docs/openapi/rail-spec#operation/acceptDeposit) Deposit confirmation in Sandbox In Sandbox, unlike the Push, you don't need to confirm the deposit in the Management UI. Funds should appear after a few mins. # Deposit Lifecycle ## Scenario 1 - Deposit Lifecycle - Happy Path Scenario where the deposit lifecycle executes without any RFI being required. Deposit Lifecycle - Happy Path