{"title":"Standalone authentication","category":"default","creationDate":1669970400,"content":"<p>Use standalone authentication when you want to separate <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#authentication\" target=\"_blank\">authentication<\/a> from <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#authorization\" target=\"_blank\">authorization<\/a>. In the standalone authentication flow, you make a payment request that specifies only authentication. When authentication is successfully completed, you receive the 3D Secure 2 authentication data which you can use to authorize the payment with Adyen or another payment service provider (PSP).<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements, limitations, and preparations.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have built an <a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow\">online payments integration that uses the Advanced flow<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/development-resources\/api-credentials\/roles\/\">API credential roles<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">You need an API credential with an API key and the <strong>Checkout webservice role<\/strong>.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/development-resources\/webhooks\">Webhooks<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Subscribe to <a href=\"\/pt\/development-resources\/webhooks\/webhook-types\/#standard-webhooks\">Standard webhooks<\/a>, and <a href=\"\/pt\/development-resources\/webhooks\/webhook-types\/#webhooks-settings-page\">enable the non-default <strong>AUTHENTICATION<\/strong> event code<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">You cannot trigger standalone authentication with the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/sessions\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/sessions<\/a> endpoint or with <a href=\"\/pt\/online-payments\/build-your-integration\/sessions-flow?platform=Web&amp;integration=Hosted%20Checkout\">Hosted Checkout<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin: <ul><li markdown=\"1\">Set up <a href=\"\/pt\/online-payments\/3d-secure\">3D Secure 2 authentication<\/a> with <a href=\"\/pt\/online-payments\/3d-secure\/native-3ds2\">Native<\/a> or <a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\">Redirect<\/a>.<\/li><li markdown=\"1\">Reach out to our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to enable getting the <code>threeDS2Result<\/code> object in API responses.<\/li> <li markdown=\"1\">Do one of the following to make sure authentication is triggered when you make a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request: <ul><li markdown=\"1\">Set your <a href=\"\/pt\/risk-management\/dynamic-3d-secure\">Dynamic 3D Secure<\/a> rule to <strong>Always<\/strong>, or configure a custom rule to trigger 3D Secure.<\/li><li markdown=\"1\">Set  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-authenticationData-attemptAuthentication\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">authenticationData.attemptAuthentication<\/a> to <strong>always<\/strong> in your payment request.<\/li><\/ul><\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\n<p>With standalone authentication, you perform the 3D Secure 2 authentication independently of the payment authorization flow.<\/p>\n<ol>\n<li>Make a <a href=\"#payment-request-for-authentication\">payment request<\/a>, where you use the <code>authenticationOnly<\/code> parameter to specify that the request is only for performing authentication.<\/li>\n<li>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> response, use the <code>action<\/code> object to determine the authentication flow you need to perform.<\/li>\n<li><a href=\"#perform-authentication-flow\">Perform the required authentication flow<\/a>.<\/li>\n<li><a href=\"#get-the-3d-secure-2-authenticated-data\">Get the 3D Secure 2 authentication data<\/a>.<\/li>\n<li>Use the authentication data to <a href=\"#authorize-the-payment-with-adyen\">authorize the payment with Adyen<\/a>, or with another PSP or acquirer.<\/li>\n<\/ol>\n<p>Keep in mind that authentication data is <a href=\"#authentication-data-expiry\">valid for a different time period for each scheme<\/a>, and you can not use it after it expires.<\/p>\n<h2 id=\"payment-request-for-authentication\">Make a payment request for authentication<\/h2>\n<p>A payment request to perform standalone authentication is similar to making a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request for a payment authorization with your standard <a href=\"\/pt\/online-payments\/3d-secure\">3D Secure 2 integration<\/a>. You add the <code>authenticationOnly<\/code> parameter to specify that you only want to authenticate the shopper.<\/p>\n<p>To perform standalone authentication:<\/p>\n<ol>\n<li>\n<p>In your POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request, specify:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-paymentMethod\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">paymentMethod<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">Object that contains the shopper's card information from your front end or client app. Make sure that you: <ul><li markdown=\"1\">Include the encrypted, or if you are fully <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#pci-compliance\">PCI compliant<\/a>, unecrypted card details.<\/li><li markdown=\"1\">For co-badged cards, set the <code>brand<\/code> to the scheme that you want to authenticate with.<\/li><li> For Visa and JCB transactions, include the <code>holderName<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-channel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">channel<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">Specify the platform that you are using. <br> <strong>Possible values<\/strong>: <ul><li markdown=\"1\"><strong>Web<\/strong><\/li><li markdown=\"1\"><strong>iOS<\/strong><\/li><li markdown=\"1\"><strong>Android<\/strong><\/li><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-authenticationData-authenticationOnly\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">authenticationOnly<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">Set to <strong>true<\/strong> to trigger the standalone authentication flow.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-authenticationData-threeDSRequestData-nativeThreeDS\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">nativeThreeDS<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: if you have a <a href=\"\/pt\/online-payments\/3d-secure\/native-3ds2\">native 3D Secure integration<\/a>. <br> Set to <strong>preferred<\/strong> to indicate that the native flow should be triggered when available.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-browserInfo\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">browserInfo<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">Object that contains information about the shopper's browser. The sub-fields that you must include in browserInfo depend on your integration type: <br> <ul><li markdown=\"1\">For mobile integrations ( <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-channel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">channel<\/a>: <strong>iOS<\/strong>\/<strong>Android<\/strong>): the <code>acceptHeader<\/code>, and <code>userAgent<\/code> sub-fields are required to support cases where the payment is routed to <a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\">3D Secure 2 redirect<\/a>.<\/li><li markdown=\"1\">For web integrations  ( <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-channel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">channel<\/a>: <strong>Web<\/strong>): the full object, except <code>javaScriptEnabled<\/code>, is required.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-returnUrl\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">returnUrl<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">The URL where the shopper is redirected back to after completing authentication to support cases where the payment is routed to the <a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/\">3D Secure 2 redirect flow<\/a>. See our <a href=\"\/pt\/online-payments\/3d-secure\/native-3ds2\">integration guides<\/a> to learn how to set this URL depending on your platform.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-origin\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">origin<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: required for browser-based (<code>channel<\/code>: <strong>Web<\/strong>) transactions. <br> The origin URL of the page where you are rendering the Drop-in\/Component. When this field is not set, or set incorrectly, the 3D Secure 2 action can not be handled correctly. <br> <strong>Format<\/strong>: <ul><li markdown=\"1\">Maximum characters: 80<\/li><li markdown=\"1\">Do not include subdirectories and a trailing slash.<\/li><\/ul> <strong>Example<\/strong>: If you are rendering on <code>https:\/\/your-company.example.com\/checkout\/payment<\/code>, set to <code>https:\/\/your-company.example.com<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-shopperIP\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperIP<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: required for browser-based (<code>channel<\/code>: <strong>Web<\/strong>) transactions. <br> The shopper's IP address. Required for <code>channel<\/code> <strong>web<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-billingAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">billingAddress<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Recommended\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Recommended\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/recommended\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\">The shopper's billing address.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-shopperEmail\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperEmail<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: required for Visa and JCB transactions. <br>The cardholder's email address. If you do not include this, you must send the <code>telephoneNumber<\/code>, or a phone number in the <code>threeDS2RequestData<\/code> object.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-telephoneNumber\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">telephoneNumber<\/a><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td style=\"text-align: left;\"><strong>Use case<\/strong>: required for Visa and JCB transactions if you did not include the <code>shopperEmail<\/code> field. <br>The shopper's phone number. To be more specific, you can use the <code>mobilePhone<\/code>, <code>homePhone<\/code>, and <code>workPhone<\/code> fields in the <code>threeDS2RequestData<\/code> object.  <br> <strong>Format<\/strong>: The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). <br>  <strong>Example<\/strong>: <strong>+4912345678901<\/strong> <div class=\"sc-notice note\"><div> If the value you provide does not follow the guidelines, we drop the value and do not submit it for authentication. <\/div><\/div><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img alt=\"This is the required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for all transactions. <br><img alt=\"This is the conditionally required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for particular setups, or issuers and card schemes. <br><img alt=\"This is the recommended icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/> Recommended for all transactions, but not required.<\/p>\n<div class=\"notices green\">\n<p>We recommend that you do the following to prevent authorization refusals: <ul><li markdown=\"1\">Include <a href=\"#provide-additional-acquirer-related-data\">additional acquirer-related data<\/a> if you plan to authorize the payment with a different acquirer. Refusals often happen when acquirer data mismatches between the authentication and authorization requests.<\/li><li markdown=\"1\">Include <a href=\"\/pt\/online-payments\/3d-secure\/api-reference#3d-secure-2-additional-data-objects\">additional shopper information<\/a> to increase the likelihood of achieving a <a href=\"\/pt\/online-payments\/3d-secure#frictionless-flow\">frictionless flow<\/a>.<\/li><\/ul><\/p>\n<\/div>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example standalone authentication request for web with raw card data'\" :id=\"'payments-request-1092917514'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n    \\&quot;amount\\&quot;:{\\n        \\&quot;currency\\&quot;:\\&quot;EUR\\&quot;,\\n        \\&quot;value\\&quot;:1000\\n    },\\n    \\&quot;reference\\&quot;:\\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n    \\&quot;paymentMethod\\&quot;:{\\n      \\&quot;type\\&quot;:\\&quot;scheme\\&quot;,\\n     \\&quot;number\\&quot;: \\&quot;4917610000000000\\&quot;,\\n     \\&quot;expiryMonth\\&quot;: \\&quot;03\\&quot;,\\n     \\&quot;expiryYear\\&quot;: \\&quot;2030\\&quot;,\\n     \\&quot;cvc\\&quot;: \\&quot;737\\&quot;,\\n     \\&quot;holderName\\&quot;: \\&quot;S. Hopper\\&quot;\\n    },\\n    \\&quot;authenticationData\\&quot;: {\\n        \\&quot;authenticationOnly\\&quot;:true,\\n        \\&quot;threeDSRequestData\\&quot;: {\\n            \\&quot;nativeThreeDS\\&quot;: \\&quot;preferred\\&quot;\\n        }\\n    },\\n    \\&quot;browserInfo\\&quot;:{\\n        \\&quot;userAgent\\&quot;:\\&quot;Mozilla\\\\\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\\\\\/537.36 (KHTML, like Gecko) Chrome\\\\\\\/70.0.3538.110 Safari\\\\\\\/537.36\\&quot;,\\n        \\&quot;acceptHeader\\&quot;:\\&quot;text\\\\\\\/html,application\\\\\\\/xhtml+xml,application\\\\\\\/xml;q=0.9,image\\\\\\\/webp,image\\\\\\\/apng,*\\\\\\\/*;q=0.8\\&quot;,\\n        \\&quot;language\\&quot;:\\&quot;nl-NL\\&quot;,\\n        \\&quot;colorDepth\\&quot;:24,\\n        \\&quot;screenHeight\\&quot;:723,\\n        \\&quot;screenWidth\\&quot;:1536,\\n        \\&quot;timeZoneOffset\\&quot;:0,\\n        \\&quot;javaEnabled\\&quot;: true\\n    },\\n    \\&quot;channel\\&quot;: \\&quot;web\\&quot;,\\n    \\&quot;origin\\&quot; : \\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;,\\n    \\&quot;returnUrl\\&quot; : \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n    \\&quot;merchantAccount\\&quot;:\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v40.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nThreeDSRequestData threeDSRequestData = new ThreeDSRequestData()\\n  .nativeThreeDS(ThreeDSRequestData.NativeThreeDSEnum.PREFERRED);\\n\\nAuthenticationData authenticationData = new AuthenticationData()\\n  .authenticationOnly(true)\\n  .threeDSRequestData(threeDSRequestData);\\n\\nAmount amount = new Amount()\\n  .currency(\\&quot;EUR\\&quot;)\\n  .value(1000L);\\n\\nCardDetails cardDetails = new CardDetails()\\n  .number(\\&quot;4917610000000000\\&quot;)\\n  .cvc(\\&quot;737\\&quot;)\\n  .holderName(\\&quot;S. Hopper\\&quot;)\\n  .expiryMonth(\\&quot;03\\&quot;)\\n  .expiryYear(\\&quot;2030\\&quot;)\\n  .type(CardDetails.TypeEnum.SCHEME);\\n\\nBrowserInfo browserInfo = new BrowserInfo()\\n  .acceptHeader(\\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;)\\n  .screenWidth(1536)\\n  .javaEnabled(true)\\n  .screenHeight(723)\\n  .timeZoneOffset(0)\\n  .userAgent(\\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;)\\n  .language(\\&quot;nl-NL\\&quot;)\\n  .colorDepth(24);\\n\\nPaymentRequest paymentRequest = new PaymentRequest()\\n  .reference(\\&quot;YOUR_ORDER_NUMBER\\&quot;)\\n  .authenticationData(authenticationData)\\n  .amount(amount)\\n  .merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n  .origin(\\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;)\\n  .channel(PaymentRequest.ChannelEnum.WEB)\\n  .paymentMethod(new CheckoutPaymentMethod(cardDetails))\\n  .returnUrl(\\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;)\\n  .browserInfo(browserInfo);\\n\\n\\\/\\\/ Send the request\\nPaymentsApi service = new PaymentsApi(client);\\nPaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.3.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\ThreeDSRequestData;\\nuse Adyen\\\\Model\\\\Checkout\\\\AuthenticationData;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\CheckoutPaymentMethod;\\nuse Adyen\\\\Model\\\\Checkout\\\\BrowserInfo;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$threeDSRequestData = new ThreeDSRequestData();\\n$threeDSRequestData\\n  -&gt;setNativeThreeDS(\\&quot;preferred\\&quot;);\\n\\n$authenticationData = new AuthenticationData();\\n$authenticationData\\n  -&gt;setAuthenticationOnly(true)\\n  -&gt;setThreeDSRequestData($threeDSRequestData);\\n\\n$amount = new Amount();\\n$amount\\n  -&gt;setCurrency(\\&quot;EUR\\&quot;)\\n  -&gt;setValue(1000);\\n\\n$checkoutPaymentMethod = new CheckoutPaymentMethod();\\n$checkoutPaymentMethod\\n  -&gt;setNumber(\\&quot;4917610000000000\\&quot;)\\n  -&gt;setCvc(\\&quot;737\\&quot;)\\n  -&gt;setHolderName(\\&quot;S. Hopper\\&quot;)\\n  -&gt;setExpiryMonth(\\&quot;03\\&quot;)\\n  -&gt;setExpiryYear(\\&quot;2030\\&quot;)\\n  -&gt;setType(\\&quot;scheme\\&quot;);\\n\\n$browserInfo = new BrowserInfo();\\n$browserInfo\\n  -&gt;setAcceptHeader(\\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;)\\n  -&gt;setScreenWidth(1536)\\n  -&gt;setJavaEnabled(true)\\n  -&gt;setScreenHeight(723)\\n  -&gt;setTimeZoneOffset(0)\\n  -&gt;setUserAgent(\\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;)\\n  -&gt;setLanguage(\\&quot;nl-NL\\&quot;)\\n  -&gt;setColorDepth(24);\\n\\n$paymentRequest = new PaymentRequest();\\n$paymentRequest\\n  -&gt;setReference(\\&quot;YOUR_ORDER_NUMBER\\&quot;)\\n  -&gt;setAuthenticationData($authenticationData)\\n  -&gt;setAmount($amount)\\n  -&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n  -&gt;setOrigin(\\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;)\\n  -&gt;setChannel(\\&quot;web\\&quot;)\\n  -&gt;setPaymentMethod($checkoutPaymentMethod)\\n  -&gt;setReturnUrl(\\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;)\\n  -&gt;setBrowserInfo($browserInfo);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Send the request\\n$service = new PaymentsApi($client);\\n$response = $service-&gt;payments($paymentRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .NET API Library v32.2.1\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nThreeDSRequestData threeDSRequestData = new ThreeDSRequestData\\n{\\n  NativeThreeDS = ThreeDSRequestData.NativeThreeDSEnum.Preferred\\n};\\n\\nAuthenticationData authenticationData = new AuthenticationData\\n{\\n  AuthenticationOnly = true,\\n  ThreeDSRequestData = threeDSRequestData\\n};\\n\\nAmount amount = new Amount\\n{\\n  Currency = \\&quot;EUR\\&quot;,\\n  Value = 1000\\n};\\n\\nCardDetails cardDetails = new CardDetails\\n{\\n  Number = \\&quot;4917610000000000\\&quot;,\\n  Cvc = \\&quot;737\\&quot;,\\n  HolderName = \\&quot;S. Hopper\\&quot;,\\n  ExpiryMonth = \\&quot;03\\&quot;,\\n  ExpiryYear = \\&quot;2030\\&quot;,\\n  Type = CardDetails.TypeEnum.Scheme\\n};\\n\\nBrowserInfo browserInfo = new BrowserInfo\\n{\\n  AcceptHeader = \\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;,\\n  ScreenWidth = 1536,\\n  JavaEnabled = true,\\n  ScreenHeight = 723,\\n  TimeZoneOffset = 0,\\n  UserAgent = \\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;,\\n  Language = \\&quot;nl-NL\\&quot;,\\n  ColorDepth = 24\\n};\\n\\nPaymentRequest paymentRequest = new PaymentRequest\\n{\\n  Reference = \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  AuthenticationData = authenticationData,\\n  Amount = amount,\\n  MerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  Origin = \\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;,\\n  Channel = PaymentRequest.ChannelEnum.Web,\\n  PaymentMethod = new CheckoutPaymentMethod(cardDetails),\\n  ReturnUrl = \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n  BrowserInfo = browserInfo\\n};\\n\\n\\\/\\\/ Send the request\\nvar service = new PaymentsService(client);\\nvar response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.0\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst paymentRequest = {\\n  amount: {\\n    currency: \\&quot;EUR\\&quot;,\\n    value: 1000\\n  },\\n  reference: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  paymentMethod: {\\n    type: \\&quot;scheme\\&quot;,\\n    number: \\&quot;4917610000000000\\&quot;,\\n    expiryMonth: \\&quot;03\\&quot;,\\n    expiryYear: \\&quot;2030\\&quot;,\\n    cvc: \\&quot;737\\&quot;,\\n    holderName: \\&quot;S. Hopper\\&quot;\\n  },\\n  authenticationData: {\\n    authenticationOnly: true,\\n    threeDSRequestData: {\\n      nativeThreeDS: \\&quot;preferred\\&quot;\\n    }\\n  },\\n  browserInfo: {\\n    userAgent: \\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;,\\n    acceptHeader: \\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;,\\n    language: \\&quot;nl-NL\\&quot;,\\n    colorDepth: 24,\\n    screenHeight: 723,\\n    screenWidth: 1536,\\n    timeZoneOffset: 0,\\n    javaEnabled: true\\n  },\\n  channel: \\&quot;web\\&quot;,\\n  origin: \\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;,\\n  returnUrl: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;\\n}\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.1.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/checkout\\&quot;\\n)\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\nthreeDSRequestData := checkout.ThreeDSRequestData{\\n  NativeThreeDS: common.PtrString(\\&quot;preferred\\&quot;),\\n}\\n\\nauthenticationData := checkout.AuthenticationData{\\n  AuthenticationOnly: common.PtrBool(true),\\n  ThreeDSRequestData: &amp;threeDSRequestData,\\n}\\n\\namount := checkout.Amount{\\n  Currency: \\&quot;EUR\\&quot;,\\n  Value: 1000,\\n}\\n\\ncardDetails := checkout.CardDetails{\\n  Number: common.PtrString(\\&quot;4917610000000000\\&quot;),\\n  Cvc: common.PtrString(\\&quot;737\\&quot;),\\n  HolderName: common.PtrString(\\&quot;S. Hopper\\&quot;),\\n  ExpiryMonth: common.PtrString(\\&quot;03\\&quot;),\\n  ExpiryYear: common.PtrString(\\&quot;2030\\&quot;),\\n  Type: common.PtrString(\\&quot;scheme\\&quot;),\\n}\\n\\nbrowserInfo := checkout.BrowserInfo{\\n  AcceptHeader: \\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;,\\n  ScreenWidth: 1536,\\n  JavaEnabled: true,\\n  ScreenHeight: 723,\\n  TimeZoneOffset: 0,\\n  UserAgent: \\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;,\\n  Language: \\&quot;nl-NL\\&quot;,\\n  ColorDepth: 24,\\n}\\n\\npaymentRequest := checkout.PaymentRequest{\\n  Reference: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  AuthenticationData: &amp;authenticationData,\\n  Amount: amount,\\n  MerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  Origin: common.PtrString(\\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;),\\n  Channel: common.PtrString(\\&quot;web\\&quot;),\\n  PaymentMethod: checkout.CardDetailsAsCheckoutPaymentMethod(&amp;cardDetails),\\n  ReturnUrl: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n  BrowserInfo: &amp;browserInfo,\\n}\\n\\n\\\/\\\/ Send the request\\nservice := client.Checkout()\\nreq := service.PaymentsApi.PaymentsInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentRequest(paymentRequest)\\nres, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v13.6.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;,\\n    \\&quot;value\\&quot;: 1000\\n  },\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  \\&quot;paymentMethod\\&quot;: {\\n    \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n    \\&quot;number\\&quot;: \\&quot;4917610000000000\\&quot;,\\n    \\&quot;expiryMonth\\&quot;: \\&quot;03\\&quot;,\\n    \\&quot;expiryYear\\&quot;: \\&quot;2030\\&quot;,\\n    \\&quot;cvc\\&quot;: \\&quot;737\\&quot;,\\n    \\&quot;holderName\\&quot;: \\&quot;S. Hopper\\&quot;\\n  },\\n  \\&quot;authenticationData\\&quot;: {\\n    \\&quot;authenticationOnly\\&quot;: True,\\n    \\&quot;threeDSRequestData\\&quot;: {\\n      \\&quot;nativeThreeDS\\&quot;: \\&quot;preferred\\&quot;\\n    }\\n  },\\n  \\&quot;browserInfo\\&quot;: {\\n    \\&quot;userAgent\\&quot;: \\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;,\\n    \\&quot;acceptHeader\\&quot;: \\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;,\\n    \\&quot;language\\&quot;: \\&quot;nl-NL\\&quot;,\\n    \\&quot;colorDepth\\&quot;: 24,\\n    \\&quot;screenHeight\\&quot;: 723,\\n    \\&quot;screenWidth\\&quot;: 1536,\\n    \\&quot;timeZoneOffset\\&quot;: 0,\\n    \\&quot;javaEnabled\\&quot;: True\\n  },\\n  \\&quot;channel\\&quot;: \\&quot;web\\&quot;,\\n  \\&quot;origin\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;,\\n  \\&quot;returnUrl\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.payments(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v11.0.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :amount =&gt; {\\n    :currency =&gt; 'EUR',\\n    :value =&gt; 1000\\n  },\\n  :reference =&gt; 'YOUR_ORDER_NUMBER',\\n  :paymentMethod =&gt; {\\n    :type =&gt; 'scheme',\\n    :number =&gt; '4917610000000000',\\n    :expiryMonth =&gt; '03',\\n    :expiryYear =&gt; '2030',\\n    :cvc =&gt; '737',\\n    :holderName =&gt; 'S. Hopper'\\n  },\\n  :authenticationData =&gt; {\\n    :authenticationOnly =&gt; true,\\n    :threeDSRequestData =&gt; {\\n      :nativeThreeDS =&gt; 'preferred'\\n    }\\n  },\\n  :browserInfo =&gt; {\\n    :userAgent =&gt; 'Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36',\\n    :acceptHeader =&gt; 'text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8',\\n    :language =&gt; 'nl-NL',\\n    :colorDepth =&gt; 24,\\n    :screenHeight =&gt; 723,\\n    :screenWidth =&gt; 1536,\\n    :timeZoneOffset =&gt; 0,\\n    :javaEnabled =&gt; true\\n  },\\n  :channel =&gt; 'web',\\n  :origin =&gt; 'https:\\\/\\\/your-company.example.com\\\/',\\n  :returnUrl =&gt; 'https:\\\/\\\/your-company.example.com\\\/checkout\\\/',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT'\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.payments(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.0\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst threeDSRequestData: Types.checkout.ThreeDSRequestData = {\\n  nativeThreeDS: Types.checkout.ThreeDSRequestData.NativeThreeDSEnum.Preferred\\n};\\n\\nconst authenticationData: Types.checkout.AuthenticationData = {\\n  authenticationOnly: true,\\n  threeDSRequestData: threeDSRequestData\\n};\\n\\nconst amount: Types.checkout.Amount = {\\n  currency: \\&quot;EUR\\&quot;,\\n  value: 1000\\n};\\n\\nconst cardDetails: Types.checkout.CardDetails = {\\n  number: \\&quot;4917610000000000\\&quot;,\\n  cvc: \\&quot;737\\&quot;,\\n  holderName: \\&quot;S. Hopper\\&quot;,\\n  expiryMonth: \\&quot;03\\&quot;,\\n  expiryYear: \\&quot;2030\\&quot;,\\n  type: Types.checkout.CardDetails.TypeEnum.Scheme\\n};\\n\\nconst browserInfo: Types.checkout.BrowserInfo = {\\n  acceptHeader: \\&quot;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,image\\\/webp,image\\\/apng,*\\\/*;q=0.8\\&quot;,\\n  screenWidth: 1536,\\n  javaEnabled: true,\\n  screenHeight: 723,\\n  timeZoneOffset: 0,\\n  userAgent: \\&quot;Mozilla\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\/537.36 (KHTML, like Gecko) Chrome\\\/70.0.3538.110 Safari\\\/537.36\\&quot;,\\n  language: \\&quot;nl-NL\\&quot;,\\n  colorDepth: 24\\n};\\n\\nconst paymentRequest: Types.checkout.PaymentRequest = {\\n  reference: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  authenticationData: authenticationData,\\n  amount: amount,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  origin: \\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;,\\n  channel: Types.checkout.PaymentRequest.ChannelEnum.Web,\\n  paymentMethod: cardDetails,\\n  returnUrl: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n  browserInfo: browserInfo\\n};\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> response, check the <code>resultCode<\/code>:<\/p>\n<ul>\n<li>If the result code is <a href=\"#auth-not-required-reasons\">\n  <code>AuthenticationNotRequired<\/code>\n<\/a>, You can proceed to authorize the payment with Adyen by making a standard  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request, or with another PSP or acquirer.<\/li>\n<li>\n<p>If you get a 3D Secure 2 authentication result code, <a href=\"#perform-authentication-flow\">proceed to perform the authentication<\/a>.<\/p>\n<table>\n<thead>\n<tr>\n<th><div style=\"width:175px\">resultCode<\/div><\/th>\n<th><div style=\"width:200px\">Description<\/div><\/th>\n<th><div style=\"width:200px\">Action to take<\/div><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>ChallengeShopper<\/strong><\/td>\n<td>The issuer requires authentication from the shopper, for example through facial recognition or entering a code received on their phone.<\/td>\n<td>Initiate the <a href=\"\/pt\/online-payments\/3d-secure#challenge-flow\">challenge flow<\/a> to present the challenge to the shopper, and submit the result to Adyen.<\/td>\n<\/tr>\n<tr>\n<td><strong>IdentifyShopper<\/strong><\/td>\n<td>The issuer requires authentication from the device the shopper is using.<\/td>\n<td>Initiate the <a href=\"\/pt\/online-payments\/3d-secure#frictionless-flow\">frictionless flow<\/a> to get the shopper's device fingerprint, and submit the result to Adyen.<\/td>\n<\/tr>\n<tr>\n<td><strong>RedirectShopper<\/strong><\/td>\n<td>The issuer requires the shopper to provide authentication in an an external web page or app.<\/td>\n<td><a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\/\">Redirect the shopper<\/a> to complete the authentication.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#provide-additional-acquirer-related-data\">\n                                    <h3 class=\"adl-accordion__title\">Provide additional acquirer-related data<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>If you authorize the payment that you authenticate with Adyen with a different PSP, it is recommended to include additional acquirer-related data. Get the following details from your acquirer. These details are part of the 3D Secure 2 enrollment process between your acquirer and card schemes.<\/p>\n<p>If you are unable to get these details from your acquirer, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/p>\n<table>\n<thead>\n<tr>\n<th>Acquirer data<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>acquirerBIN<\/code><\/td>\n<td>The acquiring <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#bank-identification-number-bin\" target=\"_blank\">BIN<\/a> enrolled for 3D Secure 2. This string should match the value that you will use in the authorization. <br> If you are building a test integration, you can use the string <strong>123456<\/strong> in place of an actual <code>acquirerBIN<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>acquirerMerchantID<\/code><\/td>\n<td>The authorization merchant ID enrolled for 3D Secure 2. This string should match the value that you will use in the authorization. <br>  If you are building a test integration, you can use the string <strong>123456<\/strong> in place of an actual <code>acquirerMerchantID<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>mcc<\/code><\/td>\n<td>The four-digit <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#zero-value-auth\" target=\"_blank\">Merchant Category Code<\/a> registered with the scheme for the same <code>acquirerMerchantID<\/code> sent in the request.<\/td>\n<\/tr>\n<tr>\n<td><code>merchantName<\/code><\/td>\n<td>The merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization. <br> <strong>Format<\/strong>: Maximum 40 characters.<\/td>\n<\/tr>\n<tr>\n<td><code>threeDSRequestorID<\/code><\/td>\n<td>Required for Visa and Mastercard. The unique requestor ID assigned by the Directory Server when you enroll for 3D Secure 2.<\/td>\n<\/tr>\n<tr>\n<td><code>threeDSRequestorName<\/code><\/td>\n<td>Required for Visa and Mastercard. The unique requestor name assigned by the Directory Server when you enrol for 3D Secure 2.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Make a POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request containing the parameters required for the standalone authentication, together with the acquirer data listed above.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example standalone authentication request with additional acquirer-related data'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n    \\&quot;amount\\&quot;:{\\n        \\&quot;currency\\&quot;:\\&quot;EUR\\&quot;,\\n        \\&quot;value\\&quot;:1000\\n    },\\n    \\&quot;reference\\&quot;:\\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n    \\&quot;paymentMethod\\&quot;:{\\n        \\&quot;type\\&quot;:\\&quot;scheme\\&quot;,\\n        \\&quot;encryptedCardNumber\\&quot;:\\&quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\&quot;,\\n        \\&quot;encryptedExpiryMonth\\&quot;:\\&quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\&quot;,\\n        \\&quot;encryptedExpiryYear\\&quot;:\\&quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\&quot;,\\n        \\&quot;encryptedSecurityCode\\&quot;:\\&quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\&quot;\\n    },\\n    \\&quot;authenticationData\\&quot;: {\\n        \\&quot;authenticationOnly\\&quot;:true,\\n        \\&quot;threeDSRequestData\\&quot;: {\\n            \\&quot;nativeThreeDS\\&quot;: \\&quot;preferred\\&quot;\\n        }\\n    },\\n    \\&quot;threeDS2RequestData\\&quot;: {\\n        \\&quot;acquirerBIN\\&quot;: \\&quot;YOUR_ACQUIRER_BIN\\&quot;,\\n        \\&quot;acquirerMerchantID\\&quot;: \\&quot;YOUR_ACQUIRER_MERCHANT_ID\\&quot;,\\n        \\&quot;mcc\\&quot;: \\&quot;YOUR_MCC\\&quot;,\\n        \\&quot;threeDSRequestorID\\&quot;: \\&quot;YOUR_3DS_REQUESTOR_ID\\&quot;,\\n        \\&quot;threeDSRequestorName\\&quot;: \\&quot;YOUR_3DS_REQUESTOR_NAME\\&quot;\\n    },\\n    \\&quot;browserInfo\\&quot;:{\\n        \\&quot;userAgent\\&quot;:\\&quot;Mozilla\\\\\\\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\\\\\\\/537.36 (KHTML, like Gecko) Chrome\\\\\\\/70.0.3538.110 Safari\\\\\\\/537.36\\&quot;,\\n        \\&quot;acceptHeader\\&quot;:\\&quot;text\\\\\\\/html,application\\\\\\\/xhtml+xml,application\\\\\\\/xml;q=0.9,image\\\\\\\/webp,image\\\\\\\/apng,*\\\\\\\/*;q=0.8\\&quot;,\\n        \\&quot;language\\&quot;:\\&quot;nl-NL\\&quot;,\\n        \\&quot;colorDepth\\&quot;:24,\\n        \\&quot;screenHeight\\&quot;:723,\\n        \\&quot;screenWidth\\&quot;:1536,\\n        \\&quot;timeZoneOffset\\&quot;:0,\\n        \\&quot;javaEnabled\\&quot;: true,\\n        \\&quot;acceptHeader\\&quot;: \\&quot;text\\\/html\\&quot; \\\/\\\/Retrieve this from your sever.\\n    },\\n    \\&quot;origin\\&quot; : \\&quot;https:\\\/\\\/your-company.example.com\\\/\\&quot;,\\n    \\&quot;returnUrl\\&quot; : \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout\\\/\\&quot;,\\n    \\&quot;merchantAccount\\&quot;:\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h2 id=\"perform-authentication-flow\">Perform the authentication<\/h2>\n<ol>\n<li>\n<p>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> response, you receive <code>action.type<\/code>: <strong>ThreeDS2<\/strong>. Use the <code>action.subtype<\/code> object to determine your next steps. The way to handle the <code>action<\/code> object for the standalone authentication flow is the same as handling it for your <a href=\"\/pt\/online-payments\/3d-secure\/native-3ds2\">native<\/a> or <a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\">redirect<\/a> 3D Secure implementation.<\/p>\n<\/li>\n<li>\n<p>When authentication is completed, submit the authentication result in a  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> request, including  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-authenticationData-authenticationOnly\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">authenticationData.authenticationOnly<\/a>: <strong>true<\/strong>.<br \/>\nBelow is an example  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> request:<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'\/payments\/details request'\" :id=\"'payments-details-request-8198578881'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments\\\/details \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n    \\&quot;details\\&quot;: {\\n        \\&quot;threeds2.fingerprint\\&quot;: \\&quot;eyJ0cmFuc1N0YXR1cyI6IlkifQ==\\&quot;\\n    },\\n    \\&quot;authenticationData\\&quot;: {\\n        \\&quot;authenticationOnly\\&quot;: true\\n    }\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v40.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\n\\\/\\\/ Send the request\\nPaymentsApi service = new PaymentsApi(client);\\nPaymentDetailsResponse response = service.paymentsDetails(paymentDetailsRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.3.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Send the request\\n$service = new PaymentsApi($client);\\n$response = $service-&gt;paymentsDetails($paymentDetailsRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .NET API Library v32.2.1\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\n\\\/\\\/ Send the request\\nvar service = new PaymentsService(client);\\nvar response = service.PaymentsDetails(paymentDetailsRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.0\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst paymentDetailsRequest = {\\n  details: {\\n    \\&quot;threeds2.fingerprint\\&quot;: \\&quot;eyJ0cmFuc1N0YXR1cyI6IlkifQ==\\&quot;\\n  },\\n  authenticationData: {\\n    authenticationOnly: true\\n  }\\n}\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.paymentsDetails(paymentDetailsRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.1.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/checkout\\&quot;\\n)\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\n\\\/\\\/ Send the request\\nservice := client.Checkout()\\nreq := service.PaymentsApi.PaymentsDetailsInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentDetailsRequest(paymentDetailsRequest)\\nres, httpRes, err := service.PaymentsApi.PaymentsDetails(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v13.6.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;details\\&quot;: {\\n    \\&quot;threeds2.fingerprint\\&quot;: \\&quot;eyJ0cmFuc1N0YXR1cyI6IlkifQ==\\&quot;\\n  },\\n  \\&quot;authenticationData\\&quot;: {\\n    \\&quot;authenticationOnly\\&quot;: True\\n  }\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.payments_details(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v11.0.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :details =&gt; {\\n    :threeds2.fingerprint =&gt; 'eyJ0cmFuc1N0YXR1cyI6IlkifQ=='\\n  },\\n  :authenticationData =&gt; {\\n    :authenticationOnly =&gt; true\\n  }\\n}\\n\\n# Send the request\\nresult = adyen.checkout.payments_api.payments_details(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.0\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.paymentsDetails(paymentDetailsRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>In the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response, check the following fields:<\/p>\n<ul>\n<li><code>resultCode<\/code>: If the authentication process has finished, you receive <strong>AuthenticationFinished<\/strong>. If an error occurs during the authentication flow, and the authentication process is not completed, you receive <strong>Refused<\/strong>.<\/li>\n<li><code>threeDS2Result<\/code>: The object that contains the authentication data that you need to <a href=\"#authorize-the-payment-with-adyen\">authorize the payment<\/a> following a successful authentication.<\/li>\n<li><code>threeDS2Result.transStatus<\/code>: Indicates the result of the authentication. The value <strong>Y<\/strong> means that authentication is successful.\n<div class=\"notices green\">\n<p>If the authentication went through the <a href=\"\/pt\/online-payments\/3d-secure\/redirect-3ds2\">redirect flow<\/a>, the result of the authentication is in  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-additionalData-ResponseAdditionalDataCommon-threeDAuthenticatedResponse\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">additionalData.threeDAuthenticatedResponse<\/a>.<\/p>\n<\/div><\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example \/payments\/details response after authentication is completed'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"pspReference\\\": \\\"V4HZ4RBFJGXXGN82\\\",\\n  \\\"resultCode\\\": \\\"AuthenticationFinished\\\",\\n  \\\"merchantReference\\\": \\\"YOUR_ORDER_NUMBER\\\",\\n  \\\"threeDS2Result\\\": {\\n    \\\"authenticationValue\\\": \\\"QURZRU4gM0RTMiBURVNUIENBVlY=\\\",\\n    \\\"dsTransID\\\": \\\"a3b86754-444d-46ca-95a2-ada351d3f42c\\\",\\n    \\\"eci\\\": \\\"05\\\",\\n    \\\"messageVersion\\\": \\\"2.2.0\\\",\\n    \\\"threeDSServerTransID\\\": \\\"6edcc246-23ee-4e94-ac5d-8ae620bea7d9\\\",\\n    \\\"transStatus\\\": \\\"Y\\\",\\n    \\\"{hint:Only applies to Cartes Bancaires.}challengeCancel{\\\/hint}\\\": \\\"00\\\",\\n    \\\"{hint: Only applies to Cartes Bancaires.}threeDSRequestorChallengeInd{\\\/hint}\\\": \\\"01\\\",\\n    \\\"{hint: Only applies to Cartes Bancaires.}exemptionIndicator{\\\/hint}\\\": \\\"lowValue\\\",\\n    \\\"{hint: Only applies to Cartes Bancaires.}riskScore{\\\/hint}\\\": \\\"95\\\",\\n    \\\"{hint: Only applies to Cartes Bancaires.}transStatusReason{\\\/hint}\\\": \\\"02\\\",\\n    \\\"{hint: Only applies to Cartes Bancaires.}cavvAlgorithm{\\\/hint}\\\": \\\"ABC\\\"\\n  },\\n  \\\"threeDSPaymentData\\\": \\\"Ab02b4c0!BQABAgA...==\\\",\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2 id=\"get-the-3d-secure-2-authenticated-data\">Get the 3D Secure 2 authentication data<\/h2>\n<p>After a successful authentication, you get a <code>resultCode<\/code> with the value of <strong>AuthenticationFinished<\/strong> in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response. The response contains  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">threeDS2Result<\/a> object, that contains the authentication data produced by a Merchant Plug-in (MPI).<\/p>\n<p>Some schemes do not provide all fields; the <strong>Applies to<\/strong> column shows which schemes provide each field.<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Applies to<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-authenticationValue\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">authenticationValue<\/a><\/td>\n<td>All schemes<\/td>\n<td>The value for the 3D Secure 2 authentication session. The returned value is a Base64-encoded 20- or 21-byte array. <br><strong>Example<\/strong>: <code>AQIDBAUGBwgJCgsMDQ4PEBESExQ=<\/code><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-eci\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">eci<\/a><\/td>\n<td>All schemes<\/td>\n<td>The Electronic Commerce Indicator returned from the schemes for the 3D Secure 2 payment session. <br><strong>Example<\/strong>: <code>02<\/code><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-threeDSServerTransID\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">threeDSServerTransID<\/a><\/td>\n<td>All schemes<\/td>\n<td>The unique identifier assigned by the 3D Secure 2 server.<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-transStatus\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">transStatus<\/a><\/td>\n<td>All schemes<\/td>\n<td>Indicates whether a transaction was authenticated, or whether additional verification is required. Possible values: <ul><li markdown=\"1\"><strong>Y<\/strong>: Authentication \/ account verification successful.<\/li><li markdown=\"1\"><strong>I<\/strong>: Authentication \/ exemption granted by Issuer.<\/li><li markdown=\"1\"><strong>N<\/strong>: Not Authenticated \/ account not verified. Transaction denied.<\/li><li markdown=\"1\"><strong>U<\/strong>: Authentication \/ account verification could not be performed.<\/li><li markdown=\"1\"><strong>A<\/strong>: Authentication \/ verification was attempted but could not be verified.<\/li><li markdown=\"1\"><strong>C<\/strong>: Challenge Required. Additional authentication is required using a Challenge.<\/li><li markdown=\"1\"><strong>R<\/strong>: Authentication \/ account verification rejected by the Issuer.<\/li><\/ul> <div class=\"sc-notice info\"><div>This field is called <strong>3DS challenged<\/strong> in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/div><\/div><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-dsTransID\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">dsTransID<\/a><\/td>\n<td>All schemes<\/td>\n<td>The unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-transStatusReason\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">transStatusReason<\/a><\/td>\n<td>All schemes<\/td>\n<td>Provides information on why the <code>transStatus<\/code> field has the specified value. <a href=\"#possible-transstatusreason-values\">See possible values<\/a>.<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-challengeCancel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">challengeCancel<\/a><\/td>\n<td>Cartes Bancaires<\/td>\n<td>The indicator informing the <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#access-control-server-acs\">Access Control Server (ACS)<\/a> and the DS that the authentication has been cancelled. See the <a href=\"\/pt\/online-payments\/3d-secure\/api-reference#possible-challengecancel-values\">API reference<\/a> for possible values.<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-threeDSRequestorChallengeInd\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">threeDSRequestorChallengeInd<\/a><\/td>\n<td>Cartes Bancaires<\/td>\n<td>Indicates whether a challenge is requested for this transaction.  <ul><li markdown=\"1\"><b>01<\/b>: No preference<\/li><li markdown=\"1\"><b>02<\/b>: No challenge requested<\/li> <li markdown=\"1\"><b>03<\/b>: Challenge requested (3DS Requestor preference)<\/li> <li markdown=\"1\"><b>04<\/b>: Challenge requested (Mandate)<\/li><li markdown=\"1\"><b>05<\/b>: No challenge (transactional risk analysis is already performed)<\/li> <li markdown=\"1\"><b>06<\/b>: Data Only<\/li> <\/ul><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-exemptionIndicator\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">exemptionIndicator<\/a><\/td>\n<td>Cartes Bancaires<\/td>\n<td>If an exemption was applied by the issuer to the authentication, indicates the exemption type. Possible values: <ul><li markdown=\"1\"><strong>lowValue<\/strong><\/li><li markdown=\"1\"><strong>secureCorporate<\/strong><\/li><li markdown=\"1\"><strong>trustedBeneficiary<\/strong><\/li><li markdown=\"1\"><strong>transactionRiskAnalysis<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result-riskScore\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">riskScore<\/a><\/td>\n<td>Cartes Bancaires<\/td>\n<td>The risk score calculated by the Cartes Bancaires DS.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"notices green\">\n<p>Some of these fields are also returned in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-additionalData-ResponseAdditionalDataCommon-threeDAuthenticatedResponse\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">threeDAuthenticatedResponse<\/a> object, but we recommend to use the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details#responses-200-threeDS2Result\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">threeDS2Result<\/a> object.<\/p>\n<\/div>\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#possible-trans-status-reason-values\">\n                                    <h3 class=\"adl-accordion__title\">Possible 'transStatusReason' values<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<table>\n<thead>\n<tr>\n<th><code>transStatusReason<\/code> value<\/th>\n<th>Scheme<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>01<\/code><\/td>\n<td>All<\/td>\n<td>Card authentication failed.<\/td>\n<\/tr>\n<tr>\n<td><code>02<\/code><\/td>\n<td>All<\/td>\n<td>Unknown device.<\/td>\n<\/tr>\n<tr>\n<td><code>03<\/code><\/td>\n<td>All<\/td>\n<td>Unsupported device.<\/td>\n<\/tr>\n<tr>\n<td><code>04<\/code><\/td>\n<td>All<\/td>\n<td>Exceeds authentication frequency limit.<\/td>\n<\/tr>\n<tr>\n<td><code>05<\/code><\/td>\n<td>All<\/td>\n<td>Expired card.<\/td>\n<\/tr>\n<tr>\n<td><code>06<\/code><\/td>\n<td>All<\/td>\n<td>Invalid card number.<\/td>\n<\/tr>\n<tr>\n<td><code>07<\/code><\/td>\n<td>All<\/td>\n<td>Invalid transaction.<\/td>\n<\/tr>\n<tr>\n<td><code>08<\/code><\/td>\n<td>All<\/td>\n<td>No card record.<\/td>\n<\/tr>\n<tr>\n<td><code>09<\/code><\/td>\n<td>All<\/td>\n<td>Security failure.<\/td>\n<\/tr>\n<tr>\n<td><code>10<\/code><\/td>\n<td>All<\/td>\n<td>Stolen card.<\/td>\n<\/tr>\n<tr>\n<td><code>11<\/code><\/td>\n<td>All<\/td>\n<td>Suspected fraud.<\/td>\n<\/tr>\n<tr>\n<td><code>12<\/code><\/td>\n<td>All<\/td>\n<td>Transaction not permitted for cardholder.<\/td>\n<\/tr>\n<tr>\n<td><code>13<\/code><\/td>\n<td>All<\/td>\n<td>Cardholder not enrolled in service.<\/td>\n<\/tr>\n<tr>\n<td><code>14<\/code><\/td>\n<td>All<\/td>\n<td>Transaction timed out at ACS.<\/td>\n<\/tr>\n<tr>\n<td><code>15<\/code><\/td>\n<td>All<\/td>\n<td>Low confidence.<\/td>\n<\/tr>\n<tr>\n<td><code>16<\/code><\/td>\n<td>All<\/td>\n<td>Medium confidence.<\/td>\n<\/tr>\n<tr>\n<td><code>17<\/code><\/td>\n<td>All<\/td>\n<td>High confidence.<\/td>\n<\/tr>\n<tr>\n<td><code>18<\/code><\/td>\n<td>All<\/td>\n<td>Very high confidence.<\/td>\n<\/tr>\n<tr>\n<td><code>19<\/code><\/td>\n<td>All<\/td>\n<td>Exceeds ACS maximum challenges.<\/td>\n<\/tr>\n<tr>\n<td><code>20<\/code><\/td>\n<td>All<\/td>\n<td>Non-payment transaction not supported.<\/td>\n<\/tr>\n<tr>\n<td><code>21<\/code><\/td>\n<td>All<\/td>\n<td>3RI transaction not supported.<\/td>\n<\/tr>\n<tr>\n<td><code>22<\/code><\/td>\n<td>All<\/td>\n<td>ACS technical issue.<\/td>\n<\/tr>\n<tr>\n<td><code>23<\/code><\/td>\n<td>All<\/td>\n<td>Decoupled Authentication required by ACS but not requested by 3DS Requestor.<\/td>\n<\/tr>\n<tr>\n<td><code>24<\/code><\/td>\n<td>All<\/td>\n<td>3DS Requestor decoupled max expiry time exceeded.<\/td>\n<\/tr>\n<tr>\n<td><code>25<\/code><\/td>\n<td>All<\/td>\n<td>Decoupled Authentication was provided insufficient time to authenticate cardholder. ACS will not make attempt.<\/td>\n<\/tr>\n<tr>\n<td><code>26<\/code><\/td>\n<td>All<\/td>\n<td>Authentication attempted but not performed by the cardholder.<\/td>\n<\/tr>\n<tr>\n<td><code>80<\/code><\/td>\n<td>Visa<\/td>\n<td>Error connecting to ACS.<\/td>\n<\/tr>\n<tr>\n<td><code>80<\/code><\/td>\n<td>Mastercard<\/td>\n<td>Returned on all Data Only authentications.<\/td>\n<\/tr>\n<tr>\n<td><code>80<\/code><\/td>\n<td>American Express<\/td>\n<td>Safekey is not available for this type of card.<\/td>\n<\/tr>\n<tr>\n<td><code>81<\/code><\/td>\n<td>Visa<\/td>\n<td>ACS timed out.<\/td>\n<\/tr>\n<tr>\n<td><code>81<\/code><\/td>\n<td>Mastercard<\/td>\n<td>Challenge exemption accepted.<\/td>\n<\/tr>\n<tr>\n<td><code>82<\/code><\/td>\n<td>Visa<\/td>\n<td>Invalid response from ACS.<\/td>\n<\/tr>\n<tr>\n<td><code>82<\/code><\/td>\n<td>Mastercard<\/td>\n<td>Challenge Mandate requested but could not be performed.<\/td>\n<\/tr>\n<tr>\n<td><code>83<\/code><\/td>\n<td>Mastercard, Visa<\/td>\n<td>System Error response from ACS.<\/td>\n<\/tr>\n<tr>\n<td><code>84<\/code><\/td>\n<td>Mastercard, Visa<\/td>\n<td>Internal error while generating CAVV.<\/td>\n<\/tr>\n<tr>\n<td><code>85<\/code><\/td>\n<td>Visa<\/td>\n<td>VMID not eligible for requested program.<\/td>\n<\/tr>\n<tr>\n<td><code>86<\/code><\/td>\n<td>Visa<\/td>\n<td>Protocol version not supported by ACS<\/td>\n<\/tr>\n<tr>\n<td><code>87<\/code><\/td>\n<td>Visa<\/td>\n<td>Transaction is excluded from Attempts Processing (includes non- reloadable pre-paid cards and non-payments (NPA)).<\/td>\n<\/tr>\n<tr>\n<td><code>88<\/code><\/td>\n<td>Visa<\/td>\n<td>Requested program not supported by ACS.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h2 id=\"authorize-the-payment\">Authorize the payment<\/h2>\n<p>Use the 3D Secure 2 authentication produced by the MPI to <a href=\"#authorize-the-payment-with-adyen\">authorize the payment with Adyen<\/a>, or with another PSP. For information on authorizing with other PSPs, refer to their documentation.<\/p>\n<p>For payment authorizations, keep the following in mind:<\/p>\n<ul>\n<li>You cannot reuse the authentication data across PSPs. For example, if you send a request to authorize the payment using the data to a PSP and it fails, you can not pass the same data to another PSP.<\/li>\n<li>Make sure to use the authentication data before it <a href=\"#authentication-data-expiry\">expires<\/a>.<\/li>\n<\/ul>\n<h3 id=\"authorize-the-payment-with-adyen\">Authorize the payment with Adyen<\/h3>\n<p>To authorize the payment with Adyen, make a POST\u00a0 <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a>\u00a0request, including:<\/p>\n<ol>\n<li>The <a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow?platform=Web&amp;integration=API%20only&amp;version=71#make-a-payment\">standard parameters required to make a payment<\/a>. Make sure to pass the scheme that authenticated the transaction in the  <code>paymentMethod.brand<\/code> object for co-badged cards.<\/li>\n<li>The authentication data you received in the <code>threeDS2Result<\/code> object of the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response. Send this data in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData<\/a> object. The fields you need to send in your request map to the <code>threeDS2Result<\/code> fields as shown in the table below.<\/li>\n<li>For Cartes Bancaires, include the required additional fields from the <code>additionalData<\/code> and the <code>threeDS2RequestData<\/code> objects. It is possible that you do not receive all Cartes Bancaires fields for each transaction, these fields are only required when they are returned in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/details\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/details<\/a> response that contains the authentication data.<\/li>\n<\/ol>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Parameter in <code>threeDS2Result<\/code><\/th>\n<th>Schemes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-authenticationResponse\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.authenticationResponse<\/a><\/td>\n<td><code>transStatus<\/code><\/td>\n<td>All<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-directoryResponse\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.directoryResponse<\/a><\/td>\n<td><code>transStatus<\/code><\/td>\n<td>All<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-cavv\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.cavv<\/a><\/td>\n<td><code>authenticationValue<\/code><\/td>\n<td>All<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-dsTransID\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.dsTransID<\/a><\/td>\n<td><code>dsTransID<\/code><\/td>\n<td>All<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-eci\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.eci<\/a><\/td>\n<td><code>eci<\/code><\/td>\n<td>All<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-threeDSVersion\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.threeDSVersion<\/a><\/td>\n<td><code>messageVersion<\/code><\/td>\n<td>All<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-challengeCancel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.challengeCancel<\/a><\/td>\n<td><code>challengeCancel<\/code><\/td>\n<td>Cartes Bancaires<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-mpiData-riskScore\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mpiData.riskScore<\/a><\/td>\n<td><code>riskScore<\/code><\/td>\n<td>Cartes Bancaires<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-threeDS2RequestData-threeDSRequestorChallengeInd\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">threeDS2RequestData.threeDSRequestorChallengeInd<\/a><\/td>\n<td><code>threeDSRequestorChallengeInd<\/code><\/td>\n<td>Cartes Bancaires<\/td>\n<\/tr>\n<tr>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-additionalData-listOfValues-scaExemption\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">additionalData.scaExemption<\/a><\/td>\n<td><code>exemptionIndicator<\/code><\/td>\n<td>Cartes Bancaires<\/td>\n<\/tr>\n<tr>\n<td><code>additionalData.acquirerCode<\/code><\/td>\n<td>-<\/td>\n<td>Cartes Bancaires. <br> Set to <strong>AdyenCartesBancaires<\/strong>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/payments request including authentication data'\" :id=\"'payments-request-8373439495'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;,\\n    \\&quot;value\\&quot;: 1000\\n  },\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  \\&quot;channel\\&quot;: \\&quot;Web\\&quot;,\\n  \\&quot;mpiData\\&quot;: {\\n    \\&quot;cavv\\&quot;: \\&quot;3q2+78r+ur7erb7vyv66vv\\\/\\\/\\\/\\\/8=\\&quot;,\\n    \\&quot;eci\\&quot;: \\&quot;05\\&quot;,\\n    \\&quot;dsTransID\\&quot;: \\&quot;c4e59ceb-a382-4d6a-bc87-385d591fa09d\\&quot;,\\n    \\&quot;directoryResponse\\&quot;: \\&quot;C\\&quot;,\\n    \\&quot;authenticationResponse\\&quot;: \\&quot;Y\\&quot;,\\n    \\&quot;threeDSVersion\\&quot;: \\&quot;2.1.0\\&quot;,\\n    \\&quot;{hint:Only applies to Cartes Bancaires.}cavvAlgorithm{\\\/hint}\\&quot;: \\&quot;ABC\\&quot;,\\n    \\&quot;{hint:Only required for Cartes Bancaires.}riskScore{\\\/hint}\\&quot;: \\&quot;95\\&quot;\\n  },\\n  \\&quot;paymentMethod\\&quot;: {\\n    \\&quot;type\\&quot;: \\&quot;visa\\&quot;,\\n    \\&quot;number\\&quot;: \\&quot;4917610000000000\\&quot;,\\n    \\&quot;expiryMonth\\&quot;: \\&quot;03\\&quot;,\\n    \\&quot;expiryYear\\&quot;: \\&quot;2030\\&quot;,\\n    \\&quot;holderName\\&quot;: \\&quot;John Smith\\&quot;,\\n    \\&quot;cvc\\&quot;: \\&quot;737\\&quot;\\n  },\\n  \\&quot;{hint:Only required for Cartes Bancaires.}threeDS2RequestData{\\\/hint}\\&quot;: {\\n    \\&quot;challengeIndicator\\&quot;: \\&quot;requestChallenge\\&quot;\\n  },\\n  \\&quot;{hint:Only required for Cartes Bancaires.}additionalData{\\\/hint}\\&quot;: {\\n    \\&quot;scaExemption\\&quot;: \\&quot;lowValue\\&quot;,\\n    \\&quot;acquirerCode\\&quot;: \\&quot;AdyenCartesBancaires\\&quot;\\n  }\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>You will receive an\u00a0 <strong>Authorised<\/strong>\u00a0<code>resultCode<\/code>\u00a0if the payment authorization was successful.\u00a0See\u00a0 <a href=\"\/pt\/online-payments\/payment-result-codes\">Result codes<\/a>\u00a0for a complete list of possible responses.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'\/payments response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    ...\\n    \\\"pspReference\\\": \\\"V4HZ4RBFJGXXGN82\\\",\\n    \\\"resultCode\\\": \\\"Authorised\\\",\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2>Authentication data expiry<\/h2>\n<p>Authentication data and cryptograms expire depending on card schemes. This means that you can no longer use the authentication data after it expires.<\/p>\n<table>\n<thead>\n<tr>\n<th>Card scheme<\/th>\n<th>Cryptogram validity<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Amex<\/strong><\/td>\n<td>45 days<\/td>\n<\/tr>\n<tr>\n<td><strong>CUP<\/strong><\/td>\n<td>90 days<\/td>\n<\/tr>\n<tr>\n<td><strong>Mastercard<\/strong><\/td>\n<td>95 days<\/td>\n<\/tr>\n<tr>\n<td><strong>Visa<\/strong><\/td>\n<td>90 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"auth-not-required-reasons\">Authentication not required reasons<\/h2>\n<p>You get an <strong>AuthenticationNotRequired<\/strong> result code in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> response when a transaction doesn't require 3D Secure authentication. If you get this code, you can proceed with the <a href=\"\/pt\/online-payments\/build-your-integration\/advanced-flow\">standard payment flow with Adyen<\/a>, or another PSP.<\/p>\n<p>Below is the list of possible <code>authenticationNotRequiredReason<\/code> values:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Value<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>MerchantInitiatedTransaction<\/strong><\/td>\n<td style=\"text-align: left;\">The payment is a subsequent transaction initiated by the merchant. The initial payment has gone through SCA and the shopper has agreed to subsequent <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#contauth-continuous-authorization\">merchant-initiated transactions<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>MOTO<\/strong><\/td>\n<td style=\"text-align: left;\">Mail order and telephone order (MOTO) transactions are not electronic payments. They do not require SCA.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>POS<\/strong><\/td>\n<td style=\"text-align: left;\">The point-of-sale payment is made with a secure payment terminal. SCA applies to online payments where the shopper is not present.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>AcquirerNotInEEA<\/strong><\/td>\n<td style=\"text-align: left;\">The business is not located in the EEA, Monaco, or the UK.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>IssuerNotInEEA<\/strong><\/td>\n<td style=\"text-align: left;\">The issuer is not located in the EEA, Monaco, or the UK.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>NonFinancial<\/strong><\/td>\n<td style=\"text-align: left;\"><a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#zero-value-auth\">Zero-value authorizations<\/a> do not require SCA.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>No matching 3ds configuration<\/strong><\/td>\n<td style=\"text-align: left;\">Check the required parameters for your 3D Secure request to make sure they are correct.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Card not enrolled for 3DS<\/strong><\/td>\n<td style=\"text-align: left;\">The card used for the transaction is not enrolled in 3D Secure.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"testing-3d-secure-2\">Testing<\/h2>\n<p>Use our <a href=\"\/pt\/development-resources\/testing\/3d-secure-2-authentication\">Testing 3D Secure 2<\/a> authentication guide to test your integration.<\/p>\n<p>In this flow, you receive an <strong>AUTHENTICATION<\/strong> webhook that informs you of the outcome of the authentication.<\/p>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/online-payments\/3d-secure\/native-3ds2\"\n                        target=\"_self\"\n                        >\n                    3D Secure integration guides\n                <\/a><\/li><li><a href=\"\/online-payments\/3d-secure\/api-reference#threeds2result\"\n                        target=\"_self\"\n                        >\n                    API Reference for 3D Secure\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/online-payments\/3d-secure\/standalone-authentication","articleFields":{"description":"Perform the 3D Secure 2 authentication with Adyen and submit the payment authorization later.","feedback_component":true,"id":"47486111","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"03-11-2023 17:30","filters_component":false,"page_id":"5a942dd1-7536-4186-b5bd-56b6f462101b","decision_tree":"[]"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/online-payments\/3d-secure\/standalone-authentication","title":"Standalone authentication","content":"Use standalone authentication when you want to separate authentication from authorization. In the standalone authentication flow, you make a payment request that specifies only authentication. When authentication is successfully completed, you receive the 3D Secure 2 authentication data which you can use to authorize the payment with Adyen or another payment service provider (PSP).\nRequirements\nBefore you begin, take into account the following requirements, limitations, and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nMake sure that you have built an online payments integration that uses the Advanced flow.\n\n\nAPI credential roles\nYou need an API credential with an API key and the Checkout webservice role.\n\n\n\nWebhooks\nSubscribe to Standard webhooks, and enable the non-default AUTHENTICATION event code.\n\n\nLimitations\nYou cannot trigger standalone authentication with the  \/sessions endpoint or with Hosted Checkout.\n\n\nSetup steps\nBefore you begin: Set up 3D Secure 2 authentication with Native or Redirect.Reach out to our Support Team to enable getting the threeDS2Result object in API responses. Do one of the following to make sure authentication is triggered when you make a  \/payments request: Set your Dynamic 3D Secure rule to Always, or configure a custom rule to trigger 3D Secure.Set  authenticationData.attemptAuthentication to always in your payment request.\n\n\n\nHow it works\nWith standalone authentication, you perform the 3D Secure 2 authentication independently of the payment authorization flow.\n\nMake a payment request, where you use the authenticationOnly parameter to specify that the request is only for performing authentication.\nIn the  \/payments response, use the action object to determine the authentication flow you need to perform.\nPerform the required authentication flow.\nGet the 3D Secure 2 authentication data.\nUse the authentication data to authorize the payment with Adyen, or with another PSP or acquirer.\n\nKeep in mind that authentication data is valid for a different time period for each scheme, and you can not use it after it expires.\nMake a payment request for authentication\nA payment request to perform standalone authentication is similar to making a  \/payments request for a payment authorization with your standard 3D Secure 2 integration. You add the authenticationOnly parameter to specify that you only want to authenticate the shopper.\nTo perform standalone authentication:\n\n\nIn your POST  \/payments request, specify:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\n paymentMethod\n\nObject that contains the shopper's card information from your front end or client app. Make sure that you: Include the encrypted, or if you are fully PCI compliant, unecrypted card details.For co-badged cards, set the brand to the scheme that you want to authenticate with. For Visa and JCB transactions, include the holderName.\n\n\n channel\n\nSpecify the platform that you are using.  Possible values: WebiOSAndroid\n\n\n authenticationOnly\n\nSet to true to trigger the standalone authentication flow.\n\n\n nativeThreeDS\n\nUse case: if you have a native 3D Secure integration.  Set to preferred to indicate that the native flow should be triggered when available.\n\n\n browserInfo\n\nObject that contains information about the shopper's browser. The sub-fields that you must include in browserInfo depend on your integration type:  For mobile integrations ( channel: iOS\/Android): the acceptHeader, and userAgent sub-fields are required to support cases where the payment is routed to 3D Secure 2 redirect.For web integrations  ( channel: Web): the full object, except javaScriptEnabled, is required.\n\n\n returnUrl\n\nThe URL where the shopper is redirected back to after completing authentication to support cases where the payment is routed to the 3D Secure 2 redirect flow. See our integration guides to learn how to set this URL depending on your platform.\n\n\n origin\n\nUse case: required for browser-based (channel: Web) transactions.  The origin URL of the page where you are rendering the Drop-in\/Component. When this field is not set, or set incorrectly, the 3D Secure 2 action can not be handled correctly.  Format: Maximum characters: 80Do not include subdirectories and a trailing slash. Example: If you are rendering on https:\/\/your-company.example.com\/checkout\/payment, set to https:\/\/your-company.example.com.\n\n\n shopperIP\n\nUse case: required for browser-based (channel: Web) transactions.  The shopper's IP address. Required for channel web.\n\n\n billingAddress\n\nThe shopper's billing address.\n\n\n shopperEmail\n\nUse case: required for Visa and JCB transactions. The cardholder's email address. If you do not include this, you must send the telephoneNumber, or a phone number in the threeDS2RequestData object.\n\n\n telephoneNumber\n\nUse case: required for Visa and JCB transactions if you did not include the shopperEmail field. The shopper's phone number. To be more specific, you can use the mobilePhone, homePhone, and workPhone fields in the threeDS2RequestData object.   Format: The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits).   Example: +4912345678901  If the value you provide does not follow the guidelines, we drop the value and do not submit it for authentication. \n\n\n\n Required for all transactions.  Required for particular setups, or issuers and card schemes.  Recommended for all transactions, but not required.\n\nWe recommend that you do the following to prevent authorization refusals: Include additional acquirer-related data if you plan to authorize the payment with a different acquirer. Refusals often happen when acquirer data mismatches between the authentication and authorization requests.Include additional shopper information to increase the likelihood of achieving a frictionless flow.\n\n\n\n\n\n\nIn the  \/payments response, check the resultCode:\n\nIf the result code is \n  AuthenticationNotRequired\n, You can proceed to authorize the payment with Adyen by making a standard  \/payments request, or with another PSP or acquirer.\n\nIf you get a 3D Secure 2 authentication result code, proceed to perform the authentication.\n\n\n\nresultCode\nDescription\nAction to take\n\n\n\n\nChallengeShopper\nThe issuer requires authentication from the shopper, for example through facial recognition or entering a code received on their phone.\nInitiate the challenge flow to present the challenge to the shopper, and submit the result to Adyen.\n\n\nIdentifyShopper\nThe issuer requires authentication from the device the shopper is using.\nInitiate the frictionless flow to get the shopper's device fingerprint, and submit the result to Adyen.\n\n\nRedirectShopper\nThe issuer requires the shopper to provide authentication in an an external web page or app.\nRedirect the shopper to complete the authentication.\n\n\n\n\n\n\n\n\n    \n    \n        \n            \n            \n                                    Provide additional acquirer-related data\n                            \n        \n        \n            \nIf you authorize the payment that you authenticate with Adyen with a different PSP, it is recommended to include additional acquirer-related data. Get the following details from your acquirer. These details are part of the 3D Secure 2 enrollment process between your acquirer and card schemes.\nIf you are unable to get these details from your acquirer, contact our Support Team.\n\n\n\nAcquirer data\nDescription\n\n\n\n\nacquirerBIN\nThe acquiring BIN enrolled for 3D Secure 2. This string should match the value that you will use in the authorization.  If you are building a test integration, you can use the string 123456 in place of an actual acquirerBIN.\n\n\nacquirerMerchantID\nThe authorization merchant ID enrolled for 3D Secure 2. This string should match the value that you will use in the authorization.   If you are building a test integration, you can use the string 123456 in place of an actual acquirerMerchantID.\n\n\nmcc\nThe four-digit Merchant Category Code registered with the scheme for the same acquirerMerchantID sent in the request.\n\n\nmerchantName\nThe merchant name that the issuer presents to the shopper if they get a challenge. We recommend to use the same value that you will use in the authorization.  Format: Maximum 40 characters.\n\n\nthreeDSRequestorID\nRequired for Visa and Mastercard. The unique requestor ID assigned by the Directory Server when you enroll for 3D Secure 2.\n\n\nthreeDSRequestorName\nRequired for Visa and Mastercard. The unique requestor name assigned by the Directory Server when you enrol for 3D Secure 2.\n\n\n\nMake a POST \/payments request containing the parameters required for the standalone authentication, together with the acquirer data listed above.\n\n    \n\n\n        \n    \n\n\nPerform the authentication\n\n\nIn the  \/payments response, you receive action.type: ThreeDS2. Use the action.subtype object to determine your next steps. The way to handle the action object for the standalone authentication flow is the same as handling it for your native or redirect 3D Secure implementation.\n\n\nWhen authentication is completed, submit the authentication result in a  \/payments\/details request, including  authenticationData.authenticationOnly: true.\nBelow is an example  \/payments\/details request:\n\n\n\n\n\nIn the  \/payments\/details response, check the following fields:\n\nresultCode: If the authentication process has finished, you receive AuthenticationFinished. If an error occurs during the authentication flow, and the authentication process is not completed, you receive Refused.\nthreeDS2Result: The object that contains the authentication data that you need to authorize the payment following a successful authentication.\nthreeDS2Result.transStatus: Indicates the result of the authentication. The value Y means that authentication is successful.\n\nIf the authentication went through the redirect flow, the result of the authentication is in  additionalData.threeDAuthenticatedResponse.\n\n\n\n\n\n\n\nGet the 3D Secure 2 authentication data\nAfter a successful authentication, you get a resultCode with the value of AuthenticationFinished in the  \/payments\/details response. The response contains  threeDS2Result object, that contains the authentication data produced by a Merchant Plug-in (MPI).\nSome schemes do not provide all fields; the Applies to column shows which schemes provide each field.\n\n\n\nParameter\nApplies to\nDescription\n\n\n\n\n authenticationValue\nAll schemes\nThe value for the 3D Secure 2 authentication session. The returned value is a Base64-encoded 20- or 21-byte array. Example: AQIDBAUGBwgJCgsMDQ4PEBESExQ=\n\n\n eci\nAll schemes\nThe Electronic Commerce Indicator returned from the schemes for the 3D Secure 2 payment session. Example: 02\n\n\n threeDSServerTransID\nAll schemes\nThe unique identifier assigned by the 3D Secure 2 server.\n\n\n transStatus\nAll schemes\nIndicates whether a transaction was authenticated, or whether additional verification is required. Possible values: Y: Authentication \/ account verification successful.I: Authentication \/ exemption granted by Issuer.N: Not Authenticated \/ account not verified. Transaction denied.U: Authentication \/ account verification could not be performed.A: Authentication \/ verification was attempted but could not be verified.C: Challenge Required. Additional authentication is required using a Challenge.R: Authentication \/ account verification rejected by the Issuer. This field is called 3DS challenged in your Customer Area.\n\n\n dsTransID\nAll schemes\nThe unique transaction identifier assigned by the Directory Server (DS) to identify a single transaction.\n\n\n transStatusReason\nAll schemes\nProvides information on why the transStatus field has the specified value. See possible values.\n\n\n challengeCancel\nCartes Bancaires\nThe indicator informing the Access Control Server (ACS) and the DS that the authentication has been cancelled. See the API reference for possible values.\n\n\n threeDSRequestorChallengeInd\nCartes Bancaires\nIndicates whether a challenge is requested for this transaction.  01: No preference02: No challenge requested 03: Challenge requested (3DS Requestor preference) 04: Challenge requested (Mandate)05: No challenge (transactional risk analysis is already performed) 06: Data Only \n\n\n exemptionIndicator\nCartes Bancaires\nIf an exemption was applied by the issuer to the authentication, indicates the exemption type. Possible values: lowValuesecureCorporatetrustedBeneficiarytransactionRiskAnalysis\n\n\n riskScore\nCartes Bancaires\nThe risk score calculated by the Cartes Bancaires DS.\n\n\n\n\nSome of these fields are also returned in the  threeDAuthenticatedResponse object, but we recommend to use the  threeDS2Result object.\n\n\n    \n    \n        \n            \n            \n                                    Possible 'transStatusReason' values\n                            \n        \n        \n            \n\n\n\ntransStatusReason value\nScheme\nDescription\n\n\n\n\n01\nAll\nCard authentication failed.\n\n\n02\nAll\nUnknown device.\n\n\n03\nAll\nUnsupported device.\n\n\n04\nAll\nExceeds authentication frequency limit.\n\n\n05\nAll\nExpired card.\n\n\n06\nAll\nInvalid card number.\n\n\n07\nAll\nInvalid transaction.\n\n\n08\nAll\nNo card record.\n\n\n09\nAll\nSecurity failure.\n\n\n10\nAll\nStolen card.\n\n\n11\nAll\nSuspected fraud.\n\n\n12\nAll\nTransaction not permitted for cardholder.\n\n\n13\nAll\nCardholder not enrolled in service.\n\n\n14\nAll\nTransaction timed out at ACS.\n\n\n15\nAll\nLow confidence.\n\n\n16\nAll\nMedium confidence.\n\n\n17\nAll\nHigh confidence.\n\n\n18\nAll\nVery high confidence.\n\n\n19\nAll\nExceeds ACS maximum challenges.\n\n\n20\nAll\nNon-payment transaction not supported.\n\n\n21\nAll\n3RI transaction not supported.\n\n\n22\nAll\nACS technical issue.\n\n\n23\nAll\nDecoupled Authentication required by ACS but not requested by 3DS Requestor.\n\n\n24\nAll\n3DS Requestor decoupled max expiry time exceeded.\n\n\n25\nAll\nDecoupled Authentication was provided insufficient time to authenticate cardholder. ACS will not make attempt.\n\n\n26\nAll\nAuthentication attempted but not performed by the cardholder.\n\n\n80\nVisa\nError connecting to ACS.\n\n\n80\nMastercard\nReturned on all Data Only authentications.\n\n\n80\nAmerican Express\nSafekey is not available for this type of card.\n\n\n81\nVisa\nACS timed out.\n\n\n81\nMastercard\nChallenge exemption accepted.\n\n\n82\nVisa\nInvalid response from ACS.\n\n\n82\nMastercard\nChallenge Mandate requested but could not be performed.\n\n\n83\nMastercard, Visa\nSystem Error response from ACS.\n\n\n84\nMastercard, Visa\nInternal error while generating CAVV.\n\n\n85\nVisa\nVMID not eligible for requested program.\n\n\n86\nVisa\nProtocol version not supported by ACS\n\n\n87\nVisa\nTransaction is excluded from Attempts Processing (includes non- reloadable pre-paid cards and non-payments (NPA)).\n\n\n88\nVisa\nRequested program not supported by ACS.\n\n\n\n\n        \n    \n\n\nAuthorize the payment\nUse the 3D Secure 2 authentication produced by the MPI to authorize the payment with Adyen, or with another PSP. For information on authorizing with other PSPs, refer to their documentation.\nFor payment authorizations, keep the following in mind:\n\nYou cannot reuse the authentication data across PSPs. For example, if you send a request to authorize the payment using the data to a PSP and it fails, you can not pass the same data to another PSP.\nMake sure to use the authentication data before it expires.\n\nAuthorize the payment with Adyen\nTo authorize the payment with Adyen, make a POST\u00a0 \/payments\u00a0request, including:\n\nThe standard parameters required to make a payment. Make sure to pass the scheme that authenticated the transaction in the  paymentMethod.brand object for co-badged cards.\nThe authentication data you received in the threeDS2Result object of the  \/payments\/details response. Send this data in the  mpiData object. The fields you need to send in your request map to the threeDS2Result fields as shown in the table below.\nFor Cartes Bancaires, include the required additional fields from the additionalData and the threeDS2RequestData objects. It is possible that you do not receive all Cartes Bancaires fields for each transaction, these fields are only required when they are returned in the  \/payments\/details response that contains the authentication data.\n\n\n\n\nParameter\nParameter in threeDS2Result\nSchemes\n\n\n\n\n mpiData.authenticationResponse\ntransStatus\nAll\n\n\n mpiData.directoryResponse\ntransStatus\nAll\n\n\n mpiData.cavv\nauthenticationValue\nAll\n\n\n mpiData.dsTransID\ndsTransID\nAll\n\n\n mpiData.eci\neci\nAll\n\n\n mpiData.threeDSVersion\nmessageVersion\nAll\n\n\n mpiData.challengeCancel\nchallengeCancel\nCartes Bancaires\n\n\n mpiData.riskScore\nriskScore\nCartes Bancaires\n\n\n threeDS2RequestData.threeDSRequestorChallengeInd\nthreeDSRequestorChallengeInd\nCartes Bancaires\n\n\n additionalData.scaExemption\nexemptionIndicator\nCartes Bancaires\n\n\nadditionalData.acquirerCode\n-\nCartes Bancaires.  Set to AdyenCartesBancaires.\n\n\n\n\n    \n\nYou will receive an\u00a0 Authorised\u00a0resultCode\u00a0if the payment authorization was successful.\u00a0See\u00a0 Result codes\u00a0for a complete list of possible responses.\n\n    \n\nAuthentication data expiry\nAuthentication data and cryptograms expire depending on card schemes. This means that you can no longer use the authentication data after it expires.\n\n\n\nCard scheme\nCryptogram validity\n\n\n\n\nAmex\n45 days\n\n\nCUP\n90 days\n\n\nMastercard\n95 days\n\n\nVisa\n90 days\n\n\n\nAuthentication not required reasons\nYou get an AuthenticationNotRequired result code in the  \/payments response when a transaction doesn't require 3D Secure authentication. If you get this code, you can proceed with the standard payment flow with Adyen, or another PSP.\nBelow is the list of possible authenticationNotRequiredReason values:\n\n\n\nValue\nDescription\n\n\n\n\nMerchantInitiatedTransaction\nThe payment is a subsequent transaction initiated by the merchant. The initial payment has gone through SCA and the shopper has agreed to subsequent merchant-initiated transactions.\n\n\nMOTO\nMail order and telephone order (MOTO) transactions are not electronic payments. They do not require SCA.\n\n\nPOS\nThe point-of-sale payment is made with a secure payment terminal. SCA applies to online payments where the shopper is not present.\n\n\nAcquirerNotInEEA\nThe business is not located in the EEA, Monaco, or the UK.\n\n\nIssuerNotInEEA\nThe issuer is not located in the EEA, Monaco, or the UK.\n\n\nNonFinancial\nZero-value authorizations do not require SCA.\n\n\nNo matching 3ds configuration\nCheck the required parameters for your 3D Secure request to make sure they are correct.\n\n\nCard not enrolled for 3DS\nThe card used for the transaction is not enrolled in 3D Secure.\n\n\n\nTesting\nUse our Testing 3D Secure 2 authentication guide to test your integration.\nIn this flow, you receive an AUTHENTICATION webhook that informs you of the outcome of the authentication.\nSee also\n\n\n                    3D Secure integration guides\n                \n                    API Reference for 3D Secure\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"3D Secure 2 authentication","lvl3":"Standalone authentication"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/online-payments","lvl2":"https:\/\/docs.adyen.com\/pt\/online-payments\/3d-secure","lvl3":"\/pt\/online-payments\/3d-secure\/standalone-authentication"},"levels":4,"category":"Online Payments","category_color":"green","tags":["Standalone","authentication"]},"articleFiles":{"payments-details-request-8198578881.js":"<p alt=\"\">payments-details-request-8198578881.js<\/p>","payments-request-1092917514.js":"<p alt=\"\">payments-request-1092917514.js<\/p>"}}
