Docs
Resources
Testing

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

BRANDREGIONCARD NUMBERCVV / CVCEXPIRATION DATE
Visa (Credit)US and Canada4111 1111 1111 1111Any 3 digits, except 333 or 666Any future date
Visa (Credit)US and Canada4900 7700 0000 0001Any 3 digits, except 333 or 666Any future date
MastercardUS and Canada5100 4000 0000 0000Any 3 digits, except 333 or 666Any future date
DiscoverUS only6011 2345 6789 0123Any 3 digits, except 333 or 666Any future date
American ExpressUS only3701 234567 89017Any 4 digitsAny future date

Bank-to-Bank Payments

ACH Debit (USD)

BANK NAMEROUTING NUMBERACCOUNT NUMBER
Bank of America011000138Any 4-17 digit number, except ‘123456789’
Chase021000021Any 4-17 digit number, except ‘123456789’
Wells Fargo Bank021101108Any 4-17 digit number, except ‘123456789’
HSBC021004823Any 4-17 digit number, except ‘123456789’
TD Bank Connecticut011103093Any 4-17 digit number, except ‘123456789’

EFT Debit (CAD)

BANK NAMEINSTITUTION IDACCOUNT NUMBERTRANSIT NUMBER
Bank of Montreal001Any 4-12 digit number22446
Scotiabank (The Bank of Nova Scotia)002Any 4-12 digit number81349
Royal Bank of Canada003Any 4-12 digit number04356
The Toronto-Dominion Bank004Any 4-12 digit number00012
National Bank of Canada006Any 4-12 digit number48121

Declines

Failure codes listed below are specific to card payments. Note that an amount of 777701 represents $7777.01.

FAILURE CODEFAILURE MESSAGEAMOUNT
insufficient_fundsThe account has insufficient funds to complete the transaction.777701
avs_check_failedThe card was declined for a failed AVS check.777702
generic_declineYour request has been declined by the issuing bank.777703
call_issuerYour request has been declined by the issuing bank. The customer needs to contact their card issuer for more information.777704
expired_cardThe card has expired.777705
pickup_cardThe customer can't use this card to make this payment. It's possible it was reported lost or stolen.777706
invalid_numberThe card number is invalid.777707
limit_exceededThe customer has exceeded the balance or credit limit available on their card.777708
not_permittedTransactions are prohibited or limited against this account.777709
incorrect_cvcThe CVV/CVC number is incorrect.777710
service_not_allowedThe card was declined by the issuing bank due to its proprietary card activity regulations.777711
invalid_expiryThe expiration date is invalid.777712
card_not_supportedThe card does not support this type of purchase.777713
restricted_cardThe customer can't use this card to make this payment. It's possible it was reported lost or stolen.777714
fraudulentThe payment was declined because it is suspected to be fraudulent.777715
processing_errorAn 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 CODEFAILURE MESSAGEAMOUNT
insufficient_fundsThe account has insufficient funds to complete the transaction.888801
not_permittedTransactions are prohibited or limited against this account.888802
bank_account_blockedThe specified bank and account information is currently in an invalid state.888803
account_closedThe account has been closed.888804
account_frozenThe account has been frozen.888805
account_number_invalidThe account number is invalid.888806
authorization_revokedAccount holder revoked authorization of the payment.888807
invalid_fieldMandatory fields have either incorrect or missing data.888808
no_accountThe account cannot be located based on the provided account number.888809
not_authorizedAccount holder has notified their bank that the payment was not authorized.888810
not_recognizedAccount holder has notified their bank that they do not recognize the entity attempting to debit their account.888811
stop_paymentThe 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.

DESCRIPTIONCHECK RESULTSPREFIX
Both street and postal code matchaddress_line1_check=pass address_postal_code_check=pass10
Street matches, but postal code does notaddress_line1_check=pass address_postal_code_check=fail11
Postal code matches, but street does notaddress_line1_check=fail address_postal_code_check=pass12
Address information is unavailableaddress_line1_check=unchecked address_postal_code_check=unchecked18
Address information is unavailableaddress_line1_check=unavailable address_postal_code_check=unavailable15

Disputes

DESCRIPTIONDISPUTE STATUSSTATUS HISTORYAMOUNT
Inquirywarning_under_reviewwarning_needs_response warning_under_review777797
Inquiry followed by a formal disputeneeds_responsewarning_needs_response warning_under_review needs_response777798
Formal disputeneeds_responseneeds_response777799

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 STATUSEVIDENCE DESCRIPTION
wonREVERSAL
lostLOSS

Bank Account Verification

To test the Plaid Bank Account Verification feature within the hosted merchant application:

  1. 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.
  2. On the "Select your institution" page, pick any of the banks listed that are supported by Plaid and click Continue.
  3. When prompted to sign in, use these test credentials:
    1. Username: user_good
    2. Password: pass_good
  4. 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.
  5. 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.