Test Cards & Sandbox
Free, instant, behaves identically to production.
The Atlas sandbox runs the same firmware, the same EMV kernels, and the same API surface as production — pointed at simulated card images and a mock acquirer. There are no costs, no rate limits, and no real funds move. Use it to drive your CI suite, build a demo, or shake out edge cases.
Sandbox endpoint
Sandbox keys are prefixed sk_test_. You can provision a sandbox terminal and key from the dashboard in under thirty seconds — no merchant onboarding required.
# Sandbox uses the same schema as production — only the host changes.
export ATLAS_API_KEY="sk_test_..."
export BASE_URL="https://sandbox.atlas-softpos.com"
curl $BASE_URL/v1/device/health -H "X-Api-Key: $ATLAS_API_KEY"Approval cards
Use these PANs as the simulated card image when you trigger a sandbox sale. Each one approves cleanly with the indicated cardholder verification method.
4242 4242 4242 0002VisaNO_CVMStandard contactless approval, under floor limit.
4242 4242 4242 0010VisaPINForces online PIN. Use PIN 1234.
4242 4242 4242 0028VisaCDCVMCardholder verification on the device.
5555 5555 5555 4444MastercardNO_CVMStandard contactless approval.
5555 5555 5555 4452MastercardSIGNATUREForces signature CVM (legacy fallback).
3782 822463 10005AmexNO_CVMStandard Amex contactless.
6011 0000 0000 0004DiscoverNO_CVMDiscover Network.
3530 1113 3330 0000JCBNO_CVMJCB contactless.
6210 9486 1234 0017UnionPayNO_CVMUnionPay Quickpass.
Decline cards
These PANs always decline with the indicated ISO 8583 response code. Use them to drive negative-path testing — your POS UI must gracefully handle every one of these.
4000 0000 0000 0002VisaDECLINEDGeneric decline (responseCode 05 — Do not honor).
4000 0000 0000 9995VisaDECLINEDInsufficient funds (responseCode 51).
4000 0000 0000 0069VisaDECLINEDExpired card (responseCode 54).
4000 0000 0000 0127VisaDECLINEDIncorrect PIN (responseCode 55). Use any PIN.
4000 0000 0000 0259VisaDECLINEDLost card — pick up (responseCode 41).
4000 0000 0000 0341VisaDECLINEDStolen card — pick up (responseCode 43).
5200 8282 8282 8210MastercardDECLINEDGeneric Mastercard decline.
Error cards
These PANs simulate terminal- and acquirer-side failures so you can test your retry, abort, and reconciliation paths.
4000 0000 0000 0044VisaERRORCARD_READ_ERROR — terminal fails to read the chip.
4000 0000 0000 0051VisaERRORCOMMUNICATION_ERROR — terminal loses acquirer connectivity mid-transaction.
4000 0000 0000 0192VisaERRORIssuer timeout (responseCode 91, then 96 on retry).
Magic amounts
Some sandbox behaviors are easier to trigger via the amount field than via the PAN. These work with any approval card.
100Always approves immediately.
6900Triggers issuer 'refer to issuer' (01).
5100Always declines with insufficient funds (51).
9100Issuer unavailable (91). Safe to retry — second attempt approves.
10000Crosses CVM floor limit. Forces a PIN prompt.
Sandbox limitations
- Settlement runs every hour, not nightly. Lets you exercise the full reconciliation lifecycle in a few minutes instead of waiting until midnight.
- No real card data is ever accepted. Real PANs return UNSUPPORTED_CARD on a sandbox terminal.
- Webhooks fire normally. Use the Atlas CLI listen command to forward sandbox webhooks to localhost during development.
- Sandbox terminals reset after 7 days of inactivity. Provision a fresh one any time — there's no quota.