# Testing Your Integration

Finix offers numerous ways to test your Sandbox integration. Use the values below to test your integration. We encourage you to test these scenarios before running transactions in your Live environment.

## Testing Transactions

The testing scenarios below are for testing payment transactions. These include `Transfers`, `Authorizations`, `Payment Instrument` responses, and more.

### Testing Card Type

Use the following card numbers to trigger the respective `card_type`. Provide the `amount` in cents.

| Card Type | Card Number | Brand |
|  --- | --- | --- |
| `CREDIT` | `6011000000004675` | Discover |
| `DEBIT` | `5200820000007201` | Mastercard |
| `HSA_FSA` | `4393420000002680` | Visa |
| `NON_RELOADABLE_PREPAID` | `5223100000008423` | Mastercard |
| `RELOADABLE_PREPAID` | `379032000006086` | American Express |
| `UNKNOWN` | `386214000009097` | Discover |


### Testing AVS/CVV

Pass one of the following `amount` values to trigger the respective payment failure. Once a `Payment Instrument` is flagged with an AVS or CVV failure, it will continue to return that error. Provide the `amount` in cents.

| Amount | Description |
|  --- | --- |
| `102` | Declined amount |
| `103` | Canceled amount |
| `888888` | Disputed amount |
| `193` | Insufficient funds amount |
| `194` | Invalid card number amount |
| `889986` | AVS total failure amount |
| `889987` | CVC failure amount |


For more details about address and CVV verification, see the [Risk Rules and Card Checks](https://docs.finix.com/guides/online-payments/fraud-and-risk/risk-rules-card-checks) guide.

### Testing Name Verification

Use the following sentinel values to simulate name verification results on `DUMMY_V1`. If none are provided, all fields in `name_verification_results` return `UNKNOWN`. Sentinel values are not case-sensitive.

#### Direct Name Verification

You can perform name verification using the [PUT /payment_instruments/{payment_instrument_id_verify}](/api/payment-instruments/createpaymentinstrumentverification) endpoint. Select the "Name Verification" example.

Use the `first_name` and `last_name` fields in `name_verification_details` to trigger a specific result. All four fields in `name_verification_results` return the same value.

| `first_name` | `last_name` | `name_verification_results` |
|  --- | --- | --- |
| `Billy` | `NameVerification` | `MATCH` |
| `Joey` | `NameVerification` | `NO_MATCH` |
| `Sarah` | `NameVerification` | `PARTIAL_MATCH` |
| `Amanda` | `NameVerification` | `NOT_SUPPORTED` |


#### Name Verification via Push-to-Card Eligibility Check

[Verifying Push-to-Card eligibility](/api/payment-instruments/createpaymentinstrumentverificationpushtocard) returns name verification results.

All four fields in `name_verification_results` (`first_name`, `last_name`, `middle_name`, and `name`) return the same value.

| `Payment Instrument` › `name` | `name_verification_results` |
|  --- | --- |
| `Billy NameVerification` | `MATCH` |
| `Joey NameVerification` | `NO_MATCH` |
| `Sarah NameVerification` | `PARTIAL_MATCH` |
| `Amanda NameVerification` | `NOT_SUPPORTED` |


### Testing Failure Codes

Use the following card numbers to test failure codes. Provide the `amount` in cents.

After [creating a Transfer](/api/transfers/createtransfer) with one of the card numbers below, you can see the `failure_code` and `failure_message` in the `Transfer` details. You can also [retrieve a Transfer](/api/transfers/gettransfer) to check these fields.

For testing ACH return codes, refer to [Testing ACH returns](#testing-ach-returns).

| Failure Code  | Card Number | Brand |
|  --- | --- | --- |
| `GENERIC_DECLINE` | `4000000000009979` | Visa |
| `GENERIC_DECLINE` | `378282246310005` | American Express |
| `GENERIC_DECLINE` | `5555555555554444` | Mastercard |
| `GENERIC_DECLINE` | `6011111111111117` | Discover |
| `CALL_ISSUER` | `4012888888881881` | Visa |
| `CARD_NOT_ACTIVATED_OR_BLOCKED` | `4539148803436467` | Visa |
| `DO_NOT_HONOR` | `4000000000000002` | Visa |
| `EXCEEDS_APPROVAL_LIMIT` | `4000000000009995` | Visa |
| `EXPIRED_CARD` | `4000000000009987` | Visa |
| `FRAUD_DETECTED_BY_FINIX` | `4129054449449482` | Visa |
| `FRAUD_DETECTED_BY_ISSUER` | `4783512839773883` | Visa |
| `INSUFFICIENT_FUNDS` | `4000000000000069` | Visa |
| `INVALID_CARD_NUMBER_OR_EXPIRED_CARD` | `4544206329536898` | Visa |
| `INVALID_CVV` | `4000056655665556` | Visa |
| `ISSUER_POLICY_VIOLATION` | `4709247730212712` | Visa |
| `LOST_OR_STOLEN_CARD` | `4000000000000127` | Visa |
| `PICK_UP_CARD` | `4000000000000119` | Visa |
| `RESTRICTED_CARD` | `4242424242424242` | Visa |


### Testing Network Tokens

Use the following card numbers to set a specific `network_token_state`. By default, any valid card number enabled for network tokens returns an `ACTIVE` state. Provide the `amount` in cents.

| `Payment Instrument` › `network_token_state` | Card Number |
|  --- | --- |
| `CLOSED` | `4181126552690790` |
| `FAILED` | `4281168227567010` |
| `SUSPENDED` | `4220706972789265` |


To learn more about Network Tokens, see the [Network Tokens](https://docs.finix.com/guides/after-the-payment/network-tokens) guide.

### Testing Account Updater

Use the following card numbers to test account updater responses. Provide the `amount` in cents.

| Account Update Type | Brand | Initial card number | Initial expiration (M/Y) | New number | New expiration (M/Y) |
|  --- | --- | --- | --- | --- | --- |
| `CLOSED_CARD` | Visa | `4402087389579601` | `1/2030` | - | - |
| `CONTACT_CARDHOLDER` | Visa | `4349990631704016` | `1/2030` | - | - |
| `EXPIRATION_UPDATED` | Visa | `4208862673740549` | `1/2030` | `4307730606824385` | `1/2040` |
| `FRAUD_REPORTED` | American Express | `340452801563455` | `1/2030` | - | - |
| `INACTIVE_MERCHANT` | American Express | `3403470175812488` | `1/2030` | - | - |
| `NO_TRANSACTIONAL_ACTIVITY` | American Express | `3019542985188444` | `1/2030` | - | - |
| `NOT_FOUND` | Visa | `4543267787982264` | `1/2030` | - | - |
| `NUMBER_AND_EXPIRATION_UPDATED` | Visa | `4496772882855767` | `1/2030` | `4887005601746919` | `3/2040` |
| `NUMBER_AND_EXPIRATION_UPDATED` | Mastercard | `5103504002919260` | `1/2030` | `5213076676875406` | `11/2040` |
| `NUMBER_AND_EXPIRATION_UPDATED` | American Express | `3883494643244974` | `1/2030` | `3969967933006770` | `08/2040` |
| `NUMBER_AND_EXPIRATION_UPDATED` | Discover | `6588849539088200` | `1/2030` | `6011174500160749` | `12/2040` |
| `NUMBER_AND_EXPIRATION_UPDATED` | Visa | `4496772882855767` | `1/2030` | `4887005601746919` | `3/2040` |
| `NUMBER_UPDATED` | Visa | `4036161292637501` | `1/2030` | `4649777215746100` | `4/2040` |


To find out how Account Updater works, see the [Account Updater](/guides/after-the-payment/account-updater) guide.

### Testing Refunds

Use the following card numbers to test refunds. Provide the `amount` in cents.

| State | Card Number | Brand |
|  --- | --- | --- |
| `FAILED` | `4000000000000135` | Visa |


To learn more about refunding payments, refer to our [Refunding Payments](/guides/after-the-payment/refunds) guide.

### Testing Bank Account Validations

Use these specific bank codes and account numbers to test bank account validations. Provide the `amount` in cents.

| Bank Account Validation Check | Bank Code | Account Number |
|  --- | --- | --- |
| `VALID` | `122105278` | `0000000016` |
| `INVALID` | `122105278` | `0000000005` |
| `INCONCLUSIVE` | `121000358` | `123123128` |


### Testing ACH Returns

Use the following bank details to trigger the respective ACH Return Code. Provide the `amount` in cents.

For more information about the different ACH Return Codes, see [ACH Direct Debit](/guides/online-payments/bank-payments/ach-direct-debits).

| ACH Return Code | Failure Code | Failure Message | Bank Details |
|  --- | --- | --- | --- |
| R01: Insufficient Funds | `INSUFFICIENT_FUNDS` | The account has insufficient funds for the transaction. The account holder needs to use another method of payment. | Bank Code: `122105278`Account Number: `123120006` |
| R02: Account is Closed | `BANK_ACCOUNT_CLOSED` | The bank account has been closed. Contact the account owner and get another method of payment that's active. | Bank Code: `122105278`Account Number: `123120007` |
| R03: No account on file | `NO_BANK_ACCOUNT_FOUND` | The account number is valid; however, the number doesn't correspond to the account holder or it's not an open account. The account holder needs to reenter their information with the correct details. | Bank Code: `122105278`Account Number: `123120008` |
| R04: Invalid Account Number | `INVALID_BANK_ACCOUNT_NUMBER` | The bank account number is not valid. The account holder needs to use a valid account number. | Bank Code: `122105278`Account Number: `123120009` |


- The `Merchant` › `ready_to_settle_upon` field must be `PROCESSOR_WINDOW` or `RECONCILIATION`. Currently, `SUCCESSFUL_CAPTURE` is not supported.
- The `failure_code` and `failure_message` are populated on the original `Transfer` resource.
- The `tags` of the new return `Transfer` that's created include the ACH Return Code and `failure_message` associated with the return.


## Testing Payouts

### Testing Push-to-Card

Use the following card numbers to test Push-to-Card payout responses. Provide the `amount` in cents.

| Scenario | Card number | Brand | Region | Country | Code |
|  --- | --- | --- | --- | --- | --- |
| Successful push to a Visa (debit card) | `4895142232120006` | Visa | CA | USA | N/A |
| Successful push to a Visa (credit card) | `4957030420210454` | Visa | CA | USA | N/A |
| Successful push to a Mastercard (debit card) | `5123280115058611` | Mastercard | CA | USA | N/A |
| Invalid account number | `4957030420210504` | Visa | CA | USA | `INVALID_INSTRUMENT` |
| Exceeds approval amount limit | `4957030420210488` | Visa | CA | USA | `EXCEEDS_ISSUER_AMOUNT_LIMIT` |
| Exceeds withdrawal frequency limit | `4957030420210496` | Visa | CA | USA | `EXCEEDS_ISSUER_COUNT_LIMIT` |
| Refer to card issuer | `4895070000007685` | Visa | CA | USA | `CALL_ISSUER` |
| Do not honor | `4895070000006687` | Visa | CA | USA | `DECLINE` |
| Lost card, pick up (fraud account) | `4895070000005671` | Visa | CA | USA | `LOST_OR_STOLEN_CARD` |
| Suspected fraud | `4895070000004674` | Visa | CA | USA | `SUSPECTED_FRAUD` |
| Transaction does not fulfill AML requirement | `4895070000003551` | Visa | CA | USA | `COMPLIANCE_VIOLATION` |


### Testing Push-to-Card Verifications

Use the following card numbers to test Push-to-Card Verification responses. Provide the `amount` in cents.

| Scenario | Card number | Brand | fast_funds_indicator | push_funds_block_indicator | card_type_code | card_issuer_country_code |
|  --- | --- | --- | --- | --- | --- | --- |
| Issuer does participate in fast funds for only domestic transactions | `4815070000000018` | Visa | `D` | `C` | `D` | `840` |
| Issuer does participate in fast funds for all transactions | `4835070000000014` | Visa | `B` | `C` | `D` | `840` |
| Issuer does not participate in fast funds | `4855070000000035` | Visa | `N` | `C` | `D` | `840` |
| Issuer does participate in fast funds and Push-to-Card | `4895047700003297` | Visa | `B` | `B` | `C` | `840` |