{"title":"Client-Side Encryption (CSE)","category":"default","creationDate":1776961627,"content":"<div class=\"sc-notice warning\"><div>\n<p><strong>The Client-Side Encryption (CSE) Web integrations are being phased out<\/strong><br \/>\nThis means we are:<\/p>\n<ul>\n<li>No longer developing the CSE integration.<\/li>\n<li>Not accepting new CSE integrations.<\/li>\n<\/ul>\n<p>Switch to one of our latest <a href=\"\/pt\/online-payments\/build-your-integration\/sessions-flow?platform=Web\">Web integrations<\/a>, to accept payments on your website.<\/p>\n<p>Mobile integrations aren't affected.<\/p>\n<\/div><\/div>\n<div class=\"additional-info-block output-inline\">\n<div class=\"additional-info-block__body\"><p><strong>Local payment methods<\/strong><\/p><p>If you want to learn how to accept local payment methods, see <a href=\"\/pt\/online-payments\/classic-integrations\/hosted-payment-pages\/directory-lookup\">Directory Lookup<\/a>.<\/p><\/div><\/div>\n\n<p>The Client-Side Encryption (CSE) integration lets you accept payments on your website and mobile application while encrypting card data in your shopper's browser using the Adyen encryption library.<\/p>\n<p>To help you encrypt all sensitive card data on a client side, Adyen can host the JavaScript library and\u00a0your key. In addition, you can decide to host the library by yourself, or use only the JavaScript in the HTML page.<\/p>\n<h2 id=\"before-you-begin\">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<ul>\n<li>Get your\u00a0<a href=\"\/pt\/development-resources\/api-credentials#generate-api-key\">API key<\/a>\u00a0or\u00a0<a href=\"\/pt\/development-resources\/api-credentials#basic-authentication\">basic authentication<\/a>\u00a0credentials. Save a copy\u00a0as you'll need it for\u00a0API calls you make to the Adyen payments platform.<\/li>\n<li>Get the <a href=\"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/client-side-encryption\/cse-library-public-key-location-and-token\">Library location from the Customer Area<\/a>. This is a unique URL for you to retrieve the CSE library hosted by Adyen.<\/li>\n<\/ul>\n<h2 id=\"overview\">Overview<\/h2>\n<p>Your card payments go\u00a0through many stages. The diagram below helps you understand the flow:<\/p>\n<p><img alt=\"\" src=\"\/user\/pages\/docs\/02.online-payments\/60.classic-integrations\/01.classic-api-integration\/01.client-side-encryption\/cards-flow-cse.png\" \/><\/p>\n<div class=\"sc-notice info\"><div>\n<p>If you are integrating the plataforma de pagamentos da Adyen with a third-party system, we strongly recommend you follow\u00a0defensive programming\u00a0best practices.<\/p>\n<\/div><\/div>\n<h2 id=\"client-side\">Client side<\/h2>\n<p>Create a payment form integrated with the Client-Side\u00a0Encryption (CSE) library, which you can\u00a0retrieve\u00a0using the unique URL provided to you by Adyen.  Ensure that your payment form includes the\u00a0<a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">mandatory fields<\/a>.<\/p>\n<div class=\"notices yellow\">\n<p>You must implement <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Security\/Subresource_Integrity\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Subresource Integrity<\/a> in your CSE integration before March 31, 2025, to comply with <a href=\"\/pt\/development-resources\/pci-dss-compliance-guide\/\">PCI DSS v4.0.1<\/a>.<\/p>\n<\/div>\n<p>To implement Subresource Integrity for your CSE integration:<\/p>\n<ol>\n<li>In your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, go to <strong>Developers<\/strong> &gt; <strong>API credentials<\/strong>, and select your web service user (<strong>ws@Company.[YourCompanyAccount]<\/strong>) from the users list.<\/li>\n<li>Under <strong>Client side encryption<\/strong>, copy the <strong>Integrity hash<\/strong>.<\/li>\n<li>Include your integrity hash when loading the CSE library.<\/li>\n<\/ol>\n<pre><code class=\"language-xml\">&lt;script type=\"text\/javascript\" src=\"https:\/\/test.adyen.com\/hpp\/cse\/js\/[YOUR_UNIQUE_GENERATED_LIBRARY].shtml\"\n        integrity=\"[YOUR_INTEGRITY_HASH]\"\n        crossorigin=\"anonymous\"&gt;\n&lt;\/script&gt;\n&lt;form method=\"POST\" action=\"[YOUR_PAYMENT_HANDLER_URL]\" id=\"adyen-encrypted-form\"&gt;\n    &lt;input type=\"text\" size=\"20\" data-encrypted-name=\"number\"\/&gt;\n    &lt;input type=\"text\" size=\"20\" data-encrypted-name=\"holderName\"\/&gt;\n    &lt;input type=\"text\" size=\"2\" data-encrypted-name=\"expiryMonth\"\/&gt;\n    &lt;input type=\"text\" size=\"4\" data-encrypted-name=\"expiryYear\"\/&gt;\n    &lt;input type=\"text\" size=\"4\" data-encrypted-name=\"cvc\"\/&gt;\n    &lt;input type=\"hidden\" value=\"[generate on server side]\" data-encrypted-name=\"generationtime\"\/&gt;\n    &lt;input type=\"submit\" value=\"Pay\"\/&gt;\n&lt;\/form&gt;\n&lt;script&gt;\n\/\/ The form element to encrypt.\nvar form = document.getElementById('adyen-encrypted-form');\n\/\/ See https:\/\/github.com\/Adyen\/CSE-JS\/blob\/master\/Options.md for details on the options to use.\nvar options = {};\n\/\/ Bind encryption options to the form.\nadyen.createEncryptedForm(form, options);\n&lt;\/script&gt;<\/code><\/pre>\n<div class=\"sc-notice warning\"><div>\n<p>You must encrypt card input fields by annotating them with the\u00a0<code>data-encrypted-name<\/code>\u00a0attribute. <strong>Do\u00a0not<\/strong>\u00a0use the\u00a0<code>name<\/code>\u00a0attribute.<\/p>\n<p>This ensures that the call does not send unencrypted card data to your server.<\/p>\n<\/div><\/div>\n<p>The\u00a0<code>generationtime<\/code>\u00a0field is used to include a server-side\u00a0timestamp in the data you submit the form. It determines whether a payment request is valid or not. Adyen refuses the transactions sent later than 24 hours from the timestamp. This value must be obtained on the\u00a0server-side\u00a0as the client's system clock may not be correctly synchronized which can cause\u00a0the payment transaction to fail.<\/p>\n<p><strong>generationtime:<\/strong><\/p>\n<ul>\n<li>Format:\u00a0<a href=\"http:\/\/www.w3.org\/TR\/NOTE-datetime\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">ISO 8601<\/a>;\u00a0\u00a0YYYY-MM-DDThh:mm:ss.sssTZD<a href=\"http:\/\/www.w3.org\/TR\/NOTE-datetime\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\"><\/a><\/li>\n<li>Example:\u00a0<em>2017-07-17T13:42:40.428+01:00<\/em><\/li>\n<\/ul>\n<h3 id=\"prevent-payment-form-reload\">Prevent payment form reload<\/h3>\n<p>If you have implemented a single-page interface\u00a0and do not want the form to reload the page when the payment gets submitted, implement the <code>onsubmit<\/code>\u00a0option.<\/p>\n<p>After including the\u00a0JavaScript cryptographic library, you can use JavaScript or AJAX to customize the POST submission behaviour.<\/p>\n<p>For example, you can:<\/p>\n<ul>\n<li>Pass an additional\u00a0options\u00a0parameter in the <code>createEncryptedForm<\/code> method.<\/li>\n<li>Change the name of the encrypted data container.\u00a0Its default name is\u00a0<code>adyen-encrypted-data<\/code>.<\/li>\n<li>Submit the form using AJAX instead of the default submit action, as shown in this example:<\/li>\n<\/ul>\n<pre><code class=\"language-js\">var encryptedBlobFieldName = \"myFieldName\";\n\noptions.name = encryptedBlobFieldName;\noptions.onsubmit = function(e) {\n    var encryptedData = form.elements[encryptedBlobFieldName].value;\n    \/\/ ... Your AJAX code here ....\n    e.preventDefault();\n};\n\nadyen.createEncryptedForm(form, options);<\/code><\/pre>\n<h2 id=\"server-side\">Server side<\/h2>\n<p>From your server, make an HTTP POST request to the\u00a0 <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\n  <code>\/authorise<\/code>\n<\/a> \u00a0endpoint.<\/p>\n<h3 id=\"authorise-request\">Authorise request<\/h3>\n<div class=\"additional-info-block output-inline\">\n<div class=\"additional-info-block__body\"><p><strong>Test cards<\/strong><\/p><p>To test the payment request, use one of our\u00a0<a href=\"\/pt\/development-resources\/test-cards-and-credentials\/test-card-numbers\">test credit cards<\/a>.<\/p><\/div><\/div>\n\n<p>In this request, include\u00a0<code>merchantAccount<\/code>,\u00a0<code>reference<\/code>, and the payment\u00a0<code>amount<\/code>. The amount's value is in minor units, e.g. 20000 is 200 euros. You can find the number of decimal points per currency in\u00a0<a href=\"\/pt\/development-resources\/currency-codes\">Currency codes<\/a>.\u2028\u2028<\/p>\n<p>The\u00a0<code>additionalData<\/code>\u00a0object in the payment authorisation request needs to include\u00a0<code>card.encrypted.json<\/code>, which you should set to the\u00a0<code>adyen.encrypted.data<\/code>\u00a0value. This value contains encrypted information about the shopper's credit card, as well as the timestamp:<\/p>\n<ul>\n<li>Card holder<\/li>\n<li>Card number<\/li>\n<li>CVC<\/li>\n<li>Expiry date<\/li>\n<li>Generation time<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'86649958'\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"JSON\",\"content\":\"{\\n   \\\"additionalData\\\":{\\n      \\\"card.encrypted.json\\\":\\\"adyenjs_0_1_4p1$...\\\"\\n   },\\n   \\\"amount\\\":{\\n      \\\"value\\\":20000,\\n      \\\"currency\\\":\\\"EUR\\\"\\n   },\\n   \\\"reference\\\":\\\"YOUR_REFERENCE\\\",\\n   \\\"merchantAccount\\\":\\\"YOUR_MERCHANT_ACCOUNT\\\"\\n}\"},{\"language\":\"xml\",\"tabTitle\":\"Soap\",\"content\":\"&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;additionalData xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;\\n               &lt;entry&gt;\\n                  &lt;key xsi:type=\\\"xsd:string\\\"&gt;card.encrypted.json&lt;\\\/key&gt;\\n                  &lt;value xsi:type=\\\"xsd:string\\\"&gt;Your generated key string from the JavaScript encryption... adyenjs_0_1_1$eGcJxidHkg5LYQ...m2uZkto4PKRW4YCA8dZYQ ==&lt;\\\/value&gt;\\n               &lt;\\\/entry&gt;\\n            &lt;\\\/additionalData&gt;\\n            &lt;amount xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;\\n               &lt;currency xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;EUR&lt;\\\/currency&gt;\\n               &lt;value xmlns=\\\"http:\\\/\\\/common.services.adyen.com\\\"&gt;2000&lt;\\\/value&gt;\\n            &lt;\\\/amount&gt;\\n            &lt;merchantAccount xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;YOUR_MERCHANT_ACCOUNT&lt;\\\/merchantAccount&gt;\\n            &lt;reference xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;YOUR_REFERENCE&lt;\\\/reference&gt;\\n            &lt;shopperEmail xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;s.hopper@test.com&lt;\\\/shopperEmail&gt;\\n            &lt;shopperIP xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;61.294.12.12&lt;\\\/shopperIP&gt;\\n            &lt;shopperReference xmlns=\\\"http:\\\/\\\/payment.services.adyen.com\\\"&gt;YOUR_UNIQUE_SHOPPER_ID&lt;\\\/shopperReference&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<p>To know more about the required fields, see\u00a0<a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/authorise\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PaymentRequest<\/a>.<\/p>\n<h3 id=\"authorise-response\">Authorise response<\/h3>\n<p>If the message passes validation, Adyen performs a\u00a0<a href=\"\/pt\/risk-management\/configure-standard-risk-rules\">risk analysis<\/a>. Depending on the outcome, we attempt\u00a0authorisation, and\u00a0you receive a payment response. The response includes a PSP reference that uniquely identifies each payment and can be used later for capture, cancel, or refund.\u2028\u2028<\/p>\n<pre><code class=\"language-json\">{\n  \"pspReference\": \"8814689190961342\",\n  \"resultCode\": \"Authorised\"\n}<\/code><\/pre>\n<p>To make sure your integration can handle unhappy scenarios, you can <a href=\"\/pt\/development-resources\/testing\/result-codes\/classic-api\">test getting different refusal reasons<\/a> with your integration.<\/p>\n<p>For\u00a0other possible response codes and fields of the payment response, 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>.\u2028\u2028\u2028\u2028\u2028\u2028<\/p>","url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/client-side-encryption","articleFields":{"next_steps":[{"title":"Capture a payment","description":"Capture approved authorisation when it is necessary to complete the payment.","url":"\/online-payments\/capture","required":true},{"title":"Set up webhooks","description":"Receive confirmation when a payment is authorised or fails.","url":"\/development-resources\/webhooks","required":true},{"title":"Go live","description":"Before going live, fill out the\u00a0SAQ-A form\u00a0and Adyen will add the Client-Side Encryption (CSE) role to your API credential.","url":"\/development-resources\/pci-dss-compliance-guide#online-payments","required":true}],"id":"36192726","type":"page","_expandable":{"operations":""},"status":"current","sitemap":{"priority":0.1}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/online-payments\/classic-integrations\/classic-api-integration\/client-side-encryption","title":"Client-Side Encryption (CSE)","content":"\nThe Client-Side Encryption (CSE) Web integrations are being phased out\nThis means we are:\n\nNo longer developing the CSE integration.\nNot accepting new CSE integrations.\n\nSwitch to one of our latest Web integrations, to accept payments on your website.\nMobile integrations aren't affected.\n\n\nLocal payment methodsIf you want to learn how to accept local payment methods, see Directory Lookup.\n\nThe Client-Side Encryption (CSE) integration lets you accept payments on your website and mobile application while encrypting card data in your shopper's browser using the Adyen encryption library.\nTo help you encrypt all sensitive card data on a client side, Adyen can host the JavaScript library and\u00a0your key. In addition, you can decide to host the library by yourself, or use only the JavaScript in the HTML page.\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\u00a0API key\u00a0or\u00a0basic authentication\u00a0credentials. Save a copy\u00a0as you'll need it for\u00a0API calls you make to the Adyen payments platform.\nGet the Library location from the Customer Area. This is a unique URL for you to retrieve the CSE library hosted by Adyen.\n\nOverview\nYour card payments go\u00a0through many stages. The diagram below helps you understand the flow:\n\n\nIf you are integrating the plataforma de pagamentos da Adyen with a third-party system, we strongly recommend you follow\u00a0defensive programming\u00a0best practices.\n\nClient side\nCreate a payment form integrated with the Client-Side\u00a0Encryption (CSE) library, which you can\u00a0retrieve\u00a0using the unique URL provided to you by Adyen.  Ensure that your payment form includes the\u00a0mandatory fields.\n\nYou must implement Subresource Integrity in your CSE integration before March 31, 2025, to comply with PCI DSS v4.0.1.\n\nTo implement Subresource Integrity for your CSE integration:\n\nIn your Customer Area, go to Developers &gt; API credentials, and select your web service user (ws@Company.[YourCompanyAccount]) from the users list.\nUnder Client side encryption, copy the Integrity hash.\nInclude your integrity hash when loading the CSE library.\n\n&lt;script type=\"text\/javascript\" src=\"https:\/\/test.adyen.com\/hpp\/cse\/js\/[YOUR_UNIQUE_GENERATED_LIBRARY].shtml\"\n        integrity=\"[YOUR_INTEGRITY_HASH]\"\n        crossorigin=\"anonymous\"&gt;\n&lt;\/script&gt;\n&lt;form method=\"POST\" action=\"[YOUR_PAYMENT_HANDLER_URL]\" id=\"adyen-encrypted-form\"&gt;\n    &lt;input type=\"text\" size=\"20\" data-encrypted-name=\"number\"\/&gt;\n    &lt;input type=\"text\" size=\"20\" data-encrypted-name=\"holderName\"\/&gt;\n    &lt;input type=\"text\" size=\"2\" data-encrypted-name=\"expiryMonth\"\/&gt;\n    &lt;input type=\"text\" size=\"4\" data-encrypted-name=\"expiryYear\"\/&gt;\n    &lt;input type=\"text\" size=\"4\" data-encrypted-name=\"cvc\"\/&gt;\n    &lt;input type=\"hidden\" value=\"[generate on server side]\" data-encrypted-name=\"generationtime\"\/&gt;\n    &lt;input type=\"submit\" value=\"Pay\"\/&gt;\n&lt;\/form&gt;\n&lt;script&gt;\n\/\/ The form element to encrypt.\nvar form = document.getElementById('adyen-encrypted-form');\n\/\/ See https:\/\/github.com\/Adyen\/CSE-JS\/blob\/master\/Options.md for details on the options to use.\nvar options = {};\n\/\/ Bind encryption options to the form.\nadyen.createEncryptedForm(form, options);\n&lt;\/script&gt;\n\nYou must encrypt card input fields by annotating them with the\u00a0data-encrypted-name\u00a0attribute. Do\u00a0not\u00a0use the\u00a0name\u00a0attribute.\nThis ensures that the call does not send unencrypted card data to your server.\n\nThe\u00a0generationtime\u00a0field is used to include a server-side\u00a0timestamp in the data you submit the form. It determines whether a payment request is valid or not. Adyen refuses the transactions sent later than 24 hours from the timestamp. This value must be obtained on the\u00a0server-side\u00a0as the client's system clock may not be correctly synchronized which can cause\u00a0the payment transaction to fail.\ngenerationtime:\n\nFormat:\u00a0ISO 8601;\u00a0\u00a0YYYY-MM-DDThh:mm:ss.sssTZD\nExample:\u00a02017-07-17T13:42:40.428+01:00\n\nPrevent payment form reload\nIf you have implemented a single-page interface\u00a0and do not want the form to reload the page when the payment gets submitted, implement the onsubmit\u00a0option.\nAfter including the\u00a0JavaScript cryptographic library, you can use JavaScript or AJAX to customize the POST submission behaviour.\nFor example, you can:\n\nPass an additional\u00a0options\u00a0parameter in the createEncryptedForm method.\nChange the name of the encrypted data container.\u00a0Its default name is\u00a0adyen-encrypted-data.\nSubmit the form using AJAX instead of the default submit action, as shown in this example:\n\nvar encryptedBlobFieldName = \"myFieldName\";\n\noptions.name = encryptedBlobFieldName;\noptions.onsubmit = function(e) {\n    var encryptedData = form.elements[encryptedBlobFieldName].value;\n    \/\/ ... Your AJAX code here ....\n    e.preventDefault();\n};\n\nadyen.createEncryptedForm(form, options);\nServer side\nFrom your server, make an HTTP POST request to the\u00a0 \n  \/authorise\n \u00a0endpoint.\nAuthorise request\n\nTest cardsTo test the payment request, use one of our\u00a0test credit cards.\n\nIn this request, include\u00a0merchantAccount,\u00a0reference, and the payment\u00a0amount. The amount's value is in minor units, e.g. 20000 is 200 euros. You can find the number of decimal points per currency in\u00a0Currency codes.\u2028\u2028\nThe\u00a0additionalData\u00a0object in the payment authorisation request needs to include\u00a0card.encrypted.json, which you should set to the\u00a0adyen.encrypted.data\u00a0value. This value contains encrypted information about the shopper's credit card, as well as the timestamp:\n\nCard holder\nCard number\nCVC\nExpiry date\nGeneration time\n\n\n    \n\nTo know more about the required fields, see\u00a0PaymentRequest.\nAuthorise response\nIf the message passes validation, Adyen performs a\u00a0risk analysis. Depending on the outcome, we attempt\u00a0authorisation, and\u00a0you receive a payment response. The response includes a PSP reference that uniquely identifies each payment and can be used later for capture, cancel, or refund.\u2028\u2028\n{\n  \"pspReference\": \"8814689190961342\",\n  \"resultCode\": \"Authorised\"\n}\nTo make sure your integration can handle unhappy scenarios, you can test getting different refusal reasons with your integration.\nFor\u00a0other possible response codes and fields of the payment response, refer to\u00a0PaymentResult.\u2028\u2028\u2028\u2028\u2028\u2028","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Classic integrations for Ecommerce","lvl3":"Classic API integration","lvl4":"Client-Side Encryption (CSE)"},"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":"\/pt\/online-payments\/classic-integrations\/classic-api-integration\/client-side-encryption"},"levels":5,"category":"Online Payments","category_color":"green","tags":["Client-Side","Encryption","(CSE)"]},"articleFiles":{"cards-flow-cse.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/02.online-payments\/60.classic-integrations\/01.classic-api-integration\/01.client-side-encryption\/cards-flow-cse.png\" \/>","86649958.json":"<p alt=\"\">86649958.json<\/p>"}}
