> For the complete documentation index, see [llms.txt](https://docs.payengine.co/payengine-api-v2.5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payengine.co/payengine-api-v2.5/transactions/testing.md).

# Testing

### Test card numbers

Genuine card information can not be used in test mode. Instead, use any of the following test card numbers with any random CVC number to create a successful payment.

<table data-header-hidden><thead><tr><th width="239">Number</th><th width="180">Brand</th><th width="133">CVC</th><th>Type</th></tr></thead><tbody><tr><td>Number</td><td>Brand</td><td>CVC</td><td>Type</td></tr><tr><td>4242 4242 4242 4242</td><td>Visa</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>4000 0566 5566 5556</td><td>Visa (Debit)</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>4298 8999 9999 9996</td><td>Visa</td><td>Any 3 digits</td><td>Success with surcharge_allowed = Y</td></tr><tr><td>5555 5555 5555 4444</td><td>Mastercard</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>2223 0031 2200 3222</td><td>Mastercard</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>5200 8282 8282 8210</td><td>Mastercard</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>5105 1051 0510 5100</td><td>Mastercard</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>5239 0711 1111 1111</td><td>Mastercard</td><td>Any 3 digits</td><td>Success with surcharge_allowed = Y</td></tr><tr><td>3782 8224 6310 005</td><td>American Express</td><td>Any 4 digits</td><td>Success</td></tr><tr><td>37144 9635 3984 31</td><td>American Express</td><td>Any 4 digits</td><td>Success</td></tr><tr><td>3412 3444 4444 445</td><td>American Express</td><td>Any 4 digits</td><td>Success with surcharge_allowed = Y</td></tr><tr><td>6011 1111 1111 1117</td><td>Discover</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>6011 0009 9013 9424</td><td>Discover</td><td>Any 3 digits</td><td>Success</td></tr><tr><td>6011 3083 5555 5559</td><td>Discover</td><td>Any 3 digits</td><td>Success with surcharge_allowed = Y</td></tr><tr><td>3056 9300 09020 004</td><td>Dinners Club</td><td>Any 3 digits</td><td>Success</td></tr><tr><td><p><mark style="color:red;">3622 7206 2716 67</mark></p><p><mark style="color:red;">(Invalid Card Test)</mark></p></td><td>Dinners Club</td><td>Any 3 digits</td><td>Failure - Invalid Card</td></tr><tr><td><mark style="color:red;">3566 0020 2036 0505</mark><br><mark style="color:red;">(Invalid Card Test)</mark></td><td>JCB</td><td>Any 3 digits</td><td>Failure - Invalid Card</td></tr><tr><td><mark style="color:red;">4000 0046 5062 9995</mark><br><mark style="color:red;">Exp: 04/28 CVV: 402</mark></td><td>Visa</td><td>Any 3 digits</td><td>Failure - Insufficient Funds</td></tr><tr><td><mark style="color:red;">4111 2356 5373 9995</mark><br><mark style="color:red;">Exp: 09/28 CVV: 342</mark></td><td>American Express</td><td>Any 3 digits</td><td>Failure - Insufficient Funds</td></tr><tr><td><mark style="color:red;">5111 2359 1137 9995</mark><br><mark style="color:red;">Exp: 03/28 CVV: 794</mark></td><td>Mastercard</td><td>Any 3 digits</td><td>Failure - Insufficient Funds</td></tr><tr><td><mark style="color:red;">4222 2310 3434 0005</mark></td><td>Visa</td><td>Any 3 digits</td><td>Failure - Refer to Issuer</td></tr><tr><td><mark style="color:red;">5222 2309 3434 0005</mark></td><td>Mastercard</td><td>Any 3 digits</td><td>Failure - Refer to Issuer</td></tr><tr><td><mark style="color:red;">3782 8224 6310 005</mark></td><td>American Express</td><td>Any 3 digits</td><td>Failure - Refer to Issuer</td></tr><tr><td><mark style="color:red;">6222 2323 3434 0005</mark></td><td>Discover</td><td>Any 3 digits</td><td>Failure - Refer to Issuer</td></tr></tbody></table>

### Note:

1. To test a refund failure, use a refund amount of less than $1, as this will trigger a failure.
2. To test a dispute, process a transaction for $13.13. A dispute will be triggered 30 minutes after the transaction is processed.

###

### Test routing numbers

The routing number is used to fill in [SecureFields Bank Account JS](https://docs.payengine.co/processing-payments/secure-fields/securefields-bank-account), which will be used when making an ACH transaction.

| Routing Number | Account Number | First Name | Last Name |
| -------------- | -------------- | ---------- | --------- |
| 083908420      | Any            | Any        | Any       |
| 417710899      | Any            | Any        | Any       |

### Plaid Testing

For Plaid sandbox testing please use the following credentials

| User Name  | Password   |
| ---------- | ---------- |
| user\_good | pass\_good |

{% hint style="info" %}
For detail information on how to use Plaid's sandbox environment please refer to [Plaid's official documentation page](https://plaid.com/docs/api).
{% endhint %}

### Webhooks

To test your integration, perform actions using the API to send legitimate events to your endpoint.

### 3DS Testing

Use the specified amounts listed below with the test cards provided in the [test card numbers section](https://docs.payengine.co/api-reference/transactions/testing#test-card-numbers)

<table><thead><tr><th width="276">Test Case</th><th width="134">Test Amount</th><th>Expected Result</th></tr></thead><tbody><tr><td>3DS Method Timeout</td><td>$37.02</td><td>Test timeout</td></tr><tr><td>Frictionless 3DS method</td><td>$37.03</td><td>Frictionless authentication with 3DS method</td></tr><tr><td>Frictionless no 3DS method</td><td>$37.04</td><td>Frictionless authentication with no 3DS method</td></tr><tr><td>Manual Challenge</td><td>$37.05</td><td>Challenge authentication with 3DS method. Can check Pass or Fail challenge</td></tr><tr><td>Automatic Challenge Success</td><td>$37.06</td><td>Automatic challenge success after challenge is presented.</td></tr><tr><td>Automatic Challenge Failure</td><td>$37.07</td><td>Automatic challenge failure after challenge is presented.</td></tr></tbody></table>

### Device Testing

For testing physical devices (terminals) , upon request Platform will setup a test account where you can use real credit cards without incurring any charges. Please contact Platform support team for further information

| Test case                              | Expected Result |
| -------------------------------------- | --------------- |
| Run transaction amount $1.00 or above  | Success         |
| Run transaction amount less than $1.00 | Failure         |

### Address Verification Service (AVS) Testing

For testing different outcomes for the address verification service, use the following test cards to simulate different [AVS response codes](https://docs.payengine.co/developer-docs/processing-payments/address-verification-service-avs-check).

<table><thead><tr><th width="494">Test Case</th><th>Test Cards</th></tr></thead><tbody><tr><td><strong>AVS Response Code - A</strong><br>Address matches but ZIP code does not match.</td><td>4000 0000 0000 4905</td></tr><tr><td><p><strong>AVS Response Code - E</strong></p><p>AVS Error</p></td><td>4000 0000 0000 4913</td></tr><tr><td><strong>AVS Response Code - N</strong><br>No Match on Address or ZIP code</td><td>4000 0000 0000 4921</td></tr><tr><td><strong>AVS Response Code - O</strong><br>No AVS Response</td><td>4000 0000 0000 4939</td></tr><tr><td><strong>AVS Response Code - R</strong><br>Retry, System unavailable or Timed out</td><td>4000 0000 0000 4947</td></tr><tr><td><strong>AVS Response Code - U</strong><br>Address information is unavailable</td><td>4000 0000 0000 4954</td></tr><tr><td><strong>AVS Response Code - X</strong><br>Exact AVS match - Address and ZIP code</td><td>4000 0000 0000 4962</td></tr><tr><td><strong>AVS Response Code - Z</strong><br>5 Digit ZIP code matches but Address (Street) doesn't match</td><td>4000 0000 0000 4970</td></tr></tbody></table>

### Cardholder Verification (CVV) Testing

For testing different outcomes for the CVV verification service, use the following test cards to simulate different [CVV response codes](https://docs.payengine.co/api-reference/error-and-response-codes/cvv-cardholder-verification-codes)

<table><thead><tr><th width="494">Test Case</th><th>Test Cards</th></tr></thead><tbody><tr><td><strong>CVV Code - M</strong><br>CVV2 verification successful</td><td>4000 0000 0000 4988</td></tr><tr><td><p><strong>CVV Code - P</strong></p><p>CVV2 verification not performed</p></td><td>4000 0000 0000 4996</td></tr><tr><td><strong>CVV Code - U</strong><br>CVV2 verification not available</td><td>4000 0000 0000 5001</td></tr><tr><td><strong>CVV Code - N</strong><br>CVV2 verification fail/mismatch</td><td>4000 0000 0000 5019</td></tr><tr><td><strong>CVV Code - S</strong><br>CVV2 code not present on card</td><td>4000 0000 0000 5027</td></tr></tbody></table>
