Test mode data

A quick overview of all test mode data for transfers scenarios.

The test data on this page can be used in test mode to simulate various transfer scenarios. For more thorough instructions, visit our main test mode guide or our Dashboard test mode guide.

Card brand Test card number CVV Postal code Expiration date
Visa 4111111111111111 Any 3 numbers Any 5 numbers Any future date
Mastercard 5555555555554444 Any 3 numbers Any 5 numbers Any future date
Discover 6011111111111117 Any 3 numbers Any 5 numbers Any future date
American Express 371111111111114 Any 4 numbers Any 5 numbers Any future date

See the postal and CVV sections below for additional test verification scenarios. Also note that test cards will expire once your chosen expiration date passes.

Name verification

The card link POST endpoint and PATCH endpoint offer an optional verifyName field, which uses Visa's ANI verification as a check against the supplied holderName. Use the following combinations of correct and incorrect names in the holderName field to test results.

Correct name: Alex Nora Irwin

Name entered Individual name check Full name check
"Alex Nora Irwin" match, match, match match
"Alex Noraa Irwin" match, partialMatch, match match
"Alx Nora Irwin" partialMatch, match, match match
"Alex Irwin" match, notChecked, match match
"Irwin" notChecked, notChecked, match match
"Alex Nor Irwin" match, noMatch, match partialMatch
"Axely Nora Irwin" noMatch, match, match partialMatch
"A N Irwi" noMatch, noMatch, partialMatch noMatch
"Alex Notwin" match, notChecked, noMatch noMatch
"Alex Notwin" match, notChecked, noMatch noMatch

If ANI is not supported, you'll receive unavailable for all results.

Postal code verification

Card brand Verification result Postal code
All card brands match 11111
All card brands noMatch 22222
Visa, Discover notChecked 88888
All card brands unavailable 99999

CVV verification

Card brand Verification result CVV code
Visa, Mastercard, Discover match 111
American Express match 1111
Visa, Mastercard, Discover noMatch 222
American Express noMatch 2222
Visa, Mastercard, Discover notChecked 888
American Express notChecked 8888
Visa, Mastercard, Discover unavailable 999
American Express unavailable 9999

Push & pull from card

Card brand Completed transfer Failed transfer
Visa 4111100010002000 4111100050007000
Mastercard 5200828282828210 5200821111111114

The expiration date can be any future date. CVV can be any 3 numbers for Visa and Mastercard. Since push and pull card transfers require verifications, test cards always return a successful match for CVV, postal code, and (if requested) name verification, regardless of the values provided. To test negative verification results, use the test values in the CVV verification, postal code verification, and name verification sections.

Tap to Pay

Test mode allows you to verify your Tap to Pay integration on iOS and Android before processing live payments. The terminal configuration fetched from the Moov API determines whether the SDK operates in test or production mode. When using a test configuration, the SDK simulates card tap scenarios using these test cards:

Card brand Test card number Result
Visa 4111111111111111 Approved
Mastercard 5555555555554444 Approved
Discover 6011111111111117 Approved
American Express 371111111111114 Approved
Visa 4000020000000000 Declined
Mastercard 5555000022220022 Declined
Discover 6011000022220002 Declined
American Express 3711000022220002 Declined

When testing Tap to Pay on mobile with test cards, you don't need to enter a CVV, expiration date, or postal code. For platform-specific details, refer to the SDK documentation:

Declined card transfers

Card brand Test card number CVV
Visa 4000020000000000 Any 3 numbers
Mastercard 5555000022220022 Any 3 numbers
Discover 6011000022220002 Any 3 numbers
American Express 3711000022220002 Any 4 numbers

RTP

To simulate an RTP transfer in test mode, create a transfer with moov-wallet as the source payment method and rtp-credit as the destination. The rtp-credit payment method only appears for bank accounts with routing numbers that are RTP eligible.

Use 021000021 as an RTP-enabled routing number in test mode.

You can simulate RTP failures and rejections by using these specific transfer amounts. These amounts result in real time failures and the linked bank account entering an errored state.

Transfer amount Failure type
$72.03 AC03 / invalid-account
$72.04 AC04 / account-closed
$72.06 AC06 / account-blocked

If you would prefer to use the API to simulate a failure, you can trigger the RTP failure in test mode by entering any of the return amount codes as the value. For example, to simulate an invalid account, enter 7703 as the value.

{
  "amount": {
    "currency": "USD",
    "value": 7703
  },
  "facilitatorFee": {
    "total": 0
  }
}

ACH returns

You can simulate a few ACH return scenarios during different transfer stages. Trigger ACH returns in test mode by entering any of the return amount codes listed below as the value when creating a transfer. For example, to simulate insufficient funds, enter 5501 as the value.

Trigger Amount Return Code Description Simulation Stage
$55.01 R01 Insufficient Funds Debit originated, not completed
$55.02 R02 Account Closed Debit originated, not completed
$55.03 R03 No Account / Unable to Locate Credit completed
$55.04 R04 Invalid Account Number Structure Credit completed
$55.07 R07 Authorization Revoked by Customer Debit completed
$55.08 R08 Payment Stopped Debit completed
$55.09 R09 Uncollected Funds Debit originated, not completed
$55.10 R10 Customer Not Authorized Debit completed
$55.11 R11 Entry Not in Accordance with Terms Debit originated, not completed
$55.15 R15 Account Holder Deceased Debit originated, not completed
$55.16 R16 Account Frozen Debit originated, not completed
$55.20 R20 Non-Transaction Account Debit originated, not completed
$55.24 R24 Duplicate Entry Debit originated, not completed
$55.29 R29 Corporate Customer Not Authorized Debit originated, not completed
{
  "amount": {
    "currency": "USD",
    "value": 5501
  },
  "facilitatorFee": {
    "total": 0
  }
}

A return is only triggered if the transfer type (for example, wallet-to-bank) is applicable to the particular return scenario and amount entered. For example, an R01 in test mode always occurs on the debit leg, after the transfer stage of debit origination. Accordingly, an R01 return cannot be triggered on a wallet-to-bank transfer, as that transfer type only consists of a credit leg. Creating a return scenario that does not apply to a corresponding transfer type results in a regular test transfer, not a test return.

Once you have created a transfer with an appropriate return code, Moov updates the transfer to failed or reversed based on the transfer stage (see ACH returns and exceptions for more information). The bank account status is also updated accordingly.

Disputes

Card brand Test card number Phase Reason code
Visa 4000200020002000 Chargeback 10.4
Visa - Pull from card 4111100010003008 Chargeback 10.4
Mastercard 5555444400004444 Chargeback 4860
Mastercard - Pull from card 5555555555553339 Chargeback 4860
Discover 6011222222220000 Chargeback 05
American Express 371010002000123 Chargeback F29
American Express 372020002000188 Inquiry 21

Dispute evidence

Text evidence Phase Outcome
winning-evidence chargeback Dispute will enter an under-review status for 10 minutes before updating to status: won. The chargeback is reversed and funds are credited to the merchant.
winning-evidence inquiry Dispute will enter an under-review status for 10 minutes before updating tostatus: closed.
losing-evidence chargeback Dispute will enter an under-review status for 10 minutes before updating to status: lost.
losing-evidence inquiry Dispute will enter an under-review status for 10 minutes before updating to status: response-needed.

Bank accounts

Data Description
Routing number Requires a valid routing number. Example: 322271627
Account number The account number can be any number. Example: 12345654321
Instant verification code 0001
Micro-deposits 0,0

To simulate an instant micro-deposit verification in test mode, enter 0001 as the instant verification code.

To simulate traditional micro-deposit verification in test mode, enter 0 for both amounts: [0,0], and the bank account verification will succeed. If you input any other amount, the bank account verification won't complete.

Plaid

To test linking bank accounts with Plaid, pass env: "sandbox" into the payload in the Moov.js initialization. You can pass any token as the processor token and Moov links default account data:

  RoutingNumber: "011401533",
  AccountNumber: "1111222233330000",
  AccountType:   "checking",
  Mask:          "0000"
Summary Beta