Testing
This guide provides test card numbers, banking numbers, and additional information to ensure your integration functions correctly. Utilize these resources to simulate various scenarios within the sandbox environment and verify that they are handled appropriately.
Card Payments
BRAND | REGION | CARD NUMBER | CVV / CVC | EXPIRATION DATE |
---|---|---|---|---|
Visa (Credit) | US and Canada | 4111 1111 1111 1111 | Any 3 digits, except 333 or 666 | Any future date |
Visa (Credit) | US and Canada | 4900 7700 0000 0001 | Any 3 digits, except 333 or 666 | Any future date |
Mastercard | US and Canada | 5100 4000 0000 0000 | Any 3 digits, except 333 or 666 | Any future date |
Discover | US only | 6011 2345 6789 0123 | Any 3 digits, except 333 or 666 | Any future date |
American Express | US only | 3701 234567 89017 | Any 4 digits | Any future date |
Bank-to-Bank Payments
ACH Debit (USD)
BANK NAME | ROUTING NUMBER | ACCOUNT NUMBER |
---|---|---|
Bank of America | 011000138 | Any 4-17 digit number, except ‘123456789’ |
Chase | 021000021 | Any 4-17 digit number, except ‘123456789’ |
Wells Fargo Bank | 021101108 | Any 4-17 digit number, except ‘123456789’ |
HSBC | 021004823 | Any 4-17 digit number, except ‘123456789’ |
TD Bank Connecticut | 011103093 | Any 4-17 digit number, except ‘123456789’ |
EFT Debit (CAD)
BANK NAME | INSTITUTION ID | ACCOUNT NUMBER | TRANSIT NUMBER |
---|---|---|---|
Bank of Montreal | 001 | Any 4-12 digit number | 22446 |
Scotiabank (The Bank of Nova Scotia) | 002 | Any 4-12 digit number | 81349 |
Royal Bank of Canada | 003 | Any 4-12 digit number | 04356 |
The Toronto-Dominion Bank | 004 | Any 4-12 digit number | 00012 |
National Bank of Canada | 006 | Any 4-12 digit number | 48121 |
Declines
Failure codes listed below are specific to card payments. Note that an amount of 777701 represents $7777.01.
FAILURE CODE | FAILURE MESSAGE | AMOUNT |
---|---|---|
insufficient_funds | The account has insufficient funds to complete the transaction. | 777701 |
avs_check_failed | The card was declined for a failed AVS check. | 777702 |
generic_decline | Your request has been declined by the issuing bank. | 777703 |
call_issuer | Your request has been declined by the issuing bank. The customer needs to contact their card issuer for more information. | 777704 |
expired_card | The card has expired. | 777705 |
pickup_card | The customer can't use this card to make this payment. It's possible it was reported lost or stolen. | 777706 |
invalid_number | The card number is invalid. | 777707 |
limit_exceeded | The customer has exceeded the balance or credit limit available on their card. | 777708 |
not_permitted | Transactions are prohibited or limited against this account. | 777709 |
incorrect_cvc | The CVV/CVC number is incorrect. | 777710 |
service_not_allowed | The card was declined by the issuing bank due to its proprietary card activity regulations. | 777711 |
invalid_expiry | The expiration date is invalid. | 777712 |
card_not_supported | The card does not support this type of purchase. | 777713 |
restricted_card | The customer can't use this card to make this payment. It's possible it was reported lost or stolen. | 777714 |
fraudulent | The payment was declined because it is suspected to be fraudulent. | 777715 |
processing_error | An error occurred while processing the card. | 777716 |
ACH Returns
Failure codes listed below are specific to ACH payments. ACH payments will move from a status of processing
to failed
at 8 AM EST the day after the payment is initiated.
Note that an amount of 888801 represents $8888.01.
FAILURE CODE | FAILURE MESSAGE | AMOUNT |
---|---|---|
insufficient_funds | The account has insufficient funds to complete the transaction. | 888801 |
not_permitted | Transactions are prohibited or limited against this account. | 888802 |
bank_account_blocked | The specified bank and account information is currently in an invalid state. | 888803 |
account_closed | The account has been closed. | 888804 |
account_frozen | The account has been frozen. | 888805 |
account_number_invalid | The account number is invalid. | 888806 |
authorization_revoked | Account holder revoked authorization of the payment. | 888807 |
invalid_field | Mandatory fields have either incorrect or missing data. | 888808 |
no_account | The account cannot be located based on the provided account number. | 888809 |
not_authorized | Account holder has notified their bank that the payment was not authorized. | 888810 |
not_recognized | Account holder has notified their bank that they do not recognize the entity attempting to debit their account. | 888811 |
stop_payment | The account holder has placed a stop payment order on this payment. | 888812 |
AVS Responses
By default, card transactions that include valid billing_details
addresses will successfully pass address verification checks. To test different outcomes, you can prefix the billing_details.address.street
property with a single letter code listed in the table below.
For example, setting billing_details.address.street
to 'A11 123 Main Street' will simulate the address check failing because the postal code doesn't match. You can find the results of these checks in the payment_method.card.checks
property.
DESCRIPTION | CHECK RESULTS | PREFIX |
---|---|---|
Both street and postal code match | address_line1_check=pass address_postal_code_check=pass | 10 |
Street matches, but postal code does not | address_line1_check=pass address_postal_code_check=fail | 11 |
Postal code matches, but street does not | address_line1_check=fail address_postal_code_check=pass | 12 |
Address information is unavailable | address_line1_check=unchecked address_postal_code_check=unchecked | 18 |
Address information is unavailable | address_line1_check=unavailable address_postal_code_check=unavailable | 15 |
Disputes
DESCRIPTION | DISPUTE STATUS | STATUS HISTORY | AMOUNT |
---|---|---|---|
Inquiry | warning_under_review | warning_needs_response warning_under_review | 777797 |
Inquiry followed by a formal dispute | needs_response | warning_needs_response warning_under_review needs_response | 777798 |
Formal dispute | needs_response | needs_response | 777799 |
When you submit evidence, using the precise phrases provided below in the evidence_description
will trigger the dispute to be resolved as won or lost.
RESULTING DISPUTE STATUS | EVIDENCE DESCRIPTION |
---|---|
won | REVERSAL |
lost | LOSS |
Bank Account Verification
To test the Plaid Bank Account Verification feature within the hosted merchant application:
- Navigate to the Bank Account section within the merchant application and click on the Connect Account button. Then, in the popup that appears, click Continue.
- On the "Select your institution" page, pick any of the banks listed that are supported by Plaid and click Continue.
- When prompted to sign in, use these test credentials:
- Username: user_good
- Password: pass_good
- After inputting the credentials, you'll be taken to the "Verify your identity" page. Here, click the Get code button. For the code input, use 1234 and then click Submit.
- Select any of the test accounts and click Continue.
You can then proceed with the remainder of the application. If you submit a test application and choose manual bank verification instead of Plaid, the merchant application's status will change from in-review to approved within 5 minutes. Using the tax ID 909909909 will keep the application in the in-review
status, preventing it from changing to approved
.
Webhooks
You can test your integration by completing actions in the sandbox environment that send events to your needed endpoint, and then verifying the results by checking the API for the correct event data. For example, creating a charge will trigger the charge.succeeded
event which will hold the correct charge data.
Refer to our Webhook documentation for more details.