Sandbox Test Data
All test cards and APM flows for sandbox testing — the canonical reference
Use this page as the single reference for all sandbox test data. All test transactions are simulated — no real money is moved.
Credentials: Sandbox credentials are not issued automatically. Contact your assigned account manager to receive sandbox API keys and merchant IDs before testing.
Sandbox base URL: https://sandbox.api.exirom.com/api
#Test Cards
Use any future expiry date (e.g., expMonth: "12", expYear: "2028") and any 3-digit CVV for all test cards.
#Card Payment (POST /api/v1/payments/card)
| Card Number | Behavior | 3DS |
|---|---|---|
4111111111111111 | Approved — instant success | No |
4000000000003220 | 3DS Challenge — returns CUSTOMER_VERIFICATION + challengeUrl | Yes |
4263982640269299 | 3DS Challenge (HPP) — challenge page with ACCEPT / DECLINE buttons | Yes |
4580271111111234 | Frictionless 3DS — redirects to success URL automatically | Yes |
| Any other number | Declined — returns transactionStatus: FAILED | — |
#Tokenize & Charge (POST /api/v1/payments/card/tokenize + /charge)
Use 4111111111111111 to tokenize successfully. Charging a valid token returns SUCCEED.
#Payouts (POST /api/v1/payouts/card)
Use 4111111111111111 as the recipient card. Payout returns PENDING then SUCCEED via webhook.
#APM Test Flows
For APM transactions, control the sandbox outcome using the customFields.flow field inside apmPayload:
| Value | Behavior |
|---|---|
"challenge" | Redirects to a test page with APPROVE / DECLINE buttons |
"frictionless" | Transaction completes automatically without user interaction |
{
"apmPayload": {
"paymentMethod": "SMART_QR",
"paymentType": "E_WALLET",
"customFields": {
"flow": "challenge"
}
}
}These
customFieldsvalues are sandbox-only. In production, providers apply their own logic and may ignore this field.
#Testing Webhooks
Exirom sandbox sends real webhook callbacks to your callbackUrl:
- Use webhook.site or ngrok to inspect callbacks during development
- Verify your endpoint returns HTTP 200 immediately — Exirom retries on timeouts or non-200 responses
- See Callback Retry Mechanism for the retry schedule
#Interactive Sandbox
Send a live request to the sandbox directly from the docs:
#See Also
- Quick Start: Card — full working example in 3 steps
- Quick Start: APM — APM flow walkthrough
- 3D Secure Auth Flow — handling challenge and frictionless 3DS
- Webhook Best Practices — deduplication and retry handling