Appearance
Test Data
Test cards, routing numbers, and trigger values for sandbox testing.
Overview
The sandbox environment allows you to test your integration without processing real transactions. Use the test data on this page to simulate different scenarios—approvals, declines, specific card types, and edge cases.
Sandbox Only
This test data only works in the sandbox environment. In production, these card numbers will be rejected.
Test Cards
Use these cards for successful transactions in the sandbox. Any valid expiration date (in the future) and any CVV will work.
Visa
| Card Number | Type | Surchargeable | Country | Card Level |
|---|---|---|---|---|
4111111111111111 | Debit | No | POL | Standard |
4005519200000004 | Credit | Yes | USA | Business |
4009348888881881 | Credit | Yes | IDN | Corporate |
4012000033330026 | Credit | Yes | USA | Standard |
4012000077777777 | Credit | Yes | USA | Standard |
4012888888881881 | Credit | Yes | UKR | Infinite |
4217651111111119 | Debit | No | USA | Standard |
4500600000000061 | Credit | Yes | CAN | Gold |
Mastercard
| Card Number | Type | Surchargeable | Country | Card Level |
|---|---|---|---|---|
5555555555554444 | Debit | No | BRA | Prepaid |
2223000048400011 | Credit | Yes | JPN | — |
Amex
| Card Number | Type | Surchargeable | Country | Card Level |
|---|---|---|---|---|
378282246310005 | Credit | Yes | USA | Corporate |
371449635398431 | Credit | Yes | USA | Personal |
Discover
| Card Number | Type | Surchargeable | Country | Card Level |
|---|---|---|---|---|
6011111111111117 | Credit | Yes | USA | Personal |
Other
| Card Number | Brand | Type | Country |
|---|---|---|---|
36259600000004 | Diners Club | Credit | CHN |
3530111333300000 | JCB | Credit | JPN |
Surcharge
To test surcharge calculations, use:
- Surchargeable card:
4005519200000004(Visa Credit) - Non-surchargeable card:
4111111111111111(Visa Debit)
Debit cards are typically not surchargeable by card network rules.
Card Triggers
These card numbers simulate specific decline reasons and edge cases.
Default Behavior
Any card number not listed here will be approved in sandbox.
| Card Number | Response | Use Case |
|---|---|---|
4000000000000002 | Decline | Generic decline testing |
4000000000009995 | Insufficient Funds | Test NSF handling |
4000000000009987 | Lost Card | Test lost card response |
4000000000009979 | Stolen Card | Test stolen card response |
4000000000000069 | Expired Card | Test expired card handling |
4000000000000010 | Auth succeeds, refund declines | Test refund failure scenarios |
4000000000000051 | Partial Approval | Half the amount is approved |
Partial Approval
When using 4000000000000051, the gateway approves only 50% of the requested amount. Your integration should:
- Check the
amount_authorizedfield in the response - Compare it to the
amountyou requested - Either:
- Accept the partial amount and collect the rest another way
- Void the partial authorization and ask for a different payment method
json
// Request: $100.00
{
"amount": 10000,
"type": "sale",
"payment_method": {
"card": {
"number": "4000000000000051",
"expiration_date": "12/25"
}
}
}
// Response: Only $50.00 approved
{
"status": "success",
"response": "approved",
"amount": 10000,
"amount_authorized": 5000, // Only half approved
"response_code": 100
}ACH
For ACH (eCheck) transactions, use any validly formatted account and routing number.
Basic
| Field | Value |
|---|---|
| Account Number | 111111111 |
| Routing Number | 111111111 |
| Account Type | Checking or Savings |
ACH Triggers
Use these routing numbers to simulate specific ACH scenarios:
Default Behavior
Any routing number not listed here will be approved in sandbox.
| Routing Number | Response | Description |
|---|---|---|
000000000 | Decline | Immediate rejection |
000000001 | Return | Approved initially, then returned during settlement |
000000002 | Late Return | Approved initially, then late return during settlement |
Returns
ACH transactions can be returned even after initial approval. This is different from card transactions:
| Return Type | Timing | Common Causes |
|---|---|---|
| Return | 1-4 business days | NSF, invalid account, closed account |
| Late Return | 5-60 business days | Unauthorized transaction, fraud claim |
Use webhooks to receive notifications when ACH returns occur.
CVV
The CVV (Card Verification Value) is the 3-digit code on the back of Visa/MC/Discover or the 4-digit code on the front of Amex.
| CVV (Visa/MC/Discover) | CID (Amex) | Response Code | Meaning |
|---|---|---|---|
200 | 2000 | N | Does not match |
201 | 2011 | U | Not verified (issuer unable to process) |
301 | 3011 | S | Issuer does not participate in CVV |
| (not provided) | (not provided) | I | CVV not provided |
| (any other value) | (any other value) | M | Matches |
Codes
| Code | Meaning | Recommended Action |
|---|---|---|
| M | Match | Proceed with transaction |
| N | No Match | Consider declining; possible fraud |
| U | Not Verified | Use other fraud signals; issuer couldn't verify |
| S | Not Supported | Issuer doesn't support CVV; use other fraud signals |
| I | Not Provided | You didn't send CVV; consider requiring it |
Examples
json
// Test CVV mismatch
{
"payment_method": {
"card": {
"number": "4111111111111111",
"expiration_date": "12/25",
"cvv": "200" // Will return "N" (no match)
}
}
}AVS
AVS (Address Verification System) compares the billing address you provide against the address on file with the card issuer. In sandbox, use these postal codes to trigger specific responses:
| Postal Code | Response Code | Meaning |
|---|---|---|
20000 | N | Address does not match |
20001 | U | Address not verified (unavailable) |
| (not provided) | I | Address not provided |
| (any other value) | M | Address matches |
Codes
| Code | Meaning | Recommended Action |
|---|---|---|
| M | Full match (address + zip) | Proceed with transaction |
| N | No match | Higher fraud risk; consider additional verification |
| U | Unavailable | Issuer can't verify; use other fraud signals |
| I | Not provided | You didn't send address; consider requiring it |
Examples
json
// Test AVS mismatch
{
"billing_address": {
"address_line_1": "123 Test St",
"city": "Chicago",
"state": "IL",
"postal_code": "20000" // Will return "N" (no match)
}
}AVS Best Practices
AVS should be one factor in your fraud decision, not the only factor. Many legitimate transactions have partial or no AVS matches (international cards, new addresses, etc.).
Account Updater
Account Updater automatically updates stored card information when cards are reissued. Use these test cards to simulate different updater responses.
Responses
| Response | Meaning | What to Do |
|---|---|---|
updated_card | New card number issued | Update stored card with new number |
updated_expiry | New expiration date | Update stored expiration date |
valid | Card is still valid | No action needed |
no_match | Card not found in updater network | Card may be closed; contact customer |
contact | Contact cardholder | Reach out to customer for new card |
contact_closed | Account closed | Remove card; contact customer |
Visa
| Card Number | Response |
|---|---|
4012000000000016 | updated_card |
4012000000000024 | updated_expiry |
4012000000000032 | no_match |
4012000000000040 | valid |
4012000000000057 | contact |
4012000000000065 | contact_closed |
Mastercard
| Card Number | Response |
|---|---|
5442980000000016 | updated_card |
5442980000000024 | updated_expiry |
5442980000000032 | no_match |
5442980000000040 | valid |
5442980000000057 | contact |
5442980000000065 | contact_closed |
Discover
| Card Number | Response |
|---|---|
6011000000000012 | updated_card |
6011000000000020 | updated_expiry |
6011000000000038 | no_match |
6011000000000046 | valid |
6011000000000053 | contact |
6011000000000061 | contact_closed |
3DS Challenge
Use these cards to test 3D Secure (3DS) challenge flows. These cards will trigger the authentication challenge prompt during checkout.
| Card Number | Brand |
|---|---|
4012000033330026 | Visa |
4485666666666668 | Visa |
5100060000000002 | Mastercard |
5472065555555557 | Mastercard |
6011000991300009 | Discover |
6011402344444445 | Discover |
378282246310005 | American Express |
340000111111117 | American Express |
For additional 3DS test scenarios, see the Paay documentation.
Scenarios
Here are recommended test cases and which test data to use:
Happy Path
| Scenario | Card/Data to Use |
|---|---|
| Successful card sale | 4111111111111111 |
| Successful ACH sale | Account: 111111111, Routing: 111111111 |
| Credit card with CVV match | Any test card + CVV 123 |
| Credit card with AVS match | Any test card + Postal code 60601 |
Declines
| Scenario | Card/Data to Use |
|---|---|
| Generic decline | 4000000000000002 |
| Insufficient funds | 4000000000009995 |
| Lost card | 4000000000009987 |
| Stolen card | 4000000000009979 |
| Expired card | 4000000000000069 |
| ACH decline | Routing: 000000000 |
Edge Cases
| Scenario | Card/Data to Use |
|---|---|
| Partial approval | 4000000000000051 |
| Refund failure | 4000000000000010 (auth succeeds, refund fails) |
| ACH return | Routing: 000000001 |
| ACH late return | Routing: 000000002 |
| CVV mismatch | CVV 200 |
| AVS mismatch | Postal code 20000 |
Surcharge
| Scenario | Card to Use |
|---|---|
| Surchargeable (credit) | 4005519200000004 |
| Non-surchargeable (debit) | 4111111111111111 |
Expiration Dates
Any valid future expiration date will work in sandbox. Common test values:
12/2712/30
Troubleshooting
| Issue | Solution |
|---|---|
| Card declined unexpectedly | Make sure you're using sandbox environment, not production |
| CVV/AVS not matching triggers | Verify you're sending the exact trigger value (e.g., 200 not 0200) |
| ACH not returning | Returns are processed during settlement; check webhooks |
| Test card not recognized | Ensure the card number has no spaces or dashes |