Paying too much to process cards? Get a cheaper quote today.Schedule a call →

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

Declines

To simulate a decline, pass-through the respective amount when Creating a Payment IntentAPI. An amount of 777701 represents $7777.01.

FAILURE CODEFAILURE MESSAGEAMOUNT
insufficient_fundsThe account has insufficient funds to complete the purchase.777701
avs_check_failedThe AVS check failed.777702
generic_declineThe payment was declined by the issuer for an unknown reason.777703
call_issuerThe card was declined by the issuer for an unknown reason.777704
expired_cardThe card has expired.777705
pickup_cardThe card cannot be used for payment as it my have been reported lost or stolen.777706
invalid_numberThe card number is incorrect.777707
limit_exceededThe customer has exceeded their balance or credit limit.777708
not_permittedThe payment is not permitted.777709
incorrect_cvcThe CVV/CVC number is incorrect.777710
service_not_allowedThe card was declined by the issuer due to its proprietary card activity regulations.777711
invalid_expiryThe expiration date is incorrect.777712
card_not_supportedThe card does not support this type of purchase.777713
restricted_cardThe card cannot be used for payment as it may have been reported lost or stolen.777714
fraudulentThe payment is suspected to be fraudulent.777715
processing_errorAn error occurred while processing the payment.777716

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

To simulate a dispute, pass-through the respective amount when Creating a Payment IntentAPI. An amount of 777797 represents $7,777.97.

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

For the purposes of certification, you will need to submit dispute evidence. You must use 777798 or 777799 as the amount to trigger the dispute status of needs_response, allowing you to respond to the dispute and complete the checklist task.

Merchant Onboarding

To simulate various merchant onboarding outcomes, pass-through the respective amount when Updating an Onboarding ApplicationAPI.

INPUTOUTCOME
tax_id_number = 777777771Skips the DocuSign e-signature step for TSYS and North applications.

You can also simulate various merchant account outcomes by including special suffixes in the business name (e.g., Company Name&rejected).

Merchant Account Statuses

CODEDESCRIPTION
&rejectedSimulates a rejected provider application.
&withdrawnSimulates a withdrawn provider application.
&disabledSimulates a disabled provider application.
&pendSimulates an application pending review.
&holdSimulates a funding hold.

Document Requests

  • Append &docs= followed by a comma-separated list of document subtypes (e.g., &docs=ein_letter,utility_bill) to simulate document requests.

These tags are automatically removed before processing. The resulting provider statuses drive the overall merchant account status.

For further details or assistance, please contact our support team.

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.