{"title":"Delegated Payment Spec with Adyen","category":"default","creationDate":1772813040,"content":"<p>Integrate with the <a href=\"https:\/\/developers.openai.com\/commerce\/specs\/payment\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Delegated Payment Spec<\/a> so that your Agentic Platform collects or holds shopper payment credentials and securely delegates payment processing to Adyen. This enables merchants that use your Agentic Platform to process payments with Adyen.<\/p>\n<div class=\"notices green\">\n<p>If you want to integrate with the <a href=\"https:\/\/developers.google.com\/pay\/api\/universal-commerce-protocol\/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Universal Commerce Protocol<\/a> instead, refer to our <a href=\"\/payment-methods\/google-pay\/api-only\/google-pay-token-decryption\">documentation on how to handle Google Pay tokens with Adyen<\/a>.<\/p>\n<\/div>\n<h2>Requirements<\/h2>\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;\">Make sure that you have set up an integration that follows the <a href=\"https:\/\/developers.openai.com\/commerce\/guides\/get-started\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Agentic Commerce Protocol (ACP)<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\"><ul><li markdown=\"1\">Compliance: your Agentic Platform must meet PCI DSS Level 1 compliance.<\/li><li markdown=\"1\">You must complete our security review to approve your platform.<\/li><\/ul><\/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, reach out to your Adyen Account Manager or 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> for the following: <ul><li markdown=\"1\">Access to Delegated Payment.<\/li><li markdown=\"1\">Your dedicated Agentic Commerce authentication token.<\/li><li markdown=\"1\">Enable your Adyen merchant accounts for Agentic Commerce.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\n<p>When the shopper initiates a transaction using your Agentic Platform, the following flow occurs:<\/p>\n<ol>\n<li>The shopper enters their payment details in your Agentic Platform.<\/li>\n<li>Your Agentic Platform sends the payment (card number or network token) data to Adyen by making a <code>\/agentic_commerce\/delegate_payment<\/code> request.<\/li>\n<li>Adyen validates the credentials and returns a merchant-scoped ACP token to your Agentic Platform.<\/li>\n<li>Your Agentic Platform sends the ACP token to your checkout application.<\/li>\n<li>The merchant's checkout application makes a <code>\/payments<\/code> request including the ACP token.<\/li>\n<li>Adyen authorizes the payment and returns the payment result to your checkout application.<\/li>\n<\/ol>\n<div id=\"mermaid-69fe0434809ce-wrapper\"><div id=\"mermaid-69fe0434809ce\" class=\"mermaid-shortcode loading\">CnNlcXVlbmNlRGlhZ3JhbQphdXRvbnVtYmVyCnBhcnRpY2lwYW50IFNob3BwZXIKcGFydGljaXBhbnQgUGxhdGZvcm0gYXMgWW91ciBBZ2VudGljIFBsYXRmb3JtCnBhcnRpY2lwYW50IEFkeWVuCnBhcnRpY2lwYW50IEFwcCBhcyBNZXJjaGFudCBDaGVja291dCBBcHBsaWNhdGlvbgoKICAgIFNob3BwZXItPj5QbGF0Zm9ybTogRW50ZXJzIHBheW1lbnQgZGV0YWlscwogICAgUGxhdGZvcm0tPj5BZHllbjogL2FnZW50aWNfY29tbWVyY2UvZGVsZWdhdGVfcGF5bWVudAogICAgQWR5ZW4tLT4+UGxhdGZvcm06IE1lcmNoYW50LXNjb3BlZCBBQ1AgdG9rZW4KICAgIFBsYXRmb3JtLT4+QXBwOiBTZW5kcyBBQ1AgdG9rZW4KICAgIEFwcC0+PkFkeWVuOiAvcGF5bWVudHMgKGluY2x1ZGVzIEFDUCB0b2tlbikKICAgIEFkeWVuLS0+PkFwcDogUGF5bWVudCByZXN1bHQgKEF1dGhvcml6ZWQpCg==<\/div><\/div>\n<h2>Send a delegated payment request through the Agentic Platform<\/h2>\n<p>Make a POST <code>\/agentic_commerce\/delegate_payment<\/code> request through the Agentic Platform, including the following:<\/p>\n<p>Headers:<\/p>\n<table>\n<thead>\n<tr>\n<th>Header<\/th>\n<th>Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>Authorization<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Use the following format: <code>Bearer &lt;YOUR_AGENTIC_TOKEN&gt;<\/code>. <br> If you enter a standard API key, you get the 401 Unauthorized error.<\/td>\n<\/tr>\n<tr>\n<td><code>Content-Type<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Must be the following: <strong>application\/json<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>API-Version<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Must be the following: <strong>2025-09-29<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>Accept-Language<\/code><\/td>\n<td><\/td>\n<td>The preferred locale for content like messages and errors. For example: <strong>en-US<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>User-Agent<\/code><\/td>\n<td><\/td>\n<td>Your platform name and version. For example: <strong>MyPlatform\/2.0<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>Idempotency-Key<\/code><\/td>\n<td><\/td>\n<td>A unique value, such as a universally unique identifier (UUID), to prevent duplicate transactions. For example: <code>idempotency_key_123<\/code><\/td>\n<\/tr>\n<tr>\n<td><code>Request-Id<\/code><\/td>\n<td><\/td>\n<td>Unique trace identifier for each request. For example: <strong>request_id_123<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>Signature<\/code><\/td>\n<td><\/td>\n<td>The Base64 HMAC-SHA256 signature of the request body.<\/td>\n<\/tr>\n<tr>\n<td><code>Timestamp<\/code><\/td>\n<td><\/td>\n<td>The time the request as an RFC 3339 string. For example: <strong>2025-09-25T10:30:00Z<\/strong>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Body:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter name<\/th>\n<th>Required<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>payment_method.type<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td><strong>card<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.card_number_type<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td><strong>fpan<\/strong> or <strong>network_token<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.number<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The shopper's card number.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.metadata<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Arbitrary key\/value pairs.<\/td>\n<\/tr>\n<tr>\n<td><code>allowance.reason<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td><strong>one_time<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>allowance.max_amount<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Maximum amount the payment method can be charged.<\/td>\n<\/tr>\n<tr>\n<td><code>allowance.currency<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The ISO-4217 currency code. For example: <strong>USD<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>allowance.checkout_session_id<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The merchant's <code>checkout_session_id<\/code>.<\/td>\n<\/tr>\n<tr>\n<td><code>allowance.merchant_id<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The merchant's Adyen merchant account.<\/td>\n<\/tr>\n<tr>\n<td><code>allowance.expires_at<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Timestamp, formatted as an RFC 3339 string.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.name<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The shopper's name.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.line_one<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The shopper's street address.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.city<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The city of the shopper's address.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.country<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The country of the shopper's address, following ISO 3166-1 standard.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.postal_code<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The postal code of the shopper's address.<\/td>\n<\/tr>\n<tr>\n<td><code>risk_signals.type<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The type of risk signal.<\/td>\n<\/tr>\n<tr>\n<td><code>risk_signals.score<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>The risk signals score. For example: <strong>10<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>risk_signals.action<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Possible values: <ul><li markdown=\"1\"><strong>blocked<\/strong><\/li><li markdown=\"1\"><strong>manual_review<\/strong><\/li><li markdown=\"1\"><strong>authorized<\/strong><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>metadata<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<td>Arbitrary key\/value pairs.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.exp_month<\/code><\/td>\n<td><\/td>\n<td>The card's expiry month.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.exp_year<\/code><\/td>\n<td><\/td>\n<td>The card's expiry year (four digits).<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.name<\/code><\/td>\n<td><\/td>\n<td>The cardholder name.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.cvc<\/code><\/td>\n<td><\/td>\n<td>The card's CVC number.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.cryptogram<\/code><\/td>\n<td><\/td>\n<td>The cryptogram provided with network tokens.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.eci_value<\/code><\/td>\n<td><\/td>\n<td>The Electronic Commerce Indicator\/Security Level Indicator provided with network tokens.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.checks_performed<\/code><\/td>\n<td><\/td>\n<td>An array that indicates the checks already performed on the card. For example <strong>[avs, cvv, ani, auth0]<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.iin<\/code><\/td>\n<td><\/td>\n<td>The first six digits of the card number, identifying the issuer.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.display_card_funding_type<\/code><\/td>\n<td><\/td>\n<td>Funding type of the card to display.Possible values: <ul><li markdown=\"1\"><strong>credit<\/strong><\/li><li markdown=\"1\">debit<\/li> or <li markdown=\"1\">prepaid<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.display_wallet_type<\/code><\/td>\n<td><\/td>\n<td>If the card came through a digital wallet, what type of wallet.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.display_brand<\/code><\/td>\n<td><\/td>\n<td>The brand of the card to display.<\/td>\n<\/tr>\n<tr>\n<td><code>payment_method.display_last4<\/code><\/td>\n<td><\/td>\n<td>In case of non-PAN, this is the original last 4 digits of the card for customer display.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.line_two<\/code><\/td>\n<td><\/td>\n<td>The second line of the shopper's street address.<\/td>\n<\/tr>\n<tr>\n<td><code>billing_address.state<\/code><\/td>\n<td><\/td>\n<td>The state of the shopper's addres, following ISO 3166-2 standard.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n   \n<div id=\"tabPbw5l\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Card number&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 body with card number&#039;\\&quot; :id=\\&quot;&#039;delegated-payment-request-card&#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 -X POST https:\\\\\\\/\\\\\\\/pal-test.adyen.com\\\\\\\/paltokenization\\\\\\\/servlet\\\\\\\/Recurring\\\\\\\/Agentic\\\\\\\/acp\\\\\\\/v1\\\\\\\/agentic_commerce\\\\\\\/delegate_payment \\\\\\\\\\\\n-H \\\\&amp;quot;Authorization: Bearer YOUR_AGENTIC_TOKEN\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;User-Agent: MyPlatform\\\\\\\/2.0\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Idempotency-Key: idempotency_key_123\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Request-Id: request_id_123\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Content-Type: application\\\\\\\/json\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Signature: YOUR_SIGNATURE\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Timestamp: 2025-09-25T10:30:00Z\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;API-Version: 2025-09-29\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Accept-Language: en-US\\\\&amp;quot; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;payment_method\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;card\\\\&amp;quot;,\\\\n    \\\\&amp;quot;card_number_type\\\\&amp;quot;: \\\\&amp;quot;fpan\\\\&amp;quot;,\\\\n    \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;4111111111111111\\\\&amp;quot;,\\\\n    \\\\&amp;quot;exp_month\\\\&amp;quot;: \\\\&amp;quot;03\\\\&amp;quot;,\\\\n    \\\\&amp;quot;exp_year\\\\&amp;quot;: \\\\&amp;quot;2030\\\\&amp;quot;,\\\\n    \\\\&amp;quot;name\\\\&amp;quot;: \\\\&amp;quot;Jane Doe\\\\&amp;quot;,\\\\n    \\\\&amp;quot;cvc\\\\&amp;quot;: \\\\&amp;quot;737\\\\&amp;quot;,\\\\n    \\\\&amp;quot;metadata\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;issuing_bank\\\\&amp;quot;: \\\\&amp;quot;example_bank\\\\&amp;quot;\\\\n    }\\\\n  },\\\\n  \\\\&amp;quot;allowance\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;reason\\\\&amp;quot;: \\\\&amp;quot;one_time\\\\&amp;quot;,\\\\n    \\\\&amp;quot;max_amount\\\\&amp;quot;: 2500,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;usd\\\\&amp;quot;,\\\\n    \\\\&amp;quot;checkout_session_id\\\\&amp;quot;: \\\\&amp;quot;cs_123\\\\&amp;quot;,\\\\n    \\\\&amp;quot;merchant_id\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n    \\\\&amp;quot;expires_at\\\\&amp;quot;: \\\\&amp;quot;2025-10-09T07:20:50Z\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;billing_address\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;name\\\\&amp;quot;: \\\\&amp;quot;Jane Doe\\\\&amp;quot;,\\\\n    \\\\&amp;quot;line_one\\\\&amp;quot;: \\\\&amp;quot;123 Main St\\\\&amp;quot;,\\\\n    \\\\&amp;quot;city\\\\&amp;quot;: \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n    \\\\&amp;quot;country\\\\&amp;quot;: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n    \\\\&amp;quot;postal_code\\\\&amp;quot;: \\\\&amp;quot;94105\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;risk_signals\\\\&amp;quot;: [\\\\n    {\\\\n      \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;card_testing\\\\&amp;quot;,\\\\n      \\\\&amp;quot;score\\\\&amp;quot;: 2,\\\\n      \\\\&amp;quot;action\\\\&amp;quot;: \\\\&amp;quot;authorized\\\\&amp;quot;\\\\n    }\\\\n  ],\\\\n  \\\\&amp;quot;metadata\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;source\\\\&amp;quot;: \\\\&amp;quot;agentic_platform\\\\&amp;quot;,\\\\n    \\\\&amp;quot;campaign\\\\&amp;quot;: \\\\&amp;quot;q4\\\\&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;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Network 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 body with network token&#039;\\&quot; :id=\\&quot;&#039;delegated-payment-request-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 -X POST https:\\\\\\\/\\\\\\\/pal-test.adyen.com\\\\\\\/paltokenization\\\\\\\/servlet\\\\\\\/Recurring\\\\\\\/Agentic\\\\\\\/acp\\\\\\\/v1\\\\\\\/agentic_commerce\\\\\\\/delegate_payment \\\\\\\\\\\\n-H \\\\&amp;quot;Authorization: Bearer YOUR_AGENTIC_TOKEN\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;User-Agent: MyPlatform\\\\\\\/2.0\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Idempotency-Key: idempotency_key_123\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Request-Id: request_id_123\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Content-Type: application\\\\\\\/json\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Signature: YOUR_SIGNATURE\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Timestamp: 2025-09-25T10:30:00Z\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;API-Version: 2025-09-29\\\\&amp;quot; \\\\\\\\\\\\n-H \\\\&amp;quot;Accept-Language: en-US\\\\&amp;quot; \\\\\\\\\\\\n-d &#039;{\\\\n  \\\\&amp;quot;payment_method\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;card\\\\&amp;quot;,\\\\n    \\\\&amp;quot;card_number_type\\\\&amp;quot;: \\\\&amp;quot;network_token\\\\&amp;quot;,\\\\n    \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;4111111111111111\\\\&amp;quot;,\\\\n    \\\\&amp;quot;exp_month\\\\&amp;quot;: \\\\&amp;quot;03\\\\&amp;quot;,\\\\n    \\\\&amp;quot;exp_year\\\\&amp;quot;: \\\\&amp;quot;2030\\\\&amp;quot;,\\\\n    \\\\&amp;quot;name\\\\&amp;quot;: \\\\&amp;quot;Jane Doe\\\\&amp;quot;,\\\\n    \\\\&amp;quot;cryptogram\\\\&amp;quot;:\\\\&amp;quot;gXc5UCLnM6ckD7pjM1TdPA==\\\\&amp;quot;,\\\\n    \\\\&amp;quot;cvc\\\\&amp;quot;: \\\\&amp;quot;737\\\\&amp;quot;,\\\\n    \\\\&amp;quot;metadata\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;issuing_bank\\\\&amp;quot;: \\\\&amp;quot;example_bank\\\\&amp;quot;\\\\n    }\\\\n  },\\\\n  \\\\&amp;quot;allowance\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;reason\\\\&amp;quot;: \\\\&amp;quot;one_time\\\\&amp;quot;,\\\\n    \\\\&amp;quot;max_amount\\\\&amp;quot;: 2500,\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;usd\\\\&amp;quot;,\\\\n    \\\\&amp;quot;checkout_session_id\\\\&amp;quot;: \\\\&amp;quot;cs_123\\\\&amp;quot;,\\\\n    \\\\&amp;quot;merchant_id\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n    \\\\&amp;quot;expires_at\\\\&amp;quot;: \\\\&amp;quot;2025-10-09T07:20:50Z\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;billing_address\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;name\\\\&amp;quot;: \\\\&amp;quot;Jane Doe\\\\&amp;quot;,\\\\n    \\\\&amp;quot;line_one\\\\&amp;quot;: \\\\&amp;quot;123 Main St\\\\&amp;quot;,\\\\n    \\\\&amp;quot;city\\\\&amp;quot;: \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n    \\\\&amp;quot;country\\\\&amp;quot;: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n    \\\\&amp;quot;postal_code\\\\&amp;quot;: \\\\&amp;quot;94105\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;risk_signals\\\\&amp;quot;: [\\\\n    {\\\\n      \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;card_testing\\\\&amp;quot;,\\\\n      \\\\&amp;quot;score\\\\&amp;quot;: 2,\\\\n      \\\\&amp;quot;action\\\\&amp;quot;: \\\\&amp;quot;authorized\\\\&amp;quot;\\\\n    }\\\\n  ],\\\\n  \\\\&amp;quot;metadata\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;source\\\\&amp;quot;: \\\\&amp;quot;agentic_platform\\\\&amp;quot;,\\\\n    \\\\&amp;quot;campaign\\\\&amp;quot;: \\\\&amp;quot;q4\\\\&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;:1,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<ol start=\"2\">\n<li>\n<p>Get the ACP token (<code>id<\/code>) from the response. <a id=\"acp_response\"><\/a><\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Example response with ACP token'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"id\\\": \\\"FKSPNCQ8HXSKGK82\\\",\\n   \\\"created\\\": \\\"2026-02-23T23:50:55.482694934+01:00\\\",\\n   \\\"metadata\\\": {\\n       \\\"recurringDetailReference\\\": \\\"FKSPNCQ8HXSKGK82\\\",\\n       \\\"source\\\": \\\"agent_checkout\\\",\\n       \\\"merchant_id\\\": \\\"ADYEN_MERCHANT_ACCOUNT\\\",\\n       \\\"shopperReference\\\": \\\"CHECKOUT_SESSION_ID\\\"\\n   }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The ACP token:<\/p>\n<ul>\n<li>Is merchant-scoped.<\/li>\n<li>Cannot be used across unauthorized merchant accounts.<\/li>\n<li>Does not expose raw card data.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2>Make a payment request with the ACP token<\/h2>\n<p>Make 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 through your checkout application, including:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter name<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>shopperReference<\/code><\/td>\n<td>The <code>checkout_session_id<\/code> value from the response in the <code>\/checkout_session<\/code> response from the Agentic Platform.<\/td>\n<\/tr>\n<tr>\n<td><code>paymentMethod.storedPaymentMethodId<\/code><\/td>\n<td>The <a href=\"#acp_response\">ACP token from the Agentic Platform<\/a>.<\/td>\n<\/tr>\n<tr>\n<td><code>merchantAccount<\/code><\/td>\n<td>Your merchant account.<\/td>\n<\/tr>\n<tr>\n<td><code>amount.value<\/code><\/td>\n<td>The value of the payment, in minor units.<\/td>\n<\/tr>\n<tr>\n<td><code>amount.currency<\/code><\/td>\n<td>The three-character ISO currency code.<\/td>\n<\/tr>\n<tr>\n<td><code>shopperInteraction<\/code><\/td>\n<td><strong>ContAuth<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>recurringProcessingModel<\/code><\/td>\n<td><strong>UnscheduledCardOnFile<\/strong><\/td>\n<\/tr>\n<tr>\n<td><code>reference<\/code><\/td>\n<td>Your reference for the order.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example payment request including the ACP'\" :id=\"'payments-request-acp'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H \\&quot;idempotency-key: YOUR_IDEMPOTENCY_KEY\\&quot; \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n   \\&quot;shopperReference\\&quot; : \\&quot;csn_01AB2A3XYZ9ABC\\&quot;,\\n   \\&quot;paymentMethod\\&quot; : {\\n      \\&quot;storedPaymentMethodId\\&quot; : \\&quot;FKSPNCQ8HXSKGK82\\&quot;\\n   },\\n   \\&quot;merchantAccount\\&quot; : \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n   \\&quot;amount\\&quot; : {\\n      \\&quot;currency\\&quot; : \\&quot;USD\\&quot;,\\n      \\&quot;value\\&quot; : \\&quot;2500\\&quot;\\n   },\\n   \\&quot;shopperInteraction\\&quot; : \\&quot;ContAuth\\&quot;,\\n   \\&quot;recurringProcessingModel\\&quot; : \\&quot;UnscheduledCardOnFile\\&quot;,\\n   \\&quot;reference\\&quot;: \\&quot;your-order-reference-123-abc\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response include the following:<\/p>\n<table>\n<thead>\n<tr>\n<th>Parameter<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>pspReference<\/code><\/td>\n<td>Our unique identifier for the transaction.<\/td>\n<\/tr>\n<tr>\n<td><code>resultCode<\/code><\/td>\n<td>Indicates the current status of the payment.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example response for an authorized payment'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"pspReference\\\": \\\"W78NTVXSJV84L675\\\",\\n  \\\"resultCode\\\": \\\"Authorised\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<h2>Test and go live<\/h2>\n<p>After you test your integration and are ready to go live, you must change your <code>\/agentic_commerce\/delegate_payment<\/code> from the test URL to the live URL:<\/p>\n<table>\n<thead>\n<tr>\n<th>Environment<\/th>\n<th>URL<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Test<\/td>\n<td><code>https:\/\/pal-test.adyen.com\/paltokenization\/servlet\/Recurring\/Agentic\/acp\/v1\/agentic_commerce\/delegate_payment<\/code><\/td>\n<\/tr>\n<tr>\n<td>Live<\/td>\n<td><code>https:\/\/pal-live.adyen.com\/paltokenization\/servlet\/Recurring\/Agentic\/acp\/v1\/agentic_commerce\/delegate_payment<\/code><\/td>\n<\/tr>\n<\/tbody>\n<\/table>","url":"https:\/\/docs.adyen.com\/online-payments\/agentic-commerce\/delegated-payment-spec","articleFields":{"description":"Learn to integrate the Delegated Payment Spec with Adyen.","robots":"noindex,nofollow","feedback_component":true,"filters_component":false,"decision_tree":"[]","page_id":"c0534720-fc87-46dd-a25c-68851cd294c0","last_edit_on":"06-03-2026 17:04"},"algolia":{"url":"https:\/\/docs.adyen.com\/online-payments\/agentic-commerce\/delegated-payment-spec","title":"Delegated Payment Spec with Adyen","content":"Integrate with the Delegated Payment Spec so that your Agentic Platform collects or holds shopper payment credentials and securely delegates payment processing to Adyen. This enables merchants that use your Agentic Platform to process payments with Adyen.\n\nIf you want to integrate with the Universal Commerce Protocol instead, refer to our documentation on how to handle Google Pay tokens with Adyen.\n\nRequirements\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nMake sure that you have set up an integration that follows the Agentic Commerce Protocol (ACP).\n\n\nLimitations\nCompliance: your Agentic Platform must meet PCI DSS Level 1 compliance.You must complete our security review to approve your platform.\n\n\nSetup steps\nBefore you begin, reach out to your Adyen Account Manager or our Support Team for the following: Access to Delegated Payment.Your dedicated Agentic Commerce authentication token.Enable your Adyen merchant accounts for Agentic Commerce.\n\n\n\nHow it works\nWhen the shopper initiates a transaction using your Agentic Platform, the following flow occurs:\n\nThe shopper enters their payment details in your Agentic Platform.\nYour Agentic Platform sends the payment (card number or network token) data to Adyen by making a \/agentic_commerce\/delegate_payment request.\nAdyen validates the credentials and returns a merchant-scoped ACP token to your Agentic Platform.\nYour Agentic Platform sends the ACP token to your checkout application.\nThe merchant's checkout application makes a \/payments request including the ACP token.\nAdyen authorizes the payment and returns the payment result to your checkout application.\n\nCnNlcXVlbmNlRGlhZ3JhbQphdXRvbnVtYmVyCnBhcnRpY2lwYW50IFNob3BwZXIKcGFydGljaXBhbnQgUGxhdGZvcm0gYXMgWW91ciBBZ2VudGljIFBsYXRmb3JtCnBhcnRpY2lwYW50IEFkeWVuCnBhcnRpY2lwYW50IEFwcCBhcyBNZXJjaGFudCBDaGVja291dCBBcHBsaWNhdGlvbgoKICAgIFNob3BwZXItPj5QbGF0Zm9ybTogRW50ZXJzIHBheW1lbnQgZGV0YWlscwogICAgUGxhdGZvcm0tPj5BZHllbjogL2FnZW50aWNfY29tbWVyY2UvZGVsZWdhdGVfcGF5bWVudAogICAgQWR5ZW4tLT4+UGxhdGZvcm06IE1lcmNoYW50LXNjb3BlZCBBQ1AgdG9rZW4KICAgIFBsYXRmb3JtLT4+QXBwOiBTZW5kcyBBQ1AgdG9rZW4KICAgIEFwcC0+PkFkeWVuOiAvcGF5bWVudHMgKGluY2x1ZGVzIEFDUCB0b2tlbikKICAgIEFkeWVuLS0+PkFwcDogUGF5bWVudCByZXN1bHQgKEF1dGhvcml6ZWQpCg==\nSend a delegated payment request through the Agentic Platform\nMake a POST \/agentic_commerce\/delegate_payment request through the Agentic Platform, including the following:\nHeaders:\n\n\n\nHeader\nRequired\nDescription\n\n\n\n\nAuthorization\n\nUse the following format: Bearer &lt;YOUR_AGENTIC_TOKEN&gt;.  If you enter a standard API key, you get the 401 Unauthorized error.\n\n\nContent-Type\n\nMust be the following: application\/json.\n\n\nAPI-Version\n\nMust be the following: 2025-09-29.\n\n\nAccept-Language\n\nThe preferred locale for content like messages and errors. For example: en-US.\n\n\nUser-Agent\n\nYour platform name and version. For example: MyPlatform\/2.0.\n\n\nIdempotency-Key\n\nA unique value, such as a universally unique identifier (UUID), to prevent duplicate transactions. For example: idempotency_key_123\n\n\nRequest-Id\n\nUnique trace identifier for each request. For example: request_id_123.\n\n\nSignature\n\nThe Base64 HMAC-SHA256 signature of the request body.\n\n\nTimestamp\n\nThe time the request as an RFC 3339 string. For example: 2025-09-25T10:30:00Z.\n\n\n\nBody:\n\n\n\nParameter name\nRequired\nDescription\n\n\n\n\npayment_method.type\n\ncard\n\n\npayment_method.card_number_type\n\nfpan or network_token\n\n\npayment_method.number\n\nThe shopper's card number.\n\n\npayment_method.metadata\n\nArbitrary key\/value pairs.\n\n\nallowance.reason\n\none_time\n\n\nallowance.max_amount\n\nMaximum amount the payment method can be charged.\n\n\nallowance.currency\n\nThe ISO-4217 currency code. For example: USD.\n\n\nallowance.checkout_session_id\n\nThe merchant's checkout_session_id.\n\n\nallowance.merchant_id\n\nThe merchant's Adyen merchant account.\n\n\nallowance.expires_at\n\nTimestamp, formatted as an RFC 3339 string.\n\n\nbilling_address.name\n\nThe shopper's name.\n\n\nbilling_address.line_one\n\nThe shopper's street address.\n\n\nbilling_address.city\n\nThe city of the shopper's address.\n\n\nbilling_address.country\n\nThe country of the shopper's address, following ISO 3166-1 standard.\n\n\nbilling_address.postal_code\n\nThe postal code of the shopper's address.\n\n\nrisk_signals.type\n\nThe type of risk signal.\n\n\nrisk_signals.score\n\nThe risk signals score. For example: 10.\n\n\nrisk_signals.action\n\nPossible values: blockedmanual_reviewauthorized\n\n\nmetadata\n\nArbitrary key\/value pairs.\n\n\npayment_method.exp_month\n\nThe card's expiry month.\n\n\npayment_method.exp_year\n\nThe card's expiry year (four digits).\n\n\npayment_method.name\n\nThe cardholder name.\n\n\npayment_method.cvc\n\nThe card's CVC number.\n\n\npayment_method.cryptogram\n\nThe cryptogram provided with network tokens.\n\n\npayment_method.eci_value\n\nThe Electronic Commerce Indicator\/Security Level Indicator provided with network tokens.\n\n\npayment_method.checks_performed\n\nAn array that indicates the checks already performed on the card. For example [avs, cvv, ani, auth0].\n\n\npayment_method.iin\n\nThe first six digits of the card number, identifying the issuer.\n\n\npayment_method.display_card_funding_type\n\nFunding type of the card to display.Possible values: creditdebit or prepaid\n\n\npayment_method.display_wallet_type\n\nIf the card came through a digital wallet, what type of wallet.\n\n\npayment_method.display_brand\n\nThe brand of the card to display.\n\n\npayment_method.display_last4\n\nIn case of non-PAN, this is the original last 4 digits of the card for customer display.\n\n\nbilling_address.line_two\n\nThe second line of the shopper's street address.\n\n\nbilling_address.state\n\nThe state of the shopper's addres, following ISO 3166-2 standard.\n\n\n\n   \n\n    \n        \n        \n    \n\n\n\n\nGet the ACP token (id) from the response. \n\n\n\nThe ACP token:\n\nIs merchant-scoped.\nCannot be used across unauthorized merchant accounts.\nDoes not expose raw card data.\n\n\n\nMake a payment request with the ACP token\nMake a POST  \/payments request through your checkout application, including:\n\n\n\nParameter name\nDescription\n\n\n\n\nshopperReference\nThe checkout_session_id value from the response in the \/checkout_session response from the Agentic Platform.\n\n\npaymentMethod.storedPaymentMethodId\nThe ACP token from the Agentic Platform.\n\n\nmerchantAccount\nYour merchant account.\n\n\namount.value\nThe value of the payment, in minor units.\n\n\namount.currency\nThe three-character ISO currency code.\n\n\nshopperInteraction\nContAuth\n\n\nrecurringProcessingModel\nUnscheduledCardOnFile\n\n\nreference\nYour reference for the order.\n\n\n\n\n    \n\nThe response include the following:\n\n\n\nParameter\nDescription\n\n\n\n\npspReference\nOur unique identifier for the transaction.\n\n\nresultCode\nIndicates the current status of the payment.\n\n\n\n\n    \n\nTest and go live\nAfter you test your integration and are ready to go live, you must change your \/agentic_commerce\/delegate_payment from the test URL to the live URL:\n\n\n\nEnvironment\nURL\n\n\n\n\nTest\nhttps:\/\/pal-test.adyen.com\/paltokenization\/servlet\/Recurring\/Agentic\/acp\/v1\/agentic_commerce\/delegate_payment\n\n\nLive\nhttps:\/\/pal-live.adyen.com\/paltokenization\/servlet\/Recurring\/Agentic\/acp\/v1\/agentic_commerce\/delegate_payment\n\n\n","type":"page","locale":"en","boost":17,"hierarchy":{"lvl0":"Home","lvl1":"Online payments","lvl2":"Agentic Commerce","lvl3":"Delegated Payment Spec with Adyen"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/online-payments","lvl2":"https:\/\/docs.adyen.com\/online-payments\/agentic-commerce","lvl3":"\/online-payments\/agentic-commerce\/delegated-payment-spec"},"levels":4,"category":"Online Payments","category_color":"green","tags":["Delegated","Payment","Adyen"]}}
