{"title":"3D Secure 1 and 2 redirect authentication","category":"default","creationDate":1692966000,"content":"<div class=\"sc-notice warning\"><div>\n<p><strong>Adyen is no longer developing the Classic API integration<\/strong><\/p>\n<p>This page is for the Classic API (<code>\/authorise<\/code>) integration, which we no longer accept new integrations with. <\/p>\n<p>We strongly recommend migrating to the newer <a href=\"\/online-payments\/3d-secure\/redirect-3ds2\">3D Secure redirect authentication on Checkout API<\/a> integration. To use this newer integration, you must also <a href=\"\/pt\/online-payments\/upgrade-your-integration\/migrate-to-checkout-api\">migrate to the Checkout API<\/a>.<\/p>\n<\/div><\/div>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/3-D_Secure\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">3D Secure<\/a>\u00a0is a protocol\u00a0provided by credit card schemes. It is an additional authentication protocol that allows you to implement another layer of security on your <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#card-not-present-cnp\">Card-Not-Present<\/a> transactions.<\/p>\n<p>During a 3D Secure transaction, the shopper is redirected to a site controlled by the issuing bank\u00a0to answer additional security questions (usually a unique password or SMS verification).\u00a0This reduces the chance of a fraudulent transaction\u00a0occurring.<\/p>\n<p>When 3D Secure is used for personal cards, the\u00a0chargeback liability shifts to the issuing banks.<\/p>\n<div class=\"sc-notice warning\"><div>\n<p>While this liability shift is appealing, there is a significant risk of a lower conversion rate when you use 3D Secure. This is because many shoppers are still not familiar with 3D Secure, so may not pass the verification process. Client-side technical errors may also occur when they are redirected.<\/p>\n<p>Adyen has developed a robust dynamic 3D Secure system. This lets you choose which transactions are sent for 3D Secure authentication, and which are processed without. For more information, read <a href=\"\/pt\/risk-management\/dynamic-3d-secure\">Dynamic 3D Secure<\/a>.<\/p>\n<\/div><\/div>\n<h2 id=\"managingpsd2scacompliance\">Managing PSD2 SCA compliance with 3D Secure<\/h2>\n<p>If you are implementing 3D Secure to handle PSD2 compliance, your options are to:<\/p>\n<ol>\n<li><a href=\"\/pt\/online-payments\/psd2-sca-compliance-and-implementation-guide\/sca-options#defaultpsd2compliancehandling\">Let Adyen handle PSD2 compliance by default<\/a>.<\/li>\n<li><a href=\"\/pt\/online-payments\/psd2-sca-compliance-and-implementation-guide\/sca-options#configureusingdynamic3ds\">Configure rules using Dynamic 3D Secure<\/a>.<\/li>\n<li><a href=\"\/pt\/online-payments\/psd2-sca-compliance-and-implementation-guide\/sca-options#specifypreferenceinyourapirequest\">Submit your preference for each transaction in your API request<\/a>.<\/li>\n<\/ol>\n<p>In this integration guide, we talk about the steps on how you can submit 3D Secure requests for options 1 and 2.<\/p>\n<p>If you want to use option 3 to send your preference for each transaction in your API request, you will need to <a href=\"\/pt\/online-payments\/psd2-sca-compliance-and-implementation-guide\/sca-options#specifypreferenceinyourapirequest\">submit additional fields<\/a>. However, note that option 3 overrides our default PSD2 compliance handling logic, including checking if the transaction is out of scope, determining the most suitable exemption type to request for, and evaluating whether to send the exemption in the authentication or authorisation request.<\/p>\n<p>We recommend using option 3 only if you have an extensive knowledge of PSD2 SCA regulations and the 3D Secure protocol.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin to integrate, make sure you have followed the <a href=\"\/pt\/get-started-with-adyen\">Get started with Adyen guide<\/a> to:<\/p>\n<ul>\n<li>Get an overview of the steps needed to accept live payments.<\/li>\n<li>Create your test account.<\/li>\n<\/ul>\n<p>After you have created your test account:<\/p>\n<ol>\n<li><a href=\"\/pt\/development-resources\/api-credentials#generate-api-key\">Get your API Key<\/a>. Save a copy as you'll need it for API calls you make to the Adyen payments platform.<\/li>\n<li><a href=\"#enable-3d-secure\">Check if 3D Secure 1 is enabled<\/a> on your account.<\/li>\n<\/ol>\n<h3 id=\"enable-3d-secure\">Enable 3D Secure<\/h3>\n<p>For the test\u00a0environment, 3D Secure is enabled by default.<\/p>\n<p>For the live environment, it is enabled by default for:<\/p>\n<ul>\n<li>Bancontact \/ MisterCash<\/li>\n<li>Maestro\u00a0(SecureCode)<\/li>\n<li>Mastercard (SecureCode)<\/li>\n<li>Visa (Visa Secure)<\/li>\n<\/ul>\n<p>Contact the\u00a0<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>\u00a0to configure live 3D Secure transactions for:<\/p>\n<ul>\n<li>American Express (SafeKey)<\/li>\n<li>Diners \/ Discover (ProtectBuy)<\/li>\n<li>JCB (J\/Secure)<\/li>\n<\/ul>\n<h2 id=\"step-1-authorise-the-3d-secure-payment\">Step 1: Authorise the 3D Secure payment<\/h2>\n<div class=\"sc-notice note\"><div>\n<p>This documentation explains how to implement 3D Secure with the classic integration. For details on our newer integration, refer to <a href=\"\/pt\/online-payments\/3d-secure\/\">3D Secure 2 on Checkout API<\/a> instead.<\/p>\n<\/div><\/div>\n<p>The following example illustrates the\u00a0<code>\/authorise<\/code>\u00a0call to initiate a 3D Secure payment.<\/p>\n<ul>\n<li>\n<p>Make a\u00a0POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise<\/a>\u00a0request, providing:<\/p>\n<ul>\n<li><code>reference<\/code>: Your unique reference for this payment.<\/li>\n<li><code>amount<\/code><\/li>\n<li>\n<p><code>card<\/code>: Object that contains the shopper's card details.<\/p>\n<ul>\n<li><code>number<\/code>: Encrypted card number.<\/li>\n<li><code>expiryMonth<\/code>: Encrypted card expiry month.<\/li>\n<li><code>expiryYear<\/code>: Encrypted card expiry year.<\/li>\n<li><code>cvc<\/code>: Encrypted card verification code.<\/li>\n<li>\n<p><code>holderName<\/code>: Cardholder's name.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>You can only pass raw card data if you are\u00a0<a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#pci-compliance\">fully PCI compliant<\/a>. Otherwise, you should use the\u00a0<a href=\"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/client-side-encryption\">Client-Side Encryption<\/a> library to authorise a payment.<\/p>\n<\/div><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li><code>browserInfo<\/code>: The shopper's browser information.<\/li>\n<li>\n<p><code>shopperIP<\/code>: The shopper's IP address.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>If you are using the redirect authentication for 3D Secure 2, we recommend that you provide all available information to increase the likelihood of achieving a frictionless flow and a higher authorisation rate. In addition to the regular parameters you provide to Adyen, send additional parameters in <a href=\"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/native-3ds2\/api-reference-3d-secure-2\">this list<\/a>.<\/p>\n<\/div><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'1889288666'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n   \\\"browserInfo\\\": {\\n      \\\"userAgent\\\": \\\"Mozilla\\\/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko\\\/2008052912 Firefox\\\/3.0\\\",\\n      \\\"acceptHeader\\\": \\\"text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,*\\\/*;q=0.8\\\"\\n   },\\n   \\\"amount\\\":{\\n      \\\"value\\\":1500,\\n      \\\"currency\\\":\\\"EUR\\\"\\n   },\\n   \\\"card\\\":{\\n      \\\"number\\\":\\\"5212345678901234\\\",\\n      \\\"expiryMonth\\\":\\\"8\\\",\\n      \\\"expiryYear\\\":\\\"2018\\\",\\n      \\\"cvc\\\":\\\"737\\\",\\n      \\\"holderName\\\":\\\"John Smith\\\"\\n   },\\n   \\\"reference\\\":\\\"YOUR_REFERENCE_NUMBER\\\",\\n   \\\"merchantAccount\\\":\\\"YOUR_MERCHANT_ACCOUNT\\\"\\n}\"},{\"language\":\"xml\",\"tabTitle\":\"Soap\",\"content\":\"&lt;?xml version=\\\"1.0\\\"?&gt;\\n&lt;soap:Envelope xmlns:soap=\\\"http:\\\/\\\/schemas.xmlsoap.org\\\/soap\\\/envelope\\\/\\\" xmlns:xsd=\\\"http:\\\/\\\/www.w3.org\\\/2001\\\/XMLSchema\\\" xmlns:xsi=\\\"http:\\\/\\\/www.w3.org\\\/2001\\\/XMLSchema-instance\\\"&gt;\\n    &lt;soap:Body&gt;\\n        &lt;ns1:authorise xmlns:ns1=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;\\n            &lt;ns1:paymentRequest&gt;\\n                &lt;browserInfo xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;\\n                    &lt;acceptHeader xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;text\\\/html,application\\\/xhtml+xml,application\\\/xml;q=0.9,*\\\/*;q=0.8&lt;\\\/acceptHeader&gt;\\n                    &lt;userAgent xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;Mozilla\\\/5.0 (X11; U; Linux i686; en-US; rv:1.9) Gecko\\\/2008052912 Firefox\\\/3.0&lt;\\\/userAgent&gt;\\n                &lt;\\\/browserInfo&gt;\\n                &lt;amount xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;\\n                    &lt;value xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;1500&lt;\\\/value&gt;\\n                    &lt;currency xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;EUR&lt;\\\/currency&gt;\\n                &lt;\\\/amount&gt;\\n                &lt;card xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;\\n                    &lt;number&gt;5212345678901234&lt;\\\/number&gt;\\n                    &lt;expiryMonth&gt;8&lt;\\\/expiryMonth&gt;\\n                    &lt;expiryYear&gt;2018&lt;\\\/expiryYear&gt;\\n                    &lt;cvc&gt;737&lt;\\\/cvc&gt;\\n                    &lt;holderName&gt;John Smith&lt;\\\/holderName&gt;\\n                &lt;\\\/card&gt;\\n                &lt;reference xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;payment-3d-2017-9-4-13&lt;\\\/reference&gt;\\n                &lt;merchantAccount xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;TestMerchant&lt;\\\/merchantAccount&gt;\\n            &lt;\\\/ns1:paymentRequest&gt;\\n        &lt;\\\/ns1:authorise&gt;\\n    &lt;\\\/soap:Body&gt;\\n&lt;\\\/soap:Envelope&gt;\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h4 id=\"response\">Response<\/h4>\n<p>The <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise<\/a> response contains a <code>resultCode<\/code> of either:<\/p>\n<ul>\n<li>\n<p><strong>Authorised<\/strong>, or any other  <code>resultCode<\/code>s that you can get for a normal <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise<\/a> request. This can happen in case of a frictionless flow (where a liability shift still occurs), or if the card is not enrolled in the 3D Secure program.<\/p>\n<\/li>\n<li>\n<p><strong>RedirectShopper<\/strong>: Indicates that you need to redirect the shopper to the card issuer for 3D Secure authentication. The response also contains: \u00a0<\/p>\n<ul>\n<li><code>paRequest<\/code><\/li>\n<li><code>md<\/code><\/li>\n<li><code>issuerUrl<\/code>: URL to where you should redirect the shopper to complete the 3D Secure authentication.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<pre><code class=\"language-json\">\u00a0{\n    \"additionalData\": {\n        \"paymentMethod\": \"mc\",\n        \"paymentMethodVariant\": \"maestro\"\n    },\n    \"pspReference\": \"8535033222809597\",\n    \"resultCode\": \"RedirectShopper\",\n    \"issuerUrl\": \"https:\/\/issuer-url-here.com\",\n    \"md\": \"NnheOml4nhgrnx...pP6oBb3KQqKXiYGL3X8=\",\n    \"paRequest\": \"eNpVUttygjAQ\/R...jI+ts3+f4Afk4a3Y\"\n}<\/code><\/pre>\n<p>For more information about these fields, refer to\u00a0<a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/authorise__section_resParams\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PaymentResult<\/a>.<\/p>\n<h2 id=\"step-2-redirect-to-the-card-issuer\">Step 2: Redirect to the card issuer<\/h2>\n<p>If you receive a <code>resultCode<\/code> <strong>RedirectShopper<\/strong> in the  <code>\/authorise<\/code> response, you need to redirect the shopper to the card issuer for 3D Secure verification.<\/p>\n<p>You can use an\u00a0HTML form\u00a0that you submit with an HTTP POST method call to the URL endpoint specified in\u00a0<code>issuerUrl<\/code>. The form should be self-submitting, with a fallback option in case the shopper disabled JavaScript in their web browser. We recommend that you use an HTTPS connection.<\/p>\n<p>In the form, include the following\u00a0<code>input<\/code>\u00a0elements:<\/p>\n<ul>\n<li><code>PaReq<\/code>\u00a0\u2013 corresponds to\u00a0<code>paRequest<\/code>\u00a0and holds the 3D Secure request data for the issuer.<\/li>\n<li><code>MD<\/code>\u00a0\u2013 corresponds to\u00a0<code>md<\/code>. A payment session identifier returned by the card issuer.  Note that it must be uppercase in the POST message to the issuer.<\/li>\n<li><code>TermUrl<\/code>\u00a0\u2013 corresponds to\u00a0<code>termUrl<\/code>.\u00a0After completing 3D Secure verification on the card issuer site, the shopper is redirected back to the merchant site.\u00a0This URL value specifies which merchant site page the shopper goes back to. The maximum size is 1024 characters.<\/li>\n<\/ul>\n<p>The following sample shows an example HTML form:<\/p>\n<pre><code class=\"language-xml\">&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"utf-8\"&gt;\n        &lt;title&gt;Adyen - Create 3D Secure Payment&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body onload=\"document.getElementById('3dform').submit();\"&gt;\n        &lt;form method=\"POST\" action=\"${IssuerUrl}\" id=\"3dform\"&gt;\n            &lt;input type=\"hidden\" name=\"PaReq\" value=\"${PaReq}\" \/&gt;\n            &lt;input type=\"hidden\" name=\"MD\" value=\"${MD}\" \/&gt;\n            &lt;input type=\"hidden\" name=\"TermUrl\" value=\"${TermUrl}\" \/&gt;\n            &lt;noscript&gt;\n                &lt;br&gt;\n                &lt;br&gt;\n                &lt;div style=\"text-align: center\"&gt;\n                    &lt;h1&gt;Processing your 3D Secure Transaction&lt;\/h1&gt;\n                    &lt;p&gt;Please click continue to continue the processing of your 3D Secure transaction.&lt;\/p&gt;\n                    &lt;input type=\"submit\" class=\"button\" value=\"continue\"\/&gt;\n                &lt;\/div&gt;\n            &lt;\/noscript&gt;\n        &lt;\/form&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h2 id=\"step-3-return-to-the-merchant-site\">Step 3: Return to the merchant site<\/h2>\n<p>After a successful <a href=\"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/3d-secure-1#step-2-redirect-to-the-card-issuer\">3D Secure verification<\/a>, the card issuer redirects the shopper to your website. In this case, you will receive an HTTP POST or GET call to the URL that you specified in\u00a0<code>TermUrl<\/code>. We recommend that you use an HTTPS connection.<\/p>\n<p>The HTTP POST or GET call from the card issuer to your URL includes the following parameters:<\/p>\n<ul>\n<li><code>MD<\/code>\u00a0\u2013 A payment session identifier returned by the card issuer.<\/li>\n<li><code>PaRes<\/code>\u00a0\u2013 A payment authorisation response returned by the card issuer.<\/li>\n<\/ul>\n<p>Pass these parameters in the\u00a0<code>\/authorise3d<\/code>\u00a0payment request to Adyen, as shown in the next step.<\/p>\n<h2 id=\"step-4-complete-the-3d-secure-payment\">Step 4: Complete the 3D Secure payment<\/h2>\n<p>To complete the 3D Secure authenticated payment, make another request to the\u00a0<a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise3d\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise3d<\/a>\u00a0endpoint and pass the following parameters with the call:<\/p>\n<ul>\n<li><code>merchantAccount<\/code>\u00a0\u2013 Your merchant account number.<\/li>\n<li><code>md<\/code>\u00a0\u2013 A payment session identifier returned by the card issuer.<\/li>\n<li><code>paResponse<\/code>\u00a0\u2013 Payment authorisation response returned by the card issuer on the previous step.<\/li>\n<li><code>shopperIP<\/code>\u00a0\u2013 We strongly recommend that you provide <code>shopperIP<\/code> because it is used in a number of risk checks (like location-based and number of payment attempts checks).<\/li>\n<\/ul>\n<p>The following example demonstrates how to complete the 3D Secure payment:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'446288680'\" :code-data=\"[{&quot;language&quot;:&quot;json&quot;,&quot;tabTitle&quot;:&quot;JSON&quot;,&quot;content&quot;:&quot;{  \\n  \\&quot;merchantAccount\\&quot;:\\&quot;TestMerchant\\&quot;,\\n  \\&quot;md\\&quot;:\\&quot;31h..........vOXek7w\\&quot;,\\n  \\&quot;paResponse\\&quot;:\\&quot;eNqtmF........wGVA4Ch\\&quot;,\\n  \\&quot;shopperIP\\&quot;:\\&quot;8.8.8.8\\&quot;\\n}&quot;},{&quot;language&quot;:&quot;xml&quot;,&quot;tabTitle&quot;:&quot;Soap&quot;,&quot;content&quot;:&quot;&lt;soap:Envelope xmlns:soap=\\&quot;http:\\\/\\\/schemas.xmlsoap.org\\\/soap\\\/envelope\\\/\\&quot; xmlns:xsd=\\&quot;http:\\\/\\\/www.w3.org\\\/2001\\\/XMLSchema\\&quot; xmlns:xsi=\\&quot;http:\\\/\\\/www.w3.org\\\/2001\\\/XMLSchema-instance\\&quot;&gt;\\n  &lt;soap:Body&gt;\\n    &lt;ns1:authorise3d xmlns:ns1=\\&quot;http:\\\/\\\/payment.services.adyen.com\\&quot;&gt;\\n      &lt;ns1:paymentRequest3d&gt;\\n         &lt;merchantAccount xmlns=\\&quot;http:\\\/\\\/payment.services.adyen.com\\&quot;&gt;TestMerchant&lt;\\\/merchantAccount&gt;\\n         &lt;md xmlns=\\&quot;http:\\\/\\\/payment.services.adyen.com\\&quot;&gt;31h..........vOXek7w=&lt;\\\/md&gt;\\n         &lt;paResponse xmlns=\\&quot;http:\\\/\\\/payment.services.adyen.com\\&quot;&gt;eNqtmF........wGVA4Ch&lt;\\\/paResponse&gt;\\n         &lt;shopperIP xmlns=\\&quot;http:\\\/\\\/payment.services.adyen.com\\&quot;&gt;8.8.8.8&lt;\\\/shopperIP&gt;\\n      &lt;\\\/ns1:paymentRequest3d&gt;\\n    &lt;\\\/ns1:authorise3d&gt;\\n  &lt;\\\/soap:Body&gt;\\n&lt;\\\/soap:Envelope&gt;&quot;},{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl --user 'user:pass' https:\\\/\\\/pal-test.adyen.com\\\/pal\\\/servlet\\\/Payment\\\/authorise3d \\\\\\n--data-urlencode 'merchantAccount=yourMerchantAccount' \\\\\\n--data-urlencode 'md=d7T...J+xbw==' \\\\\\n--data-urlencode 'paResponse=eNqtmF....7pqfKo='&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;package com.adyen.examples.api.Library;\\n  \\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.service.Payment;\\nimport com.adyen.model.PaymentRequest3d;\\nimport com.adyen.model.BrowserInfo;\\nimport com.adyen.model.Amount;\\n \\npublic class Authorise3dSecurePayment {\\n \\n    public void authorise3dPayment() throws Exception {\\n \\n        \\\/\\\/ Create new Client\\n        Client client = new Client(\\&quot;YourWSUser\\&quot;, \\&quot;YourWSPassword\\&quot;, Environment.TEST, \\&quot;myTestPayment\\&quot;);\\n        Payment payment = new Payment(client);\\n \\n        \\\/\\\/ Create new 3d Payment Request\\n        PaymentRequest3d paymentRequest3d = new PaymentRequest3d();\\n \\n        \\\/\\\/ Set Browser Info\\n        BrowserInfo browserInfo = new BrowserInfo();\\n        browserInfo.setUserAgent(\\&quot;YourUserAgent\\&quot;);\\n        browserInfo.setAcceptHeader(\\&quot;YourAcceptHeader\\&quot;);\\n \\n        \\\/\\\/ Set 3d Payment Request\\n        paymentRequest3d.setMerchantAccount(\\&quot;YourMerchantAccount\\&quot;);\\n        paymentRequest3d.setBrowserInfo(browserInfo);\\n        paymentRequest3d.set3DRequestData(\\&quot;YourMD\\&quot;,\\&quot;YourPaResponse\\&quot;);\\n        paymentRequest3d.setShopperIP(\\&quot;1.2.3.4\\&quot;);\\n        PaymentResult paymentResult = payment.authorise3D(paymentRequest3d);\\n \\n        System.out.println(\\&quot;Payment Result:\\&quot;);\\n        System.out.println(\\&quot;- pspReference: \\&quot; + paymentResult.getPspReference());\\n        System.out.println(\\&quot;- resultCode: \\&quot; + paymentResult.getResultCode());\\n        System.out.println(\\&quot;- authCode: \\&quot; + paymentResult.getAuthCode());\\n        System.out.println(\\&quot;- refusalReason: \\&quot; + paymentResult.getRefusalReason());\\n \\n    }\\n}&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>For information on available fields, refer to\u00a0<a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/authorise3d\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">API Explorer<\/a>.<\/p>\n<h2 id=\"step-5-present-the-payment-result\">Step 5: Present the payment result<\/h2>\n<p>Use the\u00a0 <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#responses-200-resultCode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">resultCode<\/a> from the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise<\/a> or <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise3d\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/authorise3d<\/a> response to present the payment result to your shopper. You will also receive the outcome of the payment asynchronously in a <a href=\"\/pt\/development-resources\/webhooks\">webhook<\/a>.<\/p>\n<p><\/p>\n<p>For card payments, you can receive the following <code>resultCode<\/code> values:<\/p>\n<table>\n<thead>\n<tr>\n<th>resultCode<\/th>\n<th>Description<\/th>\n<th>Action to take<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>Authorised<\/strong><\/td>\n<td>The payment was successful.<\/td>\n<td>Inform the shopper that the payment has been successful. <br> If you are using <a href=\"\/pt\/online-payments\/capture#manual-capture\">manual capture<\/a>, you also need to <a href=\"\/pt\/online-payments\/capture\">capture<\/a> the payment.<\/td>\n<\/tr>\n<tr>\n<td><strong>Cancelled<\/strong><\/td>\n<td>The shopper cancelled the payment.<\/td>\n<td>Ask the shopper whether they want to continue with the order, or ask them to select a different payment method.<\/td>\n<\/tr>\n<tr>\n<td><strong>Error<\/strong><\/td>\n<td>There was an error when the payment was being processed. For more information, check the <a href=\"\/pt\/development-resources\/refusal-reasons\">\n  <code>refusalReason<\/code>\n<\/a> field.<\/td>\n<td>Inform the shopper that there was an error processing their payment.<\/td>\n<\/tr>\n<tr>\n<td><strong>Refused<\/strong><\/td>\n<td>The payment was refused.  For more information, check the <a href=\"\/pt\/development-resources\/refusal-reasons\">\n  <code>refusalReason<\/code>\n<\/a> field.<\/td>\n<td>Ask the shopper to try the payment again using a different payment method.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"testing-3d-secure-payments\">Testing 3D Secure payments<\/h2>\n<p>Before going live, use the following card numbers and credentials to\u00a0test your integration.<\/p>\n<p>We recommend testing each\u00a0<strong>Card Type<\/strong>.<\/p>\n<p>To test how your integration handles different 3D Secure 2 authentication scenarios, use our test card numbers.<\/p>\n<p>All our test cards use the following expiry dates and security codes:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Expiry Date<\/th>\n<th style=\"text-align: left;\">CVC\/CVV<\/th>\n<th style=\"text-align: left;\">CID<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">03\/2030<\/td>\n<td style=\"text-align: left;\">737<\/td>\n<td style=\"text-align: left;\">7373<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>When prompted for 3D Secure 2 text challenges, use the following credentials:<\/p>\n<ul>\n<li>For mobile, use password: <strong>1234<\/strong><\/li>\n<li>For web, use password: <strong>password<\/strong><\/li>\n<\/ul>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Card Type<\/th>\n<th style=\"text-align: left;\">Card Number<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Cartes Bancaires<\/td>\n<td style=\"text-align: left;\">4035 5014 2814 6300<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Maestro <a href=\"#nocvc\">\n  <sup>1<\/sup>\n<\/a><\/td>\n<td style=\"text-align: left;\">5000 5500 0000 0029<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Mastercard<\/td>\n<td style=\"text-align: left;\">5454 5454 5454 5454<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">4917 6100 0000 0000<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a id=\"nocvc\"><\/a> <sup>1<\/sup> This card doesn't require a CVC.<\/p>\n<p>When you make a payment request with these cards, you'll receive the following result codes depending on your integration:<\/p>\n<ul>\n<li><strong>RedirectShopper<\/strong>: You'll receive this result code if you are using the <a href=\"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/3d-secure-1\">Redirect authentication<\/a>.<\/li>\n<li><strong>IdentifyShopper<\/strong>:  You'll receive this result code if you are using the <a href=\"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/native-3ds2\">Native authentication<\/a>.<\/li>\n<li><strong>ChallengeShopper<\/strong>: You might get this result code after you submit the 3D Secure 2 device fingerprinting result in a Native authentication, indicating a challenge flow.<\/li>\n<\/ul>\n<!-- list separator -->\n<p>To test the web-based flow where the device fingerprinting step is skipped (because the issuer's ACS has not configured a <code>threeDSMethodURL<\/code>), and you get a <strong>ChallengeShopper<\/strong> <code>resultCode<\/code> <em>immediately<\/em> after submitting the payment request, use the following card:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Card Type<\/th>\n<th style=\"text-align: left;\">Card Number<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">4212 3456 7891 0006<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To test the frictionless flow, specify in your payment request:<\/p>\n<ul>\n<li><code>amount.value<\/code>: <strong>12002<\/strong><\/li>\n<\/ul>\n<h4 id=\"app-based-integration\">App-based integration<\/h4>\n<p>To test different authentication scenarios for app-based integration, use the following test cards:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Card number<\/th>\n<th style=\"text-align: left;\">Authentication scenario<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">5201 2855 6567 2311<\/td>\n<td style=\"text-align: left;\">Basic text authentication<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5201 2874 9905 2008<\/td>\n<td style=\"text-align: left;\">Basic single select<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5201 2815 9233 1633<\/td>\n<td style=\"text-align: left;\">Basic multi select<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5201 2888 2269 6974<\/td>\n<td style=\"text-align: left;\">Basic out-of-band (OOB) authentication<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5201 2895 0084 3268<\/td>\n<td style=\"text-align: left;\">HTML OOB authentication<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5201 2861 5377 1465<\/td>\n<td style=\"text-align: left;\">App single select then text authentication<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4 id=\"other-scenarios\">Other scenarios<\/h4>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Card number<\/th>\n<th style=\"text-align: left;\">Scenario<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">4199 3500 0000 0002<\/td>\n<td style=\"text-align: left;\">The card is not enrolled for 3D Secure transactions,<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">5201 2829 9900 5515<\/td>\n<td style=\"text-align: left;\">There was a technical error.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>You can check the status of 3D Secure test payments in your\u00a0<a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>\u00a0&gt;\u00a0<strong>Transactions<\/strong>\u00a0&gt;\u00a0<strong>Payments<\/strong>.<\/p>","url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/3d-secure-1","articleFields":{"description":"Learn how you can support both versions of 3D Secure through a redirect page with your classic API integration.","id":"28872045","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"25-08-2023 14:23","sitemap":{"priority":0.3},"parameters":{"anchor_new":"<a href=\/online-payments\/3d-secure\/redirect-3ds2>3D Secure redirect authentication on Checkout API<\/a>","parent_page":"Classic API (<code>\/authorise<\/code>)","new_desc":"integrating using our Checkout APIs"},"feedback_component":true,"filters_component":false},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/3d-secure-1","title":"3D Secure 1 and 2 redirect authentication","content":"\nAdyen is no longer developing the Classic API integration\nThis page is for the Classic API (\/authorise) integration, which we no longer accept new integrations with. \nWe strongly recommend migrating to the newer 3D Secure redirect authentication on Checkout API integration. To use this newer integration, you must also migrate to the Checkout API.\n\n3D Secure\u00a0is a protocol\u00a0provided by credit card schemes. It is an additional authentication protocol that allows you to implement another layer of security on your Card-Not-Present transactions.\nDuring a 3D Secure transaction, the shopper is redirected to a site controlled by the issuing bank\u00a0to answer additional security questions (usually a unique password or SMS verification).\u00a0This reduces the chance of a fraudulent transaction\u00a0occurring.\nWhen 3D Secure is used for personal cards, the\u00a0chargeback liability shifts to the issuing banks.\n\nWhile this liability shift is appealing, there is a significant risk of a lower conversion rate when you use 3D Secure. This is because many shoppers are still not familiar with 3D Secure, so may not pass the verification process. Client-side technical errors may also occur when they are redirected.\nAdyen has developed a robust dynamic 3D Secure system. This lets you choose which transactions are sent for 3D Secure authentication, and which are processed without. For more information, read Dynamic 3D Secure.\n\nManaging PSD2 SCA compliance with 3D Secure\nIf you are implementing 3D Secure to handle PSD2 compliance, your options are to:\n\nLet Adyen handle PSD2 compliance by default.\nConfigure rules using Dynamic 3D Secure.\nSubmit your preference for each transaction in your API request.\n\nIn this integration guide, we talk about the steps on how you can submit 3D Secure requests for options 1 and 2.\nIf you want to use option 3 to send your preference for each transaction in your API request, you will need to submit additional fields. However, note that option 3 overrides our default PSD2 compliance handling logic, including checking if the transaction is out of scope, determining the most suitable exemption type to request for, and evaluating whether to send the exemption in the authentication or authorisation request.\nWe recommend using option 3 only if you have an extensive knowledge of PSD2 SCA regulations and the 3D Secure protocol.\nRequirements\nBefore you begin to integrate, make sure you have followed the Get started with Adyen guide to:\n\nGet an overview of the steps needed to accept live payments.\nCreate your test account.\n\nAfter you have created your test account:\n\nGet your API Key. Save a copy as you'll need it for API calls you make to the Adyen payments platform.\nCheck if 3D Secure 1 is enabled on your account.\n\nEnable 3D Secure\nFor the test\u00a0environment, 3D Secure is enabled by default.\nFor the live environment, it is enabled by default for:\n\nBancontact \/ MisterCash\nMaestro\u00a0(SecureCode)\nMastercard (SecureCode)\nVisa (Visa Secure)\n\nContact the\u00a0Support Team\u00a0to configure live 3D Secure transactions for:\n\nAmerican Express (SafeKey)\nDiners \/ Discover (ProtectBuy)\nJCB (J\/Secure)\n\nStep 1: Authorise the 3D Secure payment\n\nThis documentation explains how to implement 3D Secure with the classic integration. For details on our newer integration, refer to 3D Secure 2 on Checkout API instead.\n\nThe following example illustrates the\u00a0\/authorise\u00a0call to initiate a 3D Secure payment.\n\n\nMake a\u00a0POST \/authorise\u00a0request, providing:\n\nreference: Your unique reference for this payment.\namount\n\ncard: Object that contains the shopper's card details.\n\nnumber: Encrypted card number.\nexpiryMonth: Encrypted card expiry month.\nexpiryYear: Encrypted card expiry year.\ncvc: Encrypted card verification code.\n\nholderName: Cardholder's name.\n\nYou can only pass raw card data if you are\u00a0fully PCI compliant. Otherwise, you should use the\u00a0Client-Side Encryption library to authorise a payment.\n\n\n\n\nbrowserInfo: The shopper's browser information.\n\nshopperIP: The shopper's IP address.\n\nIf you are using the redirect authentication for 3D Secure 2, we recommend that you provide all available information to increase the likelihood of achieving a frictionless flow and a higher authorisation rate. In addition to the regular parameters you provide to Adyen, send additional parameters in this list.\n\n\n\n\n\n\n    \n\nResponse\nThe \/authorise response contains a resultCode of either:\n\n\nAuthorised, or any other  resultCodes that you can get for a normal \/authorise request. This can happen in case of a frictionless flow (where a liability shift still occurs), or if the card is not enrolled in the 3D Secure program.\n\n\nRedirectShopper: Indicates that you need to redirect the shopper to the card issuer for 3D Secure authentication. The response also contains: \u00a0\n\npaRequest\nmd\nissuerUrl: URL to where you should redirect the shopper to complete the 3D Secure authentication.\n\n\n\n\u00a0{\n    \"additionalData\": {\n        \"paymentMethod\": \"mc\",\n        \"paymentMethodVariant\": \"maestro\"\n    },\n    \"pspReference\": \"8535033222809597\",\n    \"resultCode\": \"RedirectShopper\",\n    \"issuerUrl\": \"https:\/\/issuer-url-here.com\",\n    \"md\": \"NnheOml4nhgrnx...pP6oBb3KQqKXiYGL3X8=\",\n    \"paRequest\": \"eNpVUttygjAQ\/R...jI+ts3+f4Afk4a3Y\"\n}\nFor more information about these fields, refer to\u00a0PaymentResult.\nStep 2: Redirect to the card issuer\nIf you receive a resultCode RedirectShopper in the  \/authorise response, you need to redirect the shopper to the card issuer for 3D Secure verification.\nYou can use an\u00a0HTML form\u00a0that you submit with an HTTP POST method call to the URL endpoint specified in\u00a0issuerUrl. The form should be self-submitting, with a fallback option in case the shopper disabled JavaScript in their web browser. We recommend that you use an HTTPS connection.\nIn the form, include the following\u00a0input\u00a0elements:\n\nPaReq\u00a0\u2013 corresponds to\u00a0paRequest\u00a0and holds the 3D Secure request data for the issuer.\nMD\u00a0\u2013 corresponds to\u00a0md. A payment session identifier returned by the card issuer.  Note that it must be uppercase in the POST message to the issuer.\nTermUrl\u00a0\u2013 corresponds to\u00a0termUrl.\u00a0After completing 3D Secure verification on the card issuer site, the shopper is redirected back to the merchant site.\u00a0This URL value specifies which merchant site page the shopper goes back to. The maximum size is 1024 characters.\n\nThe following sample shows an example HTML form:\n&lt;!DOCTYPE html&gt;\n&lt;html&gt;\n    &lt;head&gt;\n        &lt;meta charset=\"utf-8\"&gt;\n        &lt;title&gt;Adyen - Create 3D Secure Payment&lt;\/title&gt;\n    &lt;\/head&gt;\n    &lt;body onload=\"document.getElementById('3dform').submit();\"&gt;\n        &lt;form method=\"POST\" action=\"${IssuerUrl}\" id=\"3dform\"&gt;\n            &lt;input type=\"hidden\" name=\"PaReq\" value=\"${PaReq}\" \/&gt;\n            &lt;input type=\"hidden\" name=\"MD\" value=\"${MD}\" \/&gt;\n            &lt;input type=\"hidden\" name=\"TermUrl\" value=\"${TermUrl}\" \/&gt;\n            &lt;noscript&gt;\n                &lt;br&gt;\n                &lt;br&gt;\n                &lt;div style=\"text-align: center\"&gt;\n                    &lt;h1&gt;Processing your 3D Secure Transaction&lt;\/h1&gt;\n                    &lt;p&gt;Please click continue to continue the processing of your 3D Secure transaction.&lt;\/p&gt;\n                    &lt;input type=\"submit\" class=\"button\" value=\"continue\"\/&gt;\n                &lt;\/div&gt;\n            &lt;\/noscript&gt;\n        &lt;\/form&gt;\n    &lt;\/body&gt;\n&lt;\/html&gt;\nStep 3: Return to the merchant site\nAfter a successful 3D Secure verification, the card issuer redirects the shopper to your website. In this case, you will receive an HTTP POST or GET call to the URL that you specified in\u00a0TermUrl. We recommend that you use an HTTPS connection.\nThe HTTP POST or GET call from the card issuer to your URL includes the following parameters:\n\nMD\u00a0\u2013 A payment session identifier returned by the card issuer.\nPaRes\u00a0\u2013 A payment authorisation response returned by the card issuer.\n\nPass these parameters in the\u00a0\/authorise3d\u00a0payment request to Adyen, as shown in the next step.\nStep 4: Complete the 3D Secure payment\nTo complete the 3D Secure authenticated payment, make another request to the\u00a0\/authorise3d\u00a0endpoint and pass the following parameters with the call:\n\nmerchantAccount\u00a0\u2013 Your merchant account number.\nmd\u00a0\u2013 A payment session identifier returned by the card issuer.\npaResponse\u00a0\u2013 Payment authorisation response returned by the card issuer on the previous step.\nshopperIP\u00a0\u2013 We strongly recommend that you provide shopperIP because it is used in a number of risk checks (like location-based and number of payment attempts checks).\n\nThe following example demonstrates how to complete the 3D Secure payment:\n\n    \n\nFor information on available fields, refer to\u00a0API Explorer.\nStep 5: Present the payment result\nUse the\u00a0 resultCode from the \/authorise or \/authorise3d response to present the payment result to your shopper. You will also receive the outcome of the payment asynchronously in a webhook.\n\nFor card payments, you can receive the following resultCode values:\n\n\n\nresultCode\nDescription\nAction to take\n\n\n\n\nAuthorised\nThe payment was successful.\nInform the shopper that the payment has been successful.  If you are using manual capture, you also need to capture the payment.\n\n\nCancelled\nThe shopper cancelled the payment.\nAsk the shopper whether they want to continue with the order, or ask them to select a different payment method.\n\n\nError\nThere was an error when the payment was being processed. For more information, check the \n  refusalReason\n field.\nInform the shopper that there was an error processing their payment.\n\n\nRefused\nThe payment was refused.  For more information, check the \n  refusalReason\n field.\nAsk the shopper to try the payment again using a different payment method.\n\n\n\nTesting 3D Secure payments\nBefore going live, use the following card numbers and credentials to\u00a0test your integration.\nWe recommend testing each\u00a0Card Type.\nTo test how your integration handles different 3D Secure 2 authentication scenarios, use our test card numbers.\nAll our test cards use the following expiry dates and security codes:\n\n\n\nExpiry Date\nCVC\/CVV\nCID\n\n\n\n\n03\/2030\n737\n7373\n\n\n\nWhen prompted for 3D Secure 2 text challenges, use the following credentials:\n\nFor mobile, use password: 1234\nFor web, use password: password\n\n\n\n\nCard Type\nCard Number\n\n\n\n\nCartes Bancaires\n4035 5014 2814 6300\n\n\nMaestro \n  1\n\n5000 5500 0000 0029\n\n\nMastercard\n5454 5454 5454 5454\n\n\nVisa\n4917 6100 0000 0000\n\n\n\n 1 This card doesn't require a CVC.\nWhen you make a payment request with these cards, you'll receive the following result codes depending on your integration:\n\nRedirectShopper: You'll receive this result code if you are using the Redirect authentication.\nIdentifyShopper:  You'll receive this result code if you are using the Native authentication.\nChallengeShopper: You might get this result code after you submit the 3D Secure 2 device fingerprinting result in a Native authentication, indicating a challenge flow.\n\n\nTo test the web-based flow where the device fingerprinting step is skipped (because the issuer's ACS has not configured a threeDSMethodURL), and you get a ChallengeShopper resultCode immediately after submitting the payment request, use the following card:\n\n\n\nCard Type\nCard Number\n\n\n\n\nVisa\n4212 3456 7891 0006\n\n\n\nTo test the frictionless flow, specify in your payment request:\n\namount.value: 12002\n\nApp-based integration\nTo test different authentication scenarios for app-based integration, use the following test cards:\n\n\n\nCard number\nAuthentication scenario\n\n\n\n\n5201 2855 6567 2311\nBasic text authentication\n\n\n5201 2874 9905 2008\nBasic single select\n\n\n5201 2815 9233 1633\nBasic multi select\n\n\n5201 2888 2269 6974\nBasic out-of-band (OOB) authentication\n\n\n5201 2895 0084 3268\nHTML OOB authentication\n\n\n5201 2861 5377 1465\nApp single select then text authentication\n\n\n\nOther scenarios\n\n\n\nCard number\nScenario\n\n\n\n\n4199 3500 0000 0002\nThe card is not enrolled for 3D Secure transactions,\n\n\n5201 2829 9900 5515\nThere was a technical error.\n\n\n\nYou can check the status of 3D Secure test payments in your\u00a0Customer Area\u00a0&gt;\u00a0Transactions\u00a0&gt;\u00a0Payments.","type":"page","locale":"pt","boost":15,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Classic integrations for Ecommerce","lvl3":"Classic API integration","lvl4":"3D Secure authentication","lvl5":"3D Secure 1 and 2 redirect 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\/classic-integrations","lvl3":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration","lvl4":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication","lvl5":"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/3d-secure-authentication\/3d-secure-1"},"levels":6,"category":"Online Payments","category_color":"green","tags":["Secure","redirect","authentication"]},"articleFiles":{"446288680.json":"<p alt=\"\">446288680.json<\/p>","927048048.json":"<p alt=\"\">927048048.json<\/p>","1889288666.json":"<p alt=\"\">1889288666.json<\/p>"}}
