{"title":"Forward payment details","category":"default","creationDate":1677492840,"content":"<p>You can forward payment details that you stored with Adyen to a <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary\/#pci-compliance\">PCI compliant<\/a> third party, like a payment service provider (PSP). We support forwarding card details, and network tokens.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements, limitations, and preparations.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">An <a href=\"\/pt\/online-payments\/build-your-integration\/\">online payments integration<\/a> that uses Checkout API v70 or later.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/development-resources\/api-credentials\/roles\/\">API credential roles<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Make sure that you have the following role(s): <ul><li markdown=\"1\"><strong>Checkout webservice role<\/strong><\/li> <li markdown=\"1\"><strong>Merchant Recurring role<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/pt\/development-resources\/webhooks\">Webhooks<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Subscribe to the <a href=\"\/pt\/development-resources\/webhooks\/webhook-types\/#other-webhooks\"><strong>Recurring tokens life cycle events<\/strong> webhook<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">To forward network tokens, you must <a href=\"\/pt\/online-payments\/tokenization\/create-tokens\">create a token<\/a> with Adyen for the same payment details. This is to ensure that Adyen can forward the payment details by falling back to the Adyen token in case we cannot find a network token.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin: <ul><li markdown=\"1\"><a href=\"\/pt\/online-payments\/tokenization\/create-tokens\">Create tokens<\/a> with Adyen.<\/li><li markdown=\"1\">If you want to forward network tokens, <a href=\"\/pt\/online-payments\/network-tokenization\">implement network tokenization<\/a>.<\/li><li markdown=\"1\">Contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to enable forwarding card details or network tokens. <\/li><li markdown=\"1\">Make sure that your <a href=\"\/pt\/development-resources\/live-endpoints\">live endpoint<\/a> region matches your Adyen token vault storage region. If you are not sure about the region where your tokens are stored, contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a>.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\n<ol>\n<li>You make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> request, including placeholders for the payment details you want to forward and the destination.<\/li>\n<li>Adyen replaces the placeholders with the payment details and makes a request to the third party API on your behalf to forward the payment details.<\/li>\n<li>Adyen receives a response from the third party.<\/li>\n<li>You receive <a href=\"#handle-the-result\">a response from Adyen<\/a> that contains the third party response as a string.<\/li>\n<\/ol>\n<p><img alt=\"\" src=\"\/user\/pages\/docs\/02.online-payments\/20.tokenization\/05.forward-payment-details\/forward-api.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/p>\n<p>You can forward <a href=\"#card-details\">card details<\/a> or <a href=\"#network-tokens\">network tokens<\/a>.<\/p>\n<h2 id=\"card-details\">Forward card details<\/h2>\n<p>We support the following flows to forward card details:<\/p>\n<ul>\n<li><strong>Forward a token<\/strong>: Forward the card details using a token, to share the stored payment details from the Adyen Vault with a third party.<\/li>\n<li><strong>Forward a token, with <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#card-security-code-cvc-cvv-cid\">CVC<\/a><\/strong>: Forward the card details using a token and the card CVC, to share the stored payment details from the Adyen Vault with a third party,<\/li>\n<li><strong>Forward non-tokenized card details<\/strong>: Forward the card details (encrypted or unencrypted) directly to a third party to let the third party tokenize the card details. Optionally, you can choose to <a href=\"\/pt\/get-started-with-adyen\/adyen-glossary#tokenization\">tokenize<\/a> the card with Adyen using the same request.<\/li>\n<\/ul>\n<p>To forward card details:<\/p>\n<ol>\n<li>You make a <a href=\"#request-to-adyen-card\">request to Adyen<\/a> including the payment details that you want to forward to the third party.<\/li>\n<li><a href=\"#request-to-third-party-card\">Adyen makes a request to the third party<\/a> that contains the payment details.<\/li>\n<li><a href=\"#third-party-response-card\">Third party responds to Adyen<\/a>, and we forward this response to you.<\/li>\n<\/ol>\n<h3 id=\"request-to-adyen-card\">Make a forward request to Adyen<\/h3>\n<p>To forward the payment details you store with Adyen to a third party, inform Adyen about the payment details that you want to forward and the destination. Adyen uses the information in your request to make a request to the third party on your behalf.<\/p>\n<p>From your server, make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> request, specifying:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter name<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>merchantAccount<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your merchant account name.<\/td>\n<\/tr>\n<tr>\n<td><code>shopperReference<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your unique reference for the shopper.<\/td>\n<\/tr>\n<tr>\n<td><code>storedPaymentMethodId<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td><strong>Use case<\/strong>: Include when you are forwarding a token that you have already stored with Adyen. Skip this when forwarding non-tokenized card details. <br><br> The unique identifier for the token. This is the <code>storedPaymentMethodId<\/code> you received in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Tokenization-webhooks\/latest\/post\/recurring.token.created\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">recurring.token.created<\/a> webhook when you <a href=\"\/pt\/online-payments\/tokenization\/create-tokens\">created the token<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>paymentMethod<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td><strong>Use cases<\/strong>: <ul><li markdown=\"1\">When forwarding non-tokenized card details, you can include the following fields. The required fields depend on the third party that is receiving the card details: <ul><li markdown=\"1\"><code>holderName<\/code><\/li> <li markdown=\"1\"><code>number<\/code> \/ <code>encryptedCardNumber<\/code><\/li> <li markdown=\"1\"><code>expiryMonth<\/code> \/ <code>encryptedExpiryMonth<\/code><\/li> <li markdown=\"1\"><code>expiryYear<\/code> \/ <code>encryptedExpiryYear<\/code><\/li> <li markdown=\"1\"><code>cvc<\/code> \/ <code>encryptedSecurityCode<\/code><\/li> <\/ul> <\/li><li markdown=\"1\">When forwarding a token with CVC, you can include the CVC. You must also include the <code>{{securityCode}}<\/code> <a href=\"#placeholders\">placeholder<\/a> in the <code>request.body<\/code>.<\/li><\/ul> <br> The object that contains the encrypted or unencrypted (if you are fully <a href=\"\/pt\/development-resources\/pci-dss-compliance-guide\">PCI compliant<\/a>) details.<\/td>\n<\/tr>\n<tr>\n<td><code>merchantReference<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td>Your reference to uniquely identify the transaction.<\/td>\n<\/tr>\n<tr>\n<td><code>baseUrl<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The base URL of the third party API, where Adyen will send the request to forward the payment details.<\/td>\n<\/tr>\n<tr>\n<td><code>request.httpMethod<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The HTTP method to use for the request to the third party, for example, <strong>post<\/strong>, <strong>patch<\/strong>, or <strong>put<\/strong>. <div class=\"sc-notice info\"><div> Use the documentation from the third party to learn about the HTTP method you must use. <\/div><\/div><\/td>\n<\/tr>\n<tr>\n<td><code>request.urlSuffix<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The suffix to append to the <code>baseUrl<\/code> to construct the destination URL for the request to the third party. This is usually the endpoint name for the request, for example, <strong>\/payments<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>request.credentials<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your credentials for the third party.<\/td>\n<\/tr>\n<tr>\n<td><code>request.headers<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The request headers to include in the request to the third party, for example, <strong>externalparty-version<\/strong>, or <strong>authorization<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>request.body<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The request body that you want Adyen to forward to the third party on your behalf, in string format.  <br\/>  Include key value pairs to specify the payment details, and use <a href=\"#placeholders\">placeholders<\/a> for the values. Adyen replaces the placeholders with the payment details when making the request to the third party. <div class=\"sc-notice info\"><div> Use the documentation from the third party to learn about the parameters you need to include in the request body. <\/div><\/div><\/td>\n<\/tr>\n<tr>\n<td><code>options.tokenize<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td>When you are forwarding non-tokenized card details, set to <strong>true<\/strong> to store the payment details with Adyen using the same request. When set to <strong>true<\/strong> you must provide the holder name, number, expiry month, and the expiry year of the card in the <code>paymentMethod<\/code> object.<\/td>\n<\/tr>\n<tr>\n<td><code>options.dryRun<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td>Set to <strong>true<\/strong> to receive the request body that is populated to forward to the third party in the response. Any sensitive information will be masked in the response you receive. This functionality is only available in the test environment to help you set up your integration, defaults to <strong>false<\/strong>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img alt=\"This is the required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for all transactions. <br><img alt=\"This is the conditionally required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for particular setups, or issuers and card schemes. <br><img alt=\"This is the recommended icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/> Recommended for all transactions, but not required.<\/p>\n<p>Depending on the forwarding flow you are using, what to include in your request changes. The examples below show how to construct your request for each flow.<\/p>\n\n<div id=\"tabJSl39\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Forward a token&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example request to forward a token&#039;\\&quot; :id=\\&quot;&#039;example-token-forward-request-to-adyen&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v71\\\\\\\/forward \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;: \\\\&amp;quot;M5N7TQ4TG5PFWR50\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;baseUrl\\\\&amp;quot;: \\\\&amp;quot;http:\\\\\\\/\\\\\\\/thirdparty.example.com\\\\&amp;quot;,\\\\n  \\\\&amp;quot;request\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;httpMethod\\\\&amp;quot;: \\\\&amp;quot;post\\\\&amp;quot;,\\\\n     \\\\&amp;quot;urlSuffix\\\\&amp;quot;: \\\\&amp;quot;\\\\\\\/payments\\\\&amp;quot;,\\\\n     \\\\&amp;quot;credentials\\\\&amp;quot;: \\\\&amp;quot;YOUR_CREDENTIALS_FOR_THE_THIRD_PARTY\\\\&amp;quot;,\\\\n     \\\\&amp;quot;headers\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;Authorization\\\\&amp;quot;: \\\\&amp;quot;Basic {\\\\u200b{credentials}}\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;body\\\\&amp;quot;: \\\\&amp;quot;{\\\\n        \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n            \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n            \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n        },\\\\n        \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n           \\\\&amp;quot;creditCard\\\\&amp;quot;: {\\\\n                \\\\&amp;quot;holderName\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{holderName}}\\\\&amp;quot;,\\\\n                \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{number}}\\\\&amp;quot;,\\\\n                \\\\&amp;quot;expiryMonth\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{expiryMonth}}\\\\&amp;quot;,\\\\n                \\\\&amp;quot;expiryYear\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{expiryYear}}\\\\&amp;quot;\\\\n           }\\\\n        }\\\\n     }\\\\&amp;quot;\\\\n  }\\\\n}&#039;&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;forward_a_token_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Forward a token, with CVC&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example request to forward a token, with CVC&#039;\\&quot; :id=\\&quot;&#039;example-token-with-cvc-forward-request-to-adyen&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v71\\\\\\\/forward \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;storedPaymentMethodId\\\\&amp;quot;: \\\\&amp;quot;M5N7TQ4TG5PFWR50\\\\&amp;quot;,\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;cvc\\\\&amp;quot;: \\\\&amp;quot;737\\\\&amp;quot;,\\\\n  \\\\&amp;quot;baseUrl\\\\&amp;quot;: \\\\&amp;quot;http:\\\\\\\/\\\\\\\/thirdparty.example.com\\\\&amp;quot;,\\\\n  \\\\&amp;quot;request\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;httpMethod\\\\&amp;quot;: \\\\&amp;quot;post\\\\&amp;quot;,\\\\n     \\\\&amp;quot;urlSuffix\\\\&amp;quot;: \\\\&amp;quot;\\\\\\\/payments\\\\&amp;quot;,\\\\n     \\\\&amp;quot;credentials\\\\&amp;quot;: \\\\&amp;quot;YOUR_CREDENTIALS_FOR_THE_THIRD_PARTY\\\\&amp;quot;,\\\\n     \\\\&amp;quot;headers\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;Authorization\\\\&amp;quot;: \\\\&amp;quot;Basic {\\\\u200b{credentials}}\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;body\\\\&amp;quot;: \\\\&amp;quot;{\\\\n        \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n            \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n            \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n        },\\\\n        \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n           \\\\&amp;quot;creditCard\\\\&amp;quot;: {\\\\n                \\\\&amp;quot;holderName\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{holderName}}\\\\&amp;quot;,\\\\n                \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{number}}\\\\&amp;quot;,\\\\n                \\\\&amp;quot;expiryMonth\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{expiryMonth}}\\\\&amp;quot;,\\\\n                \\\\&amp;quot;expiryYear\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{expiryYear}}\\\\&amp;quot;\\\\n                \\\\&amp;quot;cvc\\\\&amp;quot;: \\\\&amp;quot;{\\\\u200b{securityCode}}\\\\&amp;quot;\\\\n           }\\\\n        }\\\\n     }\\\\&amp;quot;\\\\n  }\\\\n}&#039;&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;forward_a_token,_with_cvc_1_2&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Forward card details&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example request to forward card details&#039;\\&quot; :id=\\&quot;&#039;example-card-forward-request-to-adyen&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v71\\\\\\\/forward \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;YOUR_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;shopperReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_SHOPPER_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantReference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n     \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;4111111111111111\\\\&amp;quot;,\\\\n     \\\\&amp;quot;expiryMonth\\\\&amp;quot;: \\\\&amp;quot;03\\\\&amp;quot;,\\\\n     \\\\&amp;quot;expiryYear\\\\&amp;quot;: \\\\&amp;quot;2030\\\\&amp;quot;,\\\\n     \\\\&amp;quot;cvc\\\\&amp;quot;: \\\\&amp;quot;737\\\\&amp;quot;,\\\\n     \\\\&amp;quot;holderName\\\\&amp;quot;: \\\\&amp;quot;S. Hopper\\\\&amp;quot;\\\\n  }\\\\n  \\\\&amp;quot;baseUrl\\\\&amp;quot;: \\\\&amp;quot;http:\\\\\\\/\\\\\\\/thirdparty.example.com\\\\&amp;quot;,\\\\n  \\\\&amp;quot;request\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;httpMethod\\\\&amp;quot;: \\\\&amp;quot;post\\\\&amp;quot;,\\\\n     \\\\&amp;quot;urlSuffix\\\\&amp;quot;: \\\\&amp;quot;\\\\\\\/payments\\\\&amp;quot;,\\\\n     \\\\&amp;quot;credentials\\\\&amp;quot;: \\\\&amp;quot;YOUR_CREDENTIALS_FOR_THE_THIRD_PARTY\\\\&amp;quot;,\\\\n     \\\\&amp;quot;headers\\\\&amp;quot;: {\\\\n        \\\\&amp;quot;Authorization\\\\&amp;quot;: \\\\&amp;quot;Basic {\\\\u200b{credentials}}\\\\&amp;quot;\\\\n     },\\\\n     \\\\&amp;quot;body\\\\&amp;quot;: \\\\&amp;quot;{\\\\n        \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n            \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n            \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n        }\\\\n     }\\\\&amp;quot;\\\\n  }\\\\n}&#039;&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;forward_card_details_2_3&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h3 id=\"request-to-third-party-card\">Adyen makes a request to the third party<\/h3>\n<p>We make a request to the third party on your behalf. To construct the endpoint URL, we use the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward#request-baseUrl\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">baseUrl<\/a> and  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward#request-request-urlSuffix\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">request.urlSuffix<\/a> you provided in your forwarding request. The code sample below shows the request Adyen would make to the third party for forwarding a token, without CVC.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example request from Adyen to third party'\" :id=\"'example-adyen-request-to-forward-tokens'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/thirdparty.example.com\\\/payments \\\\\\n-H \\&quot;Basic merchant:pass\\&quot; \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n   \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 100,\\n      \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n   },\\n  \\&quot;paymentMethod\\&quot;: {\\n     \\&quot;creditCard\\&quot;: {\\n        \\&quot;holderName\\&quot;: \\&quot;S. Hopper\\&quot;,\\n        \\&quot;number\\&quot;: \\&quot;4111111111111111\\&quot;,\\n        \\&quot;expiryMonth\\&quot;: \\&quot;12\\&quot;,\\n        \\&quot;expiryYear\\&quot;: \\&quot;2025\\&quot;\\n     }\\n  }\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"third-party-response-card\">Third party responds to Adyen<\/h3>\n<p>We receive a response from the third party that contains the outcome of the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> request. The response structure and content can differ depending on the third party.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example response from third party to Adyen'\" :id=\"'example-response-from-third-party-to-adyen'\" :code-data='[{\"language\":\"bash\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"data\\\": {\\n     \\\"tokenizeCreditCard\\\": {\\n        \\\"paymentMethod\\\": {\\n           \\\"id\\\": \\\"PAYMENT_METHOD_ID\\\"\\n        }\\n     }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"network-tokens\">Forward network tokens<\/h2>\n<p>To forward stored network tokens:<\/p>\n<ol>\n<li>You make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> request, including the <code>options.networkToken<\/code> parameter to <a href=\"#request-to-adyen-network\">forward a network token<\/a>.<\/li>\n<li>In your request, you specify <a href=\"#build-logic-for-adyen-token-fallback\">a fallback logic<\/a> to ensure that Adyen can forward the payment details using the token you created with Adyen instead of the network token in case it cannot be found.<\/li>\n<li><a href=\"#request-to-third-party-network\">Adyen makes a request to the third party<\/a> that contains the payment details.<\/li>\n<li><a href=\"#third-party-response-network\">Third party responds to Adyen<\/a>, and we forward this response to you.<\/li>\n<\/ol>\n<div class=\"sc-notice note\"><div>\n<p>When building your logic for network tokens, keep in mind that you can not forward a network token together with card details that are not yet tokenized by Adyen.<\/p>\n<\/div><\/div>\n<h3 id=\"request-to-adyen-network\">Make a request to Adyen<\/h3>\n<p>To forward the network tokens you store with Adyen to a third party, inform Adyen about the network token that you want to forward and the destination. Adyen uses the information in your request to make a request to the third party on your behalf.<\/p>\n<p>From your server, make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> request, specifying:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter name<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>merchantAccount<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your merchant account name.<\/td>\n<\/tr>\n<tr>\n<td><code>shopperReference<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your unique reference for the shopper.<\/td>\n<\/tr>\n<tr>\n<td><code>storedPaymentMethodId<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td><strong>Use case<\/strong>: Include when you are forwarding a token that you have already stored with Adyen. Skip this when forwarding non-tokenized card details. <br><br> The unique identifier for the token. This is the <code>storedPaymentMethodId<\/code> you received in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Tokenization-webhooks\/latest\/post\/recurring.token.created\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">recurring.token.created<\/a> webhook when you <a href=\"\/pt\/online-payments\/tokenization\/create-tokens\">created the token<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>paymentMethod<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td><strong>Use cases<\/strong>: <ul><li markdown=\"1\">When forwarding non-tokenized card details, you can include the following fields. The required fields depend on the third party that is receiving the card details: <ul><li markdown=\"1\"><code>holderName<\/code><\/li> <li markdown=\"1\"><code>number<\/code> \/ <code>encryptedCardNumber<\/code><\/li> <li markdown=\"1\"><code>expiryMonth<\/code> \/ <code>encryptedExpiryMonth<\/code><\/li> <li markdown=\"1\"><code>expiryYear<\/code> \/ <code>encryptedExpiryYear<\/code><\/li> <li markdown=\"1\"><code>cvc<\/code> \/ <code>encryptedSecurityCode<\/code><\/li> <\/ul> <\/li><li markdown=\"1\">When forwarding a token with CVC, you can include the CVC. You must also include the <code>{{securityCode}}<\/code> <a href=\"#placeholders\">placeholder<\/a> in the <code>request.body<\/code>.<\/li><\/ul> <br> The object that contains the encrypted or unencrypted (if you are fully <a href=\"\/pt\/development-resources\/pci-dss-compliance-guide\">PCI compliant<\/a>) details.<\/td>\n<\/tr>\n<tr>\n<td><code>merchantReference<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td>Your reference to uniquely identify the transaction.<\/td>\n<\/tr>\n<tr>\n<td><code>baseUrl<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The base URL of the third party API, where Adyen will send the request to forward the payment details.<\/td>\n<\/tr>\n<tr>\n<td><code>request.httpMethod<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The HTTP method to use for the request to the third party, for example, <strong>post<\/strong>, <strong>patch<\/strong>, or <strong>put<\/strong>. <div class=\"sc-notice info\"><div> Use the documentation from the third party to learn about the HTTP method you must use. <\/div><\/div><\/td>\n<\/tr>\n<tr>\n<td><code>request.urlSuffix<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The suffix to append to the <code>baseUrl<\/code> to construct the destination URL for the request to the third party. This is usually the endpoint name for the request, for example, <strong>\/payments<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>request.credentials<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>Your credentials for the third party.<\/td>\n<\/tr>\n<tr>\n<td><code>request.headers<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/required\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The request headers to include in the request to the third party, for example, <strong>externalparty-version<\/strong>, or <strong>authorization<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>request.body<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td>The request body that you want Adyen to forward to the third party on your behalf, in string format.  <br\/> In the body, include: <ul><li markdown=\"1\">A <a href=\"#conditional-placeholders\">condition<\/a> that checks if the network token exists, and informs Adyen of which fields to send depending on the outcome. You must inform Adyen to forward card details in case the network token cannot be found. Use <a href=\"https:\/\/github.com\/spullara\/mustache.java\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Mustache.java<\/a> syntax for conditions.<\/li><li markdown=\"1\">Key value pairs that use <a href=\"#placeholders\">placeholders<\/a> for the values that specify the payment details to be forwarded. Adyen replaces the placeholders with the payment details when making the request to the third party.  <div class=\"sc-notice info\"><div> Use the documentation from the third party to learn about the parameters you need to include in the request body. <\/div><\/div><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>options.networkToken<\/code><\/td>\n<td style=\"text-align: center;\"><span class=\"hint--bottom\" data-hint=\"Conditionally required\" markdown=\"1\"><img style=\"width: 25px;\" alt=\"Conditionally required\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/conditionally-required\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/><\/span><\/td>\n<td><strong>Use case<\/strong>: Required to forward a network token. <br> The object that enables forwarding network tokens, including: <ul><li markdown=\"1\"><code>useNetworkToken<\/code>: Set to <strong>true<\/strong> to enable forwarding network tokens.<\/li><li markdown=\"1\"><code>includeCryptogram<\/code>: Set to <strong>true<\/strong> to enable forwarding network token cryptograms.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>options.dryRun<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td>Set to <strong>true<\/strong> to receive the request body that is populated to forward to the third party in the response. Any sensitive information will be masked in the response you receive. This functionality is only available in the test environment to help you set up your integration, defaults to <strong>false<\/strong>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><img alt=\"This is the required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for all transactions. <br><img alt=\"This is the conditionally required icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/conditionally-required.svg?decoding=auto&amp;fetchpriority=auto\" \/> Required for particular setups, or issuers and card schemes. <br><img alt=\"This is the recommended icon.\" src=\"\/user\/pages\/reuse\/image-library\/01.icons\/requirements-legend\/recommended.svg?decoding=auto&amp;fetchpriority=auto\" \/> Recommended for all transactions, but not required.<\/p>\n<h3 id=\"conditional-placeholders\">Build logic for Adyen token fallback<\/h3>\n<p>For requests that include network tokens, you must add a conditional statement in your <a href=\"#request-to-adyen-network\"><code>\/forward<\/code> request to Adyen<\/a>.<\/p>\n<p>In your condition, you must build a logic that informs Adyen to check if the network token exists, and determine the fields to forward to the third party depending on the outcome. Your condition must introduce a fallback to forward the token you created for the same payment details with Adyen in case the network token cannot be found.<\/p>\n<p>The following table indicates the fields that must be forwarded to third party depending on different availability scenarios.<\/p>\n<table>\n<thead>\n<tr>\n<th><div style=\"width:80px\"><\/div><\/th>\n<th style=\"text-align: center;\">Network token<\/th>\n<th style=\"text-align: center;\"><code>networkTxReference<\/code><\/th>\n<th style=\"text-align: center;\">Cryptogram<\/th>\n<th>Fields to forward to the third party<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Scenario 1<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Forward the network token, <code>networkTxReference<\/code>, and the network token cryptogram.<\/td>\n<\/tr>\n<tr>\n<td>Scenario 2<\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td>Forward the network token.<\/td>\n<\/tr>\n<tr>\n<td>Scenario 3<\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td style=\"text-align: center;\"><img title=\"-x-\" alt=\"-x-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/x.png\" \/><\/td>\n<td>Fallback to the Adyen token.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example request to forward a network token'\" :id=\"'example-nt-forward-request-to-adyen'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v71\\\/forward \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperReference\\&quot;: \\&quot;YOUR_SHOPPER_REFERENCE\\&quot;,\\n  \\&quot;storedPaymentMethodId\\&quot;: \\&quot;M5N7TQ4TG5PFWR50\\&quot;,\\n  \\&quot;merchantReference\\&quot;: \\&quot;YOUR_UNIQUE_REFERENCE\\&quot;,\\n  \\&quot;baseUrl\\&quot;: \\&quot;http:\\\/\\\/thirdparty.example.com\\&quot;,\\n   \\&quot;options\\&quot; : {\\n      \\&quot;networkToken\\&quot;:{\\n         \\&quot;useNetworkToken\\&quot;:true,\\n         \\&quot;includeCryptogram\\&quot;:true\\n      }\\n   },\\n  \\&quot;request\\&quot;: {\\n     \\&quot;httpMethod\\&quot;: \\&quot;post\\&quot;,\\n     \\&quot;urlSuffix\\&quot;: \\&quot;\\\/payments\\&quot;,\\n     \\&quot;credentials\\&quot;: \\&quot;YOUR_CREDENTIALS_FOR_THE_THIRD_PARTY\\&quot;,\\n     \\&quot;headers\\&quot;: {\\n        \\&quot;Authorization\\&quot;: \\&quot;Basic {\\u200b{credentials}}\\&quot;\\n     },\\n     \\&quot;body\\&quot;: \\&quot;{\\n        \\&quot;amount\\&quot;: {\\n           \\&quot;value\\&quot;: 100,\\n           \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n        }\\n        {\\u200b{\\u200b#networkTxReference}},\\n            \\&quot;reference\\&quot;: \\&quot;{\\u200b{\\u200bnetworkTxReference}}\\&quot;\\n        {\\u200b{\\\/networkTxReference}}\\n        {\\u200b{\\u200b#networkTokenExists}},\\n            \\&quot;networkToken\\&quot;: {\\n                \\&quot;number\\&quot;: \\&quot;{\\u200b{tokenNumber}}\\&quot;,\\n                \\&quot;expiryMonth\\&quot;: \\&quot;{\\u200b{tokenExpiryMonth}}\\&quot;,\\n                \\&quot;expiryYear\\&quot;: \\&quot;{\\u200b{tokenExpiryYear}}\\&quot;\\n                {\\u200b{\\u200b#cryptogram}}\\&quot;,\\n                    \\&quot;eci\\&quot;: \\&quot;{\\u200b{ecommerceIndicator}}\\&quot;,\\n                    \\&quot;cryptogram\\&quot;: \\&quot;{\\u200b{cryptogram}}\\&quot;\\n                {\\u200b{\\\/cryptogram}}\\&quot;\\n            }\\n        {\\u200b{\\\/networkTokenExists}}\\n        {\\u200b{^networkTokenExists}},\\n            \\&quot;paymentMethod\\&quot;: {\\n                \\&quot;holderName\\&quot;: \\&quot;{\\u200b{holderName}}\\&quot;,\\n                \\&quot;number\\&quot;: \\&quot;{\\u200b{number}}\\&quot;,\\n                \\&quot;expiryMonth\\&quot;: \\&quot;{\\u200b{expiryMonth}}\\&quot;,\\n                \\&quot;expiryYear\\&quot;: \\&quot;{\\u200b{expiryYear}}\\&quot;\\n            }\\n        {\\u200b{\\\/networkTokenExists}}\\n     }\\&quot;\\n  }\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h3 id=\"request-to-third-party-network\">Adyen makes a request to the third party<\/h3>\n<p>We make a request to the third party on your behalf. To construct the endpoint URL, we use the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward#request-baseUrl\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">baseUrl<\/a> and  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward#request-request-urlSuffix\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">request.urlSuffix<\/a> you provided in your forwarding request.<\/p>\n<p>We use the <a href=\"#conditional-placeholders\">condition<\/a> you set in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> field to determine which details to forward to the third party.<\/p>\n\n<div id=\"tabNYou0\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Scenario 1&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;The network token, &lt;code&gt;networkTxReference&lt;\\\/code&gt;, and the cryptogram are found. Adyen forwards all details to the third party.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example request from Adyen to third party including all details&#039;\\&quot; :id=\\&quot;&#039;example-adyen-request-to-forward-all-details&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/thirdparty.example.com\\\\\\\/payments \\\\\\\\\\\\n-H \\\\&amp;quot;Basic merchant:pass\\\\&amp;quot; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;5252520200034065\\\\&amp;quot;,\\\\n   \\\\&amp;quot;networkToken\\\\&amp;quot; : {\\\\n      \\\\&amp;quot;expiryMonth\\\\&amp;quot; : \\\\&amp;quot;12\\\\&amp;quot;,\\\\n      \\\\&amp;quot;expiryYear\\\\&amp;quot; : \\\\&amp;quot;2024\\\\&amp;quot;,\\\\n      \\\\&amp;quot;number\\\\&amp;quot; : \\\\&amp;quot;4111111111111111\\\\&amp;quot;,\\\\n      \\\\&amp;quot;eci\\\\&amp;quot;:\\\\&amp;quot;02\\\\&amp;quot;,\\\\n      \\\\&amp;quot;cryptogram\\\\&amp;quot;:\\\\&amp;quot;123\\\\&amp;quot;\\\\n   }\\\\n}&#039;&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;scenario_1_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Scenario 2&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;The network token is found, but a &lt;code&gt;networkTxReference&lt;\\\/code&gt; is not found. Adyen only forwards the network token to the third party.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example request from Adyen to third party including a network token&#039;\\&quot; :id=\\&quot;&#039;example-adyen-request-to-forward-network-token&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/thirdparty.example.com\\\\\\\/payments \\\\\\\\\\\\n-H \\\\&amp;quot;Basic merchant:pass\\\\&amp;quot; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n   },\\\\n   \\\\&amp;quot;networkToken\\\\&amp;quot; : {\\\\n      \\\\&amp;quot;expiryMonth\\\\&amp;quot; : \\\\&amp;quot;12\\\\&amp;quot;,\\\\n      \\\\&amp;quot;expiryYear\\\\&amp;quot; : \\\\&amp;quot;2024\\\\&amp;quot;,\\\\n      \\\\&amp;quot;number\\\\&amp;quot; : \\\\&amp;quot;4111111111111111\\\\&amp;quot;,\\\\n   }\\\\n}&#039;&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;scenario_2_1_2&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Scenario 3&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;A network token is not found. Adyen uses the card details that you stored with &lt;a href=\\&quot;\\\/pt\\\/online-payments\\\/tokenization\\&quot;&gt;Adyen tokenization&lt;\\\/a&gt; to forward payment details to the third party.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Example request from Adyen to third party including card details&#039;\\&quot; :id=\\&quot;&#039;example-adyen-request-card-fallback&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/thirdparty.example.com\\\\\\\/payments \\\\\\\\\\\\n-H \\\\&amp;quot;Basic merchant:pass\\\\&amp;quot; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;value\\\\&amp;quot;: 100,\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;\\\\n   },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;5252520200034065\\\\&amp;quot;,\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;holderName\\\\&amp;quot;: \\\\&amp;quot;S. Hopper\\\\&amp;quot;,\\\\n     \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;4111111111111111\\\\&amp;quot;,\\\\n     \\\\&amp;quot;expiryMonth\\\\&amp;quot;: \\\\&amp;quot;12\\\\&amp;quot;,\\\\n     \\\\&amp;quot;expiryYear\\\\&amp;quot;: \\\\&amp;quot;2025\\\\&amp;quot;\\\\n  }\\\\n}&#039;&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;scenario_3_2_3&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h3 id=\"third-party-response-network\">Third party responds to Adyen<\/h3>\n<p>We receive a response from the third party, that contains the outcome of the forward request. The response structure and content can differ, depending on the third party.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example response from third party to Adyen'\" :id=\"'example-response-from-third-party-to-adyen'\" :code-data='[{\"language\":\"bash\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"data\\\": {\\n     \\\"tokenizeCreditCard\\\": {\\n        \\\"paymentMethod\\\": {\\n           \\\"id\\\": \\\"PAYMENT_METHOD_ID\\\"\\n        }\\n     }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2>Handle the result<\/h2>\n<p>You receive a response from Adyen that informs you of the outcome of your  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/forward\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/forward<\/a> request, for example:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example \/forward response from Adyen'\" :id=\"'example-adyen-response-for-forwarding-tokens'\" :code-data='[{\"language\":\"bash\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"storedPaymentMethodId\\\": \\\"M5N7TQ4TG5PFWR50\\\",\\n   \\\"pspReference\\\": \\\"XB7XNCQ8HXSKGK82\\\",\\n   \\\"merchantReference\\\": \\\"YOUR_REFERENCE\\\"\\n   \\\"response\\\": {\\n     \\\"status\\\": 200,\\n     \\\"headers\\\": {\\n        \\\"thirdparty-version\\\": \\\"2023-10-16\\\"\\n     },\\n     \\\"body\\\": \\\"{\\\\\\\"success\\\\\\\": \\\\\\\"ok\\\\\\\",\\\\\\\"data\\\\\\\": {\\\\\\\"tokenizeCreditCard\\\\\\\": {\\\\\\\"paymentMethod\\\\\\\": {\\\\\\\"id\\\\\\\": \\\\\\\"PAYMENT_METHOD_ID\\\\\\\"}}}}\\\"\\n   }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response contains:<\/p>\n<ul>\n<li><code>pspReference<\/code>: Our unique identifier for the transaction.<\/li>\n<li><code>merchantReference<\/code>: The unique reference for the transaction that you included in your request to forward payment details.<\/li>\n<li><code>storedPaymentMethodId<\/code>: The unique identifier for the stored payment details that were forwarded. This is the Adyen identifier.<br \/>\nThis field is not returned if you <a href=\"#card-details\">forward non-tokenized card details<\/a>, and set <code>options.tokenize<\/code> to <strong>false<\/strong>.<\/li>\n<li><code>response.status<\/code>: The <a href=\"\/pt\/development-resources\/response-handling\/\">HTTP status code<\/a> Adyen received from the third party.<\/li>\n<li><code>response.body<\/code>: The response that Adyen received from the third party. Adyen passes the response as a string without modifying it.<\/li>\n<\/ul>\n<h3>Errors<\/h3>\n<p>If Adyen's request to share the token fails, you will receive a response with <a href=\"\/pt\/development-resources\/response-handling\/\">HTTP status code<\/a> different from <strong>2XX<\/strong>. In this response, you get an <a href=\"\/pt\/development-resources\/error-codes\/\">error code and message<\/a> that help you diagnose and resolve the error.<\/p>\n<p>When you make a request to forward payment details, and an error occurs on the Adyen side, you will receive a response with <a href=\"\/pt\/development-resources\/response-handling#http-responses\">HTTP status code<\/a> different from <strong>2XX<\/strong>.<\/p>\n<p>If an error occurs on the third party side, you can receive:<\/p>\n<ul>\n<li><strong>502<\/strong>: Third party did not send a response to Adyen.<\/li>\n<li><strong>505<\/strong>: Third party experienced a time-out.<\/li>\n<\/ul>\n<p>Below is an example where the request fails, with status code <strong>422<\/strong> and error code <a href=\"\/pt\/development-resources\/error-codes\/#803-paymentdetail-not-found\">803<\/a>:<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Error details in API response'\" :id=\"'example-response-with-failed-token-forward'\" :code-data='[{\"language\":\"bash\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"status\\\": 422,\\n    \\\"errorCode\\\": \\\"803\\\",\\n    \\\"message\\\": \\\"PaymentDetail not found\\\",\\n    \\\"errorType\\\": \\\"validation\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2 id=\"placeholders\">Placeholder reference<\/h2>\n<p>Use the documentation from the third party to determine the parameters you must include in your <code>\/forward<\/code> request. You must send the parameters in key value pairs, where you use the keys specified by the third party, paired with the placeholder values that Adyen can replace with real values.<\/p>\n<p>The following is a list of placeholders that Adyen can map to real values and forward to a third party. The <strong>Use case(s)<\/strong> column specifies the placeholders that are relevant when forwarding card details and network tokens.<\/p>\n<table>\n<thead>\n<tr>\n<th>Placeholder<\/th>\n<th><div style=\"width:100px\">Use case(s)<\/div><\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>{{credentials}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The credentials to authenticate the API request.<\/td>\n<\/tr>\n<tr>\n<td><code>{{number}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The card number.<\/td>\n<\/tr>\n<tr>\n<td><code>{{expiryMonth}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>Expiry month of the card.<\/td>\n<\/tr>\n<tr>\n<td><code>{{expiryYear}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>Expiry year of the card.<\/td>\n<\/tr>\n<tr>\n<td><code>{{expiryYearYY}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>Expiry year of the card. Use this field if you want to send a two-digit value for the expiry year.<\/td>\n<\/tr>\n<tr>\n<td><code>{{securityCode}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The security code (CVC) of the card.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.street}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address street stored along with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.housenumberorname}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address house number\/name stored with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.postalcode}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address postcode\/ZIP code stored with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.stateorprovince}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address state\/province field stored with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.city}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address city stored with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.countrycode}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address country code stored with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{billingaddress.addressline3}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a>   <br> <a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The billing address additional line stored with the token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{holderName}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-card\">Card details<\/a><\/td>\n<td>The card holder's name.<\/td>\n<\/tr>\n<tr>\n<td><code>{{networkTxReference}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a>  <br> <a href=\"#request-to-adyen-card\">Card details<\/a><\/td>\n<td>The transaction identifier from card schemes that allows you to link the transaction to the original or previous one for recurring payments.<\/td>\n<\/tr>\n<tr>\n<td><code>{{transactionLinkId}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a>  <br> <a href=\"#request-to-adyen-card\">Card details<\/a><\/td>\n<td>The <a href=\"https:\/\/help.adyen.com\/updates\/mastercard-transaction-link-identifier-tlid\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Mastercard Transaction Link Identifier<\/a>. This identifier has the same purpose as the <code>{{networkTxReference}}<\/code>, but is used for Mastercard specifically. You can provide both identifiers in the same transaction, or provide one of them.<\/td>\n<\/tr>\n<tr>\n<td><code>{{tokenNumber}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The 16-digit alternative for the Primary Account Number (PAN).<\/td>\n<\/tr>\n<tr>\n<td><code>{{tokenExpiryMonth}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>Expiry month of the network token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{tokenExpiryYear}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>Expiry year of the network token.<\/td>\n<\/tr>\n<tr>\n<td><code>{{tokenExpiryYearYY}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>Expiry year of the network token. Use this field if you want to send a two-digit value for the expiry year.<\/td>\n<\/tr>\n<tr>\n<td><code>{{cryptogram}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The single-use key that enables to use the network token for a transaction.<\/td>\n<\/tr>\n<tr>\n<td><code>{{ecommerceIndicator}}<\/code><\/td>\n<td><a href=\"#request-to-adyen-network\">Network tokens<\/a><\/td>\n<td>The Electronic Commerce Indicator of the cryptogram, returned from the schemes.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>See also<\/h2>\n<ul>\n<li><a href=\"\/pt\/online-payments\/tokenization\/create-tokens\">Create tokens<\/a><\/li>\n<li><a href=\"\/pt\/online-payments\/tokenization\/managing-tokens\">Manage tokens<\/a><\/li>\n<li><a href=\"\/pt\/online-payments\/network-tokenization\">Network tokenization<\/a><\/li>\n<li><a href=\"\/pt\/payment-methods\/cards\">Cards<\/a><\/li>\n<\/ul>","url":"https:\/\/docs.adyen.com\/pt\/online-payments\/tokenization\/forward-payment-details","articleFields":{"description":"Forward stored payment details to use them with different payment service providers.","id":"39949035","type":"page","_expandable":{"operations":""},"status":"current","last_edit_on":"06-06-2025 15:30","feedback_component":true,"filters_component":false,"page_id":"c903573a-f193-4d8e-8c29-23e6c95cd734","decision_tree":"[]"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/online-payments\/tokenization\/forward-payment-details","title":"Forward payment details","content":"You can forward payment details that you stored with Adyen to a PCI compliant third party, like a payment service provider (PSP). We support forwarding card details, and network tokens.\nRequirements\nBefore you begin, take into account the following requirements, limitations, and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nAn online payments integration that uses Checkout API v70 or later.\n\n\nAPI credential roles\nMake sure that you have the following role(s): Checkout webservice role Merchant Recurring role\n\n\nWebhooks\nSubscribe to the Recurring tokens life cycle events webhook.\n\n\nLimitations\nTo forward network tokens, you must create a token with Adyen for the same payment details. This is to ensure that Adyen can forward the payment details by falling back to the Adyen token in case we cannot find a network token.\n\n\nSetup steps\nBefore you begin: Create tokens with Adyen.If you want to forward network tokens, implement network tokenization.Contact our Support Team to enable forwarding card details or network tokens. Make sure that your live endpoint region matches your Adyen token vault storage region. If you are not sure about the region where your tokens are stored, contact our Support Team.\n\n\n\nHow it works\n\nYou make a POST  \/forward request, including placeholders for the payment details you want to forward and the destination.\nAdyen replaces the placeholders with the payment details and makes a request to the third party API on your behalf to forward the payment details.\nAdyen receives a response from the third party.\nYou receive a response from Adyen that contains the third party response as a string.\n\n\nYou can forward card details or network tokens.\nForward card details\nWe support the following flows to forward card details:\n\nForward a token: Forward the card details using a token, to share the stored payment details from the Adyen Vault with a third party.\nForward a token, with CVC: Forward the card details using a token and the card CVC, to share the stored payment details from the Adyen Vault with a third party,\nForward non-tokenized card details: Forward the card details (encrypted or unencrypted) directly to a third party to let the third party tokenize the card details. Optionally, you can choose to tokenize the card with Adyen using the same request.\n\nTo forward card details:\n\nYou make a request to Adyen including the payment details that you want to forward to the third party.\nAdyen makes a request to the third party that contains the payment details.\nThird party responds to Adyen, and we forward this response to you.\n\nMake a forward request to Adyen\nTo forward the payment details you store with Adyen to a third party, inform Adyen about the payment details that you want to forward and the destination. Adyen uses the information in your request to make a request to the third party on your behalf.\nFrom your server, make a POST  \/forward request, specifying:\n\n\n\nParameter name\nRequired\nDescription\n\n\n\n\nmerchantAccount\n\nYour merchant account name.\n\n\nshopperReference\n\nYour unique reference for the shopper.\n\n\nstoredPaymentMethodId\n\nUse case: Include when you are forwarding a token that you have already stored with Adyen. Skip this when forwarding non-tokenized card details.  The unique identifier for the token. This is the storedPaymentMethodId you received in the  recurring.token.created webhook when you created the token.\n\n\npaymentMethod\n\nUse cases: When forwarding non-tokenized card details, you can include the following fields. The required fields depend on the third party that is receiving the card details: holderName number \/ encryptedCardNumber expiryMonth \/ encryptedExpiryMonth expiryYear \/ encryptedExpiryYear cvc \/ encryptedSecurityCode  When forwarding a token with CVC, you can include the CVC. You must also include the {{securityCode}} placeholder in the request.body.  The object that contains the encrypted or unencrypted (if you are fully PCI compliant) details.\n\n\nmerchantReference\n\nYour reference to uniquely identify the transaction.\n\n\nbaseUrl\n\nThe base URL of the third party API, where Adyen will send the request to forward the payment details.\n\n\nrequest.httpMethod\n\nThe HTTP method to use for the request to the third party, for example, post, patch, or put.  Use the documentation from the third party to learn about the HTTP method you must use. \n\n\nrequest.urlSuffix\n\nThe suffix to append to the baseUrl to construct the destination URL for the request to the third party. This is usually the endpoint name for the request, for example, \/payments.\n\n\nrequest.credentials\n\nYour credentials for the third party.\n\n\nrequest.headers\n\nThe request headers to include in the request to the third party, for example, externalparty-version, or authorization.\n\n\nrequest.body\n\nThe request body that you want Adyen to forward to the third party on your behalf, in string format.    Include key value pairs to specify the payment details, and use placeholders for the values. Adyen replaces the placeholders with the payment details when making the request to the third party.  Use the documentation from the third party to learn about the parameters you need to include in the request body. \n\n\noptions.tokenize\n\nWhen you are forwarding non-tokenized card details, set to true to store the payment details with Adyen using the same request. When set to true you must provide the holder name, number, expiry month, and the expiry year of the card in the paymentMethod object.\n\n\noptions.dryRun\n\nSet to true to receive the request body that is populated to forward to the third party in the response. Any sensitive information will be masked in the response you receive. This functionality is only available in the test environment to help you set up your integration, defaults to false.\n\n\n\n Required for all transactions.  Required for particular setups, or issuers and card schemes.  Recommended for all transactions, but not required.\nDepending on the forwarding flow you are using, what to include in your request changes. The examples below show how to construct your request for each flow.\n\n\n    \n        \n        \n    \n\n\nAdyen makes a request to the third party\nWe make a request to the third party on your behalf. To construct the endpoint URL, we use the  baseUrl and  request.urlSuffix you provided in your forwarding request. The code sample below shows the request Adyen would make to the third party for forwarding a token, without CVC.\n\n    \n\nThird party responds to Adyen\nWe receive a response from the third party that contains the outcome of the  \/forward request. The response structure and content can differ depending on the third party.\n\n    \n\nForward network tokens\nTo forward stored network tokens:\n\nYou make a POST  \/forward request, including the options.networkToken parameter to forward a network token.\nIn your request, you specify a fallback logic to ensure that Adyen can forward the payment details using the token you created with Adyen instead of the network token in case it cannot be found.\nAdyen makes a request to the third party that contains the payment details.\nThird party responds to Adyen, and we forward this response to you.\n\n\nWhen building your logic for network tokens, keep in mind that you can not forward a network token together with card details that are not yet tokenized by Adyen.\n\nMake a request to Adyen\nTo forward the network tokens you store with Adyen to a third party, inform Adyen about the network token that you want to forward and the destination. Adyen uses the information in your request to make a request to the third party on your behalf.\nFrom your server, make a POST  \/forward request, specifying:\n\n\n\nParameter name\nRequired\nDescription\n\n\n\n\nmerchantAccount\n\nYour merchant account name.\n\n\nshopperReference\n\nYour unique reference for the shopper.\n\n\nstoredPaymentMethodId\n\nUse case: Include when you are forwarding a token that you have already stored with Adyen. Skip this when forwarding non-tokenized card details.  The unique identifier for the token. This is the storedPaymentMethodId you received in the  recurring.token.created webhook when you created the token.\n\n\npaymentMethod\n\nUse cases: When forwarding non-tokenized card details, you can include the following fields. The required fields depend on the third party that is receiving the card details: holderName number \/ encryptedCardNumber expiryMonth \/ encryptedExpiryMonth expiryYear \/ encryptedExpiryYear cvc \/ encryptedSecurityCode  When forwarding a token with CVC, you can include the CVC. You must also include the {{securityCode}} placeholder in the request.body.  The object that contains the encrypted or unencrypted (if you are fully PCI compliant) details.\n\n\nmerchantReference\n\nYour reference to uniquely identify the transaction.\n\n\nbaseUrl\n\nThe base URL of the third party API, where Adyen will send the request to forward the payment details.\n\n\nrequest.httpMethod\n\nThe HTTP method to use for the request to the third party, for example, post, patch, or put.  Use the documentation from the third party to learn about the HTTP method you must use. \n\n\nrequest.urlSuffix\n\nThe suffix to append to the baseUrl to construct the destination URL for the request to the third party. This is usually the endpoint name for the request, for example, \/payments.\n\n\nrequest.credentials\n\nYour credentials for the third party.\n\n\nrequest.headers\n\nThe request headers to include in the request to the third party, for example, externalparty-version, or authorization.\n\n\nrequest.body\n\nThe request body that you want Adyen to forward to the third party on your behalf, in string format.   In the body, include: A condition that checks if the network token exists, and informs Adyen of which fields to send depending on the outcome. You must inform Adyen to forward card details in case the network token cannot be found. Use Mustache.java syntax for conditions.Key value pairs that use placeholders for the values that specify the payment details to be forwarded. Adyen replaces the placeholders with the payment details when making the request to the third party.   Use the documentation from the third party to learn about the parameters you need to include in the request body. \n\n\noptions.networkToken\n\nUse case: Required to forward a network token.  The object that enables forwarding network tokens, including: useNetworkToken: Set to true to enable forwarding network tokens.includeCryptogram: Set to true to enable forwarding network token cryptograms.\n\n\noptions.dryRun\n\nSet to true to receive the request body that is populated to forward to the third party in the response. Any sensitive information will be masked in the response you receive. This functionality is only available in the test environment to help you set up your integration, defaults to false.\n\n\n\n Required for all transactions.  Required for particular setups, or issuers and card schemes.  Recommended for all transactions, but not required.\nBuild logic for Adyen token fallback\nFor requests that include network tokens, you must add a conditional statement in your \/forward request to Adyen.\nIn your condition, you must build a logic that informs Adyen to check if the network token exists, and determine the fields to forward to the third party depending on the outcome. Your condition must introduce a fallback to forward the token you created for the same payment details with Adyen in case the network token cannot be found.\nThe following table indicates the fields that must be forwarded to third party depending on different availability scenarios.\n\n\n\n\nNetwork token\nnetworkTxReference\nCryptogram\nFields to forward to the third party\n\n\n\n\nScenario 1\n\n\n\nForward the network token, networkTxReference, and the network token cryptogram.\n\n\nScenario 2\n\n\n\nForward the network token.\n\n\nScenario 3\n\n\n\nFallback to the Adyen token.\n\n\n\n\n    \n\nAdyen makes a request to the third party\nWe make a request to the third party on your behalf. To construct the endpoint URL, we use the  baseUrl and  request.urlSuffix you provided in your forwarding request.\nWe use the condition you set in the  \/forward field to determine which details to forward to the third party.\n\n\n    \n        \n        \n    \n\n\nThird party responds to Adyen\nWe receive a response from the third party, that contains the outcome of the forward request. The response structure and content can differ, depending on the third party.\n\n    \n\nHandle the result\nYou receive a response from Adyen that informs you of the outcome of your  \/forward request, for example:\n\n    \n\nThe response contains:\n\npspReference: Our unique identifier for the transaction.\nmerchantReference: The unique reference for the transaction that you included in your request to forward payment details.\nstoredPaymentMethodId: The unique identifier for the stored payment details that were forwarded. This is the Adyen identifier.\nThis field is not returned if you forward non-tokenized card details, and set options.tokenize to false.\nresponse.status: The HTTP status code Adyen received from the third party.\nresponse.body: The response that Adyen received from the third party. Adyen passes the response as a string without modifying it.\n\nErrors\nIf Adyen's request to share the token fails, you will receive a response with HTTP status code different from 2XX. In this response, you get an error code and message that help you diagnose and resolve the error.\nWhen you make a request to forward payment details, and an error occurs on the Adyen side, you will receive a response with HTTP status code different from 2XX.\nIf an error occurs on the third party side, you can receive:\n\n502: Third party did not send a response to Adyen.\n505: Third party experienced a time-out.\n\nBelow is an example where the request fails, with status code 422 and error code 803:\n\n    \n\nPlaceholder reference\nUse the documentation from the third party to determine the parameters you must include in your \/forward request. You must send the parameters in key value pairs, where you use the keys specified by the third party, paired with the placeholder values that Adyen can replace with real values.\nThe following is a list of placeholders that Adyen can map to real values and forward to a third party. The Use case(s) column specifies the placeholders that are relevant when forwarding card details and network tokens.\n\n\n\nPlaceholder\nUse case(s)\nDescription\n\n\n\n\n{{credentials}}\nCard details    Network tokens\nThe credentials to authenticate the API request.\n\n\n{{number}}\nCard details    Network tokens\nThe card number.\n\n\n{{expiryMonth}}\nCard details    Network tokens\nExpiry month of the card.\n\n\n{{expiryYear}}\nCard details    Network tokens\nExpiry year of the card.\n\n\n{{expiryYearYY}}\nCard details    Network tokens\nExpiry year of the card. Use this field if you want to send a two-digit value for the expiry year.\n\n\n{{securityCode}}\nCard details    Network tokens\nThe security code (CVC) of the card.\n\n\n{{billingaddress.street}}\nCard details    Network tokens\nThe billing address street stored along with the token.\n\n\n{{billingaddress.housenumberorname}}\nCard details    Network tokens\nThe billing address house number\/name stored with the token.\n\n\n{{billingaddress.postalcode}}\nCard details    Network tokens\nThe billing address postcode\/ZIP code stored with the token.\n\n\n{{billingaddress.stateorprovince}}\nCard details    Network tokens\nThe billing address state\/province field stored with the token.\n\n\n{{billingaddress.city}}\nCard details    Network tokens\nThe billing address city stored with the token.\n\n\n{{billingaddress.countrycode}}\nCard details    Network tokens\nThe billing address country code stored with the token.\n\n\n{{billingaddress.addressline3}}\nCard details    Network tokens\nThe billing address additional line stored with the token.\n\n\n{{holderName}}\nCard details\nThe card holder's name.\n\n\n{{networkTxReference}}\nNetwork tokens   Card details\nThe transaction identifier from card schemes that allows you to link the transaction to the original or previous one for recurring payments.\n\n\n{{transactionLinkId}}\nNetwork tokens   Card details\nThe Mastercard Transaction Link Identifier. This identifier has the same purpose as the {{networkTxReference}}, but is used for Mastercard specifically. You can provide both identifiers in the same transaction, or provide one of them.\n\n\n{{tokenNumber}}\nNetwork tokens\nThe 16-digit alternative for the Primary Account Number (PAN).\n\n\n{{tokenExpiryMonth}}\nNetwork tokens\nExpiry month of the network token.\n\n\n{{tokenExpiryYear}}\nNetwork tokens\nExpiry year of the network token.\n\n\n{{tokenExpiryYearYY}}\nNetwork tokens\nExpiry year of the network token. Use this field if you want to send a two-digit value for the expiry year.\n\n\n{{cryptogram}}\nNetwork tokens\nThe single-use key that enables to use the network token for a transaction.\n\n\n{{ecommerceIndicator}}\nNetwork tokens\nThe Electronic Commerce Indicator of the cryptogram, returned from the schemes.\n\n\n\nSee also\n\nCreate tokens\nManage tokens\nNetwork tokenization\nCards\n","type":"page","locale":"pt","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Tokenization","lvl3":"Forward payment details"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/online-payments","lvl2":"https:\/\/docs.adyen.com\/pt\/online-payments\/tokenization","lvl3":"\/pt\/online-payments\/tokenization\/forward-payment-details"},"levels":4,"category":"Online Payments","category_color":"green","tags":["Forward","payment","details"]},"articleFiles":{"forward-api.svg":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/user\/pages\/docs\/02.online-payments\/20.tokenization\/05.forward-payment-details\/forward-api.svg?decoding=auto&amp;fetchpriority=auto\" \/>"}}
