Overview
Contro provides a full sandbox environment for testing your integration. Sandbox mode is determined by the API key prefix:sk_test_*— Sandbox mode. All operations use a separate ledger and simulated card provider.sk_live_*— Production mode. Operations use real card providers and your live balance.
sandbox: true and never appear in live queries.
Test Data
When issuing cards in sandbox mode, the simulated card provider returns:| Field | Value |
|---|---|
| Card Number (PAN) | 4000 0000 0000 0000 |
| CVV | 123 |
| Expiry | 12/2030 |
| Brand | Visa |
| Type | Virtual |
KYC Auto-Approval
When you callPOST /partner/cardholders/{id}/kyc with a sandbox API key, KYC is approved instantly. No external verification provider is contacted.
The response returns { "status": "approved" } and a cardholder.kyc.updated webhook is fired with sandbox: true in the payload.
Sandbox-Only Endpoints
These endpoints are only available when using ask_test_ API key. They return 403 Forbidden with a live key.
Simulate Transaction
transaction.created webhook.
Reset Balance
Simulate KYC Approval
Data Isolation
All sandbox resources are scoped separately from live resources:- Cardholders:
sandbox: trueflag — sameexternalUserIdcan exist in both modes - Cards: Issued with provider
sandbox— no real card network involved - Transactions: Tagged with provider
sandbox, only appear in sandbox queries - Webhooks: Events fired with
sandbox: truein payload and stored with sandbox flag - Usage Records: Tracked separately so sandbox testing doesn’t inflate billing
- Balance: Uses
sandboxLedgerIdinstead ofledgerId— completely separate ledger
Go-Live Checklist
Before switching to production, complete the readiness checklist:- KYB Approved — Your organization has been verified
- Sandbox Card Issued — At least one card issued with
sk_test_key - Webhook Verified — At least one webhook successfully delivered
- Live Balance Funded — Your live account has a positive balance
GET /partner/go-live-checklist or the dashboard Go-Live page.