Overview
Sandbox is designed to help you test real production behaviors in a safe environment. In particular, you can trigger a mock deposit that follows the same processing pipeline (deposit creation → FX → settlement → webhooks) using:What it validates
- Your deposit lifecycle UI/state machine
- Your webhook endpoint (signature verification + idempotency + retries)
- Your handling of edge cases like flagged deposits
Flagging behavior (important)
Sandbox follows the same rules engine as production. As a result, simulated deposits may be flagged automatically (or you can force a flagged scenario):- Rate expired: If the quote/rate tied to the onramp is expired, the deposit will be flagged.
- Forced flag: Pass
should_flag=trueto intentionally create a flagged deposit. - Re-used temporary VA: If a deposit has already been created for the same temporary virtual account / onramp context, subsequent simulated deposits may be flagged.
If you want a clean “happy path” test, create a fresh rate, then a fresh onramp, then trigger the sandbox deposit immediately.
Sandbox Bank Accounts
When testing offramps withNGN_PAYOUT settlement, use the following test bank accounts:
| Field | Value |
|---|---|
| Bank code | 044 |
| Account numbers | 0690000031, 0690000032, 0690000033, … |
POST /v1/banks/resolve before use — just like production.
Recommended end-to-end flow
Onramp (NGN → Crypto)
- Call
GET /v1/rates?side=BUYto get a freshrate_id - Call
POST /v1/onrampsto create an onramp + virtual account - Call
POST /v1/sandbox/depositswith the returnedonramp_id - Observe status progression and confirm you receive the expected webhooks (
deposit.received, thendeposit.settled/deposit.failed/deposit.flagged)
Offramp (Crypto → NGN)
- Call
POST /v1/banks/resolveto verify the test bank account - Call
GET /v1/rates?side=SELLto get a freshrate_id - Call
POST /v1/offrampsto create an offramp withNGN_PAYOUTsettlement - Send test crypto to the returned
address - Observe deposit and payout webhook events (
deposit.received,deposit.settled,payout.created,payout.settled)
Next Steps
Webhooks Overview
Ensure your webhook endpoint is receiving deposit events
Webhook Verification
Verify signatures correctly and handle retries safely