Test Data
Every organization has a test mode and a live mode. Requests made with test mode credentials never reach a card network, a bank, or any other external processor. Instead, they are handled by a built-in simulator that produces realistic responses, so you can build and verify your integration without moving real money.
The simulator is driven by the values you send. Specific payment amounts trigger declines, ACH returns, and disputes; specific routing numbers change how a bank account is verified; and specific card BINs change the detected card type. This page documents every one of those values.
Anything not listed on this page behaves as an ordinary success. If you send an amount that is not a trigger, the payment succeeds; if you send a routing number that is not a trigger, the bank account verifies instantly.
All amounts on this page are in minor units, matching the amount.value field on a payment. An
amount of 4501 is $45.01 USD.
Triggers match the payment amount exactly. A payment for 4500 is declined, but a payment for
45000 or 450 is not.
Card Declines
Create a card payment with one of these amounts to have it decline. The payment is returned
immediately with a status of FAILED and the corresponding failure_reason.
Any other amount returns a status of PENDING with a generated six-digit authorization_code.
| Amount | failure_reason | Description |
|---|---|---|
4500 | DO_NOT_HONOR | The card issuer has declined this transaction |
4501 | INSUFFICIENT_FUNDS | The card has insufficient funds to complete the transaction |
4502 | EXPIRED_CARD | The card has expired |
4503 | CVV_MISMATCH | The card security code does not match |
4504 | LOST_OR_STOLEN | The card has been reported lost or stolen |
4505 | INVALID_CARD_NUMBER | The card number is not valid |
4506 | PROCESSING_ERROR | A technical error occurred while processing this payment |
4507 | CALL_ISSUER | Contact the card issuer for more information about this decline |
4508 | INVALID_TRANSACTION | This type of transaction is not permitted for this card |
4509 | SUSPECTED_FRAUD | The transaction has been flagged as potentially fraudulent |
4510 | CARD_NOT_ACTIVATED | The card has not been activated |
4511 | TRANSACTION_NOT_ALLOWED | This transaction type is not allowed for this card |
ACH Returns
Create a payment against a bank account with one of these amounts to have it return. Unlike card
declines, ACH returns are not immediate: the payment is first created with a status of PENDING,
and moves to FAILED with the corresponding failure_reason when the ACH processing job next runs.
See Timing below.
Pending bank account payments whose amount is not a trigger move to COMPLETED.
| Amount | failure_reason | Description |
|---|---|---|
5501 | ACH_R01 | Insufficient funds: the account has insufficient funds to complete the transaction |
5502 | ACH_R02 | Account closed: the bank account has been closed by the customer or bank |
5503 | ACH_R03 | No account located: the account number does not correspond to an open account |
5504 | ACH_R04 | Invalid account number: the bank account number structure is not valid |
5507 | ACH_R07 | Authorization revoked: the customer has revoked authorization for this ACH debit |
5508 | ACH_R08 | Payment stopped: the customer has stopped payment on this recurring debit |
5509 | ACH_R09 | Uncollected funds: the ledger balance is sufficient but the available balance is not |
5510 | ACH_R10 | Originator unknown or unauthorized |
5511 | ACH_R11 | Entry unauthorized: the debit amount or date differs from the authorization |
5515 | ACH_R15 | Payee unable to authorize |
5516 | ACH_R16 | Bank account frozen |
5520 | ACH_R20 | Non-payment bank account: the account may not receive ACH debits |
5524 | ACH_R24 | Duplicate entry |
5529 | ACH_R29 | Originator unauthorized to debit this account |
The amounts above are not a contiguous range. Amounts such as 5505, 5512, and 5525 fall between
triggers but are not themselves triggers, and settle successfully.
Disputes
Create a card payment with one of these amounts, and once the payment reaches COMPLETED, a
dispute is opened against it when the dispute job next runs. See Timing below.
Each payment can only ever have one dispute. The network_reason_code is always 10.4, and
respond_by is set to 20 days from creation for the RESPONSE_NEEDED and UNDER_REVIEW statuses
only — the other statuses represent disputes that are already resolved, so there is nothing to
respond to.
| Amount | phase | status |
|---|---|---|
4600 | INQUIRY | RESPONSE_NEEDED |
4601 | CHARGEBACK | RESPONSE_NEEDED |
4602 | CHARGEBACK | UNDER_REVIEW |
4603 | CHARGEBACK | WON |
4604 | CHARGEBACK | LOST |
4605 | INQUIRY | RESOLVED |
4606 | CHARGEBACK | ACCEPTED |
4607 | CHARGEBACK | EXPIRED |
4608 | INQUIRY | CLOSED |
A dispute in the CHARGEBACK phase also books a DISPUTE transaction debiting the disputed amount.
If that chargeback is WON, a matching DISPUTE_REVERSAL transaction credits the amount back.
Dispute Outcomes
To exercise the full dispute lifecycle rather than starting at a terminal status, use amount 4602
to open a chargeback in UNDER_REVIEW, then submit evidence. The outcome is decided by the evidence
text when the dispute resolution job next runs.
Submit evidence with text of exactly winning-evidence to win the dispute. Any other text loses it.
| Phase | Evidence text | Resulting status |
|---|---|---|
CHARGEBACK | winning-evidence | WON, plus a DISPUTE_REVERSAL transaction |
CHARGEBACK | Any other text | LOST |
INQUIRY | winning-evidence | CLOSED |
INQUIRY | Any other text | RESPONSE_NEEDED |
A dispute left in RESPONSE_NEEDED or UNDER_REVIEW past its respond_by date moves to EXPIRED.
Bank Accounts
Routing Numbers
The routing number you use when creating a bank account determines how it is verified and whether it can be created at all.
| Routing number | Outcome |
|---|---|
011401533 | Created with status NEW. Verification uses ACH micro-deposits instead of instant verification |
114000093 | Created with status ERROR, an error_code of AC03, and no capabilities. The account is unusable |
| Any other | Created with status NEW and the ACH_CREDIT_SAME_DAY and ACH_CREDIT_STANDARD capabilities. Verifies instantly |
Use 114000093 to test how your integration handles a bank account that the bank rejects outright.
In test mode the institution_name is always returned as Gringotts Bank, regardless of routing
number.
Micro-Deposit Verification
When verifying a bank account created with routing number 011401533, use the code 0001. The
prefixed form MV0001 is also accepted.
| Code | Outcome |
|---|---|
0001 or MV0001 | Verification succeeds and the ACH_DEBIT capability is granted |
| Any other code | Verification fails |
The same limits that apply in live mode also apply in test mode: verification allows at most 5 attempts within a 14 day window. Use a wrong code repeatedly to test how your integration handles a bank account that exhausts its attempts.
Cards
Card Type by BIN
The first six digits of the card number — the BIN — determine the card_type returned on the
created card.
| BIN | card_type |
|---|---|
400005 | DEBIT |
601100 | PREPAID |
| Any other | CREDIT |
Address and security code checks always pass in test mode: avs and cvv2 both return MATCH
regardless of the billing address or security code you send. To simulate a security code failure on
a payment, use the 4503 amount trigger described in Card Declines.
Timing
Card declines and bank account results are returned synchronously in the API response. ACH returns, disputes, and settlements are applied by background jobs, which mirrors how these events arrive in live mode. Poll the resource or listen for the corresponding webhook rather than expecting the change on your original response.
| Simulated event | Applied |
|---|---|
| ACH payment settlement or return | Every 5 minutes |
| Dispute creation | Every 5 minutes |
| Dispute resolution and expiry | Every 5 minutes |
| Settlements created | Once daily |
| Settlements completed | Once daily |
Refunds created in test mode always return a status of PENDING.