Sandbox Transfers
What sandbox-specific behavior should I expect when testing transfers?
Overview
The sandbox environment supports the full transfer API surface but simulates external rails, identity verification, and on-chain networks. Use this guide to anticipate behaviors that differ from production when testing transfers.
For sandbox-specific trade behavior, see Sandbox Trades.
Plaid funding cap
External bank accounts with account_kind: plaid are limited to $100.00 per funding transfer
in sandbox. Transfers above $100.00 fail. There is no limit on the number of $100.00 transfers
you can complete to build a balance.
See Plaid funding for the full deposit flow.
Force transfer outcomes with expected_state
expected_stateThe expected_state field is available only in sandbox to force specific transfer outcomes.
Add "expected_state": "pending" (or another state) to the POST /api/transfers request body
to exercise your state-handling code without waiting for real rail behavior.
Supported on book transfers, funding transfers, and other transfer types where state machines matter.
Interac E-Transfer simulation
In sandbox, Interac E-Transfer deposits complete automatically. The gateway_url returned on
the transfer is not a valid URL because the sponsor bank does not support the interactive
flow in sandbox. Treat the gateway URL as a placeholder when scripting end-to-end deposit tests.
Generating the gateway_url can still take time in sandbox because of sponsor bank response
times. Use webhook registration with polling as a backup, the same as in production.
See Interac E-Transfer for the full flow.
On-chain transfers
For sandbox banks, on-chain wallet addresses are created on the blockchain's associated development network (devnet/testnet). Production banks use mainnet. Always send sandbox test transactions on the appropriate devnet — mainnet sends will not reconcile.
Solana rent setup (sandbox-only)
Solana requires "rent" to generate token deposit addresses. In production, Cybrid pays rent
automatically and invoices at the end of the month. In sandbox, you must fund the rent
yourself or the deposit address will remain in the storing state indefinitely.
Follow Generating USDC deposit addresses on Solana for sandbox banks step-by-step before generating a USDC_SOL deposit address.
See Receiving On-Chain Transfers for the standard on-chain deposit flow.
Simulated KYC interactions
KYC and Plaid-connected bank account flows are simulated in sandbox. Combined with the $100 Plaid cap, this means a full customer onboarding can run end-to-end in minutes without real bank involvement.
The simulated environment makes it possible to test deposit + trade + withdrawal flows repeatedly, but balances accumulate quickly because each Plaid deposit caps at $100.
Compliance review simulation
Sandbox transfers may pass through the same reviewing state as production transfers, but the
hold is simulated. To test compliance-hold handling deterministically, combine expected_state
with your transfer request to force the desired terminal state.
Related guides
Updated 2 days ago
