GuidesRecipesAPI ReferenceChangelog
Guides

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

The 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