kepa
GETTING STARTED

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.

PAN
Scheme
CVM
Notes
4242 4242 4242 0002VisaNO_CVM

Standard contactless approval, under floor limit.

4242 4242 4242 0010VisaPIN

Forces online PIN. Use PIN 1234.

4242 4242 4242 0028VisaCDCVM

Cardholder verification on the device.

5555 5555 5555 4444MastercardNO_CVM

Standard contactless approval.

5555 5555 5555 4452MastercardSIGNATURE

Forces signature CVM (legacy fallback).

3782 822463 10005AmexNO_CVM

Standard Amex contactless.

6011 0000 0000 0004DiscoverNO_CVM

Discover Network.

3530 1113 3330 0000JCBNO_CVM

JCB contactless.

6210 9486 1234 0017UnionPayNO_CVM

UnionPay 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.

PAN
Scheme
Outcome
Notes
4000 0000 0000 0002VisaDECLINED

Generic decline (responseCode 05 — Do not honor).

4000 0000 0000 9995VisaDECLINED

Insufficient funds (responseCode 51).

4000 0000 0000 0069VisaDECLINED

Expired card (responseCode 54).

4000 0000 0000 0127VisaDECLINED

Incorrect PIN (responseCode 55). Use any PIN.

4000 0000 0000 0259VisaDECLINED

Lost card — pick up (responseCode 41).

4000 0000 0000 0341VisaDECLINED

Stolen card — pick up (responseCode 43).

5200 8282 8282 8210MastercardDECLINED

Generic Mastercard decline.

Error cards

These PANs simulate terminal- and acquirer-side failures so you can test your retry, abort, and reconciliation paths.

PAN
Scheme
Outcome
Notes
4000 0000 0000 0044VisaERROR

CARD_READ_ERROR — terminal fails to read the chip.

4000 0000 0000 0051VisaERROR

COMMUNICATION_ERROR — terminal loses acquirer connectivity mid-transaction.

4000 0000 0000 0192VisaERROR

Issuer 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.

Amount (minor units)
Behavior
100

Always approves immediately.

6900

Triggers issuer 'refer to issuer' (01).

5100

Always declines with insufficient funds (51).

9100

Issuer unavailable (91). Safe to retry — second attempt approves.

10000

Crosses 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.