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 |
Declines
To simulate a decline, pass-through the respective amount when Creating a Payment IntentAPI. An amount of 777701 represents $7777.01.
| FAILURE CODE | FAILURE MESSAGE | AMOUNT |
|---|---|---|
insufficient_funds | The account has insufficient funds to complete the purchase. | 777701 |
avs_check_failed | The AVS check failed. | 777702 |
generic_decline | The payment was declined by the issuer for an unknown reason. | 777703 |
call_issuer | The card was declined by the issuer for an unknown reason. | 777704 |
expired_card | The card has expired. | 777705 |
pickup_card | The card cannot be used for payment as it my have been reported lost or stolen. | 777706 |
invalid_number | The card number is incorrect. | 777707 |
limit_exceeded | The customer has exceeded their balance or credit limit. | 777708 |
not_permitted | The payment is not permitted. | 777709 |
incorrect_cvc | The CVV/CVC number is incorrect. | 777710 |
service_not_allowed | The card was declined by the issuer due to its proprietary card activity regulations. | 777711 |
invalid_expiry | The expiration date is incorrect. | 777712 |
card_not_supported | The card does not support this type of purchase. | 777713 |
restricted_card | The card cannot be used for payment as it may have been reported lost or stolen. | 777714 |
fraudulent | The payment is suspected to be fraudulent. | 777715 |
processing_error | An 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.
| 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
To simulate a dispute, pass-through the respective amount when Creating a Payment IntentAPI. An amount of 777797 represents $7,777.97.
| 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 |
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.
| INPUT | OUTCOME |
|---|---|
tax_id_number = 777777771 | Skips 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
| CODE | DESCRIPTION |
|---|---|
&rejected | Simulates a rejected provider application. |
&withdrawn | Simulates a withdrawn provider application. |
&disabled | Simulates a disabled provider application. |
&pend | Simulates an application pending review. |
&hold | Simulates 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:
- 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.
