{"title":"Pay by Link through the API","category":"default","creationDate":1776961628,"content":"<div class=\"additional-info-block output-inline\">\n<div class=\"additional-info-block__body\"><p><img style=\"width: 25px;\" alt=\"\" src=\"\/user\/pages\/reuse\/development-resources\/additional-info-resources\/postman-logo-vertical-orange-2021.svg?decoding=auto&amp;fetchpriority=auto\" \/>&nbsp;&nbsp;<a href=\"https:\/\/www.postman.com\/adyendev\/workspace\/adyen-apis\/collection\/25716737-46ad970e-dc9e-4246-bac2-769c6083e7b5\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Postman collection<\/a><\/p><p><strong>Implementation examples<\/strong><br \/><img alt=\"\" src=\"\/user\/pages\/reuse\/development-resources\/additional-info-resources\/java-original.svg?decoding=auto&amp;fetchpriority=auto\" \/>&nbsp;&nbsp;<a href=\"https:\/\/github.com\/adyen-examples\/adyen-java-spring-online-payments\/tree\/main\/paybylink-example\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Java Spring<\/a><br \/><img alt=\"\" src=\"\/user\/pages\/reuse\/development-resources\/additional-info-resources\/dot-net-original.svg?decoding=auto&amp;fetchpriority=auto\" \/>&nbsp;&nbsp;<a href=\"https:\/\/github.com\/adyen-examples\/adyen-dotnet-online-payments\/tree\/main\/paybylink-example\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">.NET<\/a><br \/><img alt=\"\" src=\"\/user\/pages\/reuse\/development-resources\/additional-info-resources\/nodejs-original.svg?decoding=auto&amp;fetchpriority=auto\" \/>&nbsp;&nbsp;<a href=\"https:\/\/github.com\/adyen-examples\/adyen-node-online-payments\/tree\/main\/paybylink-example\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Node.js<\/a><\/p><\/div><\/div>\n\n<p>Creating payment links through the API allows you to accept <a href=\"\/pt\/unified-commerce\/pay-by-link\/supported-payment-methods\">most payment methods<\/a>, including buy now, pay later payment methods such as Klarna and Afterpay.<\/p>\n<p>Using payment links to accept payments works as follows:<\/p>\n<ol>\n<li><a href=\"#create\">Create a payment link<\/a>.<\/li>\n<li><a href=\"#send\">Send the payment link to your shopper<\/a>.<\/li>\n<li><a href=\"#get-updates\">Get updates about the payment<\/a>.<\/li>\n<\/ol>\n<p>On this page, you'll also learn how to implement additional use cases such as:<\/p>\n<ul>\n<li><a href=\"#reusable-payment-links\">Create a reusable payment link<\/a>.<\/li>\n<li>Tokenize your shopper's payment details for future <a href=\"#tokenize-future-payments\">one-off payments<\/a> or for <a href=\"#tokenize-subscriptions\">subscription payments<\/a>.<\/li>\n<li>Provide <a href=\"#provide-additional-information\">additional information<\/a> about the product or the shopper. This is required for some payment methods, for example buy now, pay later payment methods.<\/li>\n<li><a href=\"#force-expiry\">Force the expiry of a payment link<\/a>, for example if you sent a new payment link to your shopper.<\/li>\n<li><a href=\"#customize\">Customize<\/a> the payment methods, style, and language shown on the payment page.<\/li>\n<\/ul>\n<h2>Requirements<\/h2>\n<p>Before you begin to integrate, make sure you have followed the <a href=\"\/pt\/get-started-with-adyen\">Get started with Adyen guide<\/a> to:<\/p>\n<ul>\n<li>Get an overview of the steps needed to accept live payments.<\/li>\n<li>Create your test account.<\/li>\n<\/ul>\n<p>After you have created your test account:<\/p>\n<ul>\n<li><a href=\"\/pt\/unified-commerce\/pay-by-link#add-your-terms-and-conditions\">Add your terms and conditions<\/a> to the Pay by Link payment page.<\/li>\n<li><a href=\"#api-key\">Generate your API key<\/a> for creating payment links.<\/li>\n<li><a href=\"#webhooks\">Set up webhooks<\/a> to keep track of the payment result.<\/li>\n<li><a href=\"#add-payment-methods\">Add payment methods<\/a> to your account.<\/li>\n<\/ul>\n<h3 id=\"api-key\">Generate your API key<\/h3>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a> and select your <strong>Company<\/strong> account.<\/li>\n<li>Go to <strong>Developers<\/strong> &gt; <strong>API credentials<\/strong>.<\/li>\n<li>Select the <strong>Payments<\/strong> or <strong>Platforms<\/strong> tab, depending on your integration type.<\/li>\n<li>Select the credential username.<\/li>\n<li>Under <strong>Server settings<\/strong> &gt; <strong>Authentication<\/strong> select the <strong>API key<\/strong> tab.<\/li>\n<li>Select <strong>Generate API key<\/strong>.<\/li>\n<li>Select the copy icon <i class=\"adl-icon-copy\"><\/i> and store your API key securely in your system.\n<div class=\"notices yellow\">\n<p>You cannot copy the API key again after you leave the page.<\/p>\n<\/div><\/li>\n<li>Select <strong>Save changes<\/strong>.<\/li>\n<\/ol>\n<h3 id=\"webhooks\">Set up webhooks<\/h3>\n<p>Webhooks allow you to get updates about the payment after you have sent the payment link to your shopper.<\/p>\n<p>If you haven't done so already, <a href=\"\/pt\/development-resources\/webhooks\">set up webhooks<\/a>, and make sure that your server can process and accept webhooks.<\/p>\n<h3 id=\"add-payment-methods\">Add payment methods to your account<\/h3>\n<p>If you haven't done so already, add payment methods to your merchant account. To see which payment methods are supported for Pay by Link, refer to <a href=\"\/pt\/unified-commerce\/pay-by-link\/supported-payment-methods\">Supported payment methods<\/a>.<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/li>\n<li>Switch to your merchant account.<\/li>\n<li>Go to <strong>Settings<\/strong> &gt; <strong>Payment methods<\/strong>.<\/li>\n<li>Select <strong>Add payment methods<\/strong>.<\/li>\n<li>Start entering the name of the payment method, then select it from the drop-down list.<\/li>\n<li>Select <strong>Submit<\/strong>.<\/li>\n<\/ol>\n<h2 id=\"create\">Step 1: Create a payment link<\/h2>\n<p>Make a POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request specifying the following:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__resParam_merchantAccount\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">merchantAccount<\/a>: the name of your merchant account.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-reference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">reference<\/a>&#58; your identifier for the transaction.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-amount\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">amount<\/a>&#58; the <code>currency<\/code> and <code>value<\/code> in <a href=\"\/pt\/development-resources\/currency-codes\">minor units<\/a>.<\/li>\n<\/ul>\n<p>You can also include other parameters, for example <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__reqParam_shopperLocale\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\n  <code>shopperLocale<\/code>\n<\/a> to specify the language of the payment page, <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__resParam_expiresAt\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\n  <code>expiresAt<\/code>\n<\/a> to change the expiry date of the payment link, or <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__reqParam_description\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\n  <code>description<\/code>\n<\/a> to add a description for the product. If these are not provided, the payment page will be rendered in the language of the shopper's browser locale, without a description, and with a 24-hour expiry.<\/p>\n<p>In this example, we'll show you how you can create a payment link for a shopper in the <strong>Netherlands<\/strong> for a purchase amount of <strong>EUR&nbsp;42<\/strong>:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"'paymentLinks-request'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/paymentLinks \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 4200,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  \\&quot;description\\&quot;: \\&quot;Blue Bag - ModelM671\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(4200L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.description(\\&quot;Blue Bag - ModelM671\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t.shopperReference(\\&quot;YOUR_SHOPPER_REFERENCE\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(4200);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Blue Bag - ModelM671\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t-&gt;setShopperReference(\\&quot;YOUR_SHOPPER_REFERENCE\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 4200\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tDescription = \\&quot;Blue Bag - ModelM671\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;,\\n\\tShopperReference = \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 4200,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  shopperReference: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  description: \\&quot;Blue Bag - ModelM671\\&quot;,\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 4200,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Blue Bag - ModelM671\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n\\tShopperReference: common.PtrString(\\&quot;YOUR_SHOPPER_REFERENCE\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 4200,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  \\&quot;description\\&quot;: \\&quot;Blue Bag - ModelM671\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 4200,\\n    :currency =&gt; 'EUR'\\n  },\\n  :shopperReference =&gt; 'YOUR_SHOPPER_REFERENCE',\\n  :description =&gt; 'Blue Bag - ModelM671',\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 4200\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\tdescription: \\&quot;Blue Bag - ModelM671\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;,\\n\\tshopperReference: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>You receive a response containing the following:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__resParam_id\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">id<\/a>: the payment link ID.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#responses-201-url\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">url<\/a>&#58; the payment link that you should send to your shopper.<\/li>\n<li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__reqParam_expiresAt\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">expiresAt<\/a>: date and time when the payment link expires.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"amount\\\": {\\n      \\\"currency\\\": \\\"EUR\\\",\\n      \\\"value\\\": 4200\\n  },\\n  \\\"countryCode\\\": \\\"NL\\\",\\n  \\\"description\\\": \\\"Blue Bag - ModelM671\\\",\\n  \\\"expiresAt\\\": \\\"2020-07-25T11:32:20Z\\\",\\n  \\\"id\\\": \\\"PL50C5F751CED39G71\\\",\\n  \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n  \\\"reference\\\": \\\"YOUR_PAYMENT_REFERENCE\\\",\\n  \\\"shopperLocale\\\": \\\"nl-NL\\\",\\n  \\\"shopperReference\\\": \\\"YOUR_SHOPPER_REFERENCE\\\",\\n  \\\"url\\\": \\\"https:\\\/\\\/test.adyen.link\\\/PL50C5F751CED39G71\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"send\">Step 2: Send the payment link to your shopper<\/h2>\n<p>Use the <code>url<\/code> from the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> response to redirect your shopper to the payment link.<\/p>\n<div class=\"notices red\">\n<p>Starting November 1, 2025, you cannot embed payment links in an iframe. If you are currently using payment links in an iframe, update your integration to comply.<\/p>\n<\/div>\n<p>Send the <code>url<\/code> to your shopper. When the shopper selects the link, they are redirected to an Adyen-hosted payment page. The shopper is presented with the payment methods available for the <code>amount<\/code> and <code>countryCode<\/code> specified in the request.<\/p>\n<h2 id=\"get-updates\">Step 3: Get updates about the payment<\/h2>\n<p>First, wait for the <a href=\"#notification\">AUTHORISATION<\/a> webhook to receive the result of the payment, as well as the payment link ID. When you have the payment link ID, you can <a href=\"#get-details\">make a GET <code>\/paymentLinks\/{linkId}<\/code> request<\/a> to get details about the payment link.<\/p>\n<p>You can also <a href=\"\/pt\/unified-commerce\/pay-by-link\/create-payment-links\/customer-area#view-links\">view payment links in your Customer Area<\/a>.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>Currently, the <strong>Payment Links<\/strong> page in the Customer Area only shows links that are created in the EU. For links created in other regions, you can use the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#responses-201-id\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">id<\/a> you received in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> response to navigate to the payment link details page, with the following format:<\/p>\n<pre><code class=\"language-text\">https:\/\/ca-live.adyen.com\/ca\/ca\/transactions\/payment-link-details.shtml?d=PAYMENT_LINK_ID<\/code><\/pre>\n<\/div><\/div>\n<div class=\"sc-notice note\"><div>\n<p>We keep payment link details for three months. If it was more than three months ago that a payment link was created, the details are no longer available.<\/p>\n<\/div><\/div>\n<h3 id=\"notification\">AUTHORISATION webhook<\/h3>\n<p>The <strong>AUTHORISATION<\/strong> webhook contains:<\/p>\n<ul>\n<li><code>additionalData.paymentLinkId<\/code>: Use this to match the payment to the payment link. For our example, this matches the payment link ID <strong>PL50C5F751CED39G71<\/strong>.<\/li>\n<li><code>pspReference<\/code>: Unique identifier for the payment.<\/li>\n<li>\n<p><code>success<\/code>: The result of the transaction.<\/p>\n<table>\n<thead>\n<tr>\n<th><code>success<\/code><\/th>\n<th>Description<\/th>\n<th>Action to take<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><strong>true<\/strong><\/td>\n<td>The&nbsp;shopper&nbsp;successfully completed the payment.<\/td>\n<td>Inform the shopper that the payment has been successful, and proceed with the order. <br>If you have enabled <a href=\"\/pt\/online-payments\/capture#manual-capture\">manual capture<\/a>, you also need to capture the payment.<\/td>\n<\/tr>\n<tr>\n<td><strong>false<\/strong><\/td>\n<td>The&nbsp;shopper&nbsp;attempted to pay but the transaction failed.<\/td>\n<td>The payment page informs the shopper that the payment was unsuccessful, and prompts them to try again. If the shopper still doesn't make a successful payment, you may want to reach out to them to follow up.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'AUTHORISATION webhook'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n\\\"notificationItems\\\":[\\n {\\n    \\\"NotificationRequestItem\\\":{\\n       \\\"additionalData\\\":{\\n           ...\\n           \\\"paymentLinkId\\\":\\\"PL50C5F751CED39G71\\\"\\n       },\\n       \\\"amount\\\":{\\n           \\\"currency\\\":\\\"EUR\\\",\\n           \\\"value\\\":4200\\n       },\\n       ...\\n       \\\"eventCode\\\":\\\"AUTHORISATION\\\",\\n       \\\"merchantAccountCode\\\":\\\"YOUR_MERCHANT_ACCOUNT\\\",\\n       \\\"merchantReference\\\":\\\"YOUR_ORDER_NUMBER\\\",\\n       \\\"pspReference\\\":\\\"852593065346377D\\\",\\n       \\\"success\\\":\\\"true\\\"\\n    }\\n }\\n]\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"get-details\">Get details about a payment link<\/h3>\n<p>To get the details of a specific payment link, send a GET <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/get\/paymentLinks\/{linkId}\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks\/{linkId}<\/a> request. Let's use our example from the previous section for a payment link with ID <strong>PL50C5F751CED39G71<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Get payment link details'\" :id=\"'6703624161'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks\\\/PL50C5F751CED39G71 \\\\\\n-X GET \\\\\\n-H'x-api-key: ADYEN_API_KEY'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response returns the payment link details, including the <code>amount<\/code> and the <code>status<\/code>. If the link is not expired and has not been paid, the status is <strong>active<\/strong>. Else, the status is <strong>completed<\/strong> or <strong>expired<\/strong>. The status can also be <strong>paymentPending<\/strong> if the payment has an asynchronous flow and the shopper hasn't yet completed the payment.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"amount\\\": {\\n        \\\"currency\\\": \\\"EUR\\\",\\n        \\\"value\\\": 4200\\n    },\\n    \\\"countryCode\\\": \\\"NL\\\",\\n    \\\"expiresAt\\\": \\\"2020-06-23T12:25:28Z\\\",\\n    \\\"id\\\": \\\"PL50C5F751CED39G71\\\",\\n    \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n    \\\"reference\\\": \\\"YOUR_PAYMENT_REFERENCE\\\",\\n    \\\"shopperLocale\\\": \\\"nl-NL\\\",\\n    \\\"status\\\": \\\"active\\\",\\n    \\\"url\\\": \\\"https:\\\/\\\/test.adyen.link\\\/PL50C5F751CED39G71\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"reusable-payment-links\">Create a reusable payment link<\/h2>\n<p>In some cases, you may want to create a reusable link. For example, if you want to accept donations for a fixed amount from multiple shoppers, or sell event tickets. To do this, set <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__resParam_reusable\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">reusable<\/a> to <strong>true<\/strong> in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/p>\n<p>The following example shows how to create a <em>reusable<\/em> payment link to accept donations for the amount of <strong>USD&nbsp;8.50<\/strong> from shoppers in the <strong>United States<\/strong>:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Create a reusable payment link'\" :id=\"'9121913806'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n-H'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 850,\\n      \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Donation\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;US\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;en-US\\&quot;,\\n  \\&quot;reusable\\&quot; : true\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;USD\\&quot;)\\n\\t.value(850L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;US\\&quot;)\\n\\t.description(\\&quot;Donation\\&quot;)\\n\\t.shopperLocale(\\&quot;en-US\\&quot;)\\n\\t.reusable(true);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;USD\\&quot;)\\n\\t-&gt;setValue(850);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;US\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Donation\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;en-US\\&quot;)\\n\\t-&gt;setReusable(true);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;USD\\&quot;,\\n\\tValue = 850\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;US\\&quot;,\\n\\tDescription = \\&quot;Donation\\&quot;,\\n\\tShopperLocale = \\&quot;en-US\\&quot;,\\n\\tReusable = true\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 850,\\n    currency: \\&quot;USD\\&quot;\\n  },\\n  description: \\&quot;Donation\\&quot;,\\n  countryCode: \\&quot;US\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;en-US\\&quot;,\\n  reusable: true\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;USD\\&quot;,\\n\\tValue: 850,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;US\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Donation\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;en-US\\&quot;),\\n\\tReusable: common.PtrBool(true),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 850,\\n    \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Donation\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;US\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;en-US\\&quot;,\\n  \\&quot;reusable\\&quot;: True\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 850,\\n    :currency =&gt; 'USD'\\n  },\\n  :description =&gt; 'Donation',\\n  :countryCode =&gt; 'US',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'en-US',\\n  :reusable =&gt; true\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;USD\\&quot;,\\n\\tvalue: 850\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;US\\&quot;,\\n\\tdescription: \\&quot;Donation\\&quot;,\\n\\tshopperLocale: \\&quot;en-US\\&quot;,\\n\\treusable: true\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2>Tokenize your shopper's payment details<\/h2>\n<p>You can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details. Your <code>\/paymentLinks<\/code> request must include a <code>recurringProcessingModel<\/code> to indicate how you want to use the token:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Business model<\/th>\n<th style=\"text-align: left;\"><code>recurringProcessingModel<\/code><\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#tokenize-future-payments\">One-off payments<\/a><\/td>\n<td style=\"text-align: left;\"><strong>CardOnFile<\/strong><\/td>\n<td style=\"text-align: left;\">Tokenize the customer's card details, and with future payment links present the customer's stored card on the payment page.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#tokenize-subscriptions\">Subscription payments<\/a><\/td>\n<td style=\"text-align: left;\"><strong>Subscription<\/strong><\/td>\n<td style=\"text-align: left;\">Tokenize the customer's card for recurring payments that occur at regular intervals without the customer being present.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><a href=\"#tokenize-unscheduled\">Unscheduled recurring payments<\/a><\/td>\n<td style=\"text-align: left;\"><strong>UnscheduledCardOnFile<\/strong><\/td>\n<td style=\"text-align: left;\">Tokenize the customer's card for recurring payments that occur on a non-fixed schedule without the customer being present. This includes automatic top-ups when the cardholder's balance drops below a certain amount.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"tokenize-future-payments\">Tokenize for future one-off payments<\/h3>\n<div class=\"notices yellow\">\n<p>You should always ask for your customer's consent before tokenizing their card for future payments.<\/p>\n<\/div>\n<p>You can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details for future one-off payments. The next time the same shopper makes a purchase, their stored card details will be presented on the payment page.<\/p>\n<ol>\n<li>\n<p>Send the following in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request:<\/p>\n<ul>\n<li>A unique  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperReference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperReference<\/a> of at least three characters.\n<div class=\"notices green\">\n<p>Your reference must not include personally identifiable information (PII), like name or email address.<\/p>\n<\/div><\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-storePaymentMethodMode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storePaymentMethodMode<\/a> set to <strong>askForConsent<\/strong> to allow the shopper to decide whether to store the details. If you already have the shopper's consent, set this parameter to <strong>enabled<\/strong>.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#responses-200-recurringProcessingModel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">recurringProcessingModel<\/a> set to <strong>CardOnFile<\/strong>.<\/li>\n<\/ul>\n<p>Here's an example of how you can create a payment link for a shopper with <code>shopperReference<\/code> <strong>ShopperID-A16728<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Create a payment link to save card details'\" :id=\"'8248546319'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n  -H'x-api-key: ADYEN_API_KEY' \\\\\\n  -H 'content-type: application\\\/json' \\\\\\n  -d '{\\n      \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n      \\&quot;amount\\&quot;: {\\n          \\&quot;value\\&quot;: 4250,\\n          \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n      },\\n      \\&quot;description\\&quot;: \\&quot;Black sneakers - X51\\&quot;,\\n      \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n      \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n      \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n      \\&quot;shopperReference\\&quot;: \\&quot;ShopperID-A16728\\&quot;,\\n      \\&quot;storePaymentMethodMode\\&quot;: \\&quot;askForConsent\\&quot;,\\n      \\&quot;recurringProcessingModel\\&quot;: \\&quot;CardOnFile\\&quot;\\n   }'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(4250L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.storePaymentMethodMode(PaymentLinkRequest.StorePaymentMethodModeEnum.ASKFORCONSENT)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.recurringProcessingModel(PaymentLinkRequest.RecurringProcessingModelEnum.CARDONFILE)\\n\\t.description(\\&quot;Black sneakers - X51\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t.shopperReference(\\&quot;ShopperID-A16728\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(4250);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setStorePaymentMethodMode(\\&quot;askForConsent\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setRecurringProcessingModel(\\&quot;CardOnFile\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Black sneakers - X51\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t-&gt;setShopperReference(\\&quot;ShopperID-A16728\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 4250\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tStorePaymentMethodMode = PaymentLinkRequest.StorePaymentMethodModeEnum.AskForConsent,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tRecurringProcessingModel = PaymentLinkRequest.RecurringProcessingModelEnum.CardOnFile,\\n\\tDescription = \\&quot;Black sneakers - X51\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;,\\n\\tShopperReference = \\&quot;ShopperID-A16728\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 4250,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  description: \\&quot;Black sneakers - X51\\&quot;,\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;,\\n  shopperReference: \\&quot;ShopperID-A16728\\&quot;,\\n  storePaymentMethodMode: \\&quot;askForConsent\\&quot;,\\n  recurringProcessingModel: \\&quot;CardOnFile\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 4250,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tStorePaymentMethodMode: common.PtrString(\\&quot;askForConsent\\&quot;),\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tRecurringProcessingModel: common.PtrString(\\&quot;CardOnFile\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Black sneakers - X51\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n\\tShopperReference: common.PtrString(\\&quot;ShopperID-A16728\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 4250,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Black sneakers - X51\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;ShopperID-A16728\\&quot;,\\n  \\&quot;storePaymentMethodMode\\&quot;: \\&quot;askForConsent\\&quot;,\\n  \\&quot;recurringProcessingModel\\&quot;: \\&quot;CardOnFile\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 4250,\\n    :currency =&gt; 'EUR'\\n  },\\n  :description =&gt; 'Black sneakers - X51',\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL',\\n  :shopperReference =&gt; 'ShopperID-A16728',\\n  :storePaymentMethodMode =&gt; 'askForConsent',\\n  :recurringProcessingModel =&gt; 'CardOnFile'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 4250\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tstorePaymentMethodMode: Types.checkout.PaymentLinkRequest.StorePaymentMethodModeEnum.AskForConsent,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\trecurringProcessingModel: Types.checkout.PaymentLinkRequest.RecurringProcessingModelEnum.CardOnFile,\\n\\tdescription: \\&quot;Black sneakers - X51\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;,\\n\\tshopperReference: \\&quot;ShopperID-A16728\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The shopper's card details will be tokenized after they make a successful payment.<br \/>\n<a id=\"show-saved-card\"><\/a><\/p>\n<\/li>\n<li>\n<p>When the shopper returns for their next purchase, send the same  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperReference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperReference<\/a> from the first request, and set <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">recurringProcessingModel<\/a> to <strong>CardOnFile<\/strong> in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/p>\n<p>Here's an example of how you can create a payment link for the same shopper with <code>shopperReference<\/code> <strong>ShopperID-A16728<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Create a payment link that shows stored card details'\" :id=\"'0371471375'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n  -H'x-api-key: ADYEN_API_KEY' \\\\\\n  -H 'content-type: application\\\/json' \\\\\\n  -d '{\\n      \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n      \\&quot;amount\\&quot;: {\\n          \\&quot;value\\&quot;: 4250,\\n          \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n      },\\n      \\&quot;description\\&quot;: \\&quot;Blue backpack - BK11\\&quot;,\\n      \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n      \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n      \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n      \\&quot;shopperReference\\&quot;: \\&quot;ShopperID-A16728\\&quot;,\\n      \\&quot;recurringProcessingModel\\&quot;: \\&quot;CardOnFile\\&quot;\\n  }'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(4250L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.recurringProcessingModel(PaymentLinkRequest.RecurringProcessingModelEnum.CARDONFILE)\\n\\t.description(\\&quot;Blue backpack - BK11\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t.shopperReference(\\&quot;ShopperID-A16728\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(4250);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setRecurringProcessingModel(\\&quot;CardOnFile\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Blue backpack - BK11\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t-&gt;setShopperReference(\\&quot;ShopperID-A16728\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 4250\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tRecurringProcessingModel = PaymentLinkRequest.RecurringProcessingModelEnum.CardOnFile,\\n\\tDescription = \\&quot;Blue backpack - BK11\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;,\\n\\tShopperReference = \\&quot;ShopperID-A16728\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 4250,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  description: \\&quot;Blue backpack - BK11\\&quot;,\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;,\\n  shopperReference: \\&quot;ShopperID-A16728\\&quot;,\\n  recurringProcessingModel: \\&quot;CardOnFile\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 4250,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tRecurringProcessingModel: common.PtrString(\\&quot;CardOnFile\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Blue backpack - BK11\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n\\tShopperReference: common.PtrString(\\&quot;ShopperID-A16728\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 4250,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Blue backpack - BK11\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;ShopperID-A16728\\&quot;,\\n  \\&quot;recurringProcessingModel\\&quot;: \\&quot;CardOnFile\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 4250,\\n    :currency =&gt; 'EUR'\\n  },\\n  :description =&gt; 'Blue backpack - BK11',\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL',\\n  :shopperReference =&gt; 'ShopperID-A16728',\\n  :recurringProcessingModel =&gt; 'CardOnFile'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 4250\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\trecurringProcessingModel: Types.checkout.PaymentLinkRequest.RecurringProcessingModelEnum.CardOnFile,\\n\\tdescription: \\&quot;Blue backpack - BK11\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;,\\n\\tshopperReference: \\&quot;ShopperID-A16728\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h3 id=\"tokenize-subscriptions\">Tokenize for subscriptions<\/h3>\n<div class=\"notices yellow\">\n<p>You should always ask for your customer's consent before tokenizing their card for future payments.<\/p>\n<\/div>\n<p>You can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details for recurring payments.<\/p>\n<ol>\n<li>\n<p>Send the following in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request:<\/p>\n<ul>\n<li>A unique  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperReference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperReference<\/a> of at least three characters.\n<div class=\"notices green\">\n<p>Your reference must not include personally identifiable information (PII), like name or email address.<\/p>\n<\/div><\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-storePaymentMethodMode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storePaymentMethodMode<\/a> set to <strong>askForConsent<\/strong> to allow the shopper to decide whether to store the details. If you already have the shopper's consent, set this parameter to <strong>enabled<\/strong>.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#responses-200-recurringProcessingModel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">recurringProcessingModel<\/a> set to <strong>Subscription<\/strong>.<\/li>\n<li>The payment <code>amount<\/code>, or if you only want to tokenize the shopper's payment details without charging them, set the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__resParam_amount-value\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">amount.value<\/a> to <strong>0<\/strong>. This is called a <em>zero-value authorisation<\/em>. Instead of a <strong>Pay<\/strong> button, your shoppers will see a <strong>Confirm preauthorization<\/strong> button on the payment page.<\/li>\n<\/ul>\n<p>Here is an example of how you can create a payment link to tokenize and store payment details for a subscription, for a shopper with <code>shopperReference<\/code> <strong>Shopper-B7183<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Create a payment link to tokenize for subscription'\" :id=\"'5874059251'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n  -H'x-api-key: ADYEN_API_KEY' \\\\\\n  -H 'content-type: application\\\/json' \\\\\\n  -d '{\\n      \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n      \\&quot;amount\\&quot;: {\\n          \\&quot;value\\&quot;: 0,\\n          \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n      },\\n      \\&quot;description\\&quot;: \\&quot;Coffee Subscription\\&quot;,\\n      \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n      \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n      \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n      \\&quot;shopperReference\\&quot;: \\&quot;Shopper-B7183\\&quot;,\\n      \\&quot;storePaymentMethodMode\\&quot;: \\&quot;askForConsent\\&quot;,\\n      \\&quot;recurringProcessingModel\\&quot;: \\&quot;Subscription\\&quot;\\n  }'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(0L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.storePaymentMethodMode(PaymentLinkRequest.StorePaymentMethodModeEnum.ASKFORCONSENT)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.recurringProcessingModel(PaymentLinkRequest.RecurringProcessingModelEnum.SUBSCRIPTION)\\n\\t.description(\\&quot;Coffee Subscription\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t.shopperReference(\\&quot;Shopper-B7183\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(0);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setStorePaymentMethodMode(\\&quot;askForConsent\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setRecurringProcessingModel(\\&quot;Subscription\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Coffee Subscription\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t-&gt;setShopperReference(\\&quot;Shopper-B7183\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 0\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tStorePaymentMethodMode = PaymentLinkRequest.StorePaymentMethodModeEnum.AskForConsent,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tRecurringProcessingModel = PaymentLinkRequest.RecurringProcessingModelEnum.Subscription,\\n\\tDescription = \\&quot;Coffee Subscription\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;,\\n\\tShopperReference = \\&quot;Shopper-B7183\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 0,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  description: \\&quot;Coffee Subscription\\&quot;,\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;,\\n  shopperReference: \\&quot;Shopper-B7183\\&quot;,\\n  storePaymentMethodMode: \\&quot;askForConsent\\&quot;,\\n  recurringProcessingModel: \\&quot;Subscription\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 0,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tStorePaymentMethodMode: common.PtrString(\\&quot;askForConsent\\&quot;),\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tRecurringProcessingModel: common.PtrString(\\&quot;Subscription\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Coffee Subscription\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n\\tShopperReference: common.PtrString(\\&quot;Shopper-B7183\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 0,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Coffee Subscription\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;Shopper-B7183\\&quot;,\\n  \\&quot;storePaymentMethodMode\\&quot;: \\&quot;askForConsent\\&quot;,\\n  \\&quot;recurringProcessingModel\\&quot;: \\&quot;Subscription\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 0,\\n    :currency =&gt; 'EUR'\\n  },\\n  :description =&gt; 'Coffee Subscription',\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL',\\n  :shopperReference =&gt; 'Shopper-B7183',\\n  :storePaymentMethodMode =&gt; 'askForConsent',\\n  :recurringProcessingModel =&gt; 'Subscription'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 0\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tstorePaymentMethodMode: Types.checkout.PaymentLinkRequest.StorePaymentMethodModeEnum.AskForConsent,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\trecurringProcessingModel: Types.checkout.PaymentLinkRequest.RecurringProcessingModelEnum.Subscription,\\n\\tdescription: \\&quot;Coffee Subscription\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;,\\n\\tshopperReference: \\&quot;Shopper-B7183\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>After the shopper completes the payment or the preauthorization, make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentMethods\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentMethods<\/a> request to <a href=\"\/pt\/online-payments\/tokenization\/managing-tokens#list-stored-details\">get the shopper's tokenized payment details<\/a>.<\/p>\n<\/li>\n<li>\n<p>Send the token when you <a href=\"\/pt\/online-payments\/tokenization\/make-token-payments#make-a-subscription-or-unscheduled-card-on-file-payment\">make subsequent subscription payments<\/a> with a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request.<\/p>\n<\/li>\n<\/ol>\n<h3 id=\"tokenize-unscheduled\">Tokenize for unscheduled recurring payments<\/h3>\n<div class=\"notices yellow\">\n<p>You should always ask for your customer's consent before tokenizing their card for future payments.<\/p>\n<\/div>\n<p>You can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details for recurring payments on a non-fixed schedule.<\/p>\n<ol>\n<li>\n<p>Send the following in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request:<\/p>\n<ul>\n<li>A unique  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperReference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperReference<\/a> of at least three characters.\n<div class=\"notices green\">\n<p>Your reference must not include personally identifiable information (PII), like name or email address.<\/p>\n<\/div><\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-storePaymentMethodMode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storePaymentMethodMode<\/a> set to <strong>askForConsent<\/strong> to allow the shopper to decide whether to store the details. If you already have the shopper's consent, set this parameter to <strong>enabled<\/strong>.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#responses-200-recurringProcessingModel\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">recurringProcessingModel<\/a> set to <strong>UnscheduledCardOnFile<\/strong>.<\/li>\n<li>The payment <code>amount<\/code>, or if you only want to tokenize the shopper's payment details without charging them, set the <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__resParam_amount-value\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">amount.value<\/a> to <strong>0<\/strong>. This is called a <em>zero-value authorisation<\/em>. Instead of a <strong>Pay<\/strong> button, your shoppers will see a <strong>Confirm preauthorization<\/strong> button on the payment page.<\/li>\n<\/ul>\n<p>Here is an example of how you can create a payment link to tokenize and store payment details for automatic top-ups, for a shopper with <code>shopperReference<\/code> <strong>Shopper-C5250<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Create a payment link to tokenize for automatic top-ups'\" :id=\"'9469403872'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n  -H'x-api-key: ADYEN_API_KEY' \\\\\\n  -H 'content-type: application\\\/json' \\\\\\n  -d '{\\n      \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n      \\&quot;amount\\&quot;: {\\n          \\&quot;value\\&quot;: 0,\\n          \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n      },\\n      \\&quot;description\\&quot;: \\&quot;Account top-up agreement\\&quot;,\\n      \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n      \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n      \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n      \\&quot;shopperReference\\&quot;: \\&quot;Shopper-C5250\\&quot;,\\n      \\&quot;storePaymentMethodMode\\&quot;: \\&quot;askForConsent\\&quot;,\\n      \\&quot;recurringProcessingModel\\&quot;: \\&quot;UnscheduledCardOnFile\\&quot;\\n  }'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(0L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.storePaymentMethodMode(PaymentLinkRequest.StorePaymentMethodModeEnum.ASKFORCONSENT)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.recurringProcessingModel(PaymentLinkRequest.RecurringProcessingModelEnum.UNSCHEDULEDCARDONFILE)\\n\\t.description(\\&quot;Account top-up agreement\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t.shopperReference(\\&quot;Shopper-C5250\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(0);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setStorePaymentMethodMode(\\&quot;askForConsent\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setRecurringProcessingModel(\\&quot;UnscheduledCardOnFile\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Account top-up agreement\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t-&gt;setShopperReference(\\&quot;Shopper-C5250\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 0\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tStorePaymentMethodMode = PaymentLinkRequest.StorePaymentMethodModeEnum.AskForConsent,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tRecurringProcessingModel = PaymentLinkRequest.RecurringProcessingModelEnum.UnscheduledCardOnFile,\\n\\tDescription = \\&quot;Account top-up agreement\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;,\\n\\tShopperReference = \\&quot;Shopper-C5250\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 0,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  description: \\&quot;Account top-up agreement\\&quot;,\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;,\\n  shopperReference: \\&quot;Shopper-C5250\\&quot;,\\n  storePaymentMethodMode: \\&quot;askForConsent\\&quot;,\\n  recurringProcessingModel: \\&quot;UnscheduledCardOnFile\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 0,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tStorePaymentMethodMode: common.PtrString(\\&quot;askForConsent\\&quot;),\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tRecurringProcessingModel: common.PtrString(\\&quot;UnscheduledCardOnFile\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Account top-up agreement\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n\\tShopperReference: common.PtrString(\\&quot;Shopper-C5250\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 0,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Account top-up agreement\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;Shopper-C5250\\&quot;,\\n  \\&quot;storePaymentMethodMode\\&quot;: \\&quot;askForConsent\\&quot;,\\n  \\&quot;recurringProcessingModel\\&quot;: \\&quot;UnscheduledCardOnFile\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 0,\\n    :currency =&gt; 'EUR'\\n  },\\n  :description =&gt; 'Account top-up agreement',\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL',\\n  :shopperReference =&gt; 'Shopper-C5250',\\n  :storePaymentMethodMode =&gt; 'askForConsent',\\n  :recurringProcessingModel =&gt; 'UnscheduledCardOnFile'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 0\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tstorePaymentMethodMode: Types.checkout.PaymentLinkRequest.StorePaymentMethodModeEnum.AskForConsent,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\trecurringProcessingModel: Types.checkout.PaymentLinkRequest.RecurringProcessingModelEnum.UnscheduledCardOnFile,\\n\\tdescription: \\&quot;Account top-up agreement\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;,\\n\\tshopperReference: \\&quot;Shopper-C5250\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>After the shopper completes the payment or the preauthorization, make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentMethods\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentMethods<\/a> request to <a href=\"\/pt\/online-payments\/tokenization\/managing-tokens#list-stored-details\">get the shopper's tokenized payment details<\/a>.<\/p>\n<\/li>\n<li>\n<p>Send the token when you <a href=\"\/pt\/online-payments\/tokenization\/make-token-payments#make-a-subscription-or-unscheduled-card-on-file-payment\">make subsequent recurring payments<\/a> with a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request.<\/p>\n<\/li>\n<\/ol>\n<h2>Provide additional information<\/h2>\n<p>Some payment methods, such as buy now, pay later payment methods, require additional information about the purchased product (<code>lineItems<\/code>) or the shopper (for example, <code>shopperEmail<\/code>). If you want to create a payment link that can support these payment methods, you need to make sure that you provide this information.<\/p>\n<table>\n<thead>\n<tr>\n<th>Payment method<\/th>\n<th>Required objects<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>3x 4x Oney (FR, ES)<\/td>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-lineItems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lineItems<\/a><p><\/p>Note: Other shopper information such as shopper name and email are collected on the payment page.<\/td>\n<\/tr>\n<tr>\n<td>Afterpay (AU, NZ)<\/td>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-lineItems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lineItems<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperEmail\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperEmail<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperName\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperName<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-deliveryAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">deliveryAddress<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-billingAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">billingAddress<\/a><\/td>\n<\/tr>\n<tr>\n<td>Klarna&nbsp;(AT,&nbsp;DK,&nbsp;FI,<br> DE, NO, SE, CH,<br> NL, GB, US)<\/td>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-lineItems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lineItems<\/a> ,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperEmail\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperEmail<\/a><\/td>\n<\/tr>\n<tr>\n<td>PayBright (CA)<\/td>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-lineItems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lineItems<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperEmail\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperEmail<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperName\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperName<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-deliveryAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">deliveryAddress<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-billingAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">billingAddress<\/a><\/td>\n<\/tr>\n<tr>\n<td>Zip (AU)<\/td>\n<td> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-lineItems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lineItems<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperEmail\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperEmail<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-shopperName\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">shopperName<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-deliveryAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">deliveryAddress<\/a>,  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-billingAddress\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">billingAddress<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"product-information\">Provide product information<\/h3>\n<p>If a payment method requires  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-lineItems\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">lineItems<\/a>, you will need to collect this information, and include it in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/p>\n<p>The following example shows how to create a payment link that can support <strong>3x 4x Oney (FR, ES)<\/strong> .<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Create payment link with lineItems'\" :id=\"'5066774515'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n-H'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 1000,\\n      \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Shoes and socks\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;FR\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;en-US\\&quot;,\\n   \\&quot;lineItems\\&quot;:[\\n      {\\n         \\&quot;quantity\\&quot;:\\&quot;1\\&quot;,\\n         \\&quot;amountExcludingTax\\&quot;:\\&quot;331\\&quot;,\\n         \\&quot;taxPercentage\\&quot;:\\&quot;2100\\&quot;,\\n         \\&quot;description\\&quot;:\\&quot;Shoes\\&quot;,\\n         \\&quot;id\\&quot;:\\&quot;Item #1\\&quot;,\\n         \\&quot;taxAmount\\&quot;:\\&quot;69\\&quot;,\\n         \\&quot;amountIncludingTax\\&quot;:\\&quot;400\\&quot;\\n      },\\n      {\\n         \\&quot;quantity\\&quot;:\\&quot;2\\&quot;,\\n         \\&quot;amountExcludingTax\\&quot;:\\&quot;248\\&quot;,\\n         \\&quot;taxPercentage\\&quot;:\\&quot;2100\\&quot;,\\n         \\&quot;description\\&quot;:\\&quot;Socks\\&quot;,\\n         \\&quot;id\\&quot;:\\&quot;Item #2\\&quot;,\\n         \\&quot;taxAmount\\&quot;:\\&quot;52\\&quot;,\\n         \\&quot;amountIncludingTax\\&quot;:\\&quot;300\\&quot;\\n      }\\n   ]\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nLineItem lineItem1 = new LineItem()\\n\\t.quantity(1L)\\n\\t.amountExcludingTax(331L)\\n\\t.taxPercentage(2100L)\\n\\t.description(\\&quot;Shoes\\&quot;)\\n\\t.id(\\&quot;Item #1\\&quot;)\\n\\t.taxAmount(69L)\\n\\t.amountIncludingTax(400L);\\n\\nLineItem lineItem2 = new LineItem()\\n\\t.quantity(2L)\\n\\t.amountExcludingTax(248L)\\n\\t.taxPercentage(2100L)\\n\\t.description(\\&quot;Socks\\&quot;)\\n\\t.id(\\&quot;Item #2\\&quot;)\\n\\t.taxAmount(52L)\\n\\t.amountIncludingTax(300L);\\n\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(1000L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_ORDER_NUMBER\\&quot;)\\n\\t.lineItems(Arrays.asList(lineItem1, lineItem2))\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;FR\\&quot;)\\n\\t.description(\\&quot;Shoes and socks\\&quot;)\\n\\t.shopperLocale(\\&quot;en-US\\&quot;)\\n\\t.shopperReference(\\&quot;YOUR_SHOPPER_REFERENCE\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\LineItem;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$lineItem1 = new LineItem();\\n$lineItem1\\n\\t-&gt;setQuantity(1)\\n\\t-&gt;setAmountExcludingTax(331)\\n\\t-&gt;setTaxPercentage(2100)\\n\\t-&gt;setDescription(\\&quot;Shoes\\&quot;)\\n\\t-&gt;setId(\\&quot;Item #1\\&quot;)\\n\\t-&gt;setTaxAmount(69)\\n\\t-&gt;setAmountIncludingTax(400);\\n\\n$lineItem2 = new LineItem();\\n$lineItem2\\n\\t-&gt;setQuantity(2)\\n\\t-&gt;setAmountExcludingTax(248)\\n\\t-&gt;setTaxPercentage(2100)\\n\\t-&gt;setDescription(\\&quot;Socks\\&quot;)\\n\\t-&gt;setId(\\&quot;Item #2\\&quot;)\\n\\t-&gt;setTaxAmount(52)\\n\\t-&gt;setAmountIncludingTax(300);\\n\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(1000);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_ORDER_NUMBER\\&quot;)\\n\\t-&gt;setLineItems(array($lineItem1, $lineItem2))\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;FR\\&quot;)\\n\\t-&gt;setDescription(\\&quot;Shoes and socks\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;en-US\\&quot;)\\n\\t-&gt;setShopperReference(\\&quot;YOUR_SHOPPER_REFERENCE\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nLineItem lineItem1 = new LineItem\\n{\\n\\tQuantity = 1,\\n\\tAmountExcludingTax = 331,\\n\\tTaxPercentage = 2100,\\n\\tDescription = \\&quot;Shoes\\&quot;,\\n\\tId = \\&quot;Item #1\\&quot;,\\n\\tTaxAmount = 69,\\n\\tAmountIncludingTax = 400\\n};\\n\\nLineItem lineItem2 = new LineItem\\n{\\n\\tQuantity = 2,\\n\\tAmountExcludingTax = 248,\\n\\tTaxPercentage = 2100,\\n\\tDescription = \\&quot;Socks\\&quot;,\\n\\tId = \\&quot;Item #2\\&quot;,\\n\\tTaxAmount = 52,\\n\\tAmountIncludingTax = 300\\n};\\n\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 1000\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n\\tLineItems = new List&lt;LineItem&gt;{ lineItem1, lineItem2 },\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;FR\\&quot;,\\n\\tDescription = \\&quot;Shoes and socks\\&quot;,\\n\\tShopperLocale = \\&quot;en-US\\&quot;,\\n\\tShopperReference = \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  reference: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  amount: {\\n    value: 1000,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  description: \\&quot;Shoes and socks\\&quot;,\\n  countryCode: \\&quot;FR\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperReference: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  shopperLocale: \\&quot;en-US\\&quot;,\\n  lineItems: [ {\\n    quantity: \\&quot;1\\&quot;,\\n    amountExcludingTax: \\&quot;331\\&quot;,\\n    taxPercentage: \\&quot;2100\\&quot;,\\n    description: \\&quot;Shoes\\&quot;,\\n    id: \\&quot;Item #1\\&quot;,\\n    taxAmount: \\&quot;69\\&quot;,\\n    amountIncludingTax: \\&quot;400\\&quot;\\n  }, {\\n    quantity: \\&quot;2\\&quot;,\\n    amountExcludingTax: \\&quot;248\\&quot;,\\n    taxPercentage: \\&quot;2100\\&quot;,\\n    description: \\&quot;Socks\\&quot;,\\n    id: \\&quot;Item #2\\&quot;,\\n    taxAmount: \\&quot;52\\&quot;,\\n    amountIncludingTax: \\&quot;300\\&quot;\\n  } ]\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\nlineItem1 := checkout.LineItem{\\n\\tQuantity: common.PtrInt64(1),\\n\\tAmountExcludingTax: common.PtrInt64(331),\\n\\tTaxPercentage: common.PtrInt64(2100),\\n\\tDescription: common.PtrString(\\&quot;Shoes\\&quot;),\\n\\tId: common.PtrString(\\&quot;Item #1\\&quot;),\\n\\tTaxAmount: common.PtrInt64(69),\\n\\tAmountIncludingTax: common.PtrInt64(400),\\n}\\n\\nlineItem2 := checkout.LineItem{\\n\\tQuantity: common.PtrInt64(2),\\n\\tAmountExcludingTax: common.PtrInt64(248),\\n\\tTaxPercentage: common.PtrInt64(2100),\\n\\tDescription: common.PtrString(\\&quot;Socks\\&quot;),\\n\\tId: common.PtrString(\\&quot;Item #2\\&quot;),\\n\\tTaxAmount: common.PtrInt64(52),\\n\\tAmountIncludingTax: common.PtrInt64(300),\\n}\\n\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 1000,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n\\tLineItems: []checkout.LineItem{\\n\\t\\t\\tlineItem1, lineItem2,\\n\\t},\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;FR\\&quot;),\\n\\tDescription: common.PtrString(\\&quot;Shoes and socks\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;en-US\\&quot;),\\n\\tShopperReference: common.PtrString(\\&quot;YOUR_SHOPPER_REFERENCE\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 1000,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Shoes and socks\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;FR\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;en-US\\&quot;,\\n  \\&quot;lineItems\\&quot;: [ {\\n    \\&quot;quantity\\&quot;: \\&quot;1\\&quot;,\\n    \\&quot;amountExcludingTax\\&quot;: \\&quot;331\\&quot;,\\n    \\&quot;taxPercentage\\&quot;: \\&quot;2100\\&quot;,\\n    \\&quot;description\\&quot;: \\&quot;Shoes\\&quot;,\\n    \\&quot;id\\&quot;: \\&quot;Item #1\\&quot;,\\n    \\&quot;taxAmount\\&quot;: \\&quot;69\\&quot;,\\n    \\&quot;amountIncludingTax\\&quot;: \\&quot;400\\&quot;\\n  }, {\\n    \\&quot;quantity\\&quot;: \\&quot;2\\&quot;,\\n    \\&quot;amountExcludingTax\\&quot;: \\&quot;248\\&quot;,\\n    \\&quot;taxPercentage\\&quot;: \\&quot;2100\\&quot;,\\n    \\&quot;description\\&quot;: \\&quot;Socks\\&quot;,\\n    \\&quot;id\\&quot;: \\&quot;Item #2\\&quot;,\\n    \\&quot;taxAmount\\&quot;: \\&quot;52\\&quot;,\\n    \\&quot;amountIncludingTax\\&quot;: \\&quot;300\\&quot;\\n  } ]\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :reference =&gt; 'YOUR_ORDER_NUMBER',\\n  :amount =&gt; {\\n    :value =&gt; 1000,\\n    :currency =&gt; 'EUR'\\n  },\\n  :description =&gt; 'Shoes and socks',\\n  :countryCode =&gt; 'FR',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperReference =&gt; 'YOUR_SHOPPER_REFERENCE',\\n  :shopperLocale =&gt; 'en-US',\\n  :lineItems =&gt; [ {\\n    :quantity =&gt; '1',\\n    :amountExcludingTax =&gt; '331',\\n    :taxPercentage =&gt; '2100',\\n    :description =&gt; 'Shoes',\\n    :id =&gt; 'Item #1',\\n    :taxAmount =&gt; '69',\\n    :amountIncludingTax =&gt; '400'\\n  }, {\\n    :quantity =&gt; '2',\\n    :amountExcludingTax =&gt; '248',\\n    :taxPercentage =&gt; '2100',\\n    :description =&gt; 'Socks',\\n    :id =&gt; 'Item #2',\\n    :taxAmount =&gt; '52',\\n    :amountIncludingTax =&gt; '300'\\n  } ]\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst lineItem1: Types.checkout.LineItem = {\\n\\tquantity: 1,\\n\\tamountExcludingTax: 331,\\n\\ttaxPercentage: 2100,\\n\\tdescription: \\&quot;Shoes\\&quot;,\\n\\tid: \\&quot;Item #1\\&quot;,\\n\\ttaxAmount: 69,\\n\\tamountIncludingTax: 400\\n};\\n\\nconst lineItem2: Types.checkout.LineItem = {\\n\\tquantity: 2,\\n\\tamountExcludingTax: 248,\\n\\ttaxPercentage: 2100,\\n\\tdescription: \\&quot;Socks\\&quot;,\\n\\tid: \\&quot;Item #2\\&quot;,\\n\\ttaxAmount: 52,\\n\\tamountIncludingTax: 300\\n};\\n\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 1000\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_ORDER_NUMBER\\&quot;,\\n\\tlineItems: [lineItem1, lineItem2],\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;FR\\&quot;,\\n\\tdescription: \\&quot;Shoes and socks\\&quot;,\\n\\tshopperLocale: \\&quot;en-US\\&quot;,\\n\\tshopperReference: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"shopper-information\">Provide shopper information<\/h3>\n<p>For shopper information such as name, email, or address, you can either:<\/p>\n<ul>\n<li>If using <a href=\"\/pt\/online-payments\/release-notes\/?integration_type=api&amp;version%5B0%5D=67#releaseNote=2021-03-01-checkout-api-67\">API version v67<\/a> or later, ask the shopper to fill in this information before they complete the payment, by including <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__reqParam_requiredShopperFields\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">requiredShopperFields<\/a> in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/li>\n<li>Collect this information yourself, and include it in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/li>\n<\/ul>\n\n<div id=\"tabJwOHx\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Ask shopper to provide information&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;The following example shows how to create a payment link that can support &lt;strong&gt;Klarna&lt;\\\/strong&gt;, and ask the shopper to fill in the required information themselves:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Create payment link with required shopper fields&#039;\\&quot; :id=\\&quot;&#039;4108930833&#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\\\\\\\/v68\\\\\\\/paymentLinks \\\\\\\\\\\\n-H&#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 1000,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;SEK\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n  \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;SE\\\\&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;requiredShopperFields\\\\&amp;quot;: [\\\\&amp;quot;shopperName\\\\&amp;quot;, \\\\&amp;quot;shopperEmail\\\\&amp;quot;, \\\\&amp;quot;billingAddress\\\\&amp;quot;],\\\\n  \\\\&amp;quot;shopperLocale\\\\&amp;quot;: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n   \\\\&amp;quot;lineItems\\\\&amp;quot;:[\\\\n      {\\\\n         \\\\&amp;quot;quantity\\\\&amp;quot;:\\\\&amp;quot;1\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;:\\\\&amp;quot;331\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxPercentage\\\\&amp;quot;:\\\\&amp;quot;2100\\\\&amp;quot;,\\\\n         \\\\&amp;quot;description\\\\&amp;quot;:\\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n         \\\\&amp;quot;id\\\\&amp;quot;:\\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxAmount\\\\&amp;quot;:\\\\&amp;quot;69\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;:\\\\&amp;quot;400\\\\&amp;quot;\\\\n      },\\\\n      {\\\\n         \\\\&amp;quot;quantity\\\\&amp;quot;:\\\\&amp;quot;2\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;:\\\\&amp;quot;248\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxPercentage\\\\&amp;quot;:\\\\&amp;quot;2100\\\\&amp;quot;,\\\\n         \\\\&amp;quot;description\\\\&amp;quot;:\\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n         \\\\&amp;quot;id\\\\&amp;quot;:\\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxAmount\\\\&amp;quot;:\\\\&amp;quot;52\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;:\\\\&amp;quot;300\\\\&amp;quot;\\\\n      }\\\\n   ]\\\\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 v25.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.checkout.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.model.RequestOptions;\\\\nimport com.adyen.service.checkout.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Request objects\\\\nLineItem lineItem1 = new LineItem()\\\\n\\\\t.quantity(1L)\\\\n\\\\t.amountExcludingTax(331L)\\\\n\\\\t.taxPercentage(2100L)\\\\n\\\\t.description(\\\\&amp;quot;Shoes\\\\&amp;quot;)\\\\n\\\\t.id(\\\\&amp;quot;Item #1\\\\&amp;quot;)\\\\n\\\\t.taxAmount(69L)\\\\n\\\\t.amountIncludingTax(400L);\\\\n\\\\nLineItem lineItem2 = new LineItem()\\\\n\\\\t.quantity(2L)\\\\n\\\\t.amountExcludingTax(248L)\\\\n\\\\t.taxPercentage(2100L)\\\\n\\\\t.description(\\\\&amp;quot;Socks\\\\&amp;quot;)\\\\n\\\\t.id(\\\\&amp;quot;Item #2\\\\&amp;quot;)\\\\n\\\\t.taxAmount(52L)\\\\n\\\\t.amountIncludingTax(300L);\\\\n\\\\nAmount amount = new Amount()\\\\n\\\\t.currency(\\\\&amp;quot;SEK\\\\&amp;quot;)\\\\n\\\\t.value(1000L);\\\\n\\\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\\\n\\\\t.reference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n\\\\t.lineItems(Arrays.asList(lineItem1, lineItem2))\\\\n\\\\t.amount(amount)\\\\n\\\\t.merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n\\\\t.countryCode(\\\\&amp;quot;SE\\\\&amp;quot;)\\\\n\\\\t.requiredShopperFields(Arrays.asList(Amount.RequiredShopperFieldsEnum.SHOPPERNAME,\\\\nAmount.RequiredShopperFieldsEnum.SHOPPEREMAIL,\\\\nAmount.RequiredShopperFieldsEnum.BILLINGADDRESS))\\\\n\\\\t.description(\\\\&amp;quot;Shoes and socks\\\\&amp;quot;)\\\\n\\\\t.shopperLocale(\\\\&amp;quot;en-US\\\\&amp;quot;)\\\\n\\\\t.shopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nPaymentLinksApi service = new PaymentLinksApi(client);\\\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, 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 v17.4.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\LineItem;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentLinkRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentLinksApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Request objects\\\\n$lineItem1 = new LineItem();\\\\n$lineItem1\\\\n\\\\t-&amp;gt;setQuantity(1)\\\\n\\\\t-&amp;gt;setAmountExcludingTax(331)\\\\n\\\\t-&amp;gt;setTaxPercentage(2100)\\\\n\\\\t-&amp;gt;setDescription(\\\\&amp;quot;Shoes\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setId(\\\\&amp;quot;Item #1\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setTaxAmount(69)\\\\n\\\\t-&amp;gt;setAmountIncludingTax(400);\\\\n\\\\n$lineItem2 = new LineItem();\\\\n$lineItem2\\\\n\\\\t-&amp;gt;setQuantity(2)\\\\n\\\\t-&amp;gt;setAmountExcludingTax(248)\\\\n\\\\t-&amp;gt;setTaxPercentage(2100)\\\\n\\\\t-&amp;gt;setDescription(\\\\&amp;quot;Socks\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setId(\\\\&amp;quot;Item #2\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setTaxAmount(52)\\\\n\\\\t-&amp;gt;setAmountIncludingTax(300);\\\\n\\\\n$amount = new Amount();\\\\n$amount\\\\n\\\\t-&amp;gt;setCurrency(\\\\&amp;quot;SEK\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setValue(1000);\\\\n\\\\n$paymentLinkRequest = new PaymentLinkRequest();\\\\n$paymentLinkRequest\\\\n\\\\t-&amp;gt;setReference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setLineItems(array($lineItem1, $lineItem2))\\\\n\\\\t-&amp;gt;setAmount($amount)\\\\n\\\\t-&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setCountryCode(\\\\&amp;quot;SE\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setRequiredShopperFields(array(\\\\&amp;quot;shopperName\\\\&amp;quot;, \\\\&amp;quot;shopperEmail\\\\&amp;quot;, \\\\&amp;quot;billingAddress\\\\&amp;quot;))\\\\n\\\\t-&amp;gt;setDescription(\\\\&amp;quot;Shoes and socks\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setShopperLocale(\\\\&amp;quot;en-US\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\n$service = new PaymentLinksApi($client);\\\\n$response = $service-&amp;gt;paymentLinks($paymentLinkRequest, $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 v14.3.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Checkout;\\\\nusing Adyen.Service.Checkout;\\\\n\\\\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\\\\\\\/\\\\\\\/ Fill in your request objects\\\\nLineItem lineItem1 = new LineItem\\\\n{\\\\n\\\\tQuantity = 1,\\\\n\\\\tAmountExcludingTax = 331,\\\\n\\\\tTaxPercentage = 2100,\\\\n\\\\tDescription = \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n\\\\tId = \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n\\\\tTaxAmount = 69,\\\\n\\\\tAmountIncludingTax = 400\\\\n};\\\\n\\\\nLineItem lineItem2 = new LineItem\\\\n{\\\\n\\\\tQuantity = 2,\\\\n\\\\tAmountExcludingTax = 248,\\\\n\\\\tTaxPercentage = 2100,\\\\n\\\\tDescription = \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n\\\\tId = \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n\\\\tTaxAmount = 52,\\\\n\\\\tAmountIncludingTax = 300\\\\n};\\\\n\\\\nAmount amount = new Amount\\\\n{\\\\n\\\\tCurrency = \\\\&amp;quot;SEK\\\\&amp;quot;,\\\\n\\\\tValue = 1000\\\\n};\\\\n\\\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\\\n{\\\\n\\\\tReference = \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n\\\\tLineItems = new List&amp;lt;LineItem&amp;gt;{ lineItem1, lineItem2 },\\\\n\\\\tAmount = amount,\\\\n\\\\tMerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n\\\\tCountryCode = \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\tRequiredShopperFields = { PaymentLinkRequest.RequiredShopperFieldsEnum.ShopperName,\\\\n\\\\t\\\\tPaymentLinkRequest.RequiredShopperFieldsEnum.ShopperEmail,\\\\n\\\\t\\\\tPaymentLinkRequest.RequiredShopperFieldsEnum.BillingAddress },\\\\n\\\\tDescription = \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n\\\\tShopperLocale = \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n\\\\tShopperReference = \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nvar service = new PaymentLinksService(client);\\\\nvar response = service.PaymentLinks(paymentLinkRequest, 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 v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object\\\\nconst paymentLinkRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  amount: {\\\\n    value: 1000,\\\\n    currency: \\\\&amp;quot;SEK\\\\&amp;quot;\\\\n  },\\\\n  description: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n  countryCode: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  requiredShopperFields: [ \\\\&amp;quot;shopperName\\\\&amp;quot;, \\\\&amp;quot;shopperEmail\\\\&amp;quot;, \\\\&amp;quot;billingAddress\\\\&amp;quot; ],\\\\n  shopperLocale: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n  lineItems: [ {\\\\n    quantity: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n    amountExcludingTax: \\\\&amp;quot;331\\\\&amp;quot;,\\\\n    taxPercentage: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    description: \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n    id: \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n    taxAmount: \\\\&amp;quot;69\\\\&amp;quot;,\\\\n    amountIncludingTax: \\\\&amp;quot;400\\\\&amp;quot;\\\\n  }, {\\\\n    quantity: \\\\&amp;quot;2\\\\&amp;quot;,\\\\n    amountExcludingTax: \\\\&amp;quot;248\\\\&amp;quot;,\\\\n    taxPercentage: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    description: \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n    id: \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n    taxAmount: \\\\&amp;quot;52\\\\&amp;quot;,\\\\n    amountIncludingTax: \\\\&amp;quot;300\\\\&amp;quot;\\\\n  } ]\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { 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 v9.2.0\\\\nimport (\\\\n\\\\t\\\\&amp;quot;context\\\\&amp;quot;\\\\n\\\\t\\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n\\\\t\\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n\\\\t\\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n    ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Fill in your request objects\\\\nlineItem1 := checkout.LineItem{\\\\n\\\\tQuantity: common.PtrInt64(1),\\\\n\\\\tAmountExcludingTax: common.PtrInt64(331),\\\\n\\\\tTaxPercentage: common.PtrInt64(2100),\\\\n\\\\tDescription: common.PtrString(\\\\&amp;quot;Shoes\\\\&amp;quot;),\\\\n\\\\tId: common.PtrString(\\\\&amp;quot;Item #1\\\\&amp;quot;),\\\\n\\\\tTaxAmount: common.PtrInt64(69),\\\\n\\\\tAmountIncludingTax: common.PtrInt64(400),\\\\n}\\\\n\\\\nlineItem2 := checkout.LineItem{\\\\n\\\\tQuantity: common.PtrInt64(2),\\\\n\\\\tAmountExcludingTax: common.PtrInt64(248),\\\\n\\\\tTaxPercentage: common.PtrInt64(2100),\\\\n\\\\tDescription: common.PtrString(\\\\&amp;quot;Socks\\\\&amp;quot;),\\\\n\\\\tId: common.PtrString(\\\\&amp;quot;Item #2\\\\&amp;quot;),\\\\n\\\\tTaxAmount: common.PtrInt64(52),\\\\n\\\\tAmountIncludingTax: common.PtrInt64(300),\\\\n}\\\\n\\\\namount := checkout.Amount{\\\\n\\\\tCurrency: \\\\&amp;quot;SEK\\\\&amp;quot;,\\\\n\\\\tValue: 1000,\\\\n}\\\\n\\\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\\\n\\\\tReference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n\\\\tLineItems: []checkout.LineItem{\\\\n\\\\t\\\\t\\\\tlineItem1, lineItem2,\\\\n\\\\t},\\\\n\\\\tAmount: amount,\\\\n\\\\tMerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n\\\\tCountryCode: common.PtrString(\\\\&amp;quot;SE\\\\&amp;quot;),\\\\n\\\\tRequiredShopperFields: []string{\\\\n\\\\t\\\\t\\\\&amp;quot;shopperName\\\\&amp;quot;, \\\\&amp;quot;shopperEmail\\\\&amp;quot;, \\\\&amp;quot;billingAddress\\\\&amp;quot;,\\\\n\\\\t},\\\\n\\\\tDescription: common.PtrString(\\\\&amp;quot;Shoes and socks\\\\&amp;quot;),\\\\n\\\\tShopperLocale: common.PtrString(\\\\&amp;quot;en-US\\\\&amp;quot;),\\\\n\\\\tShopperReference: common.PtrString(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentLinkRequest(paymentLinkRequest)\\\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(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.2.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\njson_request = {\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 1000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;SEK\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n  \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;SE\\\\&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;requiredShopperFields\\\\&amp;quot;: [ \\\\&amp;quot;shopperName\\\\&amp;quot;, \\\\&amp;quot;shopperEmail\\\\&amp;quot;, \\\\&amp;quot;billingAddress\\\\&amp;quot; ],\\\\n  \\\\&amp;quot;shopperLocale\\\\&amp;quot;: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n  \\\\&amp;quot;lineItems\\\\&amp;quot;: [ {\\\\n    \\\\&amp;quot;quantity\\\\&amp;quot;: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;: \\\\&amp;quot;331\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxPercentage\\\\&amp;quot;: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n    \\\\&amp;quot;id\\\\&amp;quot;: \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxAmount\\\\&amp;quot;: \\\\&amp;quot;69\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;: \\\\&amp;quot;400\\\\&amp;quot;\\\\n  }, {\\\\n    \\\\&amp;quot;quantity\\\\&amp;quot;: \\\\&amp;quot;2\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;: \\\\&amp;quot;248\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxPercentage\\\\&amp;quot;: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n    \\\\&amp;quot;id\\\\&amp;quot;: \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxAmount\\\\&amp;quot;: \\\\&amp;quot;52\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;: \\\\&amp;quot;300\\\\&amp;quot;\\\\n  } ]\\\\n}\\\\n\\\\nresult = adyen.checkout.payment_links_api.payment_links(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.2.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\nrequest_body = {\\\\n  :reference =&amp;gt; &#039;YOUR_ORDER_NUMBER&#039;,\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 1000,\\\\n    :currency =&amp;gt; &#039;SEK&#039;\\\\n  },\\\\n  :description =&amp;gt; &#039;Shoes and socks&#039;,\\\\n  :countryCode =&amp;gt; &#039;SE&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_SHOPPER_REFERENCE&#039;,\\\\n  :requiredShopperFields =&amp;gt; [ &#039;shopperName&#039;, &#039;shopperEmail&#039;, &#039;billingAddress&#039; ],\\\\n  :shopperLocale =&amp;gt; &#039;en-US&#039;,\\\\n  :lineItems =&amp;gt; [ {\\\\n    :quantity =&amp;gt; &#039;1&#039;,\\\\n    :amountExcludingTax =&amp;gt; &#039;331&#039;,\\\\n    :taxPercentage =&amp;gt; &#039;2100&#039;,\\\\n    :description =&amp;gt; &#039;Shoes&#039;,\\\\n    :id =&amp;gt; &#039;Item #1&#039;,\\\\n    :taxAmount =&amp;gt; &#039;69&#039;,\\\\n    :amountIncludingTax =&amp;gt; &#039;400&#039;\\\\n  }, {\\\\n    :quantity =&amp;gt; &#039;2&#039;,\\\\n    :amountExcludingTax =&amp;gt; &#039;248&#039;,\\\\n    :taxPercentage =&amp;gt; &#039;2100&#039;,\\\\n    :description =&amp;gt; &#039;Socks&#039;,\\\\n    :id =&amp;gt; &#039;Item #2&#039;,\\\\n    :taxAmount =&amp;gt; &#039;52&#039;,\\\\n    :amountIncludingTax =&amp;gt; &#039;300&#039;\\\\n  } ]\\\\n}\\\\n\\\\nresult = adyen.checkout.payment_links_api.payment_links(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 v16.2.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\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request objects\\\\nconst lineItem1: Types.checkout.LineItem = {\\\\n\\\\tquantity: 1,\\\\n\\\\tamountExcludingTax: 331,\\\\n\\\\ttaxPercentage: 2100,\\\\n\\\\tdescription: \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n\\\\tid: \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n\\\\ttaxAmount: 69,\\\\n\\\\tamountIncludingTax: 400\\\\n};\\\\n\\\\nconst lineItem2: Types.checkout.LineItem = {\\\\n\\\\tquantity: 2,\\\\n\\\\tamountExcludingTax: 248,\\\\n\\\\ttaxPercentage: 2100,\\\\n\\\\tdescription: \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n\\\\tid: \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n\\\\ttaxAmount: 52,\\\\n\\\\tamountIncludingTax: 300\\\\n};\\\\n\\\\nconst amount: Types.checkout.Amount = {\\\\n\\\\tcurrency: \\\\&amp;quot;SEK\\\\&amp;quot;,\\\\n\\\\tvalue: 1000\\\\n};\\\\n\\\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\\\n\\\\treference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n\\\\tlineItems: [lineItem1, lineItem2],\\\\n\\\\tamount: amount,\\\\n\\\\tmerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n\\\\tcountryCode: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\trequiredShopperFields: [\\\\n\\\\t\\\\tTypes.checkout.PaymentLinkRequest.RequiredShopperFieldsEnum.ShopperName,\\\\n\\\\t\\\\tTypes.checkout.PaymentLinkRequest.RequiredShopperFieldsEnum.ShopperEmail,\\\\n\\\\t\\\\tTypes.checkout.PaymentLinkRequest.RequiredShopperFieldsEnum.BillingAddress\\\\n\\\\t],\\\\n\\\\tdescription: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n\\\\tshopperLocale: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n\\\\tshopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { 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;:null,&quot;oldTabId&quot;:&quot;ask_shopper_to_provide_information_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Include shopper information&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;The following example shows how to create a payment link that can support &lt;strong&gt;Klarna&lt;\\\/strong&gt; if you have already collected the shopper&#039;s email, name, and address:&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Create payment link with additional shopper information&#039;\\&quot; :id=\\&quot;&#039;2377399260&#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\\\\\\\/v68\\\\\\\/paymentLinks \\\\\\\\\\\\n-H&#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 1000,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;SEK\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n  \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;SE\\\\&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;shopperName\\\\&amp;quot;:{\\\\n      \\\\&amp;quot;firstName\\\\&amp;quot;:\\\\&amp;quot;Testperson-se\\\\&amp;quot;,\\\\n      \\\\&amp;quot;lastName\\\\&amp;quot;:\\\\&amp;quot;Approved\\\\&amp;quot;\\\\n },\\\\n  \\\\&amp;quot;shopperEmail\\\\&amp;quot;: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperLocale\\\\&amp;quot;: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n  \\\\&amp;quot;billingAddress\\\\&amp;quot;:{\\\\n      \\\\&amp;quot;city\\\\&amp;quot;:\\\\&amp;quot;Ankeborg\\\\&amp;quot;,\\\\n      \\\\&amp;quot;country\\\\&amp;quot;:\\\\&amp;quot;SE\\\\&amp;quot;,\\\\n      \\\\&amp;quot;houseNumberOrName\\\\&amp;quot;:\\\\&amp;quot;1\\\\&amp;quot;,\\\\n      \\\\&amp;quot;postalCode\\\\&amp;quot;:\\\\&amp;quot;12345\\\\&amp;quot;,\\\\n      \\\\&amp;quot;street\\\\&amp;quot;:\\\\&amp;quot;Stargatan\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;lineItems\\\\&amp;quot;:[\\\\n      {\\\\n         \\\\&amp;quot;quantity\\\\&amp;quot;:\\\\&amp;quot;1\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;:\\\\&amp;quot;331\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxPercentage\\\\&amp;quot;:\\\\&amp;quot;2100\\\\&amp;quot;,\\\\n         \\\\&amp;quot;description\\\\&amp;quot;:\\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n         \\\\&amp;quot;id\\\\&amp;quot;:\\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxAmount\\\\&amp;quot;:\\\\&amp;quot;69\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;:\\\\&amp;quot;400\\\\&amp;quot;\\\\n      },\\\\n      {\\\\n         \\\\&amp;quot;quantity\\\\&amp;quot;:\\\\&amp;quot;2\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;:\\\\&amp;quot;248\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxPercentage\\\\&amp;quot;:\\\\&amp;quot;2100\\\\&amp;quot;,\\\\n         \\\\&amp;quot;description\\\\&amp;quot;:\\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n         \\\\&amp;quot;id\\\\&amp;quot;:\\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n         \\\\&amp;quot;taxAmount\\\\&amp;quot;:\\\\&amp;quot;52\\\\&amp;quot;,\\\\n         \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;:\\\\&amp;quot;300\\\\&amp;quot;\\\\n      }\\\\n   ]\\\\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 v25.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.checkout.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.model.RequestOptions;\\\\nimport com.adyen.service.checkout.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Request objects\\\\nLineItem lineItem1 = new LineItem()\\\\n\\\\t.quantity(1L)\\\\n\\\\t.amountExcludingTax(331L)\\\\n\\\\t.taxPercentage(2100L)\\\\n\\\\t.description(\\\\&amp;quot;Shoes\\\\&amp;quot;)\\\\n\\\\t.id(\\\\&amp;quot;Item #1\\\\&amp;quot;)\\\\n\\\\t.taxAmount(69L)\\\\n\\\\t.amountIncludingTax(400L);\\\\n\\\\nLineItem lineItem2 = new LineItem()\\\\n\\\\t.quantity(2L)\\\\n\\\\t.amountExcludingTax(248L)\\\\n\\\\t.taxPercentage(2100L)\\\\n\\\\t.description(\\\\&amp;quot;Socks\\\\&amp;quot;)\\\\n\\\\t.id(\\\\&amp;quot;Item #2\\\\&amp;quot;)\\\\n\\\\t.taxAmount(52L)\\\\n\\\\t.amountIncludingTax(300L);\\\\n\\\\nAmount amount = new Amount()\\\\n\\\\t.currency(\\\\&amp;quot;SEK\\\\&amp;quot;)\\\\n\\\\t.value(1000L);\\\\n\\\\nName name = new Name()\\\\n\\\\t.firstName(\\\\&amp;quot;Testperson-se\\\\&amp;quot;)\\\\n\\\\t.lastName(\\\\&amp;quot;Approved\\\\&amp;quot;);\\\\n\\\\nAddress address = new Address()\\\\n\\\\t.country(\\\\&amp;quot;SE\\\\&amp;quot;)\\\\n\\\\t.city(\\\\&amp;quot;Ankeborg\\\\&amp;quot;)\\\\n\\\\t.houseNumberOrName(\\\\&amp;quot;1\\\\&amp;quot;)\\\\n\\\\t.street(\\\\&amp;quot;Stargatan\\\\&amp;quot;)\\\\n\\\\t.postalCode(\\\\&amp;quot;12345\\\\&amp;quot;);\\\\n\\\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\\\n\\\\t.reference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n\\\\t.lineItems(Arrays.asList(lineItem1, lineItem2))\\\\n\\\\t.amount(amount)\\\\n\\\\t.shopperName(name)\\\\n\\\\t.merchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n\\\\t.countryCode(\\\\&amp;quot;SE\\\\&amp;quot;)\\\\n\\\\t.description(\\\\&amp;quot;Shoes and socks\\\\&amp;quot;)\\\\n\\\\t.shopperEmail(\\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;)\\\\n\\\\t.shopperLocale(\\\\&amp;quot;en-US\\\\&amp;quot;)\\\\n\\\\t.billingAddress(address)\\\\n\\\\t.shopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nPaymentLinksApi service = new PaymentLinksApi(client);\\\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, 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 v17.4.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\LineItem;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Name;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Address;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentLinkRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\PaymentLinksApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Request objects\\\\n$lineItem1 = new LineItem();\\\\n$lineItem1\\\\n\\\\t-&amp;gt;setQuantity(1)\\\\n\\\\t-&amp;gt;setAmountExcludingTax(331)\\\\n\\\\t-&amp;gt;setTaxPercentage(2100)\\\\n\\\\t-&amp;gt;setDescription(\\\\&amp;quot;Shoes\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setId(\\\\&amp;quot;Item #1\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setTaxAmount(69)\\\\n\\\\t-&amp;gt;setAmountIncludingTax(400);\\\\n\\\\n$lineItem2 = new LineItem();\\\\n$lineItem2\\\\n\\\\t-&amp;gt;setQuantity(2)\\\\n\\\\t-&amp;gt;setAmountExcludingTax(248)\\\\n\\\\t-&amp;gt;setTaxPercentage(2100)\\\\n\\\\t-&amp;gt;setDescription(\\\\&amp;quot;Socks\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setId(\\\\&amp;quot;Item #2\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setTaxAmount(52)\\\\n\\\\t-&amp;gt;setAmountIncludingTax(300);\\\\n\\\\n$amount = new Amount();\\\\n$amount\\\\n\\\\t-&amp;gt;setCurrency(\\\\&amp;quot;SEK\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setValue(1000);\\\\n\\\\n$name = new Name();\\\\n$name\\\\n\\\\t-&amp;gt;setFirstName(\\\\&amp;quot;Testperson-se\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setLastName(\\\\&amp;quot;Approved\\\\&amp;quot;);\\\\n\\\\n$address = new Address();\\\\n$address\\\\n\\\\t-&amp;gt;setCountry(\\\\&amp;quot;SE\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setCity(\\\\&amp;quot;Ankeborg\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setHouseNumberOrName(\\\\&amp;quot;1\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setStreet(\\\\&amp;quot;Stargatan\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setPostalCode(\\\\&amp;quot;12345\\\\&amp;quot;);\\\\n\\\\n$paymentLinkRequest = new PaymentLinkRequest();\\\\n$paymentLinkRequest\\\\n\\\\t-&amp;gt;setReference(\\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setLineItems(array($lineItem1, $lineItem2))\\\\n\\\\t-&amp;gt;setAmount($amount)\\\\n\\\\t-&amp;gt;setShopperName($name)\\\\n\\\\t-&amp;gt;setMerchantAccount(\\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setCountryCode(\\\\&amp;quot;SE\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setDescription(\\\\&amp;quot;Shoes and socks\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setShopperEmail(\\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setShopperLocale(\\\\&amp;quot;en-US\\\\&amp;quot;)\\\\n\\\\t-&amp;gt;setBillingAddress($address)\\\\n\\\\t-&amp;gt;setShopperReference(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\n$service = new PaymentLinksApi($client);\\\\n$response = $service-&amp;gt;paymentLinks($paymentLinkRequest, $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 v14.3.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Checkout;\\\\nusing Adyen.Service.Checkout;\\\\n\\\\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\\\\\\\/\\\\\\\/ Fill in your request objects\\\\nLineItem lineItem1 = new LineItem\\\\n{\\\\n\\\\tQuantity = 1,\\\\n\\\\tAmountExcludingTax = 331,\\\\n\\\\tTaxPercentage = 2100,\\\\n\\\\tDescription = \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n\\\\tId = \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n\\\\tTaxAmount = 69,\\\\n\\\\tAmountIncludingTax = 400\\\\n};\\\\n\\\\nLineItem lineItem2 = new LineItem\\\\n{\\\\n\\\\tQuantity = 2,\\\\n\\\\tAmountExcludingTax = 248,\\\\n\\\\tTaxPercentage = 2100,\\\\n\\\\tDescription = \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n\\\\tId = \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n\\\\tTaxAmount = 52,\\\\n\\\\tAmountIncludingTax = 300\\\\n};\\\\n\\\\nAmount amount = new Amount\\\\n{\\\\n\\\\tCurrency = \\\\&amp;quot;SEK\\\\&amp;quot;,\\\\n\\\\tValue = 1000\\\\n};\\\\n\\\\nName name = new Name\\\\n{\\\\n\\\\tFirstName = \\\\&amp;quot;Testperson-se\\\\&amp;quot;,\\\\n\\\\tLastName = \\\\&amp;quot;Approved\\\\&amp;quot;\\\\n};\\\\n\\\\nAddress address = new Address\\\\n{\\\\n\\\\tCountry = \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\tCity = \\\\&amp;quot;Ankeborg\\\\&amp;quot;,\\\\n\\\\tHouseNumberOrName = \\\\&amp;quot;1\\\\&amp;quot;,\\\\n\\\\tStreet = \\\\&amp;quot;Stargatan\\\\&amp;quot;,\\\\n\\\\tPostalCode = \\\\&amp;quot;12345\\\\&amp;quot;\\\\n};\\\\n\\\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\\\n{\\\\n\\\\tReference = \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n\\\\tLineItems = new List&amp;lt;LineItem&amp;gt;{ lineItem1, lineItem2 },\\\\n\\\\tAmount = amount,\\\\n\\\\tShopperName = name,\\\\n\\\\tMerchantAccount = \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n\\\\tCountryCode = \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\tDescription = \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n\\\\tShopperEmail = \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;,\\\\n\\\\tShopperLocale = \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n\\\\tBillingAddress = address,\\\\n\\\\tShopperReference = \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nvar service = new PaymentLinksService(client);\\\\nvar response = service.PaymentLinks(paymentLinkRequest, 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 v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object\\\\nconst paymentLinkRequest = {\\\\n  reference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  amount: {\\\\n    value: 1000,\\\\n    currency: \\\\&amp;quot;SEK\\\\&amp;quot;\\\\n  },\\\\n  description: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n  countryCode: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n  merchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  shopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  shopperName: {\\\\n    firstName: \\\\&amp;quot;Testperson-se\\\\&amp;quot;,\\\\n    lastName: \\\\&amp;quot;Approved\\\\&amp;quot;\\\\n  },\\\\n  shopperEmail: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;,\\\\n  shopperLocale: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n  billingAddress: {\\\\n    city: \\\\&amp;quot;Ankeborg\\\\&amp;quot;,\\\\n    country: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n    houseNumberOrName: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n    postalCode: \\\\&amp;quot;12345\\\\&amp;quot;,\\\\n    street: \\\\&amp;quot;Stargatan\\\\&amp;quot;\\\\n  },\\\\n  lineItems: [ {\\\\n    quantity: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n    amountExcludingTax: \\\\&amp;quot;331\\\\&amp;quot;,\\\\n    taxPercentage: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    description: \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n    id: \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n    taxAmount: \\\\&amp;quot;69\\\\&amp;quot;,\\\\n    amountIncludingTax: \\\\&amp;quot;400\\\\&amp;quot;\\\\n  }, {\\\\n    quantity: \\\\&amp;quot;2\\\\&amp;quot;,\\\\n    amountExcludingTax: \\\\&amp;quot;248\\\\&amp;quot;,\\\\n    taxPercentage: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    description: \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n    id: \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n    taxAmount: \\\\&amp;quot;52\\\\&amp;quot;,\\\\n    amountIncludingTax: \\\\&amp;quot;300\\\\&amp;quot;\\\\n  } ]\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { 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 v9.2.0\\\\nimport (\\\\n\\\\t\\\\&amp;quot;context\\\\&amp;quot;\\\\n\\\\t\\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n\\\\t\\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n\\\\t\\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n    ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Fill in your request objects\\\\nlineItem1 := checkout.LineItem{\\\\n\\\\tQuantity: common.PtrInt64(1),\\\\n\\\\tAmountExcludingTax: common.PtrInt64(331),\\\\n\\\\tTaxPercentage: common.PtrInt64(2100),\\\\n\\\\tDescription: common.PtrString(\\\\&amp;quot;Shoes\\\\&amp;quot;),\\\\n\\\\tId: common.PtrString(\\\\&amp;quot;Item #1\\\\&amp;quot;),\\\\n\\\\tTaxAmount: common.PtrInt64(69),\\\\n\\\\tAmountIncludingTax: common.PtrInt64(400),\\\\n}\\\\n\\\\nlineItem2 := checkout.LineItem{\\\\n\\\\tQuantity: common.PtrInt64(2),\\\\n\\\\tAmountExcludingTax: common.PtrInt64(248),\\\\n\\\\tTaxPercentage: common.PtrInt64(2100),\\\\n\\\\tDescription: common.PtrString(\\\\&amp;quot;Socks\\\\&amp;quot;),\\\\n\\\\tId: common.PtrString(\\\\&amp;quot;Item #2\\\\&amp;quot;),\\\\n\\\\tTaxAmount: common.PtrInt64(52),\\\\n\\\\tAmountIncludingTax: common.PtrInt64(300),\\\\n}\\\\n\\\\namount := checkout.Amount{\\\\n\\\\tCurrency: \\\\&amp;quot;SEK\\\\&amp;quot;,\\\\n\\\\tValue: 1000,\\\\n}\\\\n\\\\nname := checkout.Name{\\\\n\\\\tFirstName: \\\\&amp;quot;Testperson-se\\\\&amp;quot;,\\\\n\\\\tLastName: \\\\&amp;quot;Approved\\\\&amp;quot;,\\\\n}\\\\n\\\\naddress := checkout.Address{\\\\n\\\\tCountry: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\tCity: \\\\&amp;quot;Ankeborg\\\\&amp;quot;,\\\\n\\\\tHouseNumberOrName: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n\\\\tStreet: \\\\&amp;quot;Stargatan\\\\&amp;quot;,\\\\n\\\\tPostalCode: \\\\&amp;quot;12345\\\\&amp;quot;,\\\\n}\\\\n\\\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\\\n\\\\tReference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n\\\\tLineItems: []checkout.LineItem{\\\\n\\\\t\\\\t\\\\tlineItem1, lineItem2,\\\\n\\\\t},\\\\n\\\\tAmount: amount,\\\\n\\\\tShopperName: &amp;amp;name,\\\\n\\\\tMerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n\\\\tCountryCode: common.PtrString(\\\\&amp;quot;SE\\\\&amp;quot;),\\\\n\\\\tDescription: common.PtrString(\\\\&amp;quot;Shoes and socks\\\\&amp;quot;),\\\\n\\\\tShopperEmail: common.PtrString(\\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;),\\\\n\\\\tShopperLocale: common.PtrString(\\\\&amp;quot;en-US\\\\&amp;quot;),\\\\n\\\\tBillingAddress: &amp;amp;address,\\\\n\\\\tShopperReference: common.PtrString(\\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;),\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nservice := client.Checkout()\\\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentLinkRequest(paymentLinkRequest)\\\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(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.2.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\njson_request = {\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 1000,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;SEK\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n  \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;SE\\\\&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;shopperName\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;firstName\\\\&amp;quot;: \\\\&amp;quot;Testperson-se\\\\&amp;quot;,\\\\n    \\\\&amp;quot;lastName\\\\&amp;quot;: \\\\&amp;quot;Approved\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;shopperEmail\\\\&amp;quot;: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperLocale\\\\&amp;quot;: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n  \\\\&amp;quot;billingAddress\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;city\\\\&amp;quot;: \\\\&amp;quot;Ankeborg\\\\&amp;quot;,\\\\n    \\\\&amp;quot;country\\\\&amp;quot;: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n    \\\\&amp;quot;houseNumberOrName\\\\&amp;quot;: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n    \\\\&amp;quot;postalCode\\\\&amp;quot;: \\\\&amp;quot;12345\\\\&amp;quot;,\\\\n    \\\\&amp;quot;street\\\\&amp;quot;: \\\\&amp;quot;Stargatan\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;lineItems\\\\&amp;quot;: [ {\\\\n    \\\\&amp;quot;quantity\\\\&amp;quot;: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;: \\\\&amp;quot;331\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxPercentage\\\\&amp;quot;: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n    \\\\&amp;quot;id\\\\&amp;quot;: \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxAmount\\\\&amp;quot;: \\\\&amp;quot;69\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;: \\\\&amp;quot;400\\\\&amp;quot;\\\\n  }, {\\\\n    \\\\&amp;quot;quantity\\\\&amp;quot;: \\\\&amp;quot;2\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountExcludingTax\\\\&amp;quot;: \\\\&amp;quot;248\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxPercentage\\\\&amp;quot;: \\\\&amp;quot;2100\\\\&amp;quot;,\\\\n    \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n    \\\\&amp;quot;id\\\\&amp;quot;: \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n    \\\\&amp;quot;taxAmount\\\\&amp;quot;: \\\\&amp;quot;52\\\\&amp;quot;,\\\\n    \\\\&amp;quot;amountIncludingTax\\\\&amp;quot;: \\\\&amp;quot;300\\\\&amp;quot;\\\\n  } ]\\\\n}\\\\n\\\\nresult = adyen.checkout.payment_links_api.payment_links(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.2.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\nrequest_body = {\\\\n  :reference =&amp;gt; &#039;YOUR_ORDER_NUMBER&#039;,\\\\n  :amount =&amp;gt; {\\\\n    :value =&amp;gt; 1000,\\\\n    :currency =&amp;gt; &#039;SEK&#039;\\\\n  },\\\\n  :description =&amp;gt; &#039;Shoes and socks&#039;,\\\\n  :countryCode =&amp;gt; &#039;SE&#039;,\\\\n  :merchantAccount =&amp;gt; &#039;YOUR_MERCHANT_ACCOUNT&#039;,\\\\n  :shopperReference =&amp;gt; &#039;YOUR_SHOPPER_REFERENCE&#039;,\\\\n  :shopperName =&amp;gt; {\\\\n    :firstName =&amp;gt; &#039;Testperson-se&#039;,\\\\n    :lastName =&amp;gt; &#039;Approved&#039;\\\\n  },\\\\n  :shopperEmail =&amp;gt; &#039;s.hopper@example.com&#039;,\\\\n  :shopperLocale =&amp;gt; &#039;en-US&#039;,\\\\n  :billingAddress =&amp;gt; {\\\\n    :city =&amp;gt; &#039;Ankeborg&#039;,\\\\n    :country =&amp;gt; &#039;SE&#039;,\\\\n    :houseNumberOrName =&amp;gt; &#039;1&#039;,\\\\n    :postalCode =&amp;gt; &#039;12345&#039;,\\\\n    :street =&amp;gt; &#039;Stargatan&#039;\\\\n  },\\\\n  :lineItems =&amp;gt; [ {\\\\n    :quantity =&amp;gt; &#039;1&#039;,\\\\n    :amountExcludingTax =&amp;gt; &#039;331&#039;,\\\\n    :taxPercentage =&amp;gt; &#039;2100&#039;,\\\\n    :description =&amp;gt; &#039;Shoes&#039;,\\\\n    :id =&amp;gt; &#039;Item #1&#039;,\\\\n    :taxAmount =&amp;gt; &#039;69&#039;,\\\\n    :amountIncludingTax =&amp;gt; &#039;400&#039;\\\\n  }, {\\\\n    :quantity =&amp;gt; &#039;2&#039;,\\\\n    :amountExcludingTax =&amp;gt; &#039;248&#039;,\\\\n    :taxPercentage =&amp;gt; &#039;2100&#039;,\\\\n    :description =&amp;gt; &#039;Socks&#039;,\\\\n    :id =&amp;gt; &#039;Item #2&#039;,\\\\n    :taxAmount =&amp;gt; &#039;52&#039;,\\\\n    :amountIncludingTax =&amp;gt; &#039;300&#039;\\\\n  } ]\\\\n}\\\\n\\\\nresult = adyen.checkout.payment_links_api.payment_links(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 v16.2.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\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request objects\\\\nconst lineItem1: Types.checkout.LineItem = {\\\\n\\\\tquantity: 1,\\\\n\\\\tamountExcludingTax: 331,\\\\n\\\\ttaxPercentage: 2100,\\\\n\\\\tdescription: \\\\&amp;quot;Shoes\\\\&amp;quot;,\\\\n\\\\tid: \\\\&amp;quot;Item #1\\\\&amp;quot;,\\\\n\\\\ttaxAmount: 69,\\\\n\\\\tamountIncludingTax: 400\\\\n};\\\\n\\\\nconst lineItem2: Types.checkout.LineItem = {\\\\n\\\\tquantity: 2,\\\\n\\\\tamountExcludingTax: 248,\\\\n\\\\ttaxPercentage: 2100,\\\\n\\\\tdescription: \\\\&amp;quot;Socks\\\\&amp;quot;,\\\\n\\\\tid: \\\\&amp;quot;Item #2\\\\&amp;quot;,\\\\n\\\\ttaxAmount: 52,\\\\n\\\\tamountIncludingTax: 300\\\\n};\\\\n\\\\nconst amount: Types.checkout.Amount = {\\\\n\\\\tcurrency: \\\\&amp;quot;SEK\\\\&amp;quot;,\\\\n\\\\tvalue: 1000\\\\n};\\\\n\\\\nconst name: Types.checkout.Name = {\\\\n\\\\tfirstName: \\\\&amp;quot;Testperson-se\\\\&amp;quot;,\\\\n\\\\tlastName: \\\\&amp;quot;Approved\\\\&amp;quot;\\\\n};\\\\n\\\\nconst address: Types.checkout.Address = {\\\\n\\\\tcountry: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\tcity: \\\\&amp;quot;Ankeborg\\\\&amp;quot;,\\\\n\\\\thouseNumberOrName: \\\\&amp;quot;1\\\\&amp;quot;,\\\\n\\\\tstreet: \\\\&amp;quot;Stargatan\\\\&amp;quot;,\\\\n\\\\tpostalCode: \\\\&amp;quot;12345\\\\&amp;quot;\\\\n};\\\\n\\\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\\\n\\\\treference: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n\\\\tlineItems: [lineItem1, lineItem2],\\\\n\\\\tamount: amount,\\\\n\\\\tshopperName: name,\\\\n\\\\tmerchantAccount: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n\\\\tcountryCode: \\\\&amp;quot;SE\\\\&amp;quot;,\\\\n\\\\tdescription: \\\\&amp;quot;Shoes and socks\\\\&amp;quot;,\\\\n\\\\tshopperEmail: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;,\\\\n\\\\tshopperLocale: \\\\&amp;quot;en-US\\\\&amp;quot;,\\\\n\\\\tbillingAddress: address,\\\\n\\\\tshopperReference: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { 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;:null,&quot;oldTabId&quot;:&quot;include_shopper_information_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=\"force-expiry\">Force the expiry of a payment link<\/h2>\n<p>In some scenarios, you may want to force the expiry of a payment link. For example, if a shopper updates their order after you have sent them a payment link, you may want to create a new payment link with the updated amount. To avoid confusion with two payment links, set the <code>status<\/code> of the previous payment link to <strong>expired<\/strong>. Changing the status to <strong>expired<\/strong> also changes the payment link's expiry date to the current date and time.<\/p>\n<p>To force the expiry, make a PATCH <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/patch\/paymentLinks\/{linkId}\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks\/{linkId}<\/a> request and update the <code>status<\/code>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Force the expiry of a payment link'\" :id=\"'7220434177'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl  https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks\\\/PL50C5F751CED39G71 \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X PATCH \\\\\\n-d '{\\n    \\&quot;status\\&quot;: \\&quot;expired\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nUpdatePaymentLinkRequest updatePaymentLinkRequest = new UpdatePaymentLinkRequest()\\n\\t.status(UpdatePaymentLinkRequest.StatusEnum.EXPIRED);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.updatePaymentLink(\\&quot;linkId\\&quot;, updatePaymentLinkRequest, null);&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\UpdatePaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$updatePaymentLinkRequest = new UpdatePaymentLinkRequest();\\n$updatePaymentLinkRequest\\n\\t-&gt;setStatus(\\&quot;expired\\&quot;);\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;updatePaymentLink('linkId', $updatePaymentLinkRequest);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nUpdatePaymentLinkRequest updatePaymentLinkRequest = new UpdatePaymentLinkRequest\\n{\\n\\tStatus = UpdatePaymentLinkRequest.StatusEnum.Expired\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.UpdatePaymentLink(\\&quot;linkId\\&quot;, updatePaymentLinkRequest);&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst updatePaymentLinkRequest = {\\n  status: \\&quot;expired\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.updatePaymentLink(\\&quot;linkId\\&quot;, updatePaymentLinkRequest);&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\nupdatePaymentLinkRequest := checkout.UpdatePaymentLinkRequest{\\n\\tStatus: \\&quot;expired\\&quot;,\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.UpdatePaymentLinkInput(\\&quot;linkId\\&quot;).UpdatePaymentLinkRequest(updatePaymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.UpdatePaymentLink(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;status\\&quot;: \\&quot;expired\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.update_payment_link(request=json_request, linkId=\\&quot;linkId\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :status =&gt; 'expired'\\n}\\n\\nresult = adyen.checkout.payment_links_api.update_payment_link(request_body, 'linkId')&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst updatePaymentLinkRequest: Types.checkout.UpdatePaymentLinkRequest = {\\n\\tstatus: Types.checkout.UpdatePaymentLinkRequest.StatusEnum.Expired\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.updatePaymentLink(\\&quot;linkId\\&quot;, updatePaymentLinkRequest);&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response returns the payment link details with the updated <code>status<\/code> and <code>expiresAt<\/code> parameters.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"amount\\\": {\\n        \\\"currency\\\": \\\"EUR\\\",\\n        \\\"value\\\": 4200\\n    },\\n    \\\"countryCode\\\": \\\"NL\\\",\\n    \\\"expiresAt\\\": \\\"2020-06-23T13:10:33Z\\\",\\n    \\\"id\\\": \\\"PL50C5F751CED39G71\\\",\\n    \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n    \\\"reference\\\": \\\"YOUR_PAYMENT_REFERENCE\\\",\\n    \\\"shopperLocale\\\": \\\"nl-NL\\\",\\n    \\\"status\\\": \\\"expired\\\",\\n    \\\"url\\\": \\\"https:\\\/\\\/test.adyen.link\\\/PL50C5F751CED39G71\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"customize\">Customize the payment page<\/h2>\n<p>Learn how to customize:<\/p>\n<ul>\n<li>Which <a href=\"#payment-methods\">payment methods<\/a> are shown on the payment page, and in which order.<\/li>\n<li>The appearance of the payment page, using <a href=\"#themes\">themes<\/a>.<\/li>\n<li>The <a href=\"#language\">language<\/a> shown on the payment page.<\/li>\n<\/ul>\n<h3 id=\"payment-methods\">Payment methods<\/h3>\n<p>The payment methods are ordered by popularity, the most popular payment methods in the shopper's country\/region appearing at the top.<\/p>\n<p>In your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, you can configure which payment methods are rendered <a href=\"#customize-based-on-shoppers-country\">based on the shopper's country\/region<\/a>. If you want to <a href=\"#specific-transactions\">customize payment methods for specific transactions<\/a>, you can do this by including additional parameters in your API request.<\/p>\n<h4 id=\"customize-based-on-shoppers-country\">Customize based on shopper's country\/region<\/h4>\n<p>To configure payment methods in your Customer Area, you must have the <strong>Change payment methods<\/strong> <a href=\"\/pt\/account\/user-roles#account\">user role<\/a>.<\/p>\n<p>To configure which payment methods are rendered (and in which order) based on the shopper's country\/region:<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/li>\n<li>Go to <strong>Settings<\/strong> &gt; <strong>Checkout settings<\/strong>.<\/li>\n<li>Select a <strong>Shopper country\/region<\/strong>.<\/li>\n<li>Drag the payment\u00a0methods into the order you want them to appear to shoppers in this country\/region.<\/li>\n<li>To hide a payment method from shoppers in this country\/region, drag it to the <strong>Other configured payment methods<\/strong> box.<\/li>\n<\/ol>\n<h4 id=\"specific-transactions\">Customize for specific transactions<\/h4>\n<p>When making a POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request, you can include one of the following parameters:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__reqParam_allowedPaymentMethods\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">allowedPaymentMethods<\/a>: only payment methods that you specify here will be rendered on the payment page.<\/li>\n<li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/CheckoutService\/latest\/post\/paymentLinks__reqParam_blockedPaymentMethods\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">blockedPaymentMethods<\/a>: payment methods that you specify here will not be rendered on the payment page.<\/li>\n<\/ul>\n<div class=\"notices green\">\n<p>To refer to payment methods, use their <a href=\"\/pt\/development-resources\/paymentmethodvariant\">\n  <code>paymentMethodVariant<\/code>\n<\/a>.<\/p>\n<\/div>\n<p>Here is an example of how you can create a payment link that only allows the shopper to pay with iDEAL or card:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Create a payment link with customized list of payment methods'\" :id=\"'6665959806'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n-H'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;allowedPaymentMethods\\&quot;: [\\&quot;ideal\\&quot;,\\&quot;scheme\\&quot;],\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 1000,\\n      \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(1000L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t.allowedPaymentMethods(Arrays.asList(\\&quot;ideal\\&quot;, \\&quot;scheme\\&quot;));\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(1000);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;)\\n\\t-&gt;setAllowedPaymentMethods(array(\\&quot;ideal\\&quot;, \\&quot;scheme\\&quot;));\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 1000\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;,\\n\\tAllowedPaymentMethods = { \\&quot;ideal\\&quot;, \\&quot;scheme\\&quot; }\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  allowedPaymentMethods: [ \\&quot;ideal\\&quot;, \\&quot;scheme\\&quot; ],\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 1000,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 1000,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n\\tAllowedPaymentMethods: []string{\\n\\t\\t\\&quot;ideal\\&quot;, \\&quot;scheme\\&quot;,\\n\\t},\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;allowedPaymentMethods\\&quot;: [ \\&quot;ideal\\&quot;, \\&quot;scheme\\&quot; ],\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 1000,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :allowedPaymentMethods =&gt; [ 'ideal', 'scheme' ],\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 1000,\\n    :currency =&gt; 'EUR'\\n  },\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 1000\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;,\\n\\tallowedPaymentMethods: [\\&quot;ideal\\&quot;, \\&quot;scheme\\&quot;]\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"themes\">Themes<\/h3>\n<p>Themes allow you to specify a background image and a brand logo to customize the appearance of the payment page. If you create several themes, you can choose a theme when you create the payment link.<\/p>\n<h4>Personalize a p\u00e1gina de pagamento<\/h4>\n<p>Voc\u00ea pode personalizar a p\u00e1gina de pagamento hospedada pela Adyen com sua marca e incluir um link para seus <em>Termos e Condi\u00e7\u00f5es<\/em>. Seu usu\u00e1rio Admin tem acesso para configurar a p\u00e1gina de pagamento.<\/p>\n<p><\/p>\n<p>Se um usu\u00e1rio diferente da \u00e1rea do cliente precisar de acesso para configurar a p\u00e1gina de pagamento, pe\u00e7a ao seu usu\u00e1rio Admin para atribuir a fun\u00e7\u00e3o <strong>Pay by Link Settings<\/strong>. Seu usu\u00e1rio Admin pode configurar a p\u00e1gina, mas ele precisa ter a mesma fun\u00e7\u00e3o atribu\u00edda a ele antes de poder atribu\u00ed-la a outros. Se o seu usu\u00e1rio Admin n\u00e3o tiver essa fun\u00e7\u00e3o, entre em contato com nossa <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/p>\n<p><\/p>\n<p>Para personalizar a p\u00e1gina de pagamento:<\/p>\n<ol>\n<li>Fa\u00e7a login na sua  <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>.<\/li>\n<li>Selecione <strong>Settings<\/strong> &gt; <strong>Pay by Link<\/strong>.<\/li>\n<li>Selecione <strong>Appearance<\/strong>.<\/li>\n<li>Insira o nome da sua empresa, loja ou marca, fa\u00e7a upload do logotipo da marca e adicione um link para seus <em>Termos e Condi\u00e7\u00f5es<\/em>.<\/li>\n<li>Opcionalmente, altere a cor de fundo e carregue uma imagem de fundo.<\/li>\n<li>Selecione <strong>Save<\/strong>.<\/li>\n<\/ol>\n<p>Voc\u00ea receber\u00e1 uma confirma\u00e7\u00e3o de que o formul\u00e1rio de pagamento foi atualizado.<\/p>\n<h4>Create a payment link with a specific theme<\/h4>\n<p>After the theme has been created, you see a <strong>Theme ID<\/strong> on the Customer Area page for that theme. To use the theme for a new payment link, include the <code>themeId<\/code> in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/p>\n<p>Here is an example of how you can create a payment link with a theme:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Create a payment link with a theme'\" :id=\"'5320723570'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/paymentLinks \\\\\\n-H'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;themeId\\&quot;: \\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 1000,\\n      \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Request objects\\nAmount amount = new Amount()\\n\\t.currency(\\&quot;EUR\\&quot;)\\n\\t.value(1000L);\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest()\\n\\t.reference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t.amount(amount)\\n\\t.merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t.countryCode(\\&quot;NL\\&quot;)\\n\\t.themeId(\\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;)\\n\\t.shopperLocale(\\&quot;nl-NL\\&quot;);\\n\\n\\\/\\\/ Make the request\\nPaymentLinksApi service = new PaymentLinksApi(client);\\nPaymentLinkResponse response = service.paymentLinks(paymentLinkRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentLinkRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentLinksApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Request objects\\n$amount = new Amount();\\n$amount\\n\\t-&gt;setCurrency(\\&quot;EUR\\&quot;)\\n\\t-&gt;setValue(1000);\\n\\n$paymentLinkRequest = new PaymentLinkRequest();\\n$paymentLinkRequest\\n\\t-&gt;setReference(\\&quot;YOUR_PAYMENT_REFERENCE\\&quot;)\\n\\t-&gt;setAmount($amount)\\n\\t-&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;)\\n\\t-&gt;setCountryCode(\\&quot;NL\\&quot;)\\n\\t-&gt;setThemeId(\\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;)\\n\\t-&gt;setShopperLocale(\\&quot;nl-NL\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the request\\n$service = new PaymentLinksApi($client);\\n$response = $service-&gt;paymentLinks($paymentLinkRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.3.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Fill in your request objects\\nAmount amount = new Amount\\n{\\n\\tCurrency = \\&quot;EUR\\&quot;,\\n\\tValue = 1000\\n};\\n\\nPaymentLinkRequest paymentLinkRequest = new PaymentLinkRequest\\n{\\n\\tReference = \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount = amount,\\n\\tMerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode = \\&quot;NL\\&quot;,\\n\\tThemeId = \\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;,\\n\\tShopperLocale = \\&quot;nl-NL\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nvar service = new PaymentLinksService(client);\\nvar response = service.PaymentLinks(paymentLinkRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object\\nconst paymentLinkRequest = {\\n  themeId: \\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;,\\n  reference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  amount: {\\n    value: 1000,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  countryCode: \\&quot;NL\\&quot;,\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  shopperLocale: \\&quot;nl-NL\\&quot;\\n}\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.2.0\\nimport (\\n\\t\\&quot;context\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n\\t\\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\nclient := adyen.NewClient(&amp;common.Config{\\n    ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Fill in your request objects\\namount := checkout.Amount{\\n\\tCurrency: \\&quot;EUR\\&quot;,\\n\\tValue: 1000,\\n}\\n\\npaymentLinkRequest := checkout.PaymentLinkRequest{\\n\\tReference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tAmount: amount,\\n\\tMerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tCountryCode: common.PtrString(\\&quot;NL\\&quot;),\\n\\tThemeId: common.PtrString(\\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;),\\n\\tShopperLocale: common.PtrString(\\&quot;nl-NL\\&quot;),\\n}\\n\\n\\\/\\\/ Make the request\\nservice := client.Checkout()\\nreq := service.PaymentLinksApi.PaymentLinksInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentLinkRequest(paymentLinkRequest)\\nres, httpRes, err := service.PaymentLinksApi.PaymentLinks(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\njson_request = {\\n  \\&quot;themeId\\&quot;: \\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 1000,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;countryCode\\&quot;: \\&quot;NL\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;nl-NL\\&quot;\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.2.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\nrequest_body = {\\n  :themeId =&gt; 'eccbbbc3-b880-430a-8093-6685aba887cf',\\n  :reference =&gt; 'YOUR_PAYMENT_REFERENCE',\\n  :amount =&gt; {\\n    :value =&gt; 1000,\\n    :currency =&gt; 'EUR'\\n  },\\n  :countryCode =&gt; 'NL',\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :shopperLocale =&gt; 'nl-NL'\\n}\\n\\nresult = adyen.checkout.payment_links_api.payment_links(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ Initialize the client object\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request objects\\nconst amount: Types.checkout.Amount = {\\n\\tcurrency: \\&quot;EUR\\&quot;,\\n\\tvalue: 1000\\n};\\n\\nconst paymentLinkRequest: Types.checkout.PaymentLinkRequest = {\\n\\treference: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n\\tamount: amount,\\n\\tmerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n\\tcountryCode: \\&quot;NL\\&quot;,\\n\\tthemeId: \\&quot;eccbbbc3-b880-430a-8093-6685aba887cf\\&quot;,\\n\\tshopperLocale: \\&quot;nl-NL\\&quot;\\n};\\n\\n\\\/\\\/ Make the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentLinksApi.paymentLinks(paymentLinkRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"language\">Language and localization<\/h3>\n<p>The default language of the payment page is the language of the shopper's browser locale. To change the language of payment page, send the <code>shopperLocale<\/code> parameter in your POST <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request.<\/p>\n<p>Pay by Link supports the following languages:<\/p>\n<table>\n<thead>\n<tr>\n<th>Language<\/th>\n<th style=\"text-align: right;\"><code>shopperLocale<\/code><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Arabic - International<\/td>\n<td style=\"text-align: right;\"><strong>ar<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Chinese - Simplified<\/td>\n<td style=\"text-align: right;\"><strong>zh-CN<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Chinese - Traditional<\/td>\n<td style=\"text-align: right;\"><strong>zh-TW<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Croatian<\/td>\n<td style=\"text-align: right;\"><strong>hr-HR<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Czech<\/td>\n<td style=\"text-align: right;\"><strong>cs-CZ<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Danish<\/td>\n<td style=\"text-align: right;\"><strong>da-DK<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Dutch<\/td>\n<td style=\"text-align: right;\"><strong>nl-NL<\/strong><\/td>\n<\/tr>\n<tr>\n<td>English - US<\/td>\n<td style=\"text-align: right;\"><strong>en-US<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Finnish<\/td>\n<td style=\"text-align: right;\"><strong>fi-FI<\/strong><\/td>\n<\/tr>\n<tr>\n<td>French<\/td>\n<td style=\"text-align: right;\"><strong>fr-FR<\/strong><\/td>\n<\/tr>\n<tr>\n<td>German<\/td>\n<td style=\"text-align: right;\"><strong>de-DE<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Greek<\/td>\n<td style=\"text-align: right;\"><strong>el-GR<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Hungarian<\/td>\n<td style=\"text-align: right;\"><strong>hu-HU<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Italian<\/td>\n<td style=\"text-align: right;\"><strong>it-IT<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Japanese<\/td>\n<td style=\"text-align: right;\"><strong>ja-JP<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Korean<\/td>\n<td style=\"text-align: right;\"><strong>ko-KR<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Norwegian<\/td>\n<td style=\"text-align: right;\"><strong>no-NO<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Polish<\/td>\n<td style=\"text-align: right;\"><strong>pl-PL<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Portuguese - Brazil<\/td>\n<td style=\"text-align: right;\"><strong>pt-BR<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Portuguese - Portugal<\/td>\n<td style=\"text-align: right;\"><strong>pt-PT<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Romanian<\/td>\n<td style=\"text-align: right;\"><strong>ro-RO<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Russian<\/td>\n<td style=\"text-align: right;\"><strong>ru-RU<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Slovak<\/td>\n<td style=\"text-align: right;\"><strong>sk-SK<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Slovenian<\/td>\n<td style=\"text-align: right;\"><strong>sl-SI<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Spanish<\/td>\n<td style=\"text-align: right;\"><strong>es-ES<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Swedish<\/td>\n<td style=\"text-align: right;\"><strong>sv-SE<\/strong><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"testing-your-integration\">Test and go live<\/h2>\n<p>Before going live, use our list of <a href=\"\/pt\/development-resources\/test-cards-and-credentials\/test-card-numbers\">test cards and other payment methods<\/a> to\u00a0test your integration. We recommend testing each payment method that you intend to offer to your shoppers.<\/p>\n<p>You can check the 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>, under <strong>Transactions<\/strong> &gt;\u00a0<strong>Payments<\/strong>.<\/p>\n<p>When you are ready to go live, you need to:<\/p>\n<ol>\n<li><a href=\"\/pt\/get-started-with-adyen\/application-requirements\">Apply for a live account<\/a>.<\/li>\n<li><a href=\"\/pt\/online-payments\/go-live-checklist\">Configure your live account<\/a>.<\/li>\n<li>Submit a request to add payment methods in your <a href=\"https:\/\/ca-live.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">live Customer Area<\/a> .<\/li>\n<li>Switch from test to our <a href=\"\/pt\/development-resources\/live-endpoints#checkout-endpoints\">live endpoints<\/a>.<\/li>\n<li><a href=\"\/pt\/unified-commerce\/pay-by-link#add-your-terms-and-conditions\">Add your terms and conditions<\/a> to your live Customer Area.<\/li>\n<\/ol>\n<h2>See also<\/h2>\n<ul>\n<li><a href=\"\/pt\/unified-commerce\/pay-by-link\/supported-payment-methods\">Payment methods<\/a><\/li>\n<li><a href=\"\/pt\/online-payments\/tokenization\">Tokenization<\/a><\/li>\n<li><a href=\"\/pt\/development-resources\/webhooks\">Webhooks<\/a><\/li>\n<\/ul>","url":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/pay-by-link\/create-payment-links\/api","articleFields":{"description":"Learn how to create payment links through the API.","feedback_component":true,"parameters":{"integration":"Pay by Link","api_explorer_shortcode":"[api=\"Checkout\/paymentLinks\" inlineCode=\"false\" t=\"Try it in our API Explorer.\"]","logo_1":"![](\/reuse\/development-resources\/additional-info-resources\/java-original.svg)","example_1":"[Java Spring](https:\/\/github.com\/adyen-examples\/adyen-java-spring-online-payments\/tree\/main\/paybylink-example)","logo_2":"![](\/reuse\/development-resources\/additional-info-resources\/dot-net-original.svg)","example_2":"[.NET](https:\/\/github.com\/adyen-examples\/adyen-dotnet-online-payments\/tree\/main\/paybylink-example)","logo_3":"![](\/reuse\/development-resources\/additional-info-resources\/nodejs-original.svg)","example_3":"[Node.js](https:\/\/github.com\/adyen-examples\/adyen-node-online-payments\/tree\/main\/paybylink-example)"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/pay-by-link\/create-payment-links\/api","title":"Pay by Link through the API","content":"\n&nbsp;&nbsp;Postman collectionImplementation examples&nbsp;&nbsp;Java Spring&nbsp;&nbsp;.NET&nbsp;&nbsp;Node.js\n\nCreating payment links through the API allows you to accept most payment methods, including buy now, pay later payment methods such as Klarna and Afterpay.\nUsing payment links to accept payments works as follows:\n\nCreate a payment link.\nSend the payment link to your shopper.\nGet updates about the payment.\n\nOn this page, you'll also learn how to implement additional use cases such as:\n\nCreate a reusable payment link.\nTokenize your shopper's payment details for future one-off payments or for subscription payments.\nProvide additional information about the product or the shopper. This is required for some payment methods, for example buy now, pay later payment methods.\nForce the expiry of a payment link, for example if you sent a new payment link to your shopper.\nCustomize the payment methods, style, and language shown on the payment page.\n\nRequirements\nBefore you begin to integrate, make sure you have followed the Get started with Adyen guide to:\n\nGet an overview of the steps needed to accept live payments.\nCreate your test account.\n\nAfter you have created your test account:\n\nAdd your terms and conditions to the Pay by Link payment page.\nGenerate your API key for creating payment links.\nSet up webhooks to keep track of the payment result.\nAdd payment methods to your account.\n\nGenerate your API key\n\nLog in to your Customer Area and select your Company account.\nGo to Developers &gt; API credentials.\nSelect the Payments or Platforms tab, depending on your integration type.\nSelect the credential username.\nUnder Server settings &gt; Authentication select the API key tab.\nSelect Generate API key.\nSelect the copy icon  and store your API key securely in your system.\n\nYou cannot copy the API key again after you leave the page.\n\nSelect Save changes.\n\nSet up webhooks\nWebhooks allow you to get updates about the payment after you have sent the payment link to your shopper.\nIf you haven't done so already, set up webhooks, and make sure that your server can process and accept webhooks.\nAdd payment methods to your account\nIf you haven't done so already, add payment methods to your merchant account. To see which payment methods are supported for Pay by Link, refer to Supported payment methods.\n\nLog in to your Customer Area.\nSwitch to your merchant account.\nGo to Settings &gt; Payment methods.\nSelect Add payment methods.\nStart entering the name of the payment method, then select it from the drop-down list.\nSelect Submit.\n\nStep 1: Create a payment link\nMake a POST \/paymentLinks request specifying the following:\n\nmerchantAccount: the name of your merchant account.\n reference&#58; your identifier for the transaction.\n amount&#58; the currency and value in minor units.\n\nYou can also include other parameters, for example \n  shopperLocale\n to specify the language of the payment page, \n  expiresAt\n to change the expiry date of the payment link, or \n  description\n to add a description for the product. If these are not provided, the payment page will be rendered in the language of the shopper's browser locale, without a description, and with a 24-hour expiry.\nIn this example, we'll show you how you can create a payment link for a shopper in the Netherlands for a purchase amount of EUR&nbsp;42:\n\n    \n\nYou receive a response containing the following:\n\nid: the payment link ID.\n url&#58; the payment link that you should send to your shopper.\nexpiresAt: date and time when the payment link expires.\n\n\n    \n\nStep 2: Send the payment link to your shopper\nUse the url from the \/paymentLinks response to redirect your shopper to the payment link.\n\nStarting November 1, 2025, you cannot embed payment links in an iframe. If you are currently using payment links in an iframe, update your integration to comply.\n\nSend the url to your shopper. When the shopper selects the link, they are redirected to an Adyen-hosted payment page. The shopper is presented with the payment methods available for the amount and countryCode specified in the request.\nStep 3: Get updates about the payment\nFirst, wait for the AUTHORISATION webhook to receive the result of the payment, as well as the payment link ID. When you have the payment link ID, you can make a GET \/paymentLinks\/{linkId} request to get details about the payment link.\nYou can also view payment links in your Customer Area.\n\nCurrently, the Payment Links page in the Customer Area only shows links that are created in the EU. For links created in other regions, you can use the  id you received in the  \/paymentLinks response to navigate to the payment link details page, with the following format:\nhttps:\/\/ca-live.adyen.com\/ca\/ca\/transactions\/payment-link-details.shtml?d=PAYMENT_LINK_ID\n\n\nWe keep payment link details for three months. If it was more than three months ago that a payment link was created, the details are no longer available.\n\nAUTHORISATION webhook\nThe AUTHORISATION webhook contains:\n\nadditionalData.paymentLinkId: Use this to match the payment to the payment link. For our example, this matches the payment link ID PL50C5F751CED39G71.\npspReference: Unique identifier for the payment.\n\nsuccess: The result of the transaction.\n\n\n\nsuccess\nDescription\nAction to take\n\n\n\n\ntrue\nThe&nbsp;shopper&nbsp;successfully completed the payment.\nInform the shopper that the payment has been successful, and proceed with the order. If you have enabled manual capture, you also need to capture the payment.\n\n\nfalse\nThe&nbsp;shopper&nbsp;attempted to pay but the transaction failed.\nThe payment page informs the shopper that the payment was unsuccessful, and prompts them to try again. If the shopper still doesn't make a successful payment, you may want to reach out to them to follow up.\n\n\n\n\n\n\n    \n\nGet details about a payment link\nTo get the details of a specific payment link, send a GET \/paymentLinks\/{linkId} request. Let's use our example from the previous section for a payment link with ID PL50C5F751CED39G71.\n\n    \n\nThe response returns the payment link details, including the amount and the status. If the link is not expired and has not been paid, the status is active. Else, the status is completed or expired. The status can also be paymentPending if the payment has an asynchronous flow and the shopper hasn't yet completed the payment.\n\n    \n\nCreate a reusable payment link\nIn some cases, you may want to create a reusable link. For example, if you want to accept donations for a fixed amount from multiple shoppers, or sell event tickets. To do this, set reusable to true in your POST \/paymentLinks request.\nThe following example shows how to create a reusable payment link to accept donations for the amount of USD&nbsp;8.50 from shoppers in the United States:\n\n    \n\nTokenize your shopper's payment details\nYou can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details. Your \/paymentLinks request must include a recurringProcessingModel to indicate how you want to use the token:\n\n\n\nBusiness model\nrecurringProcessingModel\nDescription\n\n\n\n\nOne-off payments\nCardOnFile\nTokenize the customer's card details, and with future payment links present the customer's stored card on the payment page.\n\n\nSubscription payments\nSubscription\nTokenize the customer's card for recurring payments that occur at regular intervals without the customer being present.\n\n\nUnscheduled recurring payments\nUnscheduledCardOnFile\nTokenize the customer's card for recurring payments that occur on a non-fixed schedule without the customer being present. This includes automatic top-ups when the cardholder's balance drops below a certain amount.\n\n\n\nTokenize for future one-off payments\n\nYou should always ask for your customer's consent before tokenizing their card for future payments.\n\nYou can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details for future one-off payments. The next time the same shopper makes a purchase, their stored card details will be presented on the payment page.\n\n\nSend the following in your POST \/paymentLinks request:\n\nA unique  shopperReference of at least three characters.\n\nYour reference must not include personally identifiable information (PII), like name or email address.\n\n storePaymentMethodMode set to askForConsent to allow the shopper to decide whether to store the details. If you already have the shopper's consent, set this parameter to enabled.\n recurringProcessingModel set to CardOnFile.\n\nHere's an example of how you can create a payment link for a shopper with shopperReference ShopperID-A16728.\n\n\n\nThe shopper's card details will be tokenized after they make a successful payment.\n\n\n\nWhen the shopper returns for their next purchase, send the same  shopperReference from the first request, and set recurringProcessingModel to CardOnFile in your POST \/paymentLinks request.\nHere's an example of how you can create a payment link for the same shopper with shopperReference ShopperID-A16728.\n\n\n\n\n\nTokenize for subscriptions\n\nYou should always ask for your customer's consent before tokenizing their card for future payments.\n\nYou can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details for recurring payments.\n\n\nSend the following in your POST \/paymentLinks request:\n\nA unique  shopperReference of at least three characters.\n\nYour reference must not include personally identifiable information (PII), like name or email address.\n\n storePaymentMethodMode set to askForConsent to allow the shopper to decide whether to store the details. If you already have the shopper's consent, set this parameter to enabled.\n recurringProcessingModel set to Subscription.\nThe payment amount, or if you only want to tokenize the shopper's payment details without charging them, set the amount.value to 0. This is called a zero-value authorisation. Instead of a Pay button, your shoppers will see a Confirm preauthorization button on the payment page.\n\nHere is an example of how you can create a payment link to tokenize and store payment details for a subscription, for a shopper with shopperReference Shopper-B7183.\n\n\n\n\n\nAfter the shopper completes the payment or the preauthorization, make a POST  \/paymentMethods request to get the shopper's tokenized payment details.\n\n\nSend the token when you make subsequent subscription payments with a POST  \/payments request.\n\n\nTokenize for unscheduled recurring payments\n\nYou should always ask for your customer's consent before tokenizing their card for future payments.\n\nYou can use the Pay by Link API to create a payment link that will tokenize and store your shopper's card details for recurring payments on a non-fixed schedule.\n\n\nSend the following in your POST \/paymentLinks request:\n\nA unique  shopperReference of at least three characters.\n\nYour reference must not include personally identifiable information (PII), like name or email address.\n\n storePaymentMethodMode set to askForConsent to allow the shopper to decide whether to store the details. If you already have the shopper's consent, set this parameter to enabled.\n recurringProcessingModel set to UnscheduledCardOnFile.\nThe payment amount, or if you only want to tokenize the shopper's payment details without charging them, set the amount.value to 0. This is called a zero-value authorisation. Instead of a Pay button, your shoppers will see a Confirm preauthorization button on the payment page.\n\nHere is an example of how you can create a payment link to tokenize and store payment details for automatic top-ups, for a shopper with shopperReference Shopper-C5250.\n\n\n\n\n\nAfter the shopper completes the payment or the preauthorization, make a POST  \/paymentMethods request to get the shopper's tokenized payment details.\n\n\nSend the token when you make subsequent recurring payments with a POST  \/payments request.\n\n\nProvide additional information\nSome payment methods, such as buy now, pay later payment methods, require additional information about the purchased product (lineItems) or the shopper (for example, shopperEmail). If you want to create a payment link that can support these payment methods, you need to make sure that you provide this information.\n\n\n\nPayment method\nRequired objects\n\n\n\n\n3x 4x Oney (FR, ES)\n lineItemsNote: Other shopper information such as shopper name and email are collected on the payment page.\n\n\nAfterpay (AU, NZ)\n lineItems,  shopperEmail,  shopperName,  deliveryAddress,  billingAddress\n\n\nKlarna&nbsp;(AT,&nbsp;DK,&nbsp;FI, DE, NO, SE, CH, NL, GB, US)\n lineItems ,  shopperEmail\n\n\nPayBright (CA)\n lineItems,  shopperEmail,  shopperName,  deliveryAddress,  billingAddress\n\n\nZip (AU)\n lineItems,  shopperEmail,  shopperName,  deliveryAddress,  billingAddress\n\n\n\nProvide product information\nIf a payment method requires  lineItems, you will need to collect this information, and include it in your POST \/paymentLinks request.\nThe following example shows how to create a payment link that can support 3x 4x Oney (FR, ES) .\n\n    \n\nProvide shopper information\nFor shopper information such as name, email, or address, you can either:\n\nIf using API version v67 or later, ask the shopper to fill in this information before they complete the payment, by including requiredShopperFields in your POST \/paymentLinks request.\nCollect this information yourself, and include it in your POST \/paymentLinks request.\n\n\n\n    \n        \n        \n    \n\n\nForce the expiry of a payment link\nIn some scenarios, you may want to force the expiry of a payment link. For example, if a shopper updates their order after you have sent them a payment link, you may want to create a new payment link with the updated amount. To avoid confusion with two payment links, set the status of the previous payment link to expired. Changing the status to expired also changes the payment link's expiry date to the current date and time.\nTo force the expiry, make a PATCH \/paymentLinks\/{linkId} request and update the status.\n\n    \n\nThe response returns the payment link details with the updated status and expiresAt parameters.\n\n    \n\nCustomize the payment page\nLearn how to customize:\n\nWhich payment methods are shown on the payment page, and in which order.\nThe appearance of the payment page, using themes.\nThe language shown on the payment page.\n\nPayment methods\nThe payment methods are ordered by popularity, the most popular payment methods in the shopper's country\/region appearing at the top.\nIn your Customer Area, you can configure which payment methods are rendered based on the shopper's country\/region. If you want to customize payment methods for specific transactions, you can do this by including additional parameters in your API request.\nCustomize based on shopper's country\/region\nTo configure payment methods in your Customer Area, you must have the Change payment methods user role.\nTo configure which payment methods are rendered (and in which order) based on the shopper's country\/region:\n\nLog in to your Customer Area.\nGo to Settings &gt; Checkout settings.\nSelect a Shopper country\/region.\nDrag the payment\u00a0methods into the order you want them to appear to shoppers in this country\/region.\nTo hide a payment method from shoppers in this country\/region, drag it to the Other configured payment methods box.\n\nCustomize for specific transactions\nWhen making a POST \/paymentLinks request, you can include one of the following parameters:\n\nallowedPaymentMethods: only payment methods that you specify here will be rendered on the payment page.\nblockedPaymentMethods: payment methods that you specify here will not be rendered on the payment page.\n\n\nTo refer to payment methods, use their \n  paymentMethodVariant\n.\n\nHere is an example of how you can create a payment link that only allows the shopper to pay with iDEAL or card:\n\n    \n\nThemes\nThemes allow you to specify a background image and a brand logo to customize the appearance of the payment page. If you create several themes, you can choose a theme when you create the payment link.\nPersonalize a p\u00e1gina de pagamento\nVoc\u00ea pode personalizar a p\u00e1gina de pagamento hospedada pela Adyen com sua marca e incluir um link para seus Termos e Condi\u00e7\u00f5es. Seu usu\u00e1rio Admin tem acesso para configurar a p\u00e1gina de pagamento.\n\nSe um usu\u00e1rio diferente da \u00e1rea do cliente precisar de acesso para configurar a p\u00e1gina de pagamento, pe\u00e7a ao seu usu\u00e1rio Admin para atribuir a fun\u00e7\u00e3o Pay by Link Settings. Seu usu\u00e1rio Admin pode configurar a p\u00e1gina, mas ele precisa ter a mesma fun\u00e7\u00e3o atribu\u00edda a ele antes de poder atribu\u00ed-la a outros. Se o seu usu\u00e1rio Admin n\u00e3o tiver essa fun\u00e7\u00e3o, entre em contato com nossa Support Team.\n\nPara personalizar a p\u00e1gina de pagamento:\n\nFa\u00e7a login na sua  Customer Area.\nSelecione Settings &gt; Pay by Link.\nSelecione Appearance.\nInsira o nome da sua empresa, loja ou marca, fa\u00e7a upload do logotipo da marca e adicione um link para seus Termos e Condi\u00e7\u00f5es.\nOpcionalmente, altere a cor de fundo e carregue uma imagem de fundo.\nSelecione Save.\n\nVoc\u00ea receber\u00e1 uma confirma\u00e7\u00e3o de que o formul\u00e1rio de pagamento foi atualizado.\nCreate a payment link with a specific theme\nAfter the theme has been created, you see a Theme ID on the Customer Area page for that theme. To use the theme for a new payment link, include the themeId in your POST \/paymentLinks request.\nHere is an example of how you can create a payment link with a theme:\n\n    \n\nLanguage and localization\nThe default language of the payment page is the language of the shopper's browser locale. To change the language of payment page, send the shopperLocale parameter in your POST \/paymentLinks request.\nPay by Link supports the following languages:\n\n\n\nLanguage\nshopperLocale\n\n\n\n\nArabic - International\nar\n\n\nChinese - Simplified\nzh-CN\n\n\nChinese - Traditional\nzh-TW\n\n\nCroatian\nhr-HR\n\n\nCzech\ncs-CZ\n\n\nDanish\nda-DK\n\n\nDutch\nnl-NL\n\n\nEnglish - US\nen-US\n\n\nFinnish\nfi-FI\n\n\nFrench\nfr-FR\n\n\nGerman\nde-DE\n\n\nGreek\nel-GR\n\n\nHungarian\nhu-HU\n\n\nItalian\nit-IT\n\n\nJapanese\nja-JP\n\n\nKorean\nko-KR\n\n\nNorwegian\nno-NO\n\n\nPolish\npl-PL\n\n\nPortuguese - Brazil\npt-BR\n\n\nPortuguese - Portugal\npt-PT\n\n\nRomanian\nro-RO\n\n\nRussian\nru-RU\n\n\nSlovak\nsk-SK\n\n\nSlovenian\nsl-SI\n\n\nSpanish\nes-ES\n\n\nSwedish\nsv-SE\n\n\n\nTest and go live\nBefore going live, use our list of test cards and other payment methods to\u00a0test your integration. We recommend testing each payment method that you intend to offer to your shoppers.\nYou can check the test payments in your\u00a0Customer Area, under Transactions &gt;\u00a0Payments.\nWhen you are ready to go live, you need to:\n\nApply for a live account.\nConfigure your live account.\nSubmit a request to add payment methods in your live Customer Area .\nSwitch from test to our live endpoints.\nAdd your terms and conditions to your live Customer Area.\n\nSee also\n\nPayment methods\nTokenization\nWebhooks\n","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Omnichannel","lvl2":"Pay by Link","lvl3":"Create payment links","lvl4":"Pay by Link through the API"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/unified-commerce","lvl2":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/pay-by-link","lvl3":"https:\/\/docs.adyen.com\/pt\/unified-commerce\/pay-by-link\/create-payment-links","lvl4":"\/pt\/unified-commerce\/pay-by-link\/create-payment-links\/api"},"levels":5,"category":"Omnichannel","category_color":"green","tags":["through"]},"articleFiles":{"0371471375.js":"<p alt=\"\">0371471375.js<\/p>","2377399260.js":"<p alt=\"\">2377399260.js<\/p>","4108930833.js":"<p alt=\"\">4108930833.js<\/p>","5066774515.js":"<p alt=\"\">5066774515.js<\/p>","5320723570.js":"<p alt=\"\">5320723570.js<\/p>","5874059251.js":"<p alt=\"\">5874059251.js<\/p>","6665959806.js":"<p alt=\"\">6665959806.js<\/p>","7220434177.js":"<p alt=\"\">7220434177.js<\/p>","8248546319.js":"<p alt=\"\">8248546319.js<\/p>","9121913806.js":"<p alt=\"\">9121913806.js<\/p>","9469403872.js":"<p alt=\"\">9469403872.js<\/p>","paymentLinks-request.js":"<p alt=\"\">paymentLinks-request.js<\/p>"}}
