{"title":"Card Component","category":"default","creationDate":1567783140,"content":"<p>This page explains how to add cards to your existing Web Components integration.<\/p>\n<h2>Requirements<\/h2>\n<p>Select the <a href=\"\/pt\/online-payments\/build-your-integration\">server-side flow<\/a> that your integration uses:<\/p>\n\n<div id=\"tabHNnhy\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Sessions flow&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Requirement&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Integration type&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Make sure that you have built a Sessions flow &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/sessions-flow?platform=Web&amp;amp;integration=Components\\&quot;&gt;Web Components integration&lt;\\\/a&gt;. &lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Setup steps&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Before you begin, &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/add-payment-methods\\&quot;&gt;add cards in your Customer Area&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:&quot;sessions&quot;,&quot;oldTabId&quot;:&quot;sessions-requirements_1&quot;,&quot;relation&quot;:&quot;sessions&quot;},{&quot;title&quot;:&quot;Advanced flow&quot;,&quot;content&quot;:&quot;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Requirement&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Integration type&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Make sure that you have built an Advanced flow &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/advanced-flow?platform=Web&amp;amp;integration=Components\\&quot;&gt;Web Components integration&lt;\\\/a&gt;. &lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;strong&gt;Setup steps&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Before you begin, &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/add-payment-methods\\&quot;&gt;add cards in your Customer Area&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&quot;,&quot;altTitle&quot;:&quot;advanced&quot;,&quot;oldTabId&quot;:&quot;advanced-requirements_2&quot;,&quot;relation&quot;:&quot;advanced&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>Import resources for v6<\/h2>\n<p>If you are using Web Components v6, <a href=\"\/pt\/online-payments\/build-your-integration\/?platform=Web&amp;integration=Drop-in&amp;version=6.0.0\">import the Component<\/a> that you need for cards:<\/p>\n<pre><code class=\"language-js\">import { AdyenCheckout, Card } from '@adyen\/adyen-web'<\/code><\/pre>\n<h2>API reference<\/h2>\n<p>You do not need to send additional fields for cards. To see optional fields that you can send for all payment methods, choose the endpoint you integrated:<\/p>\n<ul>\n<li> <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>&#58; This is the default with <a href=\"\/pt\/online-payments\/build-your-integration\/sessions-flow?platform=Web&amp;integration=Components\">Components v5.0.0<\/a> or later.<\/li>\n<li> <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>&#58; If you implemented an <a href=\"\/pt\/online-payments\/build-your-integration\">additional use case<\/a>.<\/li>\n<\/ul>\n<p>You can also send additional fields for specific use cases for example if you want to <a href=\"#show-debit-credit-separately\">show debit and credit cards separately<\/a> or make <a href=\"#recurring-payments\">recurring card payments<\/a>.<\/p>\n<h2>Component configuration<\/h2>\n<h3>Step 1: Create a DOM element<\/h3>\n<p>Create a DOM element on your checkout page, placing it where you want the payment method form to be rendered:<\/p>\n<pre><code class=\"language-html\"> &lt;div id=\"card-container\"&gt;&lt;\/div&gt;<\/code><\/pre>\n<h3>Step 2: Create an instance of the Component<\/h3>\n<h4>v6.0.0 or later<\/h4>\n<p>Create an instance of the Component, passing:<\/p>\n<ul>\n<li>Your instance of <code>AdyenCheckout<\/code>.<\/li>\n<\/ul>\n<pre><code class=\"language-js\">const card = new Card(checkout).mount('#card-container');<\/code><\/pre>\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=\"#v5-x-x-or-earlier\">\n                                    <h4 class=\"adl-accordion__title\">v5.x.x or earlier<\/h4>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>Use the <code>create<\/code> method of your <code>AdyenCheckout<\/code> instance, in this case <code>checkout<\/code>, to create the Component:<\/p>\n<pre><code class=\"language-js\">const cardComponent = checkout.create('card').mount('#card-container');<\/code><\/pre>\n\n        <\/div>\n    <\/div>\n<\/div>\n\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=\"#optional-configuration\">\n                                    <h2 class=\"adl-accordion__title\">Optional configuration<\/h2>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>Include optional configuration in the card configuration object. For example, to configure showing the cardholder name and billing address fields as required, and to customize the icon for Visa:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Optional card configuration object'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;const cardConfiguration = {\\n   hasHolderName: true, \\\/\\\/ Show the cardholder name field.\\n   holderNameRequired: true, \\\/\\\/ Mark the cardholder name field as required.\\n   billingAddressRequired: true, \\\/\\\/ Show the billing address input fields and mark them as required.\\n   brandsConfiguration: {\\n     visa: {                \\n       icon: 'https:\\\/\\\/...' } \\\/\\\/ Custom icon for Visa.\\n   }\\n};&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h4>v6.0.0 or later<\/h4>\n<p>Create an instance of the Component, passing:<\/p>\n<ul>\n<li>Your instance of <code>AdyenCheckout<\/code>.<\/li>\n<li>The  payment method-specific configuration.<\/li>\n<\/ul>\n<pre><code class=\"language-js\">const cardComponent = new Card(checkout, cardConfiguration).mount('#card-container');<\/code><\/pre>\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=\"#v5-x-x-or-earlier\">\n                                    <h4 class=\"adl-accordion__title\">v5.x.x or earlier<\/h4>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>Use the <code>create<\/code> method of your <code>AdyenCheckout<\/code> instance, in this case <code>checkout<\/code>, to create an instance of the Component. Add the configuration object if you created one.<\/p>\n<pre><code class=\"language-js\">const cardComponent = checkout.create('card', cardConfiguration).mount('#card-container');<\/code><\/pre>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h4>Properties<\/h4>\n<p><a id=\"component-configuration-card\"><\/a><\/p>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Description<\/th>\n<th>Default<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>brands<\/code><\/td>\n<td>Array of card brands that will be recognized. For a list of possible values, refer to <a href=\"\/pt\/payment-methods\/cards\/custom-card-integration#supported-card-types\">Supported card types<\/a>.<\/td>\n<td><code>['mc','visa','amex']<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>brandsConfiguration<\/code><br> <strong>v4.5.0 or later<\/strong><\/td>\n<td>Object where you can customize the icons for different brands. For example, to customize the icon for Visa, include inside the <code>brandsConfiguration<\/code>:  <br>  <code>visa: { icon: 'https:\/\/...' }<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><code>showBrandIcon<\/code><\/td>\n<td>Set to <strong>false<\/strong> to not show the brand logo when the card brand has been recognized.<\/td>\n<td><strong>true<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>showBrandsUnderCardNumber<\/code><br> <strong>v5.12.0 or later<\/strong><\/td>\n<td>Shows brand logos under the card number field when the shopper selects the card payment method. <br> <\/td>\n<td><strong>true<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>enableStoreDetails<\/code><\/td>\n<td>Set to <strong>true<\/strong> to show the checkbox for saving the card details for recurring payments.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>hasHolderName<\/code><\/td>\n<td>Set to <strong>true<\/strong> to show the input field for the cardholder name.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>holderNameRequired<\/code><\/td>\n<td>Set to <strong>true<\/strong> to make the cardholder name a required field. To show the field, you additionally need to set <code>hasHolderName<\/code> to <strong>true<\/strong>.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>positionHolderNameOnTop<\/code><br> <strong>v4.2.0 or later<\/strong><\/td>\n<td>Renders the cardholder name field at the top of the payment form.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>hideCVC<\/code><a id=\"styles\"><\/a><\/td>\n<td>Set to <strong>true<\/strong> to hide the CVC field.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>configuration.socialSecurityNumberMode<\/code><br> <strong>v4.2.0 or later<\/strong><\/td>\n<td>Renders a social security number field. For example, this is required for certain card payments in Brazil. Possible values are: <br> - <strong>show<\/strong>: Always renders the field. <br> - <strong>hide<\/strong>: Never renders the field. <br> - <strong>auto<\/strong>: Renders the field based on the card's BIN.<\/td>\n<td><strong>auto <\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>styles<\/code><\/td>\n<td>Set a style object to customize the  card input fields. <br> For a list of supported properties, refer to <a href=\"\/pt\/payment-methods\/cards\/custom-card-integration#styling\">Styling card input fields<\/a>.<\/td>\n<td>Refer to <br> <a href=\"\/pt\/payment-methods\/cards\/custom-card-integration#default-style\">Default styles and labels<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>billingAddressRequired<\/code><\/td>\n<td>Set to <strong>true<\/strong> to collect the shopper's billing address and mark the fields as required.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>billingAddressMode<\/code> <br> <strong>v5.14.0 or later<\/strong> <a id=\"billing-address-mode\"><\/a><\/td>\n<td>If <code>billingAddressRequired<\/code> is set to <strong>true<\/strong>, you can set this to <strong>partial<\/strong> to require the shopper's postal code instead of the full address.  <br><br> <strong>v5.31.0 or later<\/strong>:<br> When set to <strong>partial<\/strong>, you can configure <code>data.country<\/code> to validate the postal code your shopper enters.<\/td>\n<td>If <code>billingAddressRequired<\/code> is <strong>false<\/strong>: <strong>none<\/strong>. <br> If <code>billingAddressRequired<\/code> is <strong>true<\/strong>: <strong>full<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>billingAddressAllowedCountries<\/code><\/td>\n<td>Specify allowed country codes for the billing address. For example, <code>['US', 'CA', 'BR']<\/code>.<\/td>\n<td>The <strong>Country<\/strong> field dropdown menu shows a list of all countries.<\/td>\n<\/tr>\n<tr>\n<td><code>installmentOptions<\/code><\/td>\n<td>If you want to offer <a href=\"\/pt\/payment-methods\/cards\/credit-card-installments\">credit card installments<\/a>, specify here the <a href=\"\/pt\/payment-methods\/cards\/credit-card-installments#make-a-payment\">numbers of monthly installments<\/a> that the shopper can choose from. <br> For example, to have <strong>2<\/strong>, and <strong>3<\/strong>, and <strong>4<\/strong> as the default installment options for all cards: <br> <code>{ \"card\": {  \"values\": [2, 3, 4] }}<\/code>. <br> <br> <strong>v3.15.0 or later<\/strong>:<br> You can also configure <code>plans<\/code> for Japanese installments: <code>regular<\/code>, <code>revolving<\/code>, or both. <br> Refer to <a href=\"\/pt\/payment-methods\/cards\/credit-card-installments\/\">credit card installments<\/a> for a code sample.<\/td>\n<td><strong>v3.15.0 or later<\/strong>: <br> <code>plans<\/code>: <code>regular<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>data<\/code><\/td>\n<td>An object containing values to pre-fill Card Component fields. Pre-populating shopper data saves time and reduces checkout friction.<br><br>Examples:<ul><li markdown=\"1\"><code>holderName<\/code>: Pre-fills the cardholder name.<\/li><li markdown=\"1\"><code>billingAddress<\/code>: An object to pre-fill the billing address (e.g., <code>street<\/code>, <code>postalCode<\/code>, <code>city<\/code>, <code>country<\/code>, <code>stateOrProvince<\/code>).<\/li><\/ul><\/td>\n<td>Empty<\/td>\n<\/tr>\n<tr>\n<td><code>placeholder<\/code><\/td>\n<td>An object containing temporary placeholder text for the fields. Placeholders appear in gray and suggest the expected input format to the shopper.<br><br>Examples:<ul><li markdown=\"1\"><code>holderName<\/code>: Placeholder text for the cardholder name.<\/li><li markdown=\"1\"><code>billingAddress<\/code>: An object containing placeholder text for the billing address (e.g., <code>street<\/code>, <code>postalCode<\/code>, <code>city<\/code>, <code>country<\/code>, <code>stateOrProvince<\/code>).<\/li><\/ul><\/td>\n<td>Empty<\/td>\n<\/tr>\n<tr>\n<td><a id=\"minimum-expiry\"><\/a> <code>minimumExpiryDate<\/code><br> \u00a0<strong>v4.3.0 or later<\/strong><\/td>\n<td>If a shopper enters a date that is earlier than specified here, they will see the following error: <br> \"Your card expires before check out date.\"  <br> Format: <code>mm\/yy<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>showInstallmentAmounts<\/code><br> <strong>v3.15.0 or later<\/strong><\/td>\n<td>If you want to offer <a href=\"\/pt\/payment-methods\/cards\/credit-card-installments\">credit card installments<\/a>, set to <strong>true<\/strong> to show the payment amount per installment. <br> Refer to <a href=\"\/pt\/payment-methods\/cards\/credit-card-installments\/\">credit card installments<\/a> for a code sample.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>autoFocus<\/code><\/td>\n<td>Automatically move the focus from date field to the CVC field. <br><br> <strong>v5.8.0 or later<\/strong>:<br> The focus also moves to the date field when the entered card number reaches the expected length.<\/td>\n<td><strong>true<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>SRConfig<\/code> <a id=\"screen-reader-config\"><\/a><\/td>\n<td>Object for configuring screen reader behavior. Does not affect what gets rendered in the checkout form.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><code>SRConfig.collateErrors<\/code><\/td>\n<td>Indicates if all errors in the form are read out after each validation. For example, if there is an error in the card number field, the error is read out after validating each of the other fields, until the error is fixed.<\/td>\n<td><strong>true<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>SRConfig.moveFocus<\/code><\/td>\n<td>Indicates if focus automatically switches to the first field with an error when the shopper selects the <strong>Pay<\/strong> button. <br> Can only be set if <code>SRConfig.collateErrors<\/code> is <strong>true<\/strong>.<\/td>\n<td><strong>false<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>maskSecurityCode<\/code><\/td>\n<td>Set to <strong>true<\/strong> to mask the CVV\/CVC code when your shopper enters it in the Card Component.<\/td>\n<\/tr>\n<tr>\n<td><code>disclaimerMessage<\/code><\/td>\n<td>Object for adding a disclaimer to your Card Component<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><code>disclaimerMessage.message<\/code><\/td>\n<td>A string of text that is displayed in the Card Component. Use <code>%{linkText}<\/code> to reference <code>disclaimerMessage.linkText<\/code>, if defined.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><code>disclaimerMessage.linkText<\/code><\/td>\n<td>The hyperlink text.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><code>disclaimerMessage.link<\/code><\/td>\n<td>The hyperlink destination. The link opens in a new tab.<\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td><code>addressSearchDebounceMs<\/code><\/td>\n<td>For the <a href=\"#implementing-the-address-lookup-feature\">address lookup feature<\/a>, the number of milliseconds for the <a href=\"https:\/\/www.freecodecamp.org\/news\/javascript-debounce-example\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">debounce<\/a> of the <code>onAddressLookup<\/code> callback.<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h4>Events<\/h4>\n<p>You can also customize your shopper's experience when specific events occur.<\/p>\n<table>\n<thead>\n<tr>\n<th>Event<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>onChange<\/code><\/td>\n<td>Called when the shopper enters data in the card input fields. Here you have the option to override your <a href=\"\/pt\/online-payments\/components-web#step-2-add-components\">main Adyen Checkout configuration<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>onSubmit<\/code><\/td>\n<td>Called when the shopper selects the <strong>Pay<\/strong> button and payment details are valid. Required if you need to <a href=\"\/pt\/online-payments\/build-your-integration#supported-use-cases\">update the payment amount after rendering the Component<\/a>. For this additional use case, you need to integrate additional endpoints.<\/td>\n<\/tr>\n<tr>\n<td><code>onLoad<\/code><\/td>\n<td>Called when all card input fields have been created but are not yet ready to use.<\/td>\n<\/tr>\n<tr>\n<td><code>onConfigSuccess<\/code><\/td>\n<td>Called when all card input fields are ready to use.<\/td>\n<\/tr>\n<tr>\n<td><code>onFieldValid<\/code> <a id=\"on-field-valid\"><\/a><\/td>\n<td>Called when the input in a field becomes valid and also if the input changes and becomes invalid. For the card number field, it returns the following: <br> - <code>endDigits<\/code>: the last 4 digits of the card number. <br> - <strong>v5.10.0 or later<\/strong> <code>issuerBin<\/code>: if the card number has sixteen or more digits, this is the first eight digits of the card number.<\/td>\n<\/tr>\n<tr>\n<td><code>onBrand<\/code><\/td>\n<td>Called when Drop-in detects the card brand.<\/td>\n<\/tr>\n<tr>\n<td><code>onError<\/code><\/td>\n<td>Called when Drop-in detects an invalid card number, invalid expiry date, or incomplete field. Called again when errors are cleared. <br>Starting from <strong>v5.0.0<\/strong>, the <code>onError<\/code> handler is no longer used only for card component related errors, and returns an object for every component.<\/td>\n<\/tr>\n<tr>\n<td><code>onFocus<\/code><\/td>\n<td>Called when focus moves to a field.<\/td>\n<\/tr>\n<tr>\n<td><code>onBlur<\/code> <br> <a href=\"\/pt\/online-payments\/release-notes?integration_type=web&amp;version=6.0.0\">\n  <strong>v6.0.0 or later<\/strong>\n<\/a><\/td>\n<td>Called when focus moves away from a field.<\/td>\n<\/tr>\n<tr>\n<td><code>onBinLookup<\/code><br> <a href=\"\/pt\/online-payments\/release-notes?integration_type=web&amp;version=3.21.0\">\n  <strong>v3.21.0 or later<\/strong>\n<\/a><\/td>\n<td>Called when the shopper enters the card number. Requires a minimum of 11 digits of the card number to be entered. Returns the following:<br> - <code>type<\/code>: type of the card. <br> - <code>brands<\/code>: brands on the card. <br> - <code>supportedBrands<\/code>: the brands you support. <br> - <code>detectedBrands<\/code>: brands detected on the card. <br> - <strong>v5.30.1 or later<\/strong> <code>issuingCountryCode<\/code>: the two-letter country code of the country where the card was issued.<br> - <strong>v5.43.0 or later<\/strong> <code>paymentMethodVariant<\/code>: the <a href=\"\/pt\/development-resources\/paymentmethodvariant\">card type variant<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>onBinValue<\/code><br> <a href=\"\/pt\/online-payments\/release-notes?integration_type=web&amp;version=3.10.1\">\n  <strong>v3.10.1 or later<\/strong>\n<\/a><\/td>\n<td>Called when the shopper enters the card number. Returns <code>binValue<\/code>: the first 6 digits of the card number.  <br> Requires the <a href=\"\/pt\/development-resources\/client-side-authentication\/migrate-from-origin-key-to-client-key\">client key<\/a> for client-side authentication.<\/td>\n<\/tr>\n<tr>\n<td><code>onAddressLookup<\/code><br> <a href=\"\/pt\/online-payments\/release-notes?integration_type=web&amp;version=5.45.0\">\n  <strong>v5.45.0 or later<\/strong>\n<\/a><\/td>\n<td>Called when the shopper enters characters in the address input fields. You must <a href=\"#implementing-the-address-lookup-feature\">implement it with an external address lookup API<\/a>. <br> The following properties must be configured:<br>- <code>billingAddressRequired<\/code>: <strong>true<\/strong><br>- <code>billingAddressMode<\/code>: <strong>full<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>onAddressSelected<\/code><br> <a href=\"\/pt\/online-payments\/release-notes?integration_type=web&amp;version=5.54.0\">\n  <strong>v5.54.0 or later<\/strong>\n<\/a><\/td>\n<td>Call when the shopper selects a suggested address. You must <a href=\"#implementing-the-address-lookup-feature\">implement it with an external address lookup API<\/a> that uses two API requests to complete the suggestion. <br> The following properties must be configured:<br>- <code>billingAddressRequired<\/code>: <strong>true<\/strong><br>- <code>billingAddressMode<\/code>: <strong>full<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"implementing-the-address-lookup-feature\">Implementing the address lookup feature<\/h3>\n<p>The Component includes optional callbacks that you can use to suggest addresses to the shopper when they enter data into address input fields. The callbacks work with an external application that you choose to get addresses.<\/p>\n<p>There are different ways that external APIs work:<\/p>\n<ul>\n<li><strong>One request<\/strong>: one API request is required that returns a list of items with full address details. For example, you can use this with <a href=\"https:\/\/radar.com\/product\/address-autocomplete-api\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Radar<\/a>.<\/li>\n<li><strong>Two requests<\/strong>: two API requests are required. The first returns a list of items with partial address details. After selecting an item from the list, the second request returns the full details of the selected item. For example, you can use this with <a href=\"https:\/\/developers.google.com\/maps\/documentation\/javascript\/place-autocomplete\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Google Places<\/a>.<\/li>\n<\/ul>\n<p>Choose the implementation you require:<\/p>\n\n<div id=\"tabAdi85\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;One request&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;In this implementation, the external application you use requires only one API request to get a list of addresses and the full addresses.&lt;\\\/p&gt;\\n&lt;p&gt;Implement the &lt;code&gt;onAddressLookup&lt;\\\/code&gt; callback in the &lt;code&gt;cardConfiguration&lt;\\\/code&gt; object. You can see an &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-web\\\/blob\\\/fa3e9c17b020c3c9e649d7e83e5c0254c10caf5b\\\/packages\\\/playground\\\/src\\\/utils.js\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;example of the implementation called &lt;code&gt;searchFunctionExample&lt;\\\/code&gt; in the Github repository&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make an API request to the address lookup API you use.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Map the values from the responses to an array of &lt;code&gt;AddressLookupItem&lt;\\\/code&gt; that includes the following:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Field&lt;\\\/th&gt;\\n&lt;th&gt;Required&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;id&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The unique identifier for this address search result.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;name&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the item that shows up in the list of suggested addresses.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;street&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the street.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;houseNumberOrName&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The number or name of the house.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;postalCode&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries\\\/regions.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;city&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the city.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;country&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The country code. &lt;br&gt;Format: the two-letter &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_3166-1_alpha-2\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;ISO-3166-1 alpha-2&lt;\\\/a&gt; country code. Exception: &lt;strong&gt;QZ&lt;\\\/strong&gt; (Kosovo). &lt;br&gt; If you do not collect the shopper&#039;s country\\\/region, use the placeholder &lt;strong&gt;ZZ&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;stateOrProvince&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The two-character ISO 3166-2 state or province code. For example, &lt;strong&gt;CA&lt;\\\/strong&gt; (California) in the US or &lt;strong&gt;ON&lt;\\\/strong&gt; (Ontario) in Canada.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Call &lt;code&gt;actions.resolve&lt;\\\/code&gt;, passing your mapped data.&lt;\\\/p&gt;\\n&lt;p&gt;For example:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Implement the address lookup callback&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;js\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;const cardConfiguration = {\\\\n    onAddressLookup = async(value, actions) =&amp;gt; {\\\\n        const mappedData = await fetch(ADDRESS_LOOKUP_API_ENDPOINT) \\\\\\\/\\\\\\\/ Make the API request.\\\\n            \\\\\\\/\\\\\\\/ Map the data to the required fields for the AddressLookupItem object type.\\\\n        actions.resolve(mappedData) \\\\\\\/\\\\\\\/ Resolve the data you mapped.\\\\n    }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;By default, this callback has a 300ms &lt;a href=\\&quot;https:\\\/\\\/www.freecodecamp.org\\\/news\\\/javascript-debounce-example\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;debounce&lt;\\\/a&gt;. When the shopper enters data in the address input fields, &lt;code&gt;onAddressLookup&lt;\\\/code&gt; gets called after 300ms from when they last entered a character. To change this, use the &lt;code&gt;addressSearchDebounceMs&lt;\\\/code&gt; property.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;one_request_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Two requests&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;In this implementation, the external application requires two API requests. You first get the list of suggested partial addresses then you get the full address for the one that the shopper selects.&lt;\\\/p&gt;\\n&lt;p&gt;First, implement the &lt;code&gt;onAddressLookup&lt;\\\/code&gt; callback (type: &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-web\\\/blob\\\/a701162af21d052cc9f19d5d769541a8ac00e9ef\\\/packages\\\/lib\\\/src\\\/components\\\/internal\\\/Address\\\/components\\\/AddressSearch.tsx\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;\\n  &lt;code&gt;OnAddressLookupType&lt;\\\/code&gt;\\n&lt;\\\/a&gt;).&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make a request to the address lookup API that you use.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Map the values from the response to an array of &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-web\\\/blob\\\/a701162af21d052cc9f19d5d769541a8ac00e9ef\\\/packages\\\/lib\\\/src\\\/components\\\/internal\\\/Address\\\/types.ts\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;\\n  &lt;code&gt;AddressLookupItem&lt;\\\/code&gt;\\n&lt;\\\/a&gt; objects that include the following:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Field&lt;\\\/th&gt;\\n&lt;th&gt;Required&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;id&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The unique identifier for this address search result.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;name&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the item that shows up in the list of suggested partial addresses.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Call &lt;code&gt;actions.resolve&lt;\\\/code&gt;, passing your mapped data.&lt;\\\/p&gt;\\n&lt;p&gt;For example:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Address lookup callback&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;js\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;const cardConfiguration = {\\\\n    onAddressLookup = async(value, actions) =&amp;gt; {\\\\n        const mappedData = await fetch(ADDRESS_LOOKUP_API_ENDPOINT) \\\\\\\/\\\\\\\/ Make the API request.\\\\n            \\\\\\\/\\\\\\\/ Map the data to the required fields for the AddressLookupItem object type.\\\\n        actions.resolve(mappedData) \\\\\\\/\\\\\\\/ Resolve the data you mapped.\\\\n    }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;By default, this callback has a 300ms &lt;a href=\\&quot;https:\\\/\\\/www.freecodecamp.org\\\/news\\\/javascript-debounce-example\\\/\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;debounce&lt;\\\/a&gt;. When the shopper enters data in the address input fields, &lt;code&gt;onAddressLookup&lt;\\\/code&gt; gets called after 300ms from when they last entered a character. To change this, use the &lt;code&gt;addressSearchDebounceMs&lt;\\\/code&gt; property.&lt;\\\/p&gt;\\n&lt;p&gt;Your client side shows the list of suggested addresses to the shopper.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;p&gt;Then, implement the &lt;code&gt;onAddressSelected&lt;\\\/code&gt; callback (type: &lt;a href=\\&quot;https:\\\/\\\/github.com\\\/Adyen\\\/adyen-web\\\/blob\\\/a701162af21d052cc9f19d5d769541a8ac00e9ef\\\/packages\\\/lib\\\/src\\\/components\\\/internal\\\/Address\\\/components\\\/AddressSearch.tsx\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;\\n  &lt;code&gt;OnAddressSelectedType&lt;\\\/code&gt;\\n&lt;\\\/a&gt;).&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;After the shopper selects a suggested partial address, make a request to the address lookup API, passing the selected &lt;code&gt;AddressLookupItem&lt;\\\/code&gt;. This request is to get the full address of the item that the shopper selected.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Map the values from the response to an &lt;code&gt;AddressLookupItem&lt;\\\/code&gt; that includes the following:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Field&lt;\\\/th&gt;\\n&lt;th&gt;Required&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;id&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The unique identifier for this address search result. We put each address into an array that the client-side app reads.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;name&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the item that shows up in the list of suggested addresses.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;street&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the street.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;houseNumberOrName&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The number or name of the house.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;postalCode&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;A maximum of five digits for an address in the US, or a maximum of ten characters for an address in all other countries\\\/regions.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;city&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The name of the city.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;country&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;img title=\\&quot;-white_check_mark-\\&quot; alt=\\&quot;-white_check_mark-\\&quot; class=\\&quot;smileys\\&quot; src=\\&quot;\\\/user\\\/data\\\/smileys\\\/emoji\\\/white_check_mark.png\\&quot; \\\/&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The country code. &lt;br&gt;Format: the two-letter &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_3166-1_alpha-2\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;ISO-3166-1 alpha-2&lt;\\\/a&gt; country code. Exception: &lt;strong&gt;QZ&lt;\\\/strong&gt; (Kosovo). &lt;br&gt; If you do not collect the shopper&#039;s country\\\/region, use the placeholder &lt;strong&gt;ZZ&lt;\\\/strong&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;stateOrProvince&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;&lt;\\\/td&gt;\\n&lt;td&gt;The two-character ISO 3166-2 state or province code. For example, &lt;strong&gt;CA&lt;\\\/strong&gt; (California) in the US or &lt;strong&gt;ON&lt;\\\/strong&gt; (Ontario) in Canada.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Call &lt;code&gt;actions.resolve&lt;\\\/code&gt;, passing your mapped data.&lt;\\\/p&gt;\\n&lt;p&gt;For example:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Address selected callback&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;js\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;const cardConfiguration = {\\\\n    onAddressSelected = async(value, actions) =&amp;gt; {\\\\n        const addressItem = await fetchAddressDetails(ADDRESS_LOOKUP_API_ENDPOINT, value.id) \\\\\\\/\\\\\\\/ Make the API request.\\\\n            \\\\\\\/\\\\\\\/ Map the data to the required fields for the AddressLookupItem object type.\\\\n        actions.resolve(mappedData) \\\\\\\/\\\\\\\/ Resolve the data you mapped.\\\\n    }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;The client side automatically enters the data into the corresponding address fields on the payment form.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;two_requests_1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h2>Card brand recognition<\/h2>\n<p>When the shopper is entering their card details, Components tries to recognize the card brand. When successful, Components renders the brand icon and the corresponding input field for the card security code (CVC, CVV, or CID).<\/p>\n<h3>Co-badged cards<\/h3>\n<p>Co-badged cards are rendered by the Component according to the <a href=\"\/pt\/online-payments\/co-badged-cards-compliance\/\">co-badged card regulations for the applicable regions<\/a>. This means that Components renders all supported brands, and allows the cardholder to choose their preferred brand.<\/p>\n<h2 id=\"show-debit-credit-separately\">Show debit and credit cards separately<\/h2>\n<p>Choose which <a href=\"\/pt\/online-payments\/build-your-integration\">server-side flow<\/a> your integration uses:<\/p>\n\n<div id=\"tabs9xpF\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Sessions flow&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;This is the default with &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/sessions-flow?platform=Web&amp;amp;integration=Components\\&quot;&gt;Components v5.0.0&lt;\\\/a&gt; or later.&lt;\\\/p&gt;\\n&lt;h3&gt;Step 1:&lt;\\\/h3&gt;\\n&lt;p&gt;In your POST &lt;code&gt;\\\/sessions&lt;\\\/code&gt; request, include  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/sessions#request-splitCardFundingSources\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;splitCardFundingSources&lt;\\\/a&gt;&amp;#58; &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;.&lt;\\\/p&gt;\\n&lt;h3&gt;Step 2:&lt;\\\/h3&gt;\\n&lt;p&gt;In your front end create two DOM elements, placing these where you want the forms to be rendered.&lt;\\\/p&gt;\\n&lt;p&gt;When accepting payments in Sweden, present debit cards before credit cards, and label the forms clearly in order to comply with &lt;a href=\\&quot;https:\\\/\\\/www.regeringen.se\\\/rattsliga-dokument\\\/lagradsremiss\\\/2019\\\/12\\\/presentation-av-betalningssatt-vid-marknadsforing-av-betaltjanster-online\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Swedish legislations&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;pre&gt;&lt;code class=\\&quot;language-xml\\&quot;&gt; &amp;lt;h1&amp;gt;Debit card&amp;lt;\\\/h1&amp;gt;\\n &amp;lt;div id=\\&quot;debit-container\\&quot;&amp;gt;&amp;lt;\\\/div&amp;gt;\\n\\n &amp;lt;h1&amp;gt;Credit card&amp;lt;\\\/h1&amp;gt;\\n &amp;lt;div id=\\&quot;credit-container\\&quot;&amp;gt;&amp;lt;\\\/div&amp;gt;&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&lt;p&gt;Check if the &lt;code&gt;paymentMethodsResponse&lt;\\\/code&gt; loaded in your &lt;code&gt;AdyenCheckout&lt;\\\/code&gt; instance includes objects with &lt;code&gt;fundingSource&lt;\\\/code&gt; &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;debit&lt;\\\/strong&gt;&lt;\\\/span&gt; and &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;credit&lt;\\\/strong&gt;&lt;\\\/span&gt;, then mount the instances.&lt;\\\/p&gt;\\n&lt;pre&gt;&lt;code class=\\&quot;language-js\\&quot;&gt;const debitCards = checkout.paymentMethodsResponse.paymentMethods.find(paymentMethod =&amp;gt; paymentMethod.fundingSource === &#039;debit&#039;);\\n\\nif (debitCards) {\\n  checkout.create(&#039;card&#039;, debitCards).mount(&#039;#debit-container&#039;);\\n}\\n\\nconst creditCards = checkout.paymentMethodsResponse.paymentMethods.find(paymentMethod =&amp;gt; paymentMethod.fundingSource === &#039;credit&#039;);\\n\\nif (creditCards) {\\n   checkout.create(&#039;card&#039;, creditCards).mount(&#039;#credit-container&#039;);\\n}&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;sessions_flow_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Advanced flow&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;If you implemented an &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\&quot;&gt;additional use case&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;h3&gt;Step 1:&lt;\\\/h3&gt;\\n&lt;p&gt;In your POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/paymentMethods\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/paymentMethods&lt;\\\/a&gt; request, include  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/paymentMethods#request-splitCardFundingSources\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;splitCardFundingSources&lt;\\\/a&gt;&amp;#58; &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;.&lt;\\\/p&gt;\\n&lt;h3&gt;Step 2:&lt;\\\/h3&gt;\\n&lt;p&gt;In your front end create two DOM elements, placing these where you want the forms to be rendered.&lt;\\\/p&gt;\\n&lt;p&gt;When accepting payments in Sweden, present debit cards before credit cards, and label the forms clearly in order to comply with &lt;a href=\\&quot;https:\\\/\\\/www.regeringen.se\\\/rattsliga-dokument\\\/lagradsremiss\\\/2019\\\/12\\\/presentation-av-betalningssatt-vid-marknadsforing-av-betaltjanster-online\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;Swedish legislations&lt;\\\/a&gt;.&lt;\\\/p&gt;\\n&lt;pre&gt;&lt;code class=\\&quot;language-xml\\&quot;&gt; &amp;lt;h1&amp;gt;Debit card&amp;lt;\\\/h1&amp;gt;\\n &amp;lt;div id=\\&quot;debit-container\\&quot;&amp;gt;&amp;lt;\\\/div&amp;gt;\\n\\n &amp;lt;h1&amp;gt;Credit card&amp;lt;\\\/h1&amp;gt;\\n &amp;lt;div id=\\&quot;credit-container\\&quot;&amp;gt;&amp;lt;\\\/div&amp;gt;&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&lt;p&gt;Check if the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/paymentMethods\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/paymentMethods&lt;\\\/a&gt; response returns objects that contain &lt;code&gt;fundingSource&lt;\\\/code&gt; &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;debit&lt;\\\/strong&gt;&lt;\\\/span&gt; and &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;credit&lt;\\\/strong&gt;&lt;\\\/span&gt;, then mount the instances.&lt;\\\/p&gt;\\n&lt;pre&gt;&lt;code class=\\&quot;language-js\\&quot;&gt;const debitCards = paymentMethodsResponse.paymentMethods.find(paymentMethod =&amp;gt; paymentMethod.fundingSource === &#039;debit&#039;);\\n\\nif (debitCards) {\\n  checkout.create(&#039;card&#039;, debitCards).mount(&#039;#debit-container&#039;);\\n}\\n\\nconst creditCards = paymentMethodsResponse.paymentMethods.find(paymentMethod =&amp;gt; paymentMethod.fundingSource === &#039;credit&#039;);\\n\\nif (creditCards) {\\n   checkout.create(&#039;card&#039;, creditCards).mount(&#039;#credit-container&#039;);\\n}&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;advanced_flow_1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2 id=\"recurring-payments\">Recurring payments<\/h2>\n<p>Cards support <a href=\"\/pt\/online-payments\/tokenization\">tokenization<\/a> for <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#one-click-payments\" target=\"_blank\">one-click<\/a>, <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#subscriptions\" target=\"_blank\">subscription<\/a>, and <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#unscheduled-card-on-file-ucof\">unscheduled card-on-file<\/a> payments. Refer to <a href=\"\/pt\/online-payments\/tokenization\/create-tokens\/\">Create tokens<\/a> to integrate with our tokenization feature.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>We strongly recommend that you ask explicit permission from the shopper if you intend to make future recurring payments. Being transparent about the payment schedule and the charged amount reduces the risk of chargebacks.<\/p>\n<\/div><\/div>\n<p>Choose which <a href=\"\/pt\/online-payments\/build-your-integration\">server-side flow<\/a> your integration uses:<\/p>\n\n<div id=\"tab7L8EJ\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Sessions flow&quot;,&quot;content&quot;:&quot;\\n&lt;h3&gt;Store card details&lt;\\\/h3&gt;\\n&lt;p&gt;Refer to &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/create-tokens\\&quot;&gt;Create tokens&lt;\\\/a&gt; to create a card token. You do not need to include any additional parameters for cards.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Create a token for one-click payments&#039;\\&quot; :id=\\&quot;&#039;create-token-sessions&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v71\\\\\\\/sessions \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n   \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n   \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n   \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;NL\\\\&amp;quot;,\\\\n   \\\\&amp;quot;storePaymentMethodMode\\\\&amp;quot;: \\\\&amp;quot;enabled\\\\&amp;quot;,\\\\n   \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;Ecommerce\\\\&amp;quot;,\\\\n   \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v26.3.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, additionally include your liveEndpointUrlPrefix.\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  .value(100L);\\\\n\\\\nCreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest()\\\\n  .reference(\\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;)\\\\n  .storePaymentMethodMode(CreateCheckoutSessionRequest.StorePaymentMethodModeEnum.ENABLED)\\\\n  .amount(amount)\\\\n  .merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  .countryCode(\\\\&amp;quot;NL\\\\&amp;quot;)\\\\n  .recurringProcessingModel(CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CARDONFILE)\\\\n  .shopperInteraction(CreateCheckoutSessionRequest.ShopperInteractionEnum.ECOMMERCE)\\\\n  .returnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;)\\\\n  .shopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nPaymentsApi service = new PaymentsApi(client);\\\\nCreateCheckoutSessionResponse response = service.sessions(createCheckoutSessionRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen PHP API Library v18.2.1\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\CreateCheckoutSessionRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(100);\\\\n\\\\n$createCheckoutSessionRequest = new CreateCheckoutSessionRequest();\\\\n$createCheckoutSessionRequest\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;)\\\\n  -&amp;gt;setStorePaymentMethodMode(\\\\&amp;quot;enabled\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  -&amp;gt;setCountryCode(\\\\&amp;quot;NL\\\\&amp;quot;)\\\\n  -&amp;gt;setRecurringProcessingModel(\\\\&amp;quot;CardOnFile\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperInteraction(\\\\&amp;quot;Ecommerce\\\\&amp;quot;)\\\\n  -&amp;gt;setReturnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new PaymentsApi($client);\\\\n$response = $service-&amp;gt;sessions($createCheckoutSessionRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v17.0.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Checkout;\\\\nusing Adyen.Service.Checkout;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value = 100\\\\n};\\\\n\\\\nCreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest\\\\n{\\\\n  Reference = \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  StorePaymentMethodMode = CreateCheckoutSessionRequest.StorePaymentMethodModeEnum.Enabled,\\\\n  Amount = amount,\\\\n  MerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  CountryCode = \\\\&amp;quot;NL\\\\&amp;quot;,\\\\n  RecurringProcessingModel = CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  ShopperInteraction = CreateCheckoutSessionRequest.ShopperInteractionEnum.Ecommerce,\\\\n  ReturnUrl = \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  ShopperReference = \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentsService(client);\\\\nvar response = service.Sessions(createCheckoutSessionRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.0.0\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst createCheckoutSessionRequest = {\\\\n  amount: {\\\\n    currency: \\\\&amp;quot;JPY\\\\&amp;quot;,\\\\n    value: 3000\\\\n  },\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  reference: \\\\&amp;quot;YOUR_REFERENCE\\\\&amp;quot;,\\\\n  recurringProcessingModel: \\\\&amp;quot;CardOnFile\\\\&amp;quot;,\\\\n  shopperInteraction: \\\\&amp;quot;Ecommerce\\\\&amp;quot;,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  storePaymentMethodMode: \\\\&amp;quot;askForConsent\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v10.4.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value: 100,\\\\n}\\\\n\\\\ncreateCheckoutSessionRequest := checkout.CreateCheckoutSessionRequest{\\\\n  Reference: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  StorePaymentMethodMode: common.PtrString(\\\\&amp;quot;enabled\\\\&amp;quot;),\\\\n  Amount: amount,\\\\n  MerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  CountryCode: common.PtrString(\\\\&amp;quot;NL\\\\&amp;quot;),\\\\n  RecurringProcessingModel: common.PtrString(\\\\&amp;quot;CardOnFile\\\\&amp;quot;),\\\\n  ShopperInteraction: common.PtrString(\\\\&amp;quot;Ecommerce\\\\&amp;quot;),\\\\n  ReturnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  ShopperReference: common.PtrString(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentsApi.SessionsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).CreateCheckoutSessionRequest(createCheckoutSessionRequest)\\\\nres, httpRes, err := service.PaymentsApi.Sessions(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v12.5.1\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;NL\\\\&amp;quot;,\\\\n  \\\\&amp;quot;storePaymentMethodMode\\\\&amp;quot;: \\\\&amp;quot;enabled\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;Ecommerce\\\\&amp;quot;,\\\\n  \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.sessions(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v9.5.1\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 100,\\\\n    :currency =&amp;gt; &#039;EUR&#039;\\\\n  },\\\\n  :shopperReference =&amp;gt; &#039;YOUR_SHOPPER_REFERENCE&#039;,\\\\n  :returnUrl =&amp;gt; &#039;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..&#039;,\\\\n  :reference =&amp;gt; &#039;YOUR_PAYMENT_REFERENCE&#039;,\\\\n  :countryCode =&amp;gt; &#039;NL&#039;,\\\\n  :storePaymentMethodMode =&amp;gt; &#039;enabled&#039;,\\\\n  :shopperInteraction =&amp;gt; &#039;Ecommerce&#039;,\\\\n  :recurringProcessingModel =&amp;gt; &#039;CardOnFile&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.sessions(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v17.3.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  value: 100\\\\n};\\\\n\\\\nconst createCheckoutSessionRequest: Types.checkout.CreateCheckoutSessionRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  storePaymentMethodMode: Types.checkout.CreateCheckoutSessionRequest.StorePaymentMethodModeEnum.Enabled,\\\\n  amount: amount,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  countryCode: \\\\&amp;quot;NL\\\\&amp;quot;,\\\\n  recurringProcessingModel: Types.checkout.CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  shopperInteraction: Types.checkout.CreateCheckoutSessionRequest.ShopperInteractionEnum.Ecommerce,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;When a token is created, you receive a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Tokenization-webhooks\\\/latest\\\/post\\\/recurring.token.created\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;recurring.token.created&lt;\\\/a&gt; webhook.&lt;\\\/p&gt;\\n&lt;h4 id=\\&quot;store-v69\\&quot;&gt;Checkout API v69 or earlier&lt;\\\/h4&gt;\\n&lt;p&gt;When &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/create-tokens\\&quot;&gt;creating a token&lt;\\\/a&gt; for cards using Checkout API v69 or earlier:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Use the &lt;code&gt;enableStoreDetails&lt;\\\/code&gt; &lt;a href=\\&quot;#optional-configuration\\&quot;&gt;configuration&lt;\\\/a&gt; to show a checkbox for your shopper to choose to store their card details.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;h3&gt;Make a one-click payment&lt;\\\/h3&gt;\\n&lt;p&gt;&lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/make-token-payments#make-a-one-click-payment\\&quot;&gt;Make a one-click payment&lt;\\\/a&gt; using standard tokenization parameters. You do not need to include any additional parameters for cards.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Make a one-click payment&#039;\\&quot; :id=\\&quot;&#039;pay-with-token-sessions&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v71\\\\\\\/sessions \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;Content-Type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n     \\\\&amp;quot;amount\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;value\\\\&amp;quot;:2000,\\\\n       \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;USD\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;reference\\\\&amp;quot;:\\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n     \\\\&amp;quot;merchantAccount\\\\&amp;quot;:\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n     \\\\&amp;quot;returnUrl\\\\&amp;quot;:\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperReference\\\\&amp;quot;:\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperInteraction\\\\&amp;quot;:\\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n     \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;:\\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n }&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v39.3.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(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  .value(2000L);\\\\n\\\\nCreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest()\\\\n  .reference(\\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  .recurringProcessingModel(CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CARDONFILE)\\\\n  .shopperInteraction(CreateCheckoutSessionRequest.ShopperInteractionEnum.CONTAUTH)\\\\n  .returnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;)\\\\n  .shopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nPaymentsApi service = new PaymentsApi(client);\\\\nCreateCheckoutSessionResponse response = service.sessions(createCheckoutSessionRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.2.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\CreateCheckoutSessionRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(2000);\\\\n\\\\n$createCheckoutSessionRequest = new CreateCheckoutSessionRequest();\\\\n$createCheckoutSessionRequest\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  -&amp;gt;setRecurringProcessingModel(\\\\&amp;quot;CardOnFile\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperInteraction(\\\\&amp;quot;ContAuth\\\\&amp;quot;)\\\\n  -&amp;gt;setReturnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new PaymentsApi($client);\\\\n$response = $service-&amp;gt;sessions($createCheckoutSessionRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v32.1.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 = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value = 2000\\\\n};\\\\n\\\\nCreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest\\\\n{\\\\n  Reference = \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  MerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel = CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  ShopperInteraction = CreateCheckoutSessionRequest.ShopperInteractionEnum.ContAuth,\\\\n  ReturnUrl = \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  ShopperReference = \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentsService(client);\\\\nvar response = service.Sessions(createCheckoutSessionRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.0.0\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst createCheckoutSessionRequest = {\\\\n  amount: {\\\\n    value: 2000,\\\\n    currency: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  reference: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  shopperInteraction: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  recurringProcessingModel: \\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value: 2000,\\\\n}\\\\n\\\\ncreateCheckoutSessionRequest := checkout.CreateCheckoutSessionRequest{\\\\n  Reference: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  Amount: amount,\\\\n  MerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel: common.PtrString(\\\\&amp;quot;CardOnFile\\\\&amp;quot;),\\\\n  ShopperInteraction: common.PtrString(\\\\&amp;quot;ContAuth\\\\&amp;quot;),\\\\n  ReturnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  ShopperReference: common.PtrString(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentsApi.SessionsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).CreateCheckoutSessionRequest(createCheckoutSessionRequest)\\\\nres, httpRes, err := service.PaymentsApi.Sessions(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.6.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 2000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.sessions(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.4.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 2000,\\\\n    :currency =&amp;gt; &#039;USD&#039;\\\\n  },\\\\n  :reference =&amp;gt; &#039;YOUR_PAYMENT_REFERENCE&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :returnUrl =&amp;gt; &#039;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_UNIQUE_SHOPPER_ID&#039;,\\\\n  :shopperInteraction =&amp;gt; &#039;ContAuth&#039;,\\\\n  :recurringProcessingModel =&amp;gt; &#039;CardOnFile&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.sessions(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.0.0\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  value: 2000\\\\n};\\\\n\\\\nconst createCheckoutSessionRequest: Types.checkout.CreateCheckoutSessionRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_PAYMENT_REFERENCE\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  recurringProcessingModel: Types.checkout.CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  shopperInteraction: Types.checkout.CreateCheckoutSessionRequest.ShopperInteractionEnum.ContAuth,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.sessions(createCheckoutSessionRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:&quot;store-card-details-sessions&quot;,&quot;oldTabId&quot;:&quot;store-card-details-sessions_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Advanced flow&quot;,&quot;content&quot;:&quot;\\n&lt;h3&gt;Store card details&lt;\\\/h3&gt;\\n&lt;p&gt;When &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/create-tokens\\&quot;&gt;creating a token&lt;\\\/a&gt; for cards:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;Use the standard tokenization parameters in your payment request. You do not need to include any additional parameters for cards.\\n&lt;\\\/li&gt;\\n&lt;li&gt;Make sure that &lt;code&gt;enableStoreDetails&lt;\\\/code&gt; is set to &lt;strong&gt;true&lt;\\\/strong&gt; in the &lt;a href=\\&quot;#component-configuration\\&quot;&gt;optional configuration of the Card Component&lt;\\\/a&gt;. This shows a checkbox for your shopper to choose to store their card details.\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Create a token for one-click payments&#039;\\&quot; :id=\\&quot;&#039;create_token_payments&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;:{\\\\n      \\\\&amp;quot;value\\\\&amp;quot;:0,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;USD\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;paymentMethod\\\\&amp;quot;:{\\\\n      \\\\&amp;quot;type\\\\&amp;quot;:\\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n      \\\\&amp;quot;encryptedCardNumber\\\\&amp;quot;: \\\\&amp;quot;test_4111111111111111\\\\&amp;quot;,\\\\n      \\\\&amp;quot;encryptedExpiryMonth\\\\&amp;quot;: \\\\&amp;quot;test_03\\\\&amp;quot;,\\\\n      \\\\&amp;quot;encryptedExpiryYear\\\\&amp;quot;: \\\\&amp;quot;test_2030\\\\&amp;quot;,\\\\n      \\\\&amp;quot;encryptedSecurityCode\\\\&amp;quot;: \\\\&amp;quot;test_737\\\\&amp;quot;,\\\\n      \\\\&amp;quot;holderName\\\\&amp;quot;:\\\\&amp;quot;John Smith\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;reference\\\\&amp;quot;:\\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;,\\\\n   \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;Ecommerce\\\\&amp;quot;,\\\\n   \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;CardOnFile\\\\&amp;quot;,\\\\n   \\\\&amp;quot;storePaymentMethod\\\\&amp;quot;: \\\\&amp;quot;true\\\\&amp;quot;,\\\\n   \\\\&amp;quot;merchantAccount\\\\&amp;quot;:\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n   \\\\&amp;quot;shopperReference\\\\&amp;quot;:\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n   \\\\&amp;quot;returnUrl\\\\&amp;quot;:\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v39.3.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(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  .value(0L);\\\\n\\\\nCardDetails cardDetails = new CardDetails()\\\\n  .encryptedCardNumber(\\\\&amp;quot;test_4111111111111111\\\\&amp;quot;)\\\\n  .holderName(\\\\&amp;quot;John Smith\\\\&amp;quot;)\\\\n  .encryptedSecurityCode(\\\\&amp;quot;test_737\\\\&amp;quot;)\\\\n  .encryptedExpiryYear(\\\\&amp;quot;test_2030\\\\&amp;quot;)\\\\n  .encryptedExpiryMonth(\\\\&amp;quot;test_03\\\\&amp;quot;)\\\\n  .type(CardDetails.TypeEnum.SCHEME);\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest()\\\\n  .reference(\\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .storePaymentMethod(true)\\\\n  .merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  .recurringProcessingModel(PaymentRequest.RecurringProcessingModelEnum.CARDONFILE)\\\\n  .paymentMethod(new CheckoutPaymentMethod(cardDetails))\\\\n  .shopperInteraction(PaymentRequest.ShopperInteractionEnum.ECOMMERCE)\\\\n  .returnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;)\\\\n  .shopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nPaymentsApi service = new PaymentsApi(client);\\\\nPaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.2.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\CheckoutPaymentMethod;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(0);\\\\n\\\\n$checkoutPaymentMethod = new CheckoutPaymentMethod();\\\\n$checkoutPaymentMethod\\\\n  -&amp;gt;setEncryptedCardNumber(\\\\&amp;quot;test_4111111111111111\\\\&amp;quot;)\\\\n  -&amp;gt;setHolderName(\\\\&amp;quot;John Smith\\\\&amp;quot;)\\\\n  -&amp;gt;setEncryptedSecurityCode(\\\\&amp;quot;test_737\\\\&amp;quot;)\\\\n  -&amp;gt;setEncryptedExpiryYear(\\\\&amp;quot;test_2030\\\\&amp;quot;)\\\\n  -&amp;gt;setEncryptedExpiryMonth(\\\\&amp;quot;test_03\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;scheme\\\\&amp;quot;);\\\\n\\\\n$paymentRequest = new PaymentRequest();\\\\n$paymentRequest\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setStorePaymentMethod(true)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  -&amp;gt;setRecurringProcessingModel(\\\\&amp;quot;CardOnFile\\\\&amp;quot;)\\\\n  -&amp;gt;setPaymentMethod($checkoutPaymentMethod)\\\\n  -&amp;gt;setShopperInteraction(\\\\&amp;quot;Ecommerce\\\\&amp;quot;)\\\\n  -&amp;gt;setReturnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new PaymentsApi($client);\\\\n$response = $service-&amp;gt;payments($paymentRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v32.1.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 = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value = 0\\\\n};\\\\n\\\\nCardDetails cardDetails = new CardDetails\\\\n{\\\\n  EncryptedCardNumber = \\\\&amp;quot;test_4111111111111111\\\\&amp;quot;,\\\\n  HolderName = \\\\&amp;quot;John Smith\\\\&amp;quot;,\\\\n  EncryptedSecurityCode = \\\\&amp;quot;test_737\\\\&amp;quot;,\\\\n  EncryptedExpiryYear = \\\\&amp;quot;test_2030\\\\&amp;quot;,\\\\n  EncryptedExpiryMonth = \\\\&amp;quot;test_03\\\\&amp;quot;,\\\\n  Type = CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest\\\\n{\\\\n  Reference = \\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  StorePaymentMethod = true,\\\\n  MerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel = PaymentRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  PaymentMethod = new CheckoutPaymentMethod(cardDetails),\\\\n  ShopperInteraction = PaymentRequest.ShopperInteractionEnum.Ecommerce,\\\\n  ReturnUrl = \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;,\\\\n  ShopperReference = \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentsService(client);\\\\nvar response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.0.0\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst paymentRequest = {\\\\n  amount: {\\\\n    value: 0,\\\\n    currency: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  paymentMethod: {\\\\n    type: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    encryptedCardNumber: \\\\&amp;quot;test_4111111111111111\\\\&amp;quot;,\\\\n    encryptedExpiryMonth: \\\\&amp;quot;test_03\\\\&amp;quot;,\\\\n    encryptedExpiryYear: \\\\&amp;quot;test_2030\\\\&amp;quot;,\\\\n    encryptedSecurityCode: \\\\&amp;quot;test_737\\\\&amp;quot;,\\\\n    holderName: \\\\&amp;quot;John Smith\\\\&amp;quot;\\\\n  },\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;,\\\\n  shopperInteraction: \\\\&amp;quot;Ecommerce\\\\&amp;quot;,\\\\n  recurringProcessingModel: \\\\&amp;quot;CardOnFile\\\\&amp;quot;,\\\\n  storePaymentMethod: \\\\&amp;quot;true\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value: 0,\\\\n}\\\\n\\\\ncardDetails := checkout.CardDetails{\\\\n  EncryptedCardNumber: common.PtrString(\\\\&amp;quot;test_4111111111111111\\\\&amp;quot;),\\\\n  HolderName: common.PtrString(\\\\&amp;quot;John Smith\\\\&amp;quot;),\\\\n  EncryptedSecurityCode: common.PtrString(\\\\&amp;quot;test_737\\\\&amp;quot;),\\\\n  EncryptedExpiryYear: common.PtrString(\\\\&amp;quot;test_2030\\\\&amp;quot;),\\\\n  EncryptedExpiryMonth: common.PtrString(\\\\&amp;quot;test_03\\\\&amp;quot;),\\\\n  Type: common.PtrString(\\\\&amp;quot;scheme\\\\&amp;quot;),\\\\n}\\\\n\\\\npaymentRequest := checkout.PaymentRequest{\\\\n  Reference: \\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;,\\\\n  Amount: amount,\\\\n  StorePaymentMethod: common.PtrBool(true),\\\\n  MerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel: common.PtrString(\\\\&amp;quot;CardOnFile\\\\&amp;quot;),\\\\n  PaymentMethod: checkout.CardDetailsAsCheckoutPaymentMethod(&amp;amp;cardDetails),\\\\n  ShopperInteraction: common.PtrString(\\\\&amp;quot;Ecommerce\\\\&amp;quot;),\\\\n  ReturnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;,\\\\n  ShopperReference: common.PtrString(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentsApi.PaymentsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentRequest(paymentRequest)\\\\nres, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.6.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 0,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    \\\\&amp;quot;encryptedCardNumber\\\\&amp;quot;: \\\\&amp;quot;test_4111111111111111\\\\&amp;quot;,\\\\n    \\\\&amp;quot;encryptedExpiryMonth\\\\&amp;quot;: \\\\&amp;quot;test_03\\\\&amp;quot;,\\\\n    \\\\&amp;quot;encryptedExpiryYear\\\\&amp;quot;: \\\\&amp;quot;test_2030\\\\&amp;quot;,\\\\n    \\\\&amp;quot;encryptedSecurityCode\\\\&amp;quot;: \\\\&amp;quot;test_737\\\\&amp;quot;,\\\\n    \\\\&amp;quot;holderName\\\\&amp;quot;: \\\\&amp;quot;John Smith\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;Ecommerce\\\\&amp;quot;,\\\\n  \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;CardOnFile\\\\&amp;quot;,\\\\n  \\\\&amp;quot;storePaymentMethod\\\\&amp;quot;: \\\\&amp;quot;True\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.4.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 0,\\\\n    :currency =&amp;gt; &#039;USD&#039;\\\\n  },\\\\n  :paymentMethod =&amp;gt; {\\\\n    :type =&amp;gt; &#039;scheme&#039;,\\\\n    :encryptedCardNumber =&amp;gt; &#039;test_4111111111111111&#039;,\\\\n    :encryptedExpiryMonth =&amp;gt; &#039;test_03&#039;,\\\\n    :encryptedExpiryYear =&amp;gt; &#039;test_2030&#039;,\\\\n    :encryptedSecurityCode =&amp;gt; &#039;test_737&#039;,\\\\n    :holderName =&amp;gt; &#039;John Smith&#039;\\\\n  },\\\\n  :reference =&amp;gt; &#039;YOUR_ORDER_REFERENCE&#039;,\\\\n  :shopperInteraction =&amp;gt; &#039;Ecommerce&#039;,\\\\n  :recurringProcessingModel =&amp;gt; &#039;CardOnFile&#039;,\\\\n  :storePaymentMethod =&amp;gt; &#039;true&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_SHOPPER_REFERENCE&#039;,\\\\n  :returnUrl =&amp;gt; &#039;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.0.0\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  value: 0\\\\n};\\\\n\\\\nconst cardDetails: Types.checkout.CardDetails = {\\\\n  encryptedCardNumber: \\\\&amp;quot;test_4111111111111111\\\\&amp;quot;,\\\\n  holderName: \\\\&amp;quot;John Smith\\\\&amp;quot;,\\\\n  encryptedSecurityCode: \\\\&amp;quot;test_737\\\\&amp;quot;,\\\\n  encryptedExpiryYear: \\\\&amp;quot;test_2030\\\\&amp;quot;,\\\\n  encryptedExpiryMonth: \\\\&amp;quot;test_03\\\\&amp;quot;,\\\\n  type: Types.checkout.CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nconst paymentRequest: Types.checkout.PaymentRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_REFERENCE\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  storePaymentMethod: true,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  recurringProcessingModel: Types.checkout.PaymentRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  paymentMethod: cardDetails,\\\\n  shopperInteraction: Types.checkout.PaymentRequest.ShopperInteractionEnum.Ecommerce,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;When a token is created, you receive a  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Tokenization-webhooks\\\/latest\\\/post\\\/recurring.token.created\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;recurring.token.created&lt;\\\/a&gt; webhook. The webhook contains the &lt;code&gt;storedPaymentMethodId&lt;\\\/code&gt; that you can use to make subsequent payments using the stored payment details.&lt;\\\/p&gt;\\n&lt;h3&gt;Show stored cards&lt;\\\/h3&gt;\\n&lt;p&gt;To add available stored cards in your payment form:&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;In your  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/paymentMethods\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/paymentMethods&lt;\\\/a&gt;\\u00a0request, include the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/paymentMethods#request-shopperReference\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;shopperReference&lt;\\\/a&gt; that you specified when creating the token to receive the stored payment details for the shopper.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Create a DOM element for stored payment methods, placing it where you want the payment form to be rendered:&lt;\\\/p&gt;\\n&lt;pre&gt;&lt;code class=\\&quot;language-xml\\&quot;&gt;&amp;lt;div id=\\&quot;stored-card\\&quot;&amp;gt;&amp;lt;\\\/div&amp;gt;&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Get the stored payment methods that you want to display from the &lt;code&gt;checkout.paymentMethodsResponse&lt;\\\/code&gt; object, and pass this when creating an instance of the Card Component.&lt;\\\/p&gt;\\n&lt;pre&gt;&lt;code class=\\&quot;language-javascript\\&quot;&gt;\\\/\\\/ Filter the stored payment methods\\nconst storedCard = checkout.paymentMethodsResponse.storedPaymentMethods.find(\\n  paymentMethod =&amp;gt; paymentMethod.type === &#039;scheme&#039;\\n);\\n\\n\\\/\\\/ Pass the stored card data when creating the component\\nconst card = new Card(checkout, {\\n   storedPaymentMethodId: storedCard.storedPaymentMethodId\\n});.mount(&#039;#stored-card&#039;);&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&lt;div class=\\&quot;notices yellow\\&quot;&gt;\\n&lt;p&gt;You need to get the &lt;code&gt;storedPaymentMethod&lt;\\\/code&gt; from &lt;code&gt;checkout.paymentMethodsResponse.storedPaymentMethods&lt;\\\/code&gt;. This is not the &lt;code&gt;storedPaymentMethods&lt;\\\/code&gt; array that is returned in the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/paymentMethods\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/paymentMethods&lt;\\\/a&gt; response.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;When the shopper selects to pay, &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/build-your-integration\\\/advanced-flow\\\/?platform=Web&amp;amp;integration=Components&amp;amp;version=latest#add\\&quot;&gt;the Component&lt;\\\/a&gt; calls the &lt;code&gt;onSubmit&lt;\\\/code&gt; event, which contains a &lt;code&gt;state.data&lt;\\\/code&gt;. If &lt;code&gt;state.isValid&lt;\\\/code&gt; is &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;true&lt;\\\/strong&gt;&lt;\\\/span&gt;, collect the &lt;code&gt;state.data&lt;\\\/code&gt; and pass this to your server. You need this to make a payment.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&gt;\\n&lt;div class=\\&quot;accordion-shortcode adl-accordion adl-accordion--max-height-transition\\&quot; data-expand=\\&quot;true\\&quot; data-ignore=\\&quot;anchorjs-link\\&quot;&gt;\\n    \\n    &lt;div class=\\&quot;adl-accordion__item\\&quot; style=\\&quot;\\&quot;&gt;\\n        &lt;div tabindex=\\&quot;0\\&quot; role=\\&quot;item\\&quot; aria-expanded=\\&quot;false\\&quot; class=\\&quot;adl-accordion__header\\&quot;&gt;\\n            &lt;i class=\\&quot;adl-accordion__toggle adl-icon-chevron-down\\&quot;&gt;&lt;\\\/i&gt;\\n            &lt;div class=\\&quot;adl-accordion__title-wrapper\\&quot; data-accordion=\\&quot;#optional-configuration-for-showing-stored-cards\\&quot;&gt;\\n                                    &lt;h3 class=\\&quot;adl-accordion__title\\&quot;&gt;Optional configuration for showing stored cards&lt;\\\/h3&gt;\\n                            &lt;\\\/div&gt;\\n        &lt;\\\/div&gt;\\n        &lt;div role=\\&quot;region\\&quot; class=\\&quot;adl-accordion__content\\&quot;&gt;\\n            \\n&lt;p&gt;You can configure the following for stored cards:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th&gt;Field&lt;\\\/th&gt;\\n&lt;th&gt;Description&lt;\\\/th&gt;\\n&lt;th&gt;Default&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;hideCVC&lt;\\\/code&gt;&lt;a id=\\&quot;styles\\&quot;&gt;&lt;\\\/a&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Set to &lt;strong&gt;true&lt;\\\/strong&gt; to hide the CVC field.&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;false&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;styles&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;Set a style object to\\u00a0customize the &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/cards\\\/custom-card-integration#styling\\&quot;&gt;styling of card fields&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;td&gt;See &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/cards\\\/custom-card-integration#default-style\\&quot;&gt;default styles and labels&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;installmentOptions&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td&gt;If you want to offer &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/cards\\\/credit-card-installments\\&quot;&gt;credit card installments&lt;\\\/a&gt;, specify here the &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/cards\\\/credit-card-installments#make-a-payment\\&quot;&gt;numbers of monthly installments&lt;\\\/a&gt; that the shopper can choose from. &lt;br&gt; For example, to have &lt;strong&gt;2&lt;\\\/strong&gt;, and &lt;strong&gt;3&lt;\\\/strong&gt;, and &lt;strong&gt;4&lt;\\\/strong&gt; as the default installment options for all cards: &lt;br&gt; &lt;code&gt;{ \\&quot;card\\&quot;: {  \\&quot;values\\&quot;: [2, 3, 4] }}&lt;\\\/code&gt;. &lt;br&gt; &lt;br&gt; &lt;strong&gt;v3.15.0 or later&lt;\\\/strong&gt;:&lt;br&gt; You can also configure &lt;code&gt;plans&lt;\\\/code&gt; for Japanese installments: &lt;code&gt;regular&lt;\\\/code&gt;, &lt;code&gt;revolving&lt;\\\/code&gt;, or both.&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;v3.15.0 or later&lt;\\\/strong&gt;: &lt;br&gt; &lt;code&gt;plans&lt;\\\/code&gt;: &lt;code&gt;regular&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td&gt;&lt;code&gt;showInstallmentAmounts&lt;\\\/code&gt;&lt;br&gt; \\u00a0&lt;strong&gt;v3.15.0 or later&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;td&gt;If you want to offer &lt;a href=\\&quot;\\\/pt\\\/payment-methods\\\/cards\\\/credit-card-installments\\&quot;&gt;credit card installments&lt;\\\/a&gt;, set to &lt;strong&gt;true&lt;\\\/strong&gt; to show the payment amount per installment.&lt;\\\/td&gt;\\n&lt;td&gt;&lt;strong&gt;false&lt;\\\/strong&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;Add the configuration to the configuration object of your &lt;code&gt;AdyenCheckout&lt;\\\/code&gt; instance.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Add stored card configurations to the configuration object&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;js\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;const configuration = {\\\\n  \\\\\\\/\\\\\\\/...other configuration parameters\\\\n  paymentMethodsConfiguration: {\\\\n    storedCard: {\\\\n      hideCVC: true,\\\\n      styles: \\\\\\\/\\\\\\\/your styles for stored cards\\\\n    }\\\\n  },\\\\n};\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n\\n        &lt;\\\/div&gt;\\n    &lt;\\\/div&gt;\\n&lt;\\\/div&gt;\\n\\n&lt;h3&gt;Make a one-click payment&lt;\\\/h3&gt;\\n&lt;p&gt;&lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/make-token-payments#make-a-one-click-payment\\&quot;&gt;Make a one-click payment&lt;\\\/a&gt; using standard tokenization parameters. You do not need to include any additional parameters for cards.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Make a one-click payment with a card token&#039;\\&quot; :id=\\&quot;&#039;one-click-card-token-payment&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;Content-Type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n     \\\\&amp;quot;amount\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;value\\\\&amp;quot;:2000,\\\\n       \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;USD\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;paymentMethod\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;type\\\\&amp;quot;:\\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n       \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;:\\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n       \\\\&amp;quot;encryptedSecurityCode\\\\&amp;quot;:\\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;reference\\\\&amp;quot;:\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n     \\\\&amp;quot;merchantAccount\\\\&amp;quot;:\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n     \\\\&amp;quot;returnUrl\\\\&amp;quot;:\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperReference\\\\&amp;quot;:\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperInteraction\\\\&amp;quot;:\\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n     \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;:\\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n }&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v39.4.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(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  .value(2000L);\\\\n\\\\nCardDetails cardDetails = new CardDetails()\\\\n  .encryptedSecurityCode(\\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;)\\\\n  .storedPaymentMethodId(\\\\&amp;quot;8415718415172204\\\\&amp;quot;)\\\\n  .type(CardDetails.TypeEnum.SCHEME);\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest()\\\\n  .reference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  .recurringProcessingModel(PaymentRequest.RecurringProcessingModelEnum.CARDONFILE)\\\\n  .paymentMethod(new CheckoutPaymentMethod(cardDetails))\\\\n  .shopperInteraction(PaymentRequest.ShopperInteractionEnum.CONTAUTH)\\\\n  .returnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;)\\\\n  .shopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nPaymentsApi service = new PaymentsApi(client);\\\\nPaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.2.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\CheckoutPaymentMethod;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(2000);\\\\n\\\\n$checkoutPaymentMethod = new CheckoutPaymentMethod();\\\\n$checkoutPaymentMethod\\\\n  -&amp;gt;setEncryptedSecurityCode(\\\\&amp;quot;adyenjs_0_1_18\\\\\\\\$MT6ppy0FAMVMLH...\\\\&amp;quot;)\\\\n  -&amp;gt;setStoredPaymentMethodId(\\\\&amp;quot;8415718415172204\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;scheme\\\\&amp;quot;);\\\\n\\\\n$paymentRequest = new PaymentRequest();\\\\n$paymentRequest\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  -&amp;gt;setRecurringProcessingModel(\\\\&amp;quot;CardOnFile\\\\&amp;quot;)\\\\n  -&amp;gt;setPaymentMethod($checkoutPaymentMethod)\\\\n  -&amp;gt;setShopperInteraction(\\\\&amp;quot;ContAuth\\\\&amp;quot;)\\\\n  -&amp;gt;setReturnUrl(\\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new PaymentsApi($client);\\\\n$response = $service-&amp;gt;payments($paymentRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v32.1.2\\\\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 = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value = 2000\\\\n};\\\\n\\\\nCardDetails cardDetails = new CardDetails\\\\n{\\\\n  EncryptedSecurityCode = \\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;,\\\\n  StoredPaymentMethodId = \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n  Type = CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest\\\\n{\\\\n  Reference = \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  MerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel = PaymentRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  PaymentMethod = new CheckoutPaymentMethod(cardDetails),\\\\n  ShopperInteraction = PaymentRequest.ShopperInteractionEnum.ContAuth,\\\\n  ReturnUrl = \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  ShopperReference = \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentsService(client);\\\\nvar response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.1.0\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst paymentRequest = {\\\\n  amount: {\\\\n    value: 2000,\\\\n    currency: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  paymentMethod: {\\\\n    type: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    storedPaymentMethodId: \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n    encryptedSecurityCode: \\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;\\\\n  },\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  shopperInteraction: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  recurringProcessingModel: \\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value: 2000,\\\\n}\\\\n\\\\ncardDetails := checkout.CardDetails{\\\\n  EncryptedSecurityCode: common.PtrString(\\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;),\\\\n  StoredPaymentMethodId: common.PtrString(\\\\&amp;quot;8415718415172204\\\\&amp;quot;),\\\\n  Type: common.PtrString(\\\\&amp;quot;scheme\\\\&amp;quot;),\\\\n}\\\\n\\\\npaymentRequest := checkout.PaymentRequest{\\\\n  Reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  Amount: amount,\\\\n  MerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel: common.PtrString(\\\\&amp;quot;CardOnFile\\\\&amp;quot;),\\\\n  PaymentMethod: checkout.CardDetailsAsCheckoutPaymentMethod(&amp;amp;cardDetails),\\\\n  ShopperInteraction: common.PtrString(\\\\&amp;quot;ContAuth\\\\&amp;quot;),\\\\n  ReturnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  ShopperReference: common.PtrString(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentsApi.PaymentsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentRequest(paymentRequest)\\\\nres, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.6.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 2000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;: \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n    \\\\&amp;quot;encryptedSecurityCode\\\\&amp;quot;: \\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;CardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.4.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 2000,\\\\n    :currency =&amp;gt; &#039;USD&#039;\\\\n  },\\\\n  :paymentMethod =&amp;gt; {\\\\n    :type =&amp;gt; &#039;scheme&#039;,\\\\n    :storedPaymentMethodId =&amp;gt; &#039;8415718415172204&#039;,\\\\n    :encryptedSecurityCode =&amp;gt; &#039;adyenjs_0_1_18$MT6ppy0FAMVMLH...&#039;\\\\n  },\\\\n  :reference =&amp;gt; &#039;YOUR_ORDER_NUMBER&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :returnUrl =&amp;gt; &#039;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_UNIQUE_SHOPPER_ID&#039;,\\\\n  :shopperInteraction =&amp;gt; &#039;ContAuth&#039;,\\\\n  :recurringProcessingModel =&amp;gt; &#039;CardOnFile&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.1.0\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  value: 2000\\\\n};\\\\n\\\\nconst cardDetails: Types.checkout.CardDetails = {\\\\n  encryptedSecurityCode: \\\\&amp;quot;adyenjs_0_1_18$MT6ppy0FAMVMLH...\\\\&amp;quot;,\\\\n  storedPaymentMethodId: \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n  type: Types.checkout.CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nconst paymentRequest: Types.checkout.PaymentRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  recurringProcessingModel: Types.checkout.PaymentRequest.RecurringProcessingModelEnum.CardOnFile,\\\\n  paymentMethod: cardDetails,\\\\n  shopperInteraction: Types.checkout.PaymentRequest.ShopperInteractionEnum.ContAuth,\\\\n  returnUrl: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/checkout?shopperOrder=12xy..\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;h3&gt;Make a subscription payment&lt;\\\/h3&gt;\\n&lt;p&gt;&lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/make-token-payments#make-a-subscription-or-unscheduled-card-on-file-payment\\&quot;&gt;Make a subscription payment&lt;\\\/a&gt; using standard tokenization parameters. You do not need to include any additional parameters for cards.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Make a subscription payment with a card token&#039;\\&quot; :id=\\&quot;&#039;subscription-card-token-payment&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;Content-Type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n     \\\\&amp;quot;amount\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;value\\\\&amp;quot;:2000,\\\\n       \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;USD\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;paymentMethod\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;type\\\\&amp;quot;:\\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n       \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;:\\\\&amp;quot;8415718415172204\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;reference\\\\&amp;quot;:\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n     \\\\&amp;quot;merchantAccount\\\\&amp;quot;:\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n     \\\\&amp;quot;returnUrl\\\\&amp;quot;:\\\\&amp;quot;...\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperReference\\\\&amp;quot;:\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperInteraction\\\\&amp;quot;:\\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n     \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;:\\\\&amp;quot;Subscription\\\\&amp;quot;\\\\n }&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v39.4.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(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  .value(2000L);\\\\n\\\\nCardDetails cardDetails = new CardDetails()\\\\n  .storedPaymentMethodId(\\\\&amp;quot;8415718415172204\\\\&amp;quot;)\\\\n  .type(CardDetails.TypeEnum.SCHEME);\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest()\\\\n  .reference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  .recurringProcessingModel(PaymentRequest.RecurringProcessingModelEnum.SUBSCRIPTION)\\\\n  .paymentMethod(new CheckoutPaymentMethod(cardDetails))\\\\n  .shopperInteraction(PaymentRequest.ShopperInteractionEnum.CONTAUTH)\\\\n  .returnUrl(\\\\&amp;quot;...\\\\&amp;quot;)\\\\n  .shopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nPaymentsApi service = new PaymentsApi(client);\\\\nPaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.2.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\CheckoutPaymentMethod;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(2000);\\\\n\\\\n$checkoutPaymentMethod = new CheckoutPaymentMethod();\\\\n$checkoutPaymentMethod\\\\n  -&amp;gt;setStoredPaymentMethodId(\\\\&amp;quot;8415718415172204\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;scheme\\\\&amp;quot;);\\\\n\\\\n$paymentRequest = new PaymentRequest();\\\\n$paymentRequest\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  -&amp;gt;setRecurringProcessingModel(\\\\&amp;quot;Subscription\\\\&amp;quot;)\\\\n  -&amp;gt;setPaymentMethod($checkoutPaymentMethod)\\\\n  -&amp;gt;setShopperInteraction(\\\\&amp;quot;ContAuth\\\\&amp;quot;)\\\\n  -&amp;gt;setReturnUrl(\\\\&amp;quot;...\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new PaymentsApi($client);\\\\n$response = $service-&amp;gt;payments($paymentRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v32.1.2\\\\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 = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value = 2000\\\\n};\\\\n\\\\nCardDetails cardDetails = new CardDetails\\\\n{\\\\n  StoredPaymentMethodId = \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n  Type = CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest\\\\n{\\\\n  Reference = \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  MerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel = PaymentRequest.RecurringProcessingModelEnum.Subscription,\\\\n  PaymentMethod = new CheckoutPaymentMethod(cardDetails),\\\\n  ShopperInteraction = PaymentRequest.ShopperInteractionEnum.ContAuth,\\\\n  ReturnUrl = \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  ShopperReference = \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentsService(client);\\\\nvar response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.1.0\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst paymentRequest = {\\\\n  amount: {\\\\n    value: 2000,\\\\n    currency: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  paymentMethod: {\\\\n    type: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    storedPaymentMethodId: \\\\&amp;quot;8415718415172204\\\\&amp;quot;\\\\n  },\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  returnUrl: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  shopperInteraction: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  recurringProcessingModel: \\\\&amp;quot;Subscription\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value: 2000,\\\\n}\\\\n\\\\ncardDetails := checkout.CardDetails{\\\\n  StoredPaymentMethodId: common.PtrString(\\\\&amp;quot;8415718415172204\\\\&amp;quot;),\\\\n  Type: common.PtrString(\\\\&amp;quot;scheme\\\\&amp;quot;),\\\\n}\\\\n\\\\npaymentRequest := checkout.PaymentRequest{\\\\n  Reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  Amount: amount,\\\\n  MerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel: common.PtrString(\\\\&amp;quot;Subscription\\\\&amp;quot;),\\\\n  PaymentMethod: checkout.CardDetailsAsCheckoutPaymentMethod(&amp;amp;cardDetails),\\\\n  ShopperInteraction: common.PtrString(\\\\&amp;quot;ContAuth\\\\&amp;quot;),\\\\n  ReturnUrl: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  ShopperReference: common.PtrString(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentsApi.PaymentsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentRequest(paymentRequest)\\\\nres, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.6.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 2000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;: \\\\&amp;quot;8415718415172204\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;Subscription\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.4.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 2000,\\\\n    :currency =&amp;gt; &#039;USD&#039;\\\\n  },\\\\n  :paymentMethod =&amp;gt; {\\\\n    :type =&amp;gt; &#039;scheme&#039;,\\\\n    :storedPaymentMethodId =&amp;gt; &#039;8415718415172204&#039;\\\\n  },\\\\n  :reference =&amp;gt; &#039;YOUR_ORDER_NUMBER&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :returnUrl =&amp;gt; &#039;...&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_UNIQUE_SHOPPER_ID&#039;,\\\\n  :shopperInteraction =&amp;gt; &#039;ContAuth&#039;,\\\\n  :recurringProcessingModel =&amp;gt; &#039;Subscription&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.1.0\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  value: 2000\\\\n};\\\\n\\\\nconst cardDetails: Types.checkout.CardDetails = {\\\\n  storedPaymentMethodId: \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n  type: Types.checkout.CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nconst paymentRequest: Types.checkout.PaymentRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  recurringProcessingModel: Types.checkout.PaymentRequest.RecurringProcessingModelEnum.Subscription,\\\\n  paymentMethod: cardDetails,\\\\n  shopperInteraction: Types.checkout.PaymentRequest.ShopperInteractionEnum.ContAuth,\\\\n  returnUrl: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;h3&gt;Make an unscheduled card-on-file payment&lt;\\\/h3&gt;\\n&lt;p&gt;&lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\\/make-token-payments#make-a-subscription-or-unscheduled-card-on-file-payment\\&quot;&gt;Make an unscheduled card-on-file payment&lt;\\\/a&gt; using standard tokenization parameters. You do not need to include any additional parameters for cards.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Make an unscheduled card-on-file payment with a card token&#039;\\&quot; :id=\\&quot;&#039;unscheduled-card-on-file-payment-card-token&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;Content-Type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n     \\\\&amp;quot;amount\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;value\\\\&amp;quot;:2000,\\\\n       \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;USD\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;paymentMethod\\\\&amp;quot;:{\\\\n       \\\\&amp;quot;type\\\\&amp;quot;:\\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n       \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;:\\\\&amp;quot;8415718415172204\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;reference\\\\&amp;quot;:\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n     \\\\&amp;quot;merchantAccount\\\\&amp;quot;:\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n     \\\\&amp;quot;returnUrl\\\\&amp;quot;:\\\\&amp;quot;...\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperReference\\\\&amp;quot;:\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n     \\\\&amp;quot;shopperInteraction\\\\&amp;quot;:\\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n     \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;:\\\\&amp;quot;UnscheduledCardOnFile\\\\&amp;quot;\\\\n }&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v39.4.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(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  .value(2000L);\\\\n\\\\nCardDetails cardDetails = new CardDetails()\\\\n  .storedPaymentMethodId(\\\\&amp;quot;8415718415172204\\\\&amp;quot;)\\\\n  .type(CardDetails.TypeEnum.SCHEME);\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest()\\\\n  .reference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  .recurringProcessingModel(PaymentRequest.RecurringProcessingModelEnum.UNSCHEDULEDCARDONFILE)\\\\n  .paymentMethod(new CheckoutPaymentMethod(cardDetails))\\\\n  .shopperInteraction(PaymentRequest.ShopperInteractionEnum.CONTAUTH)\\\\n  .returnUrl(\\\\&amp;quot;...\\\\&amp;quot;)\\\\n  .shopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nPaymentsApi service = new PaymentsApi(client);\\\\nPaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v28.2.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\CheckoutPaymentMethod;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;USD\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(2000);\\\\n\\\\n$checkoutPaymentMethod = new CheckoutPaymentMethod();\\\\n$checkoutPaymentMethod\\\\n  -&amp;gt;setStoredPaymentMethodId(\\\\&amp;quot;8415718415172204\\\\&amp;quot;)\\\\n  -&amp;gt;setType(\\\\&amp;quot;scheme\\\\&amp;quot;);\\\\n\\\\n$paymentRequest = new PaymentRequest();\\\\n$paymentRequest\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n  -&amp;gt;setRecurringProcessingModel(\\\\&amp;quot;UnscheduledCardOnFile\\\\&amp;quot;)\\\\n  -&amp;gt;setPaymentMethod($checkoutPaymentMethod)\\\\n  -&amp;gt;setShopperInteraction(\\\\&amp;quot;ContAuth\\\\&amp;quot;)\\\\n  -&amp;gt;setReturnUrl(\\\\&amp;quot;...\\\\&amp;quot;)\\\\n  -&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new PaymentsApi($client);\\\\n$response = $service-&amp;gt;payments($paymentRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v32.1.2\\\\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 = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value = 2000\\\\n};\\\\n\\\\nCardDetails cardDetails = new CardDetails\\\\n{\\\\n  StoredPaymentMethodId = \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n  Type = CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nPaymentRequest paymentRequest = new PaymentRequest\\\\n{\\\\n  Reference = \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  MerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel = PaymentRequest.RecurringProcessingModelEnum.UnscheduledCardOnFile,\\\\n  PaymentMethod = new CheckoutPaymentMethod(cardDetails),\\\\n  ShopperInteraction = PaymentRequest.ShopperInteractionEnum.ContAuth,\\\\n  ReturnUrl = \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  ShopperReference = \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentsService(client);\\\\nvar response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.1.0\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst paymentRequest = {\\\\n  amount: {\\\\n    value: 2000,\\\\n    currency: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  paymentMethod: {\\\\n    type: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    storedPaymentMethodId: \\\\&amp;quot;8415718415172204\\\\&amp;quot;\\\\n  },\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  returnUrl: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  shopperInteraction: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  recurringProcessingModel: \\\\&amp;quot;UnscheduledCardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v21.0.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v21\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  Value: 2000,\\\\n}\\\\n\\\\ncardDetails := checkout.CardDetails{\\\\n  StoredPaymentMethodId: common.PtrString(\\\\&amp;quot;8415718415172204\\\\&amp;quot;),\\\\n  Type: common.PtrString(\\\\&amp;quot;scheme\\\\&amp;quot;),\\\\n}\\\\n\\\\npaymentRequest := checkout.PaymentRequest{\\\\n  Reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  Amount: amount,\\\\n  MerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  RecurringProcessingModel: common.PtrString(\\\\&amp;quot;UnscheduledCardOnFile\\\\&amp;quot;),\\\\n  PaymentMethod: checkout.CardDetailsAsCheckoutPaymentMethod(&amp;amp;cardDetails),\\\\n  ShopperInteraction: common.PtrString(\\\\&amp;quot;ContAuth\\\\&amp;quot;),\\\\n  ReturnUrl: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  ShopperReference: common.PtrString(\\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentsApi.PaymentsInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentRequest(paymentRequest)\\\\nres, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.6.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 2000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;: \\\\&amp;quot;8415718415172204\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperInteraction\\\\&amp;quot;: \\\\&amp;quot;ContAuth\\\\&amp;quot;,\\\\n  \\\\&amp;quot;recurringProcessingModel\\\\&amp;quot;: \\\\&amp;quot;UnscheduledCardOnFile\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request=json_request, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.4.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 2000,\\\\n    :currency =&amp;gt; &#039;USD&#039;\\\\n  },\\\\n  :paymentMethod =&amp;gt; {\\\\n    :type =&amp;gt; &#039;scheme&#039;,\\\\n    :storedPaymentMethodId =&amp;gt; &#039;8415718415172204&#039;\\\\n  },\\\\n  :reference =&amp;gt; &#039;YOUR_ORDER_NUMBER&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :returnUrl =&amp;gt; &#039;...&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_UNIQUE_SHOPPER_ID&#039;,\\\\n  :shopperInteraction =&amp;gt; &#039;ContAuth&#039;,\\\\n  :recurringProcessingModel =&amp;gt; &#039;UnscheduledCardOnFile&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.payments_api.payments(request_body, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v29.1.0\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\\\nconst config = new Config({\\\\n  apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  environment: EnvironmentEnum.TEST\\\\n});\\\\n\\\\nconst client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n  value: 2000\\\\n};\\\\n\\\\nconst cardDetails: Types.checkout.CardDetails = {\\\\n  storedPaymentMethodId: \\\\&amp;quot;8415718415172204\\\\&amp;quot;,\\\\n  type: Types.checkout.CardDetails.TypeEnum.Scheme\\\\n};\\\\n\\\\nconst paymentRequest: Types.checkout.PaymentRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  recurringProcessingModel: Types.checkout.PaymentRequest.RecurringProcessingModelEnum.UnscheduledCardOnFile,\\\\n  paymentMethod: cardDetails,\\\\n  shopperInteraction: Types.checkout.PaymentRequest.ShopperInteractionEnum.ContAuth,\\\\n  returnUrl: \\\\&amp;quot;...\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_UNIQUE_SHOPPER_ID\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:&quot;store-card-details-payment-methods&quot;,&quot;oldTabId&quot;:&quot;store-card-details-payment-methods_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='true'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2 id=\"test-and-go-live\">Test and go live<\/h2>\n<p>If your client-side integration isn't ready, you can <a href=\"\/pt\/development-resources\/test-cards-and-credentials\/test-card-numbers#test-encrypted-card-details\">test API requests with encrypted card details<\/a> by adding a <code>test_<\/code> prefix to the test card details.<\/p>\n<div class=\"sc-notice note\"><div>\n<p><a href=\"\/pt\/online-payments\/release-notes?integration_type=web&amp;version=5.20.0\">v5.20.0 or later<\/a>: Card input fields use <a href=\"https:\/\/datatracker.ietf.org\/doc\/html\/rfc7516\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">JSON Web Encryption<\/a>, so your test environment must be a <a href=\"https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/Security\/Secure_Contexts#when_is_a_context_considered_secure\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">secure context<\/a>. Use either a local or <code>https<\/code> domain, and add it to your <a href=\"\/pt\/development-resources\/client-side-authentication#allowed-origins\">allowed origins<\/a>.<\/p>\n<\/div><\/div>\n<p>Before making live card payments:<\/p>\n<ol>\n<li>\n<p>Test your integration using our <a href=\"\/pt\/development-resources\/test-cards-and-credentials\/test-card-numbers\">test card numbers<\/a>. You can check the status of 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>\n<\/li>\n<li>\n<p><a href=\"\/pt\/payment-methods\/add-payment-methods\">Add the cards that you want to accept<\/a> in your <a href=\"https:\/\/ca-live.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">live Customer Area<\/a>.<\/p>\n<\/li>\n<li>\n<p>Before you can start accepting card payments in the live environment, you need to assess your PCI DSS compliance and submit the required <em>Self-Assessment Questionnaire A<\/em> document. For more information, refer to <a href=\"\/pt\/development-resources\/pci-dss-compliance-guide#online-payments\">PCI DSS compliance guide<\/a>.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/online-payments\/components-web\"\n                        target=\"_self\"\n                        >\n                    Web Components integration guide\n                <\/a><\/li><li><a href=\"\/online-payments\/tokenization\"\n                        target=\"_self\"\n                        >\n                    Tokenization\n                <\/a><\/li><li><a href=\"\/development-resources\/webhooks\"\n                        target=\"_self\"\n                        >\n                    Webhooks\n                <\/a><\/li><li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/overview\"\n                        target=\"_blank\"\n                         class=\"external\">\n                    API Explorer\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/web-component","articleFields":{"description":"Add card payments to an existing Components integration.","feedback_component":true,"parameters":{"integration":"Components","platform":"Web","integration_guide_url":"build-your-integration\/sessions-flow?platform=Web&integration=Components","component_name":"the Component","component_class":"Card","component_name_capitalized":"The Component","payment_method":"cards","payment_method_type":"card","component_js_const":"card","secured_fields":"true"},"last_edit_on":"19-01-2022 10:01"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/web-component","title":"Card Component","content":"This page explains how to add cards to your existing Web Components integration.\nRequirements\nSelect the server-side flow that your integration uses:\n\n\n    \n        \n        \n    \n\n\nImport resources for v6\nIf you are using Web Components v6, import the Component that you need for cards:\nimport { AdyenCheckout, Card } from '@adyen\/adyen-web'\nAPI reference\nYou do not need to send additional fields for cards. To see optional fields that you can send for all payment methods, choose the endpoint you integrated:\n\n \/sessions&#58; This is the default with Components v5.0.0 or later.\n \/payments&#58; If you implemented an additional use case.\n\nYou can also send additional fields for specific use cases for example if you want to show debit and credit cards separately or make recurring card payments.\nComponent configuration\nStep 1: Create a DOM element\nCreate a DOM element on your checkout page, placing it where you want the payment method form to be rendered:\n &lt;div id=\"card-container\"&gt;&lt;\/div&gt;\nStep 2: Create an instance of the Component\nv6.0.0 or later\nCreate an instance of the Component, passing:\n\nYour instance of AdyenCheckout.\n\nconst card = new Card(checkout).mount('#card-container');\n\n    \n    \n        \n            \n            \n                                    v5.x.x or earlier\n                            \n        \n        \n            \nUse the create method of your AdyenCheckout instance, in this case checkout, to create the Component:\nconst cardComponent = checkout.create('card').mount('#card-container');\n\n        \n    \n\n\n\n    \n    \n        \n            \n            \n                                    Optional configuration\n                            \n        \n        \n            \nInclude optional configuration in the card configuration object. For example, to configure showing the cardholder name and billing address fields as required, and to customize the icon for Visa:\n\n    \n\nv6.0.0 or later\nCreate an instance of the Component, passing:\n\nYour instance of AdyenCheckout.\nThe  payment method-specific configuration.\n\nconst cardComponent = new Card(checkout, cardConfiguration).mount('#card-container');\n\n    \n    \n        \n            \n            \n                                    v5.x.x or earlier\n                            \n        \n        \n            \nUse the create method of your AdyenCheckout instance, in this case checkout, to create an instance of the Component. Add the configuration object if you created one.\nconst cardComponent = checkout.create('card', cardConfiguration).mount('#card-container');\n\n        \n    \n\n\nProperties\n\n\n\n\nField\nDescription\nDefault\n\n\n\n\nbrands\nArray of card brands that will be recognized. For a list of possible values, refer to Supported card types.\n['mc','visa','amex']\n\n\nbrandsConfiguration v4.5.0 or later\nObject where you can customize the icons for different brands. For example, to customize the icon for Visa, include inside the brandsConfiguration:    visa: { icon: 'https:\/\/...' }\n\n\n\nshowBrandIcon\nSet to false to not show the brand logo when the card brand has been recognized.\ntrue\n\n\nshowBrandsUnderCardNumber v5.12.0 or later\nShows brand logos under the card number field when the shopper selects the card payment method.  \ntrue\n\n\nenableStoreDetails\nSet to true to show the checkbox for saving the card details for recurring payments.\nfalse\n\n\nhasHolderName\nSet to true to show the input field for the cardholder name.\nfalse\n\n\nholderNameRequired\nSet to true to make the cardholder name a required field. To show the field, you additionally need to set hasHolderName to true.\nfalse\n\n\npositionHolderNameOnTop v4.2.0 or later\nRenders the cardholder name field at the top of the payment form.\nfalse\n\n\nhideCVC\nSet to true to hide the CVC field.\nfalse\n\n\nconfiguration.socialSecurityNumberMode v4.2.0 or later\nRenders a social security number field. For example, this is required for certain card payments in Brazil. Possible values are:  - show: Always renders the field.  - hide: Never renders the field.  - auto: Renders the field based on the card's BIN.\nauto \n\n\nstyles\nSet a style object to customize the  card input fields.  For a list of supported properties, refer to Styling card input fields.\nRefer to  Default styles and labels.\n\n\nbillingAddressRequired\nSet to true to collect the shopper's billing address and mark the fields as required.\nfalse\n\n\nbillingAddressMode  v5.14.0 or later \nIf billingAddressRequired is set to true, you can set this to partial to require the shopper's postal code instead of the full address.   v5.31.0 or later: When set to partial, you can configure data.country to validate the postal code your shopper enters.\nIf billingAddressRequired is false: none.  If billingAddressRequired is true: full.\n\n\nbillingAddressAllowedCountries\nSpecify allowed country codes for the billing address. For example, ['US', 'CA', 'BR'].\nThe Country field dropdown menu shows a list of all countries.\n\n\ninstallmentOptions\nIf you want to offer credit card installments, specify here the numbers of monthly installments that the shopper can choose from.  For example, to have 2, and 3, and 4 as the default installment options for all cards:  { \"card\": {  \"values\": [2, 3, 4] }}.   v3.15.0 or later: You can also configure plans for Japanese installments: regular, revolving, or both.  Refer to credit card installments for a code sample.\nv3.15.0 or later:  plans: regular\n\n\ndata\nAn object containing values to pre-fill Card Component fields. Pre-populating shopper data saves time and reduces checkout friction.Examples:holderName: Pre-fills the cardholder name.billingAddress: An object to pre-fill the billing address (e.g., street, postalCode, city, country, stateOrProvince).\nEmpty\n\n\nplaceholder\nAn object containing temporary placeholder text for the fields. Placeholders appear in gray and suggest the expected input format to the shopper.Examples:holderName: Placeholder text for the cardholder name.billingAddress: An object containing placeholder text for the billing address (e.g., street, postalCode, city, country, stateOrProvince).\nEmpty\n\n\n minimumExpiryDate \u00a0v4.3.0 or later\nIf a shopper enters a date that is earlier than specified here, they will see the following error:  \"Your card expires before check out date.\"   Format: mm\/yy\n\n\nshowInstallmentAmounts v3.15.0 or later\nIf you want to offer credit card installments, set to true to show the payment amount per installment.  Refer to credit card installments for a code sample.\nfalse\n\n\nautoFocus\nAutomatically move the focus from date field to the CVC field.  v5.8.0 or later: The focus also moves to the date field when the entered card number reaches the expected length.\ntrue\n\n\nSRConfig \nObject for configuring screen reader behavior. Does not affect what gets rendered in the checkout form.\n\n\n\nSRConfig.collateErrors\nIndicates if all errors in the form are read out after each validation. For example, if there is an error in the card number field, the error is read out after validating each of the other fields, until the error is fixed.\ntrue\n\n\nSRConfig.moveFocus\nIndicates if focus automatically switches to the first field with an error when the shopper selects the Pay button.  Can only be set if SRConfig.collateErrors is true.\nfalse\n\n\nmaskSecurityCode\nSet to true to mask the CVV\/CVC code when your shopper enters it in the Card Component.\n\n\ndisclaimerMessage\nObject for adding a disclaimer to your Card Component\n\n\n\ndisclaimerMessage.message\nA string of text that is displayed in the Card Component. Use %{linkText} to reference disclaimerMessage.linkText, if defined.\n\n\n\ndisclaimerMessage.linkText\nThe hyperlink text.\n\n\n\ndisclaimerMessage.link\nThe hyperlink destination. The link opens in a new tab.\n\n\n\naddressSearchDebounceMs\nFor the address lookup feature, the number of milliseconds for the debounce of the onAddressLookup callback.\n\n\n\n\nEvents\nYou can also customize your shopper's experience when specific events occur.\n\n\n\nEvent\nDescription\n\n\n\n\nonChange\nCalled when the shopper enters data in the card input fields. Here you have the option to override your main Adyen Checkout configuration.\n\n\nonSubmit\nCalled when the shopper selects the Pay button and payment details are valid. Required if you need to update the payment amount after rendering the Component. For this additional use case, you need to integrate additional endpoints.\n\n\nonLoad\nCalled when all card input fields have been created but are not yet ready to use.\n\n\nonConfigSuccess\nCalled when all card input fields are ready to use.\n\n\nonFieldValid \nCalled when the input in a field becomes valid and also if the input changes and becomes invalid. For the card number field, it returns the following:  - endDigits: the last 4 digits of the card number.  - v5.10.0 or later issuerBin: if the card number has sixteen or more digits, this is the first eight digits of the card number.\n\n\nonBrand\nCalled when Drop-in detects the card brand.\n\n\nonError\nCalled when Drop-in detects an invalid card number, invalid expiry date, or incomplete field. Called again when errors are cleared. Starting from v5.0.0, the onError handler is no longer used only for card component related errors, and returns an object for every component.\n\n\nonFocus\nCalled when focus moves to a field.\n\n\nonBlur  \n  v6.0.0 or later\n\nCalled when focus moves away from a field.\n\n\nonBinLookup \n  v3.21.0 or later\n\nCalled when the shopper enters the card number. Requires a minimum of 11 digits of the card number to be entered. Returns the following: - type: type of the card.  - brands: brands on the card.  - supportedBrands: the brands you support.  - detectedBrands: brands detected on the card.  - v5.30.1 or later issuingCountryCode: the two-letter country code of the country where the card was issued. - v5.43.0 or later paymentMethodVariant: the card type variant.\n\n\nonBinValue \n  v3.10.1 or later\n\nCalled when the shopper enters the card number. Returns binValue: the first 6 digits of the card number.   Requires the client key for client-side authentication.\n\n\nonAddressLookup \n  v5.45.0 or later\n\nCalled when the shopper enters characters in the address input fields. You must implement it with an external address lookup API.  The following properties must be configured:- billingAddressRequired: true- billingAddressMode: full\n\n\nonAddressSelected \n  v5.54.0 or later\n\nCall when the shopper selects a suggested address. You must implement it with an external address lookup API that uses two API requests to complete the suggestion.  The following properties must be configured:- billingAddressRequired: true- billingAddressMode: full\n\n\n\nImplementing the address lookup feature\nThe Component includes optional callbacks that you can use to suggest addresses to the shopper when they enter data into address input fields. The callbacks work with an external application that you choose to get addresses.\nThere are different ways that external APIs work:\n\nOne request: one API request is required that returns a list of items with full address details. For example, you can use this with Radar.\nTwo requests: two API requests are required. The first returns a list of items with partial address details. After selecting an item from the list, the second request returns the full details of the selected item. For example, you can use this with Google Places.\n\nChoose the implementation you require:\n\n\n    \n        \n        \n    \n\n\n\n        \n    \n\n\nCard brand recognition\nWhen the shopper is entering their card details, Components tries to recognize the card brand. When successful, Components renders the brand icon and the corresponding input field for the card security code (CVC, CVV, or CID).\nCo-badged cards\nCo-badged cards are rendered by the Component according to the co-badged card regulations for the applicable regions. This means that Components renders all supported brands, and allows the cardholder to choose their preferred brand.\nShow debit and credit cards separately\nChoose which server-side flow your integration uses:\n\n\n    \n        \n        \n    \n\n\nRecurring payments\nCards support tokenization for one-click, subscription, and unscheduled card-on-file payments. Refer to Create tokens to integrate with our tokenization feature.\n\nWe strongly recommend that you ask explicit permission from the shopper if you intend to make future recurring payments. Being transparent about the payment schedule and the charged amount reduces the risk of chargebacks.\n\nChoose which server-side flow your integration uses:\n\n\n    \n        \n        \n    \n\n\nTest and go live\nIf your client-side integration isn't ready, you can test API requests with encrypted card details by adding a test_ prefix to the test card details.\n\nv5.20.0 or later: Card input fields use JSON Web Encryption, so your test environment must be a secure context. Use either a local or https domain, and add it to your allowed origins.\n\nBefore making live card payments:\n\n\nTest your integration using our test card numbers. You can check the status of test payments in your\u00a0Customer Area\u00a0&gt;\u00a0Transactions\u00a0&gt;\u00a0Payments.\n\n\nAdd the cards that you want to accept in your live Customer Area.\n\n\nBefore you can start accepting card payments in the live environment, you need to assess your PCI DSS compliance and submit the required Self-Assessment Questionnaire A document. For more information, refer to PCI DSS compliance guide.\n\n\nSee also\n\n\n                    Web Components integration guide\n                \n                    Tokenization\n                \n                    Webhooks\n                \n                    API Explorer\n                \n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Payment methods","lvl2":"Cards","lvl3":"Card Component"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/payment-methods","lvl2":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards","lvl3":"\/pt\/payment-methods\/cards\/web-component"},"levels":4,"category":"Payment method","category_color":"green","tags":["Component"]}}
