> ## Documentation Index
> Fetch the complete documentation index at: https://docs.y.uno/llms.txt
> Use this file to discover all available pages before exploring further.

# Yuno Testing Gateway

To test Card payments in general, Yuno provides the **Yuno Test Payment Gateway**. It works as a connection, however, it is available **only** in the sandbox environment.

## Connecting with Yuno

No API keys or credentials are required to connect the Yuno Test Payment Gateway.

## General information

| Property          | Details                                                                                                                                                                  |
| :---------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Countries**     | Available for all countries.                                                                                                                                             |
| **Currencies**    | All currencies are available.                                                                                                                                            |
| **Type of cards** | Credit, Debit, and Prepaid.                                                                                                                                              |
| **Test data**     | See [card information](/docs/direct-integration-use-cases/yuno-testing-gateway#4-4-provide-the-payment-method-information) for test card numbers and expected responses. |

## Integration configuration

To connect the Yuno Test Payment Gateway from the dashboard:

1. Log in to [dashboard.y.uno](http://dashboard.y.uno/).
2. Go to **Connections** and select **Yuno Test Payment Gateway**.
3. Click **Connect**.
4. Enter a **Name** for the connection.
5. Click **Connect**.

## Production environment

This connection is available for sandbox testing only and cannot be used in production.

## Set up the Yuno Test Payment Gateway

1. Complete the Test Payment Gateway [Integration configuration](/docs/yuno-testing-gateway#integration-configuration).
2. After establishing the connection, you must designate the Yuno Test Payment Gateway as your card payment provider in your routing section. Access [Routing](https://dashboard.y.uno/routing) on the Yuno Dashboard, select **Not published**, find the **Card** option, and click **Set Up**.

<Frame>
  <img src="https://mintcdn.com/yuno-3979e326/OXm4Cjavq6YgX3ks/images/reference/yuno-testing-gateway/image1.png?fit=max&auto=format&n=OXm4Cjavq6YgX3ks&q=85&s=f82fa23ee107f5cdc848cb390e38f320" width="407" height="159" data-path="images/reference/yuno-testing-gateway/image1.png" />
</Frame>

3. Create a new route for **Card**. If you are unsure how to create it, check the [Configure dynamic routing](/docs/routing#configuring-the-dynamic-routing).
   1. On the Routing dashboard, add conditions to trigger the card payment. You can use card brand or country as trigger conditions, for example.
   2. For the created condition, add the Yuno Test Payment Gateway.
   3. For the **All other payments** options, select the **Cancel** option. The below image presents an example of a routing configuration where the card brand condition was used, accepting payments with Visa and Mastercard brands.

<Frame>
  <img src="https://mintcdn.com/yuno-3979e326/OXm4Cjavq6YgX3ks/images/reference/yuno-testing-gateway/image2.png?fit=max&auto=format&n=OXm4Cjavq6YgX3ks&q=85&s=203881979671e40e0150d0555fd3e651" width="853" height="514" data-path="images/reference/yuno-testing-gateway/image2.png" />
</Frame>

4. Now you need to make the cards available for testing. Access [Checkout builder](https://dashboard.y.uno/checkout-builder) on the Yuno Dashboard.  Activate the toggle button for **Card** and publish the checkout using the **Publish** button.

<Frame>
  <img src="https://mintcdn.com/yuno-3979e326/OXm4Cjavq6YgX3ks/images/reference/yuno-testing-gateway/image3.png?fit=max&auto=format&n=OXm4Cjavq6YgX3ks&q=85&s=674704a6f845e981d2ff9058512c5e2d" width="447" height="239" data-path="images/reference/yuno-testing-gateway/image3.png" />
</Frame>

Use the [Create payment](/docs/create-payment-basic) guide to learn how to test card payments.

## Test card payments with Yuno Testing Gateway

On this page, you will find a walk-through guide on creating a card payment using the [Yuno Testing Gateway](/docs/yuno-testing-gateway).

[Yuno Testing Gateway](/docs/yuno-testing-gateway) is a Yuno solution to test card payment in general. It works as a connection. However, it is only available in the sandbox environment.

### Requirements

Before starting following the steps described in this guide, you need to:

* Access your [API credentials](/docs/developers-credentials) on the Yuno Dashboard, which are composed of:
  * `public-api-key`
  * `private-secret-key`
  * `account_id`
* Set up the Yuno Testing Gateway connection on your Yuno Dashboard account. You find a step-by-step guide on connecting it in the [Integration configuration section](/docs/yuno-testing-gateway#integration-configuration).
* [Build a route](/docs/routing#configuring-the-dynamic-routing) for the Yuno Testing Gateway to define it as your card payment provider. You find a step-by-step guide on how to do it in the Set up the [Yuno Testing Gateway section](/docs/yuno-testing-gateway#set-up-the-yuno-test-payment-gateway).
* [Configure the checkout builder](/docs/checkout-builder) to make the Yuno Testing Gateway available.

The create payment process normally requires finishing the two steps listed below.

1. [Create a customer](/reference/create-customer)
2. [Create the payment](/reference/create-payment)

### Create a payment

#### 1. Create a customer

Use the [Create Customer](/reference/create-customer) to register the customer info. You will need to provide personal customer information. In addition, you also need to supply the `merchant_customer_id`, a unique identifier for the customer used on your system.

<Note>
  **Customer Complementary Information**

  When creating a **Customer**, certain information is not required but can improve the user's payment experience if provided. Phone, billing address, and shipping address are examples of non-mandatory data you can provide. If you add optional information, be aware of the required mandatory fields.
</Note>

At the end of the create a customer process, you will receive an `id`, which identifies the user within the Yuno system. Use the `id` to initialize the checkout.

If you are creating a payment for an existing user who was previously created and already has an `id`, you can skip this step.

#### 2. Create a payment

You will create a payment using the [Create Payment endpoint](/reference/create-payment). Below you find a deeper description of how to create a payment.

Provide customer-related information, including the `customer_payer` object that contains the `id` from Step 1.

Certain objects are not mandatory when creating a payment. However, if you provide this information, the user’s payment experience will be enhanced. Be aware of the mandatory fields if you wish to provide this information.

#### 2.1 Choose the capture type

Yuno provides two options for payment capture:

* Single-step: Authorization and capture are performed simultaneously. You only need to create the payment. The authorization and capture are performed automatically. For the single-step option, you need to send the `capture` attribute as `true` on the request.
* Two steps: Authorization and capture are performed at different moments. After creating the payment, you will need to perform an authorization request and a capture request. If you wish to process the payment in Two Steps, send `capture` as `false` and after creating the payment, use the [Authorize Payment](/reference/authorize-payment) and the [Capture Authorization](/reference/capture-authorization) to complete the process.

#### 2.2 Define the payment workflow

When creating the payment, you need to inform which integration from Yuno you are using. When creating a payment, you must inform it through the `workflow` attribute, which can be:

* `CHECKOUT`: If you are using the Yuno SDK to create the payment.
* `DIRECT`: If you are using a back-to-back integration. To use this workflow, you need to be PCI compliant.
* `REDIRECT`: If you are using a back-to-back integration and provider redirection.

Inform the payment method information through the object `payment_method`. Select the payment `type` equal to `CARD` based on the [Payment type list](/reference/payment-type-list). In addition, you need to add the card information on the object `detail.card`.

You can use the payment description or specific card data to get the desired result when you test payment with Yuno Test Payment Gateway. The following sections describe in detail each approach.

<Note>
  **Yuno System Process**

  Yuno system follows a sequential process, initially examining card data and subsequently evaluating the provided description. Consequently, if there is a disparity in the status indicated by the card data and the description for a testing payment, Yuno will prioritize and reflect the status associated with the card data.
</Note>

##### 2.2.1 - Payment Description

To get the desired payment result using the payment description, you need to define the expected result as the description of the payment you create. For example, if you are testing a payment and expect a successful result, the payment description should be "SUCCEEDED". You will find all available options in the [Transaction Codes](/reference/transaction#transaction-codes) section.

##### 2.2.2 - Card detail

Another option to get the expected payment results is to use one of the testing cards provided by Yuno. In the tables below, you find a list of cards and their data details to use when using the Yuno Testing Gateway. The **Transaction Response Code** column defines the returned payment status when you use the corresponding card.

<AccordionGroup>
  <Accordion title="Visa">
    <table>
      <thead>
        <tr>
          <th>Number</th>
          <th>Expiration Date</th>
          <th>Security Code</th>
          <th>Cardholder Name</th>
          <th>Transaction Response Code</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td>4507990000000002</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>SUCCEEDED</td>
        </tr>

        <tr>
          <td>4507990000000010</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INSUFFICIENT\_FUNDS</td>
        </tr>

        <tr>
          <td>4507990000000028</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DECLINED\_BY\_BANK</td>
        </tr>

        <tr>
          <td>4507990000000036</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DO\_NOT\_HONOR</td>
        </tr>

        <tr>
          <td>4507990000000044</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_SECURITY\_CODE</td>
        </tr>

        <tr>
          <td>4507990000000051</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_CARD\_DATA</td>
        </tr>

        <tr>
          <td>4507990000000069</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>REPORTED\_STOLEN</td>
        </tr>

        <tr>
          <td>4507990000000077</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>ERROR</td>
        </tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="Mastercard">
    <table>
      <thead>
        <tr>
          <th>Number</th>
          <th>Expiration Date</th>
          <th>Security Code</th>
          <th>Cardholder Name</th>
          <th>Transaction Response Code</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td>5252440000000002</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>SUCCEEDED</td>
        </tr>

        <tr>
          <td>5252440000000010</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INSUFFICIENT\_FUNDS</td>
        </tr>

        <tr>
          <td>5252440000000028</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DECLINED\_BY\_BANK</td>
        </tr>

        <tr>
          <td>5252440000000036</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DO\_NOT\_HONOR</td>
        </tr>

        <tr>
          <td>5252440000000044</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_SECURITY\_CODE</td>
        </tr>

        <tr>
          <td>5252440000000051</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_CARD\_DATA</td>
        </tr>

        <tr>
          <td>5252440000000069</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>REPORTED\_STOLEN</td>
        </tr>

        <tr>
          <td>5252440000000077</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>ERROR</td>
        </tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="American Express">
    <table>
      <thead>
        <tr>
          <th>Number</th>
          <th>Expiration Date</th>
          <th>Security Code</th>
          <th>Cardholder Name</th>
          <th>Transaction Response Code</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td>370000000000002</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>SUCCEEDED</td>
        </tr>

        <tr>
          <td>370000000000010</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>INSUFFICIENT\_FUNDS</td>
        </tr>

        <tr>
          <td>370000000000028</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>DECLINED\_BY\_BANK</td>
        </tr>

        <tr>
          <td>370000000000036</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>DO\_NOT\_HONOR</td>
        </tr>

        <tr>
          <td>370000000000044</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>INVALID\_SECURITY\_CODE</td>
        </tr>

        <tr>
          <td>370000000000051</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>INVALID\_CARD\_DATA</td>
        </tr>

        <tr>
          <td>370000000000069</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>REPORTED\_STOLEN</td>
        </tr>

        <tr>
          <td>370000000000077</td>
          <td>11/28</td>
          <td>1234</td>
          <td>John Doe</td>
          <td>ERROR</td>
        </tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="Diners">
    <table>
      <thead>
        <tr>
          <th>Number</th>
          <th>Expiration Date</th>
          <th>Security Code</th>
          <th>Cardholder Name</th>
          <th>Transaction Response Code</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td>3647166000000002</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>SUCCEEDED</td>
        </tr>

        <tr>
          <td>3647166000000010</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INSUFFICIENT\_FUNDS</td>
        </tr>

        <tr>
          <td>3647166000000028</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DECLINED\_BY\_BANK</td>
        </tr>

        <tr>
          <td>3647166000000036</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DO\_NOT\_HONOR</td>
        </tr>

        <tr>
          <td>3647166000000044</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_SECURITY\_CODE</td>
        </tr>

        <tr>
          <td>3647166000000051</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_CARD\_DATA</td>
        </tr>

        <tr>
          <td>3647166000000069</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>REPORTED\_STOLEN</td>
        </tr>

        <tr>
          <td>3647166000000077</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>ERROR</td>
        </tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="UATP">
    <table>
      <thead>
        <tr>
          <th>Number</th>
          <th>Expiration Date</th>
          <th>Security Code</th>
          <th>Cardholder Name</th>
          <th>Transaction Response Code</th>
        </tr>
      </thead>

      <tbody>
        <tr>
          <td>1139000000000002</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>SUCCEEDED</td>
        </tr>

        <tr>
          <td>1139000000000010</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INSUFFICIENT\_FUNDS</td>
        </tr>

        <tr>
          <td>1139000000000028</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DECLINED\_BY\_BANK</td>
        </tr>

        <tr>
          <td>1139000000000036</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>DO\_NOT\_HONOR</td>
        </tr>

        <tr>
          <td>1139000000000044</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_SECURITY\_CODE</td>
        </tr>

        <tr>
          <td>1139000000000051</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>INVALID\_CARD\_DATA</td>
        </tr>

        <tr>
          <td>1139000000000069</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>REPORTED\_STOLEN</td>
        </tr>

        <tr>
          <td>1139000000000077</td>
          <td>11/28</td>
          <td>123</td>
          <td>John Doe</td>
          <td>ERROR</td>
        </tr>
      </tbody>
    </table>
  </Accordion>
</AccordionGroup>

#### 2.2.3 - 3DS Test Cards

Use these cards and OTP codes to test 3DS flows through our preview environment using a Netcetera Demo Merchant (NDM) Simulator, which is configured to mock a Directory Server and/or ACS with predefined schemes and testing card numbers. It does not reach external test DS/ACS, it only helps complete 3DS flows for testing purposes.

<AccordionGroup>
  <Accordion title="Amex">
    <table>
      <thead>
        <tr>
          <th>Card Number</th>
          <th>Expected Response 3DS 2.x</th>
          <th>Expected Response 3DS 1.x DS (VERes)</th>
          <th>Expected Response 3DS 1.x ACS (PARes)</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>341502098634895</td><td>AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>348638267931507</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>345695399207589</td><td>NOT\_AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>349531373081938</td><td>APPLICATION\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>342316317472410</td><td>APPLICATION\_CHALLENGE\_SDK\_TRANS\_ID\_INVALID\_FORMAT</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>347899129656655</td><td>AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>345197771649926</td><td>NOT\_AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>372021106351394</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>3734123412340000</td><td>NOT\_AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>3434567891111005</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>3794521996036850</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="Mastercard">
    <table>
      <thead>
        <tr>
          <th>Card Number</th>
          <th>Expected Response 3DS 2.x</th>
          <th>Expected Response 3DS 1.x DS (VERes)</th>
          <th>Expected Response 3DS 1.x ACS (PARes)</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>5333259155643223</td><td>AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>5306889942833340</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>5328720384582224</td><td>NOT\_AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>5267648608924299</td><td>APPLICATION\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>5187434643593002</td><td>APPLICATION\_CHALLENGE\_SDK\_TRANS\_ID\_INVALID\_FORMAT</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>5512459816707531</td><td>AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>5487971631330522</td><td>NOT\_AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>5424184049821670</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>5204240438720050123</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>5250548692069390</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>5641523891636636</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="Visa">
    <table>
      <thead>
        <tr>
          <th>Card Number</th>
          <th>Expected Response 3DS 2.x</th>
          <th>Expected Response 3DS 1.x DS (VERes)</th>
          <th>Expected Response 3DS 1.x ACS (PARes)</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>4556557955726624</td><td>AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>4916994064252017</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>4556104160382032</td><td>NOT\_AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4024007189449340</td><td>APPLICATION\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4024007179872394</td><td>APPLICATION\_CHALLENGE\_SDK\_TRANS\_ID\_INVALID\_FORMAT</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4929251897047956</td><td>AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>4716429323842524</td><td>NOT\_AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4234123412340003</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>4604633194219929</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>4485436455354151</td><td>BROWSER\_FRICTIONLESS\_MISSING\_DS\_TRANS\_ID</td><td /><td /></tr>
        <tr><td>4556962659911995</td><td>APPLICATION\_FRICTIONLESS\_MISSING\_SDK\_TRANS\_ID</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4539837572943550</td><td>BROWSER\_FRICTIONLESS\_MISSING\_DS\_TRANS\_ID</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4024007176265022</td><td>BROWSER\_CHALLENGE\_MISSING\_ACS\_URL</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4716125059847899</td><td>THREE\_RI</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4556362626719763</td><td>PROTOCOL\_ERROR</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>4234123412340000</td><td>AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>4234123412340006</td><td>UNAVAILABLE\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_U</td></tr>
        <tr><td>4234123412340007</td><td>ATTEMPTED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_A</td></tr>
        <tr><td>4234123412340001</td><td>NOT\_ENROLLED</td><td>ENROLLED\_N</td><td /></tr>
        <tr><td>4234123412340002</td><td>NOT ENROLLED (VeRes is error 404 "Card account number not found in card ranges from Directory Server")</td><td>ENROLLED\_N (NOT APPLICABLE)</td><td /></tr>
        <tr><td>4234123412340100</td><td>MISSING\_ROOT</td><td /><td /></tr>
        <tr><td>4234123412340101</td><td>MISSING\_MESSAGE</td><td /><td /></tr>
        <tr><td>4234123412340102</td><td>INVALID\_MESSAGE</td><td /><td /></tr>
        <tr><td>4234123412340103</td><td>MISSING\_VERSION</td><td /><td /></tr>
        <tr><td>4234123412340104</td><td>ILLEGAL\_VERSION</td><td /><td /></tr>
        <tr><td>4234123412340105</td><td>MISSING\_URL</td><td /><td /></tr>
        <tr><td>4234123412340106</td><td>ILLEGAL\_URL</td><td /><td /></tr>
        <tr><td>4234123412340107</td><td>MISSING\_ENROLLED</td><td /><td /></tr>
        <tr><td>4234123412340108</td><td>ILLEGAL\_ENROLLED</td><td /><td /></tr>
        <tr><td>4234123412340109</td><td>ILLEGAL\_EXTENSION</td><td /><td /></tr>
        <tr><td>4234123412340200</td><td>ERROR\_CUSTOM</td><td /><td /></tr>
        <tr><td>4234123412340201</td><td>ERROR\_1</td><td /><td /></tr>
        <tr><td>4234123412340202</td><td>ERROR\_2</td><td /><td /></tr>
        <tr><td>4234123412340203</td><td>ERROR\_3</td><td /><td /></tr>
        <tr><td>4234123412340204</td><td>ERROR\_4</td><td /><td /></tr>
        <tr><td>4234123412340205</td><td>ERROR\_5</td><td /><td /></tr>
        <tr><td>4234123412340206</td><td>ERROR\_6</td><td /><td /></tr>
        <tr><td>4234123412340220</td><td>ERROR\_CUSTOM\_WITH\_DIFFERENT\_MESSAGE\_ID</td><td /><td /></tr>
        <tr><td>4234123412340250</td><td>ERROR\_50</td><td /><td /></tr>
        <tr><td>4234123412340251</td><td>ERROR\_51</td><td /><td /></tr>
        <tr><td>4234123412340252</td><td>ERROR\_52</td><td /><td /></tr>
        <tr><td>4234123412340253</td><td>ERROR\_53</td><td /><td /></tr>
        <tr><td>4234123412340258</td><td>ERROR\_58</td><td /><td /></tr>
        <tr><td>4234123412340298</td><td>ERROR\_98</td><td /><td /></tr>
        <tr><td>4234123412340299</td><td>ERROR\_99</td><td /><td /></tr>
        <tr><td>4234123412340300</td><td>IREQ\_CUSTOM</td><td /><td /></tr>
        <tr><td>4234123412340301</td><td>IREQ\_ENROLLED\_Y</td><td /><td /></tr>
        <tr><td>4234123412340350</td><td>IREQ\_50</td><td /><td /></tr>
        <tr><td>4234123412340351</td><td>IREQ\_51</td><td /><td /></tr>
        <tr><td>4234123412340352</td><td>IREQ\_52</td><td /><td /></tr>
        <tr><td>4234123412340353</td><td>IREQ\_53</td><td /><td /></tr>
        <tr><td>4234123412340354</td><td>IREQ\_54</td><td /><td /></tr>
        <tr><td>4234123412340355</td><td>IREQ\_55</td><td /><td /></tr>
        <tr><td>4234123412340356</td><td>IREQ\_56</td><td /><td /></tr>
        <tr><td>4234123412340358</td><td>IREQ\_58</td><td /><td /></tr>
        <tr><td>4234123412340398</td><td>IREQ\_98</td><td /><td /></tr>
        <tr><td>4234123412340399</td><td>IREQ\_99</td><td /><td /></tr>
        <tr><td>4234123412340400</td><td>UNSUPPORTED\_VERSION</td><td /><td /></tr>
        <tr><td>4234123412340401</td><td>UNRECOGNIZED\_CRITICAL\_EXTENSION</td><td /><td /></tr>
        <tr><td>4234123412340402</td><td>SERVER\_ERROR</td><td /><td /></tr>
        <tr><td>4234123412340403</td><td>TIMEOUT</td><td /><td /></tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="Diners">
    <table>
      <thead>
        <tr>
          <th>Card Number</th>
          <th>Expected Response 3DS 2.x</th>
          <th>Expected Response 3DS 1.x DS (VERes)</th>
          <th>Expected Response 3DS 1.x ACS (PARes)</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>3095000000000000</td><td>AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>3095000000000001</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>3095000000000002</td><td>NOT\_AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>3095000000000005</td><td>AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>3095000000000006</td><td>NOT\_AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="JCB">
    <table>
      <thead>
        <tr>
          <th>Card Number</th>
          <th>Expected Response 3DS 2.x</th>
          <th>Expected Response 3DS 1.x DS (VERes)</th>
          <th>Expected Response 3DS 1.x ACS (PARes)</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>3528000000000000</td><td>AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>3528000000000001</td><td>BROWSER\_CHALLENGE</td><td>ENROLLED\_Y</td><td>TRANSACTION\_CHALLENGE\_OTP</td></tr>
        <tr><td>3528000000000002</td><td>NOT\_AUTHENTICATED\_APPLICATION\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
        <tr><td>3528000000000005</td><td>AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_Y</td></tr>
        <tr><td>3528000000000006</td><td>NOT\_AUTHENTICATED\_BROWSER\_FRICTIONLESS</td><td>ENROLLED\_Y</td><td>TRANSACTION\_STATUS\_N</td></tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="Ranges">
    <table>
      <thead>
        <tr>
          <th>Start range</th>
          <th>End range</th>
          <th>Scheme</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>340000000000000</td><td>349999999999999</td><td>Amex</td></tr>
        <tr><td>370000000000000</td><td>379999999999999</td><td>Amex</td></tr>
        <tr><td>2221000000000000</td><td>2223000000000022</td><td>Mastercard</td></tr>
        <tr><td>2223000000000024</td><td>2720999999999999</td><td>Mastercard</td></tr>
        <tr><td>5100000000000000</td><td>5111111111111117</td><td>Mastercard</td></tr>
        <tr><td>5111111111111119</td><td>5599999999999999</td><td>Mastercard</td></tr>
        <tr><td>4000000000000000</td><td>4111110000000210</td><td>Visa</td></tr>
        <tr><td>4111110000000212</td><td>4234123412339999</td><td>Visa</td></tr>
        <tr><td>4234123412340000</td><td>4234123412349999</td><td>Visa</td></tr>
        <tr><td>4234123412350000</td><td>4999999999999999</td><td>Visa</td></tr>
        <tr><td>3000000000000000</td><td>3099999999999999</td><td>Diners</td></tr>
        <tr><td>3528000000000000</td><td>3589009999999999</td><td>JCB</td></tr>
      </tbody>
    </table>
  </Accordion>

  <Accordion title="3DS2 OTP Codes">
    <table>
      <thead>
        <tr>
          <th>OTP Code</th>
          <th>Transaction Status</th>
          <th>Transaction Status reason</th>
          <th>ECI</th>
          <th>authenticationValue</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>1234</td><td>Y</td><td>/</td><td>01</td><td>JAmi21makAifmwqo2120cjq1AAA=</td></tr>
        <tr><td>1111</td><td>N</td><td>01</td><td>01</td><td>/</td></tr>
        <tr><td>2222</td><td>R</td><td>01</td><td>01</td><td>/</td></tr>
        <tr><td>3333</td><td>U</td><td>01</td><td>01</td><td>/</td></tr>
        <tr><td>4444</td><td>A</td><td>01</td><td>01</td><td>Qm181okmdyqh6yQmYuq1890QAAA=</td></tr>
      </tbody>
    </table>

    The same OTP codes are valid for Visa, Mastercard and Amex scenarios.
  </Accordion>

  <Accordion title="3DS1 OTP Codes">
    <table>
      <thead>
        <tr>
          <th>OTP Code</th>
          <th>Transaction Status</th>
          <th>CAVV</th>
          <th>CAVV Algorithm</th>
          <th>ECI</th>
        </tr>
      </thead>

      <tbody>
        <tr><td>1234</td><td>Y</td><td>VGhpcyBpcyBhIHRlc3QgYmFzZTY=</td><td>7</td><td>05</td></tr>
        <tr><td>1111</td><td>N</td><td>/</td><td>/</td><td>/</td></tr>
      </tbody>
    </table>
  </Accordion>
</AccordionGroup>

#### 5. Check the payment status

After performing the request to the [Create Payment](/reference/create-payment), you can check the payment status by analyzing the `status` and `sub_status` from the response. Check the [Payment Status](/reference/payment) page to see all the options you can receive in response to the payment creation request.

Depending on the processor and payment method, the status may take some time to update. Therefore, you may need to use endpoints to recover the payment status. To perform this task, you can use the [Retrieve Payment by ID](/reference/retrieve-payment-by-id) or [Retrieve Payment by merchant\_order\_id](/reference/retrieve-payment-by-merchant-order-id) endpoints. Another option is to use webhooks to receive notifications after each event. Yuno recommends you use webhooks to monitor asynchronous payments better. Check the [Webhooks](/docs/configure-webhooks) guide to learn how to configure the webhooks solution provided by Yuno.
