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

Mandatory fields when integrating via Yuno:

Yuno Test Payment Gateway doesn't requiere any key.

General information

Countries:

globe-flag
Available in for all countries.

Currencies:

All currencies are available.

Type of cards:

Credit, Debit and Prepaid.

Test data:

Card information to complete payments in test mode.

Integration configuration

Dashboard configuration:

  1. Log in to dashboard.y.uno.
  2. Click Connections and then select Yuno Test Payment Gateway.
  3. Click Connect.
  4. Introduce Name.
  5. Click Connect

Production environment

Specific procedure for a merchant to go live:

This connection is available only for testing procedures.

Set up the Yuno Test Payment Gateway

  1. Complete the Test Payment 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 on the Yuno Dashboard, select Not published, find the Card option, and click Set Up.
  1. Create a new route for Card. If you are unsure how to create it, check the Configure 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.
  1. Now you need to make the cards available for testing. Access Checkout builder on the Yuno Dashboard. Activate the toggle button for Card and publish the checkout using the Publish button.

Use the Create payment 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.

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:

Steps summary

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

  1. Create a customer
  2. Create a checkout session
  3. Create a One-Time Token
  4. Create the payment

Create a payment

1. Create a customer

Use the 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.

📘

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.

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 idyou can skip this step.

2. Create a checkout session

With a customer registered, you can create a checkout session. The checkout is when the customer finalizes their order and proceeds to pay for the products or services they wish to acquire. Therefore, at this stage, you will provide information regarding the payment amount and the location where it is being created.

🚧

Route Conditions Filtering

When creating the route, you can define conditions that work as filters. If you have used country as a condition, check if the provided country when creating the checkout session is on the condition list. Otherwise, the card payment may not be processed by the Yuno Testing Gateway.

Use the Create Checkout Session endpoint. Notice that the customer_id required to perform the request is the id you received when creating the customer in Step 1.

From the request response to the Create Checkout Session endpoint, you will receive the checkout_session information. It will be used to create the one-time token (OTT) and the payment on the next steps.

3. Create a one-time token (OTT)

An OTT is a unique identifier Yuno generates to protect your customer privacy and security. It serves as an identifier for payments detail and prevents sensitive data from being stored on your servers. Therefore, you can use OTTs to make it simple for your customers to repeat payments without re-entering their payment information, making the process more secure and convenient.

You will always get the OTT from the Yuno SDK on your production application. However, to make it easier for you to test the payment creation process, Yuno provides the Create OTT endpoint. You will need to provide the checkout_session received in Step 2 and define the payment type as CARD through the type parameter. In the response, you will receive the one-time-token, which you will use to create the payment.

4. Create a payment

You will create a payment using the Create Payment endpoint. Below you find a deeper description of how to create a payment.

4.1 Provide the required attributes

Provide customer-related information, including the checkout_session from Step 2 through checkout.session and 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.

4.2 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 and the Capture Authorization to complete the process.

4.3 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.

4.4 Provide the payment method information

Inform the payment method information through the object payment_method. Here, you will provide the one-time-token through the attribute token and select the payment type equal to CARD, the one informed in Step 3, based on the 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.

📘

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.

4.4.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 section.

4.4.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.

Visa
Number Expiration Date Security Code Cardholder Name Transaction Response Code
4507990000000002 11/28 123 John Doe SUCCEEDED
4507990000000010 11/28 123 John Doe INSUFFICIENT_FUNDS
4507990000000028 11/28 123 John Doe DECLINED_BY_BANK
4507990000000036 11/28 123 John Doe DO_NOT_HONOR
4507990000000044 11/28 123 John Doe INVALID_SECURITY_CODE
4507990000000051 11/28 123 John Doe INVALID_CARD_DATA
4507990000000069 11/28 123 John Doe REPORTED_STOLEN
4507990000000077 11/28 123 John Doe ERROR
Mastercard
Number Expiration Date Security Code Cardholder Name Transaction Response Code
5252440000000002 11/28 123 John Doe SUCCEEDED
5252440000000010 11/28 123 John Doe INSUFFICIENT_FUNDS
5252440000000028 11/28 123 John Doe DECLINED_BY_BANK
5252440000000036 11/28 123 John Doe DO_NOT_HONOR
5252440000000044 11/28 123 John Doe INVALID_SECURITY_CODE
5252440000000051 11/28 123 John Doe INVALID_CARD_DATA
5252440000000069 11/28 123 John Doe REPORTED_STOLEN
5252440000000077 11/28 123 John Doe ERROR
American Express
Number Expiration Date Security Code Cardholder Name Transaction Response Code
370000000000002 11/28 1234 John Doe SUCCEEDED
370000000000010 11/28 1234 John Doe INSUFFICIENT_FUNDS
370000000000028 11/28 1234 John Doe DECLINED_BY_BANK
370000000000036 11/28 1234 John Doe DO_NOT_HONOR
370000000000044 11/28 1234 John Doe INVALID_SECURITY_CODE
370000000000051 11/28 1234 John Doe INVALID_CARD_DATA
370000000000069 11/28 1234 John Doe REPORTED_STOLEN
370000000000077 11/28 1234 John Doe ERROR
Diners
Number Expiration Date Security Code Cardholder Name Transaction Response Code
3647166000000002 11/28 123 John Doe SUCCEEDED
3647166000000010 11/28 123 John Doe INSUFFICIENT_FUNDS
3647166000000028 11/28 123 John Doe DECLINED_BY_BANK
3647166000000036 11/28 123 John Doe DO_NOT_HONOR
3647166000000044 11/28 123 John Doe INVALID_SECURITY_CODE
3647166000000051 11/28 123 John Doe INVALID_CARD_DATA
3647166000000069 11/28 123 John Doe REPORTED_STOLEN
3647166000000077 11/28 123 John Doe ERROR
UATP
Number Expiration Date Security Code Cardholder Name Transaction Response Code
1139000000000002 11/28 123 John Doe SUCCEEDED
1139000000000010 11/28 123 John Doe INSUFFICIENT_FUNDS
1139000000000028 11/28 123 John Doe DECLINED_BY_BANK
1139000000000036 11/28 123 John Doe DO_NOT_HONOR
1139000000000044 11/28 123 John Doe INVALID_SECURITY_CODE
1139000000000051 11/28 123 John Doe INVALID_CARD_DATA
1139000000000069 11/28 123 John Doe REPORTED_STOLEN
1139000000000077 11/28 123 John Doe ERROR

4.4.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.

Amex
Card Number Expected Response 3DS 2.x Expected Response 3DS 1.x DS (VERes) Expected Response 3DS 1.x ACS (PARes)
341502098634895AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
348638267931507BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
345695399207589NOT_AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
349531373081938APPLICATION_CHALLENGEENROLLED_YTRANSACTION_STATUS_N
342316317472410APPLICATION_CHALLENGE_SDK_TRANS_ID_INVALID_FORMATENROLLED_YTRANSACTION_STATUS_N
347899129656655AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
345197771649926NOT_AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
372021106351394BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
3734123412340000ENROLLED_YTRANSACTION_STATUS_N
3434567891111005ENROLLED_YTRANSACTION_CHALLENGE_OTP
3794521996036850ENROLLED_YTRANSACTION_CHALLENGE_OTP

Mastercard
Card Number Expected Response 3DS 2.x Expected Response 3DS 1.x DS (VERes) Expected Response 3DS 1.x ACS (PARes)
5333259155643223AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
5306889942833340BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
5328720384582224NOT_AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
5267648608924299APPLICATION_CHALLENGEENROLLED_YTRANSACTION_STATUS_N
5187434643593002APPLICATION_CHALLENGE_SDK_TRANS_ID_INVALID_FORMATENROLLED_YTRANSACTION_STATUS_N
5512459816707531AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
5487971631330522NOT_AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
5424184049821670BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
5204240438720050123BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
5250548692069390ENROLLED_YTRANSACTION_CHALLENGE_OTP
5641523891636636ENROLLED_YTRANSACTION_CHALLENGE_OTP
Visa
Card Number Expected Response 3DS 2.x Expected Response 3DS 1.x DS (VERes) Expected Response 3DS 1.x ACS (PARes)
4556557955726624AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
4916994064252017BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
4556104160382032NOT_AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
4024007189449340APPLICATION_CHALLENGEENROLLED_YTRANSACTION_STATUS_N
4024007179872394APPLICATION_CHALLENGE_SDK_TRANS_ID_INVALID_FORMATENROLLED_YTRANSACTION_STATUS_N
4929251897047956AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
4716429323842524NOT_AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
4234123412340003ENROLLED_YTRANSACTION_CHALLENGE_OTP
4604633194219929ENROLLED_YTRANSACTION_CHALLENGE_OTP
4485436455354151BROWSER_FRICTIONLESS_MISSING_DS_TRANS_ID
4556962659911995APPLICATION_FRICTIONLESS_MISSING_SDK_TRANS_IDENROLLED_YTRANSACTION_STATUS_N
4539837572943550BROWSER_FRICTIONLESS_MISSING_DS_TRANS_IDENROLLED_YTRANSACTION_STATUS_N
4024007176265022BROWSER_CHALLENGE_MISSING_ACS_URLENROLLED_YTRANSACTION_STATUS_N
4716125059847899THREE_RIENROLLED_YTRANSACTION_STATUS_N
4556362626719763PROTOCOL_ERRORENROLLED_YTRANSACTION_STATUS_N
4234123412340000ENROLLED_YTRANSACTION_STATUS_Y
4234123412340006ENROLLED_YTRANSACTION_STATUS_U
4234123412340007ENROLLED_YTRANSACTION_STATUS_A
4234123412340001ENROLLED_N
4234123412340002NOT ENROLLED (VeRes is error 404 "Card account number not found in card ranges from Directory Server")ENROLLED_N (NOT APPLICABLE)
4234123412340100MISSING_ROOT
4234123412340101MISSING_MESSAGE
4234123412340102INVALID_MESSAGE
4234123412340103MISSING_VERSION
4234123412340104ILLEGAL_VERSION
4234123412340105MISSING_URL
4234123412340106ILLEGAL_URL
4234123412340107MISSING_ENROLLED
4234123412340108ILLEGAL_ENROLLED
4234123412340109ILLEGAL_EXTENSION
4234123412340200ERROR_CUSTOM
4234123412340201ERROR_1
4234123412340202ERROR_2
4234123412340203ERROR_3
4234123412340204ERROR_4
4234123412340205ERROR_5
4234123412340206ERROR_6
4234123412340220ERROR_CUSTOM_WITH_DIFFERENT_MESSAGE_ID
4234123412340250ERROR_50
4234123412340251ERROR_51
4234123412340252ERROR_52
4234123412340253ERROR_53
4234123412340258ERROR_58
4234123412340298ERROR_98
4234123412340299ERROR_99
4234123412340300IREQ_CUSTOM
4234123412340301IREQ_ENROLLED_Y
4234123412340350IREQ_50
4234123412340351IREQ_51
4234123412340352IREQ_52
4234123412340353IREQ_53
4234123412340354IREQ_54
4234123412340355IREQ_55
4234123412340356IREQ_56
4234123412340358IREQ_58
4234123412340398IREQ_98
4234123412340399IREQ_99
4234123412340400UNSUPPORTED_VERSION
4234123412340401UNRECOGNIZED_CRITICAL_EXTENSION
4234123412340402SERVER_ERROR
4234123412340403TIMEOUT
Diners
Card Number Expected Response 3DS 2.x Expected Response 3DS 1.x DS (VERes) Expected Response 3DS 1.x ACS (PARes)
3095000000000000AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
3095000000000001BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
3095000000000002NOT_AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
3095000000000005AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
3095000000000006NOT_AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
JCB
Card Number Expected Response 3DS 2.x Expected Response 3DS 1.x DS (VERes) Expected Response 3DS 1.x ACS (PARes)
3528000000000000AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
3528000000000001BROWSER_CHALLENGEENROLLED_YTRANSACTION_CHALLENGE_OTP
3528000000000002NOT_AUTHENTICATED_APPLICATION_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
3528000000000005AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_Y
3528000000000006NOT_AUTHENTICATED_BROWSER_FRICTIONLESSENROLLED_YTRANSACTION_STATUS_N
Ranges
Start range End range Scheme
340000000000000349999999999999Amex
370000000000000379999999999999Amex
22210000000000002223000000000022Mastercard
22230000000000242720999999999999Mastercard
51000000000000005111111111111117Mastercard
51111111111111195599999999999999Mastercard
40000000000000004111110000000210Visa
41111100000002124234123412339999Visa
42341234123500004999999999999999Visa
30000000000000003099999999999999Diners
35280000000000003589009999999999JCB
3DS2 OTP Codes
OTP Code Transaction Status Transaction Status reason ECI authenticationValue
1234Y/01JAmi21makAifmwqo2120cjq1AAA=
1111N0101/
2222R0101/
3333U0101/
4444A0101Qm181okmdyqh6yQmYuq1890QAAA=

The same OTP codes are valid for Visa, Mastercard and Amex scenarios.

3DS1 OTP Codes
OTP Code Transaction Status CAVV CAVV Algorithm ECI
1234YVGhpcyBpcyBhIHRlc3QgYmFzZTY=705
1111N///

5. Check the payment status

After performing the request to the Create Payment, you can check the payment status by analyzing the status and sub_status from the response. Check the Payment Status 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 or 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 guide to learn how to configure the webhooks solution provided by Yuno.