Skip to main content

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.

note

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.

Amountfailure_reasonDescription
4500DO_NOT_HONORThe card issuer has declined this transaction
4501INSUFFICIENT_FUNDSThe card has insufficient funds to complete the transaction
4502EXPIRED_CARDThe card has expired
4503CVV_MISMATCHThe card security code does not match
4504LOST_OR_STOLENThe card has been reported lost or stolen
4505INVALID_CARD_NUMBERThe card number is not valid
4506PROCESSING_ERRORA technical error occurred while processing this payment
4507CALL_ISSUERContact the card issuer for more information about this decline
4508INVALID_TRANSACTIONThis type of transaction is not permitted for this card
4509SUSPECTED_FRAUDThe transaction has been flagged as potentially fraudulent
4510CARD_NOT_ACTIVATEDThe card has not been activated
4511TRANSACTION_NOT_ALLOWEDThis 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.

Amountfailure_reasonDescription
5501ACH_R01Insufficient funds: the account has insufficient funds to complete the transaction
5502ACH_R02Account closed: the bank account has been closed by the customer or bank
5503ACH_R03No account located: the account number does not correspond to an open account
5504ACH_R04Invalid account number: the bank account number structure is not valid
5507ACH_R07Authorization revoked: the customer has revoked authorization for this ACH debit
5508ACH_R08Payment stopped: the customer has stopped payment on this recurring debit
5509ACH_R09Uncollected funds: the ledger balance is sufficient but the available balance is not
5510ACH_R10Originator unknown or unauthorized
5511ACH_R11Entry unauthorized: the debit amount or date differs from the authorization
5515ACH_R15Payee unable to authorize
5516ACH_R16Bank account frozen
5520ACH_R20Non-payment bank account: the account may not receive ACH debits
5524ACH_R24Duplicate entry
5529ACH_R29Originator unauthorized to debit this account
caution

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.

Amountphasestatus
4600INQUIRYRESPONSE_NEEDED
4601CHARGEBACKRESPONSE_NEEDED
4602CHARGEBACKUNDER_REVIEW
4603CHARGEBACKWON
4604CHARGEBACKLOST
4605INQUIRYRESOLVED
4606CHARGEBACKACCEPTED
4607CHARGEBACKEXPIRED
4608INQUIRYCLOSED

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.

PhaseEvidence textResulting status
CHARGEBACKwinning-evidenceWON, plus a DISPUTE_REVERSAL transaction
CHARGEBACKAny other textLOST
INQUIRYwinning-evidenceCLOSED
INQUIRYAny other textRESPONSE_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 numberOutcome
011401533Created with status NEW. Verification uses ACH micro-deposits instead of instant verification
114000093Created with status ERROR, an error_code of AC03, and no capabilities. The account is unusable
Any otherCreated 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.

CodeOutcome
0001 or MV0001Verification succeeds and the ACH_DEBIT capability is granted
Any other codeVerification 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.

BINcard_type
400005DEBIT
601100PREPAID
Any otherCREDIT

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 eventApplied
ACH payment settlement or returnEvery 5 minutes
Dispute creationEvery 5 minutes
Dispute resolution and expiryEvery 5 minutes
Settlements createdOnce daily
Settlements completedOnce daily

Refunds created in test mode always return a status of PENDING.