# Testing

Test your 3DS integration on the Try environment using the magic values provided below. Send requests and see simulated responses.

### Tokens

If you're creating tokens containing the test card numbers you must delete the token before creating another with the same PAN. You are prevented from creating another token using the same PAN. As an alternative, you can also change the `namespace` used as part of the token creation.

### Google Pay - Test wallet

When initializing the Google Pay SDK set:

* `gateway` to `worldpay`
* `env` to `TEST`
* `gatewayMerchantId` (this is not the Access Merchant ID, it is specific to Google Pay) - request the value from your Account Manager if not known


Your wallet will be replaced with a number of test card wallet items. The main schemes and scenarios below are mapped to items in this test wallet.

The `Test Values (2.2.0)` column and the value under `Google Pay test wallet name:` will match up to the wallet items in the test Google Pay Wallet when set with the values above. The `CB` brand is not supported for testing.

| Google Pay test card selection | Google Pay test wallet landing |
|  --- | --- |
|  |  |


### Liability shift

Liability shift is confirmed on payment authorization. The test card number tables show the different scenarios and the likely liability shift based on the authentication details provided (e.g. authenticationValue, eci, transactionId).

## Test Card Number

Use different card numbers to alter the 3DS authentication outcome.

Please read if receiving error responses:
* You **must** use a test card number from the table below. Using a number not listed here will result in the challenge failing to load.
* Do not mix the old test cardHolderName values used for API v1/v2 with this or you will get unexpected scenario outcomes. Set the `cardHolderName` to any other value e.g. `Bob Smith`


| Test Scenario | Description | Test Values (2.2.0)  | Outcome | Action |
|  --- | --- | --- | --- | --- |
| **3DS Frictionless**
 | Issuer assessment resulted in a frictionless 3DS authentication.
 | - Visa: `4000000000002701`
- Mastercard: `5200000000002235`
- AMEX: `340000000002708`
- Discover/Diners: `6011000000002117`
- JCB: `3338000000000296`
- CB (Visa): `4000000000004970`
- CB (Mastercard): `5200000000004801`

Google Pay test wallet name:`A Frictionless`
 | **3dsAuthenticated** 
- **status:** Y
- **enrolled:** Y
- **ECI:**
  - **05** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **02** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** returned.
- **Liability shift:** yes.

 | Apply the authentication object in the payment request and proceed with authorization.
 |
| **3DS Challenged**
 | The issuer prompts a challenge and the customer responds successfully.
 | - Visa: `4000000000002503`
- Mastercard: `5200000000002151`
- AMEX: `340000000002534`
- Discover/Diners: `6011000000002265`
- JCB: `3338000000000569`
- CB (Visa): `4000000000004855`
- CB (Mastercard): `5200000000004074`

Google Pay test wallet name:`A Challenged`
 | **3dsAuthenticated** 
- **status:** Y
- **enrolled:** Y
- **ECI:**
  - **05** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **02** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** returned.
- **Liability shift:** yes.

 | Apply the authentication object in the payment request and proceed with authorization.
 |
| **3DS Attempts Stand-In**
 | The cardholder is enrolled in 3DS, but the issuer does not support it; the scheme provides a stand-in authentication.
 | - Visa: `4000000000002719`
- Mastercard: `5200000000002482`
- AMEX: `340000000002872`
- Discover/Diners: `6011000000002646`
- JCB: `3338000000000585`
- CB (Visa): `4000000000004111`
- CB (Mastercard): `5200000000004587`

Google Pay test wallet name:`A Attempts`
 | **3dsAttempted** 
- **status:** A
- **enrolled:** Y
- **ECI:**
  - **06** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **01** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** yes.

 | Apply the authentication object in the payment request and proceed with authorization.
 |
| **3DS Rejected**
 | Authentication is rejected by the issuer and no challenge is offered.
 | - Visa: `4000000000002537`
- Mastercard: `5200000000002185`
- AMEX: `340000000002062`
- Discover/Diners: `6011000000002711`
- JCB: `3338000000000734`
- CB (Visa): `4000000000004517`
- CB (Mastercard): `5200000000004405`

Google Pay test wallet name:`A Rejected`
 | **3dsRejected** 
- **status:** R
- **enrolled:** Y
- **ECI:** not returned.
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Do not proceed with payment authorization. Retry 3DS or use another payment method.
 |
| **3DS Not Authenticated**
 | Issuer failed the authentication without offering a challenge.
 | - Visa: `4000000000002925`
- Mastercard: `5200000000002276`
- AMEX: `340000000002096`
- Discover/Diners: `6011000000002364`
- JCB: `3338000000000361`
- CB (Visa): `4000000000004574`
- CB (Mastercard): `5200000000004538`

Google Pay test wallet name:`A Not Auth`
 | **3dsNotAuthenticated** 
- **status:** N
- **enrolled:** Y
- **ECI:**
  - **07** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **00** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Do not proceed with payment authorization. Retry 3DS or use another payment method.
 |
| **3DS Unavailable**
 | The cardholder is enrolled, but authentication is unavailable.
 | - Visa: `4000000000002313`
- Mastercard: `5200000000002268`
- AMEX: `340000000002922`
- Discover/Diners: `6011000000002612`
- JCB: `3338000000000221`
- CB (Visa): `4000000000004160`
- CB (Mastercard): `5200000000004306`

Google Pay test wallet name:`A Unavailable`
 | **3dsUnavailable** 
- **status:** U
- **enrolled:** Y
- **ECI:**
  - **07** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **00** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Proceed as a non-authenticated transaction or retry authentication.
 |
| **3DS Error** (downstream Issuer/ACS)
 | An error occurs while attempting authentication.
 | - Visa: `4000000000002446`
- Mastercard: `5200000000002037`
- AMEX: `340000000002732`
- Discover/Diners: `6011000000002315`
- JCB: `3338000000000650`
- CB (Visa): `4000000000004194`
- CB (Mastercard): `5200000000004058`

Google Pay test wallet name:`A Error`
 | **3dsUnavailable** 
- **status:** U
- **enrolled:** Y
- **ECI:**
  - **07** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **00** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Proceed as a non-authenticated transaction or retry authentication.
 |
| **3DS Timeout**
 | Timeout during the authentication request. **Note:** if authenticationOutage is enabled, the same values may return the outage scenario.
 | - Visa: `4000000000002354`
- Mastercard: `5200000000002326`
- AMEX: `340000000002047`
- Discover/Diners: `6011000000002869`
- JCB: `3338000000000577`
- CB (Visa): `4000000000004277`
- CB (Mastercard): `5200000000004694`

Google Pay test wallet name:`A Timeout`
 | **3dsUnavailable** 
- **status:** U
- **enrolled:** Y
- **ECI:**
  - **07** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **00** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Proceed as a non-authenticated transaction or retry authentication.
 |
| **3DS Challenge Failed**
 | The issuer prompts a challenge and the customer responds with incorrect details, such as an OTP or fingerprint.
 | - Visa: `4000000000002370`
- Mastercard: `5200000000002490`
- AMEX: `340000000002237`
- Discover/Diners: `6011000000002695`
- JCB: `3338000000000874`
- CB (Visa): `4000000000004293`
- CB (Mastercard): `5200000000004041`

Google Pay test wallet name:`A Challenge F`
 | **3dsChallengeFailed** 
- **status:** N
- **ECI:**
  - **07** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **00** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Do not proceed with payment authorization. Retry 3DS or use another payment method.
 |
| **3DS Outage** | Recognized downstream issue or timeout, such as a Visa, Mastercard, or ACS provider outage. Additional setup is required. Speak to your Worldpay Implementation Manager for more information. | - Visa: `4000000000002354`
- Mastercard: `5200000000002326`
- AMEX: `340000000002047`
- Discover/Diners: `6011000000002869`
- JCB: `3338000000000577`
- CB (Visa): `4000000000004277`
- CB (Mastercard): `5200000000004694`

 | **3dsOutage** - **ECI:** not returned.
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Proceed as a non-authenticated transaction and apply the `authenticationOutage` exemption or retry authentication. |
| **3DS Bypass**
 | Bypass the consumer authentication flow via the Cardinal Rules Engine configuration. Returned when 3DS premium is enabled or when there is a timeout connecting to the 3DS directory server.
 | - Visa: `4000000000002560`
- Mastercard: `5200000000002508`
- AMEX: `340000000002948`
- Discover/Diners: `6011000000002976`
- JCB: `3338000000000122`
- CB (Visa): `4000000000004400`
- CB (Mastercard): `5200000000004991`

Google Pay test wallet name:`A Bypass`
 | **3dsBypassed** 
- **status:** Y
- **enrolled:** B
- **ECI:**
  - **07** for Visa/AMEX/Discover/Diners/JCB/Cartes Bancaires (Visa);
  - **00** for Mastercard/Cartes Bancaires (MC).
- **authenticationValue (cavv):** not returned.
- **Liability shift:** no.

 | Proceed as a non-authenticated transaction.
 |
| **3DS Exempted**
 | An authentication based exemption is used and is successful. This is only applicable if you are using SCA exemptions.
 | - Visa: `4000000000002024`
- Mastercard: `5200000000002052`

Google Pay test wallet name:`A Exempted`
 | **3dsExempted**
- **status:** I
- **enrolled:** Y
- **ECI:**
  - **07** for Visa;
  - **06** for Mastercard.

 | Apply the authentication object and the exemption in the payment request and proceed with authorization.
 |
| **3DS Already Authenticated** | A Google Pay encrypted payload that is already authenticated | There is no specific test card value for this. The encrypted Google Pay payload must be `3DS_CRYPTOGRAM`. | **3dsAlreadyAuthenticated** | Proceed to payment using the encrypted payload. |


### Test redirect url

Access 3ds - redirect