Test mode
Moov has pre-populated your test account with sample business details and accounts. You aren’t required to enter anything for your test account to receive the verified
status. In test mode, requirements for all capabilities have been satisfied, so they are automatically enabled for you. You’ll have full access to the following capabilities:
While you don’t need to request capabilities for test mode, for production mode, you’ll need to request capabilities. You can do this at the same time you create your account, or request additional capabilities later.
Switch to test mode
After you’ve completed your business profile and Moov has approved your production account, you can switch between production and test mode in the Moov Dashboard by using the Account dropdown in the upper left hand corner.
Invite team members
Use the account switcher in the Moov Dashboard to switch to test mode. While in test mode, you can invite team members to your test account. Inviting team members to your test account does not enable them to use your production account. If you’d also like to invite team members to your production account, you will need to do that separately in production mode.
API keys
You will need to create an API key specific to the test account. We suggest naming the API key something that will help you remember that it’s for testing purposes.
You can use localhost, ngrok, Netlify, or Vercel domains for these keys.
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
. You can test the various results by entering the following combinations of correct and incorrect names in the holderName
field.
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.
Transfers
Transfers in test mode won’t move any real money. For the timing of transfers in test mode, note that:
- Wallet to wallet transfers complete almost instantly
- ACH transfers in test mode will complete in about an hour (see the processing speed guide for production mode)
If you would like to see how Moov handles failures in production, view the transfer failures guide.
To simulate card transfers and transfer scenarios, like disputes, use the test cards and other specific data listed in the following sections. Use the test cards with the create a transfer POST
endpoint, using any amount, unless otherwise specified.
Link test cards
Before you can use test cards in transfer scenarios, you will have to link them to your test account. Use the link a card POST
endpoint with any of the test cards, providing any 3 numbers for the CVV (4 for American Express) and any future date for the expiration date. You can also use any postal code to satisfy the required billing postalCode
field.
Card acceptance
We only support specific test cards for simulating card transfers. The expiration date field for all test cards can be set to any future date.
To simulate card transfers, use the following card numbers:
Card brand | Test card number | CVV |
---|---|---|
Visa | 4111111111111111 |
Any 3 numbers |
Mastercard | 5555555555554444 |
Any 3 numbers |
Discover | 6011111111111117 |
Any 3 numbers |
American Express | 371111111111114 |
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 will only appear for bank accounts with routing numbers that are RTP eligible.
Use 021000021
as an RTP-enabled routing number in test mode.
You can also simulate various RTP failures and rejections by using these specific amounts listed below in your test mode transfers. Using these amounts will result in real time failures. Please note that these failures will result in 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, if you wanted to simulate an invalid account, enter 7703 as the value
.
|
|
Push to card & pull from card
Use the test cards in the table below to simulate the following:
- Push to card transfer generating
fast-funds
payment method - Pull from card transfer generating
supported
payment method
Card brand | Completed transfer | Failed transfer |
---|---|---|
Visa | 4111 1000 1000 2000 |
4111 1000 5000 7000 |
Mastercard | 5200 8282 8282 8210 |
5200 8211 1111 1114 |
The expiration date can be any future date. CVV can be any 3 numbers for Visa and Mastercard.
ACH returns
You can simulate a few ACH return scenarios during different transfer stages. To see any of the return scenarios in action, create a new test transfer in the Moov Dashboard. To simulate a specific return type, input one of the return amount listed below in the Create test transfer > Amount modal. For example, if you want to simulate insufficient funds, enter $55.01 in the Dashboard.
Transfer amount | Return type | Return transfer stage |
---|---|---|
$55.01 | R01 / Insufficient funds |
Debit has originated, but not completed |
$55.02 | R02 / Account closed |
Debit has originated, but not completed |
$55.03 | R03 / No account/Unable to locate account |
Credit has completed |
$55.08 | R08 / Payment stopped |
Debit has completed |
If you would prefer to use the API to simulate a return, you can trigger the ACH returns in test mode by entering any of the return amount codes as the value
when creating a transfer. For example, if you wanted to simulate insufficient funds, enter 5501 as the value
.
|
|
A return will be 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 will result in a regular test transfer, not a test return.
Once you have created a transfer with an appropriate return code, Moov will update the transfer to failed
or reversed
based on the transfer stage (see ACH returns and exceptions for more information). The bank account status will also be updated accordingly.
The ACH returns and exceptions guide also includes the full ACH return code list.
Declined card transfers
To simulate a declined card-payment
transfer, use the following card numbers when creating a transfer. The expiration date field for all test cards can be set to any future date.
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 |
Disputes
To simulate disputes, use the card numbers below when creating a transfer. The expiration date can be any future date. CVV can be any 4 numbers for Amex and any 3 numbers for all other card brands.
Card brand | Test card number | Phase | Reason code |
---|---|---|---|
Visa | 4000 2000 2000 2000 |
Chargeback | 10.4 |
Mastercard | 5555 4444 0000 4444 |
Chargeback | 4860 |
Discover | 6011 2222 2222 0000 |
Chargeback | C05 |
American Express | 3710 1000 2000 123 |
Chargeback | F29 |
American Express | 3720 2000 2000 188 |
Inquiry | 21 |
To simulate winning or losing a dispute, you can upload winning or losing text evidence to the disputes text POST
endpoint (if you submit file evidence, the dispute status will remain under-review
).
The following outcomes can be simulated by entering “winning” or “losing” text 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
If you’ve created an account with the Moov Dashboard, we’ve already added test bank accounts on your behalf. If you’d like to add an additional test bank account, or you did not create an account through the Dashboard, you must include a valid routing number. For example:
|
|
The account number can be any number, for example:
|
|
Micro-deposit verification
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 will not complete.
Plaid
To test linking bank accounts with Plaid, simply pass env: "sandbox"
into the payload in the Moov.js initialization. You can pass in any token as the processor token and Moov will link default account data that looks like the following:
|
|