Sandbox vs. Production

How does the sandbox environment differ from the production environment?

The Cybrid sandbox provides a safe and realistic environment for testing your integration without affecting live data or funds. This guide outlines the key differences between the sandbox and production environments.

Fiat Transfers

All fiat transfers in the sandbox environment are simulated. No real funds are ever pulled from or sent to actual bank accounts.

  • Deposits: Simulated deposits succeed almost instantaneously.
  • Withdrawals: Simulated withdrawals also succeed almost instantaneously.

Automatic Funding

To streamline testing, the sandbox automatically fronts funds for operations that would otherwise fail due to a non-sufficient funds (NSF) error. This removes the need to perform deposits before experimenting with trades and withdrawals.

Operations that are auto-funded include:

  • Book transfers
  • Crypto withdrawals
  • Funding transfers
  • Trade executions
  • Platform and bank fees

To test a real NSF scenario, use the expected_error parameter in your request. This bypasses the auto-funding mechanism for that specific transaction.

POST /api/transfers
{
  "quote_guid": "...",
  "expected_error": "non_sufficient_funds"
}

Crypto Transfers

Deposits

Crypto deposits in the sandbox are performed on-chain using testnets. This allows you to test real-world deposit scenarios, and your Cybrid account balances will update to reflect the deposit.

ℹ️

Testnet Information

  • BTC: Testnet3
  • ETH: Sepolia
  • USDC on Ethereum: Sepolia
  • SOL: Testnet
  • USDC on SOL: Testnet
  • MATIC: Amoy
  • XLM: Testnet
  • USDC on Stellar: Testnet
  • USDT on Tron: Testnet

Withdrawals

Crypto withdrawals are simulated and are not performed on-chain. They succeed almost instantaneously. The sandbox also fronts funds for crypto withdrawals if an account has an insufficient balance.

Our liquidity providers do not support buy/sell operations on testnets, so trades cannot be settled on-chain. Allowing withdrawals of testnet funds from trades would create a confusing user experience, as the platform would show sufficient funds while the on-chain balance would be zero.

Trades

Trades in the sandbox are simulated, meaning there is no actual on-chain movement of crypto or fiat. Trades execute against real-world market prices but do not involve liquidity providers.

  • Trades will remain in the settling state and will not transition to completed. Because our liquidity providers do not support trades on testnets, we cannot perform the final on-chain settlement.
  • The sandbox fronts funds for trades if an account has an insufficient balance.
⚠️

Trade Quote Expiration

Trade quotes in the sandbox expire in 30 seconds, while production quotes expire in 7 seconds.

Testing Trade Failures

The expected_error parameter allows you to simulate trade failures in the sandbox.

POST /api/trades
{
  "quote_guid": "...",
  "expected_error": "expired_quote"
}

Valid values for expected_error are expired_quote and non_sufficient_funds. This parameter is not permitted in the production environment.

Identity Verifications

In the sandbox, you can integrate with an identity provider's sandbox API (e.g., Persona's sandbox) to simulate verification workflows.

Testing Verification Outcomes

The expected_behaviours parameter allows you to simulate specific verification results without completing the full KYC/KYB process.

POST /api/identity_verifications
{
  "type": "kyc",
  "method": "id_and_selfie",
  "customer_guid": "...",
  "expected_behaviours": ["passed_immediately"]
}
BehaviorEffect
passed_immediatelyForces immediate verification approval.
failed_immediatelyForces immediate verification failure.
tax_id_not_checkedSimulates a tax ID verification bypass.
❗️

Sandbox Limitation for KYB

In the sandbox, identity verifications for business customers (kyb) will not progress beyond the waiting state. In production, these are reviewed and approved by the Cybrid compliance team.

External Wallets

Wallet operations in the sandbox are simulated. Addresses are not validated on-chain, and no real blockchain transactions are executed.

API Behavior

Several API parameters are available exclusively in the sandbox to help you simulate different states and errors. These are rejected in the production environment.

ParameterResourceValid ValuesPurpose
expected_errorTradesexpired_quote, non_sufficient_fundsSimulate trade failures.
expected_statePayment Instructions, Transferspending, in_progress, completedForce specific outcomes.
expected_behavioursIdentity Verificationspassed_immediately, failed_immediately, tax_id_not_checkedControl verification results.
expected_behavioursTransfersforce_reviewForce a transfer into the reviewing state.

Activity Limits

Activity limits in the sandbox are different from production.

  • Production: See our guide on Limits and Minimums for details on production limits for individual and business customers.
  • Sandbox: Activity limits for both individual and business customers are set to $15,000 daily and $50,000 weekly.