{"title":"Buy online, pick up by assistant","category":"default","creationDate":1788778638,"content":"<p>This click-and-collect retail use case involves two participants:<\/p>\n<ul>\n<li>The shopper who places the order online and authorizes the payment.<\/li>\n<li>Another person, who we will refer to as the assistant, who picks up the order in the store. For example, the assistant can be a professional personal assistant, or a member of the same household.<\/li>\n<\/ul>\n<p>To make sure the right person is picking up the order, some identifying non-financial card details of the assistant are collected beforehand in a secure way. Then, at pickup, the assistant only needs to tap their card on the payment terminal. In this way, you do not need to deal with sensitive data such as photo IDs and you do not waste time checking screenshots or paper copies of the order.<\/p>\n<p>The payment is captured at pickup, using the authorization from the shopper who placed the order.<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following information.<\/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;\">You must have both an ecommerce integration and a point-of-sale integration with Adyen.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Your systems<\/strong><\/td>\n<td style=\"text-align: left;\">It is essential to have (or create) a consolidated order\/inventory management or ERP system. Or alternatively, you must have an orchestration layer that communicates with your various sub-systems and can consume webhook messages. This is because your POS system needs to be able to update the online inventory in case of a pickup, sale, or return.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Preparation<\/strong><\/td>\n<td style=\"text-align: left;\">We recommend familiarizing yourself with specific concepts so that you can make informed decisions about integration choices. See <a href=\"#considerations\">Considerations<\/a> for details.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Shopper journey<\/h2>\n<p>From the perspective of the shopper and the assistant, this click-and-collect use case is as follows.<\/p>\n<p>On the ecommerce site, the shopper logs in to their profile (if they have one), selects some items, and authorizes the payment. The shopper indicates they want another person, the \"assistant\", to pick up the items in-person at a store location. The shopper selects a location, and provides the email address or phone number of the assistant.<\/p>\n<p>The assistant receives an email or text message with instructions and a payment link for a zero amount. On the Ayden-hosted payment page, the assistant completes the zero-amount transaction.<\/p>\n<p>The assistant then goes to the store to pick up the order. The assistant identifies themselves at the terminal by presenting (tapping) the same card that was used for the payment link, and receives the order. The assistant then hands over the order to the shopper.<\/p>\n<p>The following diagram illustrates this shopper journey.<\/p>\n<div id=\"mermaid-6a9e9a6935dab-wrapper\"><div id=\"mermaid-6a9e9a6935dab\" class=\"mermaid-shortcode loading\">CmdyYXBoIExSCiAgICBBKChTaG9wcGVyOjxicj5idXkgb25saW5lKSk6OjpzdGVwU3R5bGUgLS0+IEJbU2hvcHBlcjogc2VsZWN0IHBpY2t1cCBzdG9yZTxicj5hbmQgZW50ZXIgYXNzaXN0YW50J3M8YnI+ZW1haWwgb3IgcGhvbmUgbnVtYmVyXTo6OnN0ZXBTdHlsZQogICAgQiAtLT4gQ1tBc3Npc3RhbnQ6IGNvbXBsZXRlIHBheW1lbnQ8YnI+bGluayBmb3IgemVybyBhbW91bnRdOjo6c3RlcFN0eWxlCiAgICBDIC0tPiBFW0Fzc2lzdGFudDogYXQgcGlja3VwLCBpZGVudGlmeTxicj50aHJvdWdoIHBheW1lbnQgY2FyZF06OjpzdGVwU3R5bGUKICAgIEUgLS0+IEdbQXNzaXN0YW50OiByZWNlaXZlIDxicj5pdGVtcyBhdCBwaWNrdXBdOjo6c3RlcFN0eWxlCiAgICBHIC0tPiBIKChTaG9wcGVyOjxicj5yZWNlaXZlIGZyb208YnI+YXNzaXN0YW50KSk6OjpmaW5hbFN0eWxlCgolJSBTdHlsZXMKICAgIGNsYXNzRGVmIHRvcFN0eWxlIGZpbGw6IzAwMCxzdHJva2U6IzAwMCxjb2xvcjojZmZmCiAgICBjbGFzc0RlZiBjYXRlZ29yeVN0eWxlIGZpbGw6IzQ0NCxzdHJva2U6IzMzMyxjb2xvcjojZmZmCiAgICBjbGFzc0RlZiBzdGVwU3R5bGUgZmlsbDojZmZmLHN0cm9rZTojMGFiZjUzLHN0cm9rZS13aWR0aDoycHgsY29sb3I6IzAwMAogICAgY2xhc3NEZWYgZmluYWxTdHlsZSBmaWxsOiMwYWJmNTMsc3Ryb2tlOiMwNzhkM2UsY29sb3I6IzAwMAoK<\/div><\/div>\n<h2 id=\"considerations\">Considerations<\/h2>\n<p>Before you set up a flow for this use case, there are a couple of points that you must be aware of or make a decision on.<\/p>\n<h3>Shopper attribution<\/h3>\n<p>You need to decide beforehand on how you will attribute the sale: if items are ordered online and the payment is captured at pick-up in the store, is this an in-store sale or an ecommerce sale?<\/p>\n<h3>Capture settings<\/h3>\n<p>This use case requires manual capture. The payment is not captured at the time of ordering \u2014 capture only happens when the assistant picks up the order in-store.<\/p>\n<p><div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/online-payments\/capture\" target=\"_blank\">Capture<\/a><\/p>\n<h3>Identification of the assistant<\/h3>\n<p>To make sure the right person is picking up the order, this use case identifies the assistant through a combination of Pay by Link and card acquisition.<\/p>\n<p>First a payment link for a zero amount is sent to the assistant. No payment is taken; only the assistant's card identifiers (card alias and\/or Payment Account Reference (PAR)) are obtained and saved in the shopper's profile. This requires setting up Pay by Link in the Customer Area, and implementing payment links using API calls<br \/>\n<div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/unified-commerce\/pay-by-link#add-your-terms-and-conditions\" target=\"_blank\">Pay by Link - Add your terms and conditions<\/a>, <a href=\"\/unified-commerce\/pay-by-link\/create-payment-links\/api\" target=\"_blank\">Create payment links<\/a><\/p>\n<p>At pickup, the assistant is asked to present the same card to the terminal, to obtain the card identifiers through card acquisition. The identifiers are then checked against the assistant's card identifiers that are saved in the shopper's profile.<\/p>\n<p><div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/point-of-sale\/card-acquisition\" target=\"_blank\">Card acquisition<\/a><\/p>\n<p>To identify the assistant in the described way, you must enable receiving shopper identifying data in API responses and webhook messages.<br \/>\n<div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/point-of-sale\/card-acquisition\/identifiers#receiving-identifiers-in-webhooks\" target=\"_blank\">Receive identifiers in webhooks<\/a> and <a href=\"\/point-of-sale\/card-acquisition\/identifiers#receiving-identifiers-in-responses\" target=\"_blank\">Receive identifiers in Terminal API responses<\/a><\/p>\n<h2>API flow<\/h2>\n<p>There are several Adyen API requests involved in the described shopper journey, as shown in the following diagram.<\/p>\n<div id=\"mermaid-6a9e9a6935daf-wrapper\"><div id=\"mermaid-6a9e9a6935daf\" class=\"mermaid-shortcode loading\">CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgRWNvbQogICAgcGFydGljaXBhbnQgRVJQCiAgICBwYXJ0aWNpcGFudCBBc3Npc3RhbnQKICAgIHBhcnRpY2lwYW50IFBPUwogICAgcGFydGljaXBhbnQgQWR5ZW4KCiAgICBTaG9wcGVyLT4+RWNvbTogUGxhY2Ugb3JkZXIgb25saW5lCiAgICBFY29tLT4+QWR5ZW46IENoZWNrb3V0IEFQSSBwYXltZW50IHJlcXVlc3QsIG1hbnVhbCBjYXB0dXJlCiAgICBBZHllbi0+PkVjb206IFBheW1lbnQgcmVzcG9uc2UKICAgIFNob3BwZXItPj5FY29tOiBDaG9vc2UgcGlja3VwIGxvY2F0aW9uIDxicj5hbmQgcHJvdmlkZSBhc3Npc3RhbnQncyBlbWFpbAogICAgRWNvbS0+PkVSUDogQWRkIGxvY2F0aW9uIGFuZCBlbWFpbC9waG9uZSB0byBvcmRlcgogICAgRWNvbS0+PkFkeWVuOiBQT1NUIC9wYXltZW50TGlua3MgcmVxdWVzdAogICAgQWR5ZW4tPj5FY29tOiBQYXltZW50IGxpbmsKICAgIEVjb20tPj5Bc3Npc3RhbnQ6IFNlbmQgcGF5bWVudCBsaW5rCiAgICBBc3Npc3RhbnQtPj5BZHllbjogQ29tcGxldGUgcGF5bWVudCBsaW5rCiAgICBBZHllbi0+PkVjb206IEFVVEhPUklTQVRJT04gd2ViaG9vawogICAgQXNzaXN0YW50LT4+UE9TOiBJZGVudGlmeSBhdCBwaWNrdXAKICAgIFBPUy0+PkFkeWVuOiBDYXJkIGFjcXVpc2l0aW9uIHJlcXVlc3QKICAgIEFkeWVuLT4+UE9TOiBDYXJkIGFjcXVpc2l0aW9uIHJlc3BvbnNlCiAgICBQT1MtPj5BZHllbjogRW5hYmxlIHNlcnZpY2UgcmVxdWVzdCB0byBzdG9wIGNhcmQgYWNxdWlzaXRpb24KICAgIEFkeWVuLT4+UE9TOiBFbmFibGUgc2VydmljZSByZXNwb25zZQogICAgUE9TLT4+RVJQOiBGaW5kIG9yZGVyCiAgICBFUlAtPj5QT1M6IE9yZGVyIGRldGFpbHMKICAgIFBPUy0+PkFkeWVuOiBNYW51YWwgY2FwdHVyZSByZXF1ZXN0CiAgICBBZHllbi0+PlBPUzogQ2FwdHVyZSByZXNwb25zZQoK<\/div><\/div>\n<h2>Instructions<\/h2>\n<p>This section provides high-level instructions focusing on how to use the Adyen APIs and webhooks in the described shopper journey.<\/p>\n<div class=\"notices green\">\n<p>The code samples show the minimally required parameters. You can add more parameters.<\/p>\n<\/div>\n<h4>Online purchase<\/h4>\n<p>If the shopper selected an option on your checkout to pick up their purchase at a (specific) physical location:<\/p>\n<ol>\n<li>\n<p>Make a Checkout API payment request, and handle any additional action to complete the authorization. Capture needs to be set to manual, either in the API request (like in the example below) or in your Customer Area for every payment.<br \/>\n<div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/online-payments\/build-your-integration\" target=\"_blank\">Online payments &gt; Build your integration<\/a>, <a href=\"\/online-payments\/capture#enable-manual-capture\" target=\"_blank\">Enable manual capture<\/a>.<\/p>\n\n<div id=\"tabMxTQ2\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Sessions flow payment request with manual capture&quot;,&quot;content&quot;:&quot;\\n&lt;pre&gt;&lt;code class=\\&quot;language-json\\&quot;&gt;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/sessions \\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\n-H \\&quot;idempotency-key: YOUR_IDEMPOTENCY_KEY\\&quot; \\\\\\n-H &#039;content-type: application\\\/json&#039; \\\\\\n-d &#039;{\\n  \\&quot;merchantAccount\\&quot;: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n     \\&quot;value\\&quot;: 12050,\\n     \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n  },\\n  \\&quot;returnUrl\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_PAYMENT_REFERENCE\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;US\\&quot;,\\n  \\&quot;additionalData\\&quot;: {\\n      \\&quot;manualCapture\\&quot;: \\&quot;true\\&quot;\\n  }\\n}&#039;&lt;\\\/code&gt;&lt;\\\/pre&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Advanced flow payment request with manual capture&quot;,&quot;content&quot;:&quot;\\n&lt;pre&gt;&lt;code class=\\&quot;language-json\\&quot;&gt;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments \\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\n-H &#039;content-type: application\\\/json&#039; \\\\\\n-d &#039;{\\n  \\&quot;merchantAccount\\&quot;: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n     \\&quot;currency\\&quot;: \\&quot;USD\\&quot;,\\n     \\&quot;value\\&quot;: 12050\\n  },\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_REFERENCE\\&quot;,\\n  \\&quot;paymentMethod\\&quot;:{\\n     \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n     \\&quot;encryptedCardNumber\\&quot;: \\&quot;test_4111111111111111\\&quot;,\\n     \\&quot;encryptedExpiryMonth\\&quot;: \\&quot;test_03\\&quot;,\\n     \\&quot;encryptedExpiryYear\\&quot;: \\&quot;test_2030\\&quot;,\\n     \\&quot;encryptedSecurityCode\\&quot;: \\&quot;test_737\\&quot;\\n  },\\n  \\&quot;returnUrl\\&quot;: \\&quot;https:\\\/\\\/your-company.example.com\\\/checkout?shopperOrder=12xy..\\&quot;,\\n  \\&quot;additionalData\\&quot;: {\\n      \\&quot;manualCapture\\&quot;: \\&quot;true\\&quot;\\n  }\\n}&#039;&lt;\\\/code&gt;&lt;\\\/pre&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<\/li>\n<li>\n<p>If the <code>resultCode<\/code> from the API response shows the payment is authorized, present an option on your checkout to let the shopper indicate another person is going to pick up the order.<\/p>\n<\/li>\n<li>\n<p>If the shopper selected pickup by another person (the \"assistant\"), add a UI element to provide the assistant's name and email address or phone number. You will need these details later to send a payment link to the assistant. Securely save the assistant's details in the shopper's profile in your system.<\/p>\n<div class=\"sc-notice info\"><div>\n<p>If the assistant's card details are at hand, you can alternatively add a UI element to collect the details directly. But in that case, you need to build an encryption solution to keep the card details secure.<\/p>\n<\/div><\/div>\n<\/li>\n<li>\n<p>Securely save the following details when you get the outcome of the payment in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/AUTHORISATION\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AUTHORISATION<\/a> webhook message. You will need these details later to capture the payment.<\/p>\n<ul>\n<li><code>pspReference<\/code>: The Adyen-generated unique reference for the transaction.<\/li>\n<li><code>amount<\/code>: The <code>currency<\/code> and <code>value<\/code> of the transaction.<\/li>\n<\/ul>\n<p>In addition, you can securely save the following details, for future recognition of <em>the shopper<\/em>:<\/p>\n<ul>\n<li><code>additionalData.alias<\/code>: The card alias uniquely represents the shopper's card number (PAN). This enables you to recognize the card that a shopper is using. You cannot use the card alias for making payments. For NFC wallet transactions, the card alias is not available.<\/li>\n<li><code>additionalData.PaymentAccountReference<\/code>: The payment account reference (PAR) represents the payment account that the card and\/or NFC wallet is linked to. It solves the issue with the PAN and alias not being available for NFC wallet transactions. Using the PAR, you can recognize the shopper.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h4>Payment link to assistant<\/h4>\n<p>To obtain the card details of the assistant, for later identification at pickup:<\/p>\n<ol>\n<li>\n<p>Make sure that in your Customer Area, the general Pay by Link settings are configured, including a link to your terms and conditions.<\/p>\n<p><div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/unified-commerce\/pay-by-link#add-your-terms-and-conditions\" target=\"_blank\">Pay by Link terms and conditions<\/a>, <a href=\"\/unified-commerce\/pay-by-link\/settings\" target=\"_blank\">Pay by Link settings<\/a>.<\/p>\n<\/li>\n<li>\n<p>Create a payment link for a zero amount.<\/p>\n<p><div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/unified-commerce\/pay-by-link\/create-payment-links\" target=\"_blank\">Create payment links<\/a>.<\/p>\n<p>Make a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/paymentLinks<\/a> request, specifying the following parameters:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Parameter<\/th>\n<th style=\"text-align: center;\">Required<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-reference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">reference<\/a><\/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: left;\">A string that enables you to associate the payment link with the order.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-amount\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">amount<\/a><\/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: left;\">Set the <code>value<\/code> to <strong>0<\/strong> (zero).<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-description\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">description<\/a><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">A text of no more than 280 characters to explain what the payment link is for. It is important that the assistant understands that the card will not be charged, and that the same card must be available when picking up the order. This text will appear on the payment page.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#request-allowedPaymentMethods\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">allowedPaymentMethods<\/a><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">An array set to <span translate=\"no\"><strong>scheme<\/strong><\/span>, to restrict the available payment methods to card schemes. This is necessary because at pickup you will use a card acquisition request on the terminal to recognize the assistant's card, and card acquisition only works with cards (and NFC wallets).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Zero amount payment link request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;json&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/paymentLinks \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_REFERENCE\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 0,\\n    \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n  },\\n  \\&quot;description\\&quot;: \\&quot;Use the card that you will present when picking up order {orderID}. Your card will not be charged, not now and not at pickup.\\&quot;,\\n  \\&quot;countryCode\\&quot;: \\&quot;US\\&quot;,\\n  \\&quot;merchantAccount\\&quot;: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;shopperLocale\\&quot;: \\&quot;en-US\\&quot;,\\n  \\&quot;allowedPaymentMethods\\&quot;: [\\n    \\&quot;scheme\\&quot;\\n  ]\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>From the <code>\/paymentLinks<\/code> response, save the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/paymentLinks#responses-201-url\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">url<\/a>. This is the payment link that you need to send to the assistant.<\/p>\n<\/li>\n<li>\n<p>Send the payment link to the assistant by email or text message. Consider adding an explanation about what the link is for and how the obtained information will be used.<\/p>\n<\/li>\n<li>\n<p>When you receive the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/AUTHORISATION\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AUTHORISATION<\/a> webhook message for the payment link:<\/p>\n<ol>\n<li>Find the order in your system, using the <code>additionalData.merchantReference<\/code>. This is the order reference that you used in the payment link request.<\/li>\n<li>Save the <code>additionalData.alias<\/code> and\/or <code>additionalData.PaymentAccountReference<\/code> with the order, under the assistant's details. This is the alias (and\/or PAR) for the card that the assistant used to complete the zero amount payment link.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<h4>In-store pickup<\/h4>\n<p>When the assistant arrives at the store to pick up the order:<\/p>\n<ol>\n<li>\n<p>To identify the assistant based on the card that was used to complete the payment link:<\/p>\n<ol>\n<li>\n<p>Make a Terminal API  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/cardacquisition\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CardAcquisitionRequest<\/a> with an empty <code>CardAcquisitionTransaction<\/code> object.<br \/>\n<div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n<a href=\"\/point-of-sale\/card-acquisition\" target=\"_blank\">Card acquisition<\/a><\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Card acquisition to recognize the card'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIRequest\\\": {\\n        \\\"MessageHeader\\\": {\\n            \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n            \\\"MessageClass\\\": \\\"Service\\\",\\n            \\\"MessageCategory\\\": \\\"CardAcquisition\\\",\\n            \\\"MessageType\\\": \\\"Request\\\",\\n            \\\"ServiceID\\\": \\\"282\\\",\\n            \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n            \\\"POIID\\\": \\\"AMS1-324688179\\\"\\n        },\\n        \\\"CardAcquisitionRequest\\\": {\\n            \\\"SaleData\\\": {\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TransactionID\\\": \\\"869\\\",\\n                    \\\"TimeStamp\\\": \\\"2026-02-10T12:30:00.134-06:00\\\"\\n                }\\n            },\\n            \\\"CardAcquisitionTransaction\\\": {}\\n        }\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>When you receive the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/cardacquisition#responses-200-Response\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CardAcquisitionResponse<\/a>, find the assistant and the order in your ERP system using the following information from the <code>response.AdditionalResponse<\/code>:<\/p>\n<ul>\n<li><code>PaymentAccountReference<\/code>: the PAR, if present.<\/li>\n<li><code>alias<\/code>: the card alias<\/li>\n<\/ul>\n<p>The following example shows the <code>AdditionalResponse<\/code> as a string of key-value pairs concatenated with an ampersand (<strong>&amp;<\/strong>). It is possible you receive a Base64-encoded string instead, which you need to Base64 decode first.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Card acquisition response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIResponse\\\": {\\n        \\\"CardAcquisitionResponse\\\": {\\n            \\\"POIData\\\": {\\n                \\\"POIReconciliationID\\\": \\\"1000\\\",\\n                \\\"POITransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2026-02-10T12:30:01.399-06:00\\\",\\n                    \\\"TransactionID\\\": \\\"BV0q001770726600000\\\"\\n                }\\n            },\\n            \\\"PaymentInstrumentData\\\": {\\n                \\\"CardData\\\": {\\n                    \\\"CardCountryCode\\\": \\\"840\\\",\\n                    \\\"MaskedPan\\\": \\\"510006 **** 0002\\\",\\n                    \\\"PaymentBrand\\\": \\\"mc\\\",\\n                    \\\"SensitiveCardData\\\": {\\n                        \\\"ExpiryDate\\\": \\\"1229\\\"\\n                    }\\n                },\\n                \\\"PaymentInstrumentType\\\": \\\"Card\\\"\\n            },\\n            \\\"Response\\\": {\\n                \\\"AdditionalResponse\\\": \\\"PaymentAccountReference=nmHL7QIKrz2cae0gjLTByTxIk76OX&amp;alias=P692729067643981&amp;...message=CARD_ACQ_COMPLETED...\\\",\\n                \\\"Result\\\": \\\"Success\\\"\\n            },\\n            \\\"SaleData\\\": {\\n                \\\"SaleTransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2026-02-10T12:29:58.765-06:00\\\",\\n                    \\\"TransactionID\\\": \\\"869\\\"\\n                }\\n            }\\n        },\\n        \\\"MessageHeader\\\": {\\n            \\\"MessageCategory\\\": \\\"CardAcquisition\\\",\\n            \\\"MessageClass\\\": \\\"Service\\\",\\n            \\\"MessageType\\\": \\\"Response\\\",\\n            \\\"POIID\\\": \\\"AMS1-324688179\\\",\\n            \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n            \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n            \\\"ServiceID\\\": \\\"981\\\"\\n        }\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>When you have confirmed that the assistant's card details match the assistant's details in the profile of the shopper, finish the card acquisition by making an  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/enableservice\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">EnableServiceRequest<\/a> to stop the flow.<br \/>\nConsider including a <code>DisplayOutput<\/code> object with an explanatory message for the assistant, as shown in the following example.<br \/>\n<div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n<a href=\"\/point-of-sale\/card-acquisition#cancel-completed\" target=\"_blank\">Finish with a cancellation<\/a><\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Stop the card acquisition flow'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\": {\\n      \\\"MessageHeader\\\": {\\n         \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n         \\\"MessageClass\\\": \\\"Service\\\",\\n         \\\"MessageCategory\\\": \\\"EnableService\\\",\\n         \\\"MessageType\\\": \\\"Request\\\",\\n         \\\"ServiceID\\\":\\\"3020711110\\\",\\n         \\\"SaleID\\\":\\\"POSSystemID12345\\\",\\n         \\\"POIID\\\":\\\"AMS1-324688179\\\"\\n      },\\n      \\\"EnableServiceRequest\\\": {\\n         \\\"TransactionAction\\\": \\\"AbortTransaction\\\",\\n         \\\"DisplayOutput\\\": {\\n            \\\"Device\\\": \\\"CustomerDisplay\\\",\\n            \\\"InfoQualify\\\": \\\"Display\\\",\\n            \\\"OutputContent\\\": {\\n               \\\"PredefinedContent\\\": {\\n                  \\\"ReferenceID\\\": \\\"AcceptedAnimated\\\"\\n               },\\n               \\\"OutputFormat\\\": \\\"Text\\\",\\n               \\\"OutputText\\\": [\\n                  {\\n                     \\\"Text\\\": \\\"Thank you!\\\"\\n                  },\\n                  {\\n                     \\\"Text\\\": \\\"We will get your order.\\\"\\n                  }\\n               ]\\n            }\\n         }\\n      }\\n   }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p>Make a manual capture request for the amount due:<br \/>\nSend a POST request to the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/{paymentPspReference}\/captures<\/a> endpoint, where <code>paymentPspReference<\/code> is the PSP reference from the AUTHORISATION webhook message that you received for the online purchase.<\/p>\n<div class=\"notices yellow\">\n<p>Do not use the AUTHORISATION webhook message that you received for the payment link.<\/p>\n<\/div>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Checkout API - Manual capture'\" :id=\"''\" :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\\\/DXCD52AY3WUGXS93\\\/captures \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n       \\&quot;merchantAccount\\&quot;: \\&quot;ADYEN_MERCHANT_ACCOUNT\\&quot;,\\n       \\&quot;amount\\&quot;: {\\n          \\&quot;currency\\&quot;: \\&quot;USD\\&quot;,\\n          \\&quot;value\\&quot;: 12050\\n       },\\n       \\&quot;reference\\&quot;: \\&quot;YOUR_ORDER_REFERENCE\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/industries\/feature-packs?industry=retail&amp;channel=omni&amp;target=_blank\"\n                        target=\"_self\"\n                        >\n                    Features per industry: Retail omnichannel\n                <\/a><\/li><li><a href=\"\/unified-commerce\/retail-use-cases\"\n                        target=\"_self\"\n                        >\n                    Other retail omnichannel use cases\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/unified-commerce\/retail-use-cases\/click-and-collect\/c-and-c-assistant-pickup","articleFields":{"description":"Click and collect: Buy items online and let an assistant pick up the order in a store.","type":"page","_expandable":{"operations":""}},"algolia":{"url":"https:\/\/docs.adyen.com\/unified-commerce\/retail-use-cases\/click-and-collect\/c-and-c-assistant-pickup","title":"Buy online, pick up by assistant","content":"This click-and-collect retail use case involves two participants:\n\nThe shopper who places the order online and authorizes the payment.\nAnother person, who we will refer to as the assistant, who picks up the order in the store. For example, the assistant can be a professional personal assistant, or a member of the same household.\n\nTo make sure the right person is picking up the order, some identifying non-financial card details of the assistant are collected beforehand in a secure way. Then, at pickup, the assistant only needs to tap their card on the payment terminal. In this way, you do not need to deal with sensitive data such as photo IDs and you do not waste time checking screenshots or paper copies of the order.\nThe payment is captured at pickup, using the authorization from the shopper who placed the order.\nRequirements\nBefore you begin, take into account the following information.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nYou must have both an ecommerce integration and a point-of-sale integration with Adyen.\n\n\nYour systems\nIt is essential to have (or create) a consolidated order\/inventory management or ERP system. Or alternatively, you must have an orchestration layer that communicates with your various sub-systems and can consume webhook messages. This is because your POS system needs to be able to update the online inventory in case of a pickup, sale, or return.\n\n\nPreparation\nWe recommend familiarizing yourself with specific concepts so that you can make informed decisions about integration choices. See Considerations for details.\n\n\n\nShopper journey\nFrom the perspective of the shopper and the assistant, this click-and-collect use case is as follows.\nOn the ecommerce site, the shopper logs in to their profile (if they have one), selects some items, and authorizes the payment. The shopper indicates they want another person, the \"assistant\", to pick up the items in-person at a store location. The shopper selects a location, and provides the email address or phone number of the assistant.\nThe assistant receives an email or text message with instructions and a payment link for a zero amount. On the Ayden-hosted payment page, the assistant completes the zero-amount transaction.\nThe assistant then goes to the store to pick up the order. The assistant identifies themselves at the terminal by presenting (tapping) the same card that was used for the payment link, and receives the order. The assistant then hands over the order to the shopper.\nThe following diagram illustrates this shopper journey.\nCmdyYXBoIExSCiAgICBBKChTaG9wcGVyOjxicj5idXkgb25saW5lKSk6OjpzdGVwU3R5bGUgLS0+IEJbU2hvcHBlcjogc2VsZWN0IHBpY2t1cCBzdG9yZTxicj5hbmQgZW50ZXIgYXNzaXN0YW50J3M8YnI+ZW1haWwgb3IgcGhvbmUgbnVtYmVyXTo6OnN0ZXBTdHlsZQogICAgQiAtLT4gQ1tBc3Npc3RhbnQ6IGNvbXBsZXRlIHBheW1lbnQ8YnI+bGluayBmb3IgemVybyBhbW91bnRdOjo6c3RlcFN0eWxlCiAgICBDIC0tPiBFW0Fzc2lzdGFudDogYXQgcGlja3VwLCBpZGVudGlmeTxicj50aHJvdWdoIHBheW1lbnQgY2FyZF06OjpzdGVwU3R5bGUKICAgIEUgLS0+IEdbQXNzaXN0YW50OiByZWNlaXZlIDxicj5pdGVtcyBhdCBwaWNrdXBdOjo6c3RlcFN0eWxlCiAgICBHIC0tPiBIKChTaG9wcGVyOjxicj5yZWNlaXZlIGZyb208YnI+YXNzaXN0YW50KSk6OjpmaW5hbFN0eWxlCgolJSBTdHlsZXMKICAgIGNsYXNzRGVmIHRvcFN0eWxlIGZpbGw6IzAwMCxzdHJva2U6IzAwMCxjb2xvcjojZmZmCiAgICBjbGFzc0RlZiBjYXRlZ29yeVN0eWxlIGZpbGw6IzQ0NCxzdHJva2U6IzMzMyxjb2xvcjojZmZmCiAgICBjbGFzc0RlZiBzdGVwU3R5bGUgZmlsbDojZmZmLHN0cm9rZTojMGFiZjUzLHN0cm9rZS13aWR0aDoycHgsY29sb3I6IzAwMAogICAgY2xhc3NEZWYgZmluYWxTdHlsZSBmaWxsOiMwYWJmNTMsc3Ryb2tlOiMwNzhkM2UsY29sb3I6IzAwMAoK\nConsiderations\nBefore you set up a flow for this use case, there are a couple of points that you must be aware of or make a decision on.\nShopper attribution\nYou need to decide beforehand on how you will attribute the sale: if items are ordered online and the payment is captured at pick-up in the store, is this an in-store sale or an ecommerce sale?\nCapture settings\nThis use case requires manual capture. The payment is not captured at the time of ordering \u2014 capture only happens when the assistant picks up the order in-store.\n\n    \n        Reference:\n    \n\n Capture\nIdentification of the assistant\nTo make sure the right person is picking up the order, this use case identifies the assistant through a combination of Pay by Link and card acquisition.\nFirst a payment link for a zero amount is sent to the assistant. No payment is taken; only the assistant's card identifiers (card alias and\/or Payment Account Reference (PAR)) are obtained and saved in the shopper's profile. This requires setting up Pay by Link in the Customer Area, and implementing payment links using API calls\n\n    \n        Reference:\n    \n\n Pay by Link - Add your terms and conditions, Create payment links\nAt pickup, the assistant is asked to present the same card to the terminal, to obtain the card identifiers through card acquisition. The identifiers are then checked against the assistant's card identifiers that are saved in the shopper's profile.\n\n    \n        Reference:\n    \n\n Card acquisition\nTo identify the assistant in the described way, you must enable receiving shopper identifying data in API responses and webhook messages.\n\n    \n        Reference:\n    \n\n Receive identifiers in webhooks and Receive identifiers in Terminal API responses\nAPI flow\nThere are several Adyen API requests involved in the described shopper journey, as shown in the following diagram.\nCnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgRWNvbQogICAgcGFydGljaXBhbnQgRVJQCiAgICBwYXJ0aWNpcGFudCBBc3Npc3RhbnQKICAgIHBhcnRpY2lwYW50IFBPUwogICAgcGFydGljaXBhbnQgQWR5ZW4KCiAgICBTaG9wcGVyLT4+RWNvbTogUGxhY2Ugb3JkZXIgb25saW5lCiAgICBFY29tLT4+QWR5ZW46IENoZWNrb3V0IEFQSSBwYXltZW50IHJlcXVlc3QsIG1hbnVhbCBjYXB0dXJlCiAgICBBZHllbi0+PkVjb206IFBheW1lbnQgcmVzcG9uc2UKICAgIFNob3BwZXItPj5FY29tOiBDaG9vc2UgcGlja3VwIGxvY2F0aW9uIDxicj5hbmQgcHJvdmlkZSBhc3Npc3RhbnQncyBlbWFpbAogICAgRWNvbS0+PkVSUDogQWRkIGxvY2F0aW9uIGFuZCBlbWFpbC9waG9uZSB0byBvcmRlcgogICAgRWNvbS0+PkFkeWVuOiBQT1NUIC9wYXltZW50TGlua3MgcmVxdWVzdAogICAgQWR5ZW4tPj5FY29tOiBQYXltZW50IGxpbmsKICAgIEVjb20tPj5Bc3Npc3RhbnQ6IFNlbmQgcGF5bWVudCBsaW5rCiAgICBBc3Npc3RhbnQtPj5BZHllbjogQ29tcGxldGUgcGF5bWVudCBsaW5rCiAgICBBZHllbi0+PkVjb206IEFVVEhPUklTQVRJT04gd2ViaG9vawogICAgQXNzaXN0YW50LT4+UE9TOiBJZGVudGlmeSBhdCBwaWNrdXAKICAgIFBPUy0+PkFkeWVuOiBDYXJkIGFjcXVpc2l0aW9uIHJlcXVlc3QKICAgIEFkeWVuLT4+UE9TOiBDYXJkIGFjcXVpc2l0aW9uIHJlc3BvbnNlCiAgICBQT1MtPj5BZHllbjogRW5hYmxlIHNlcnZpY2UgcmVxdWVzdCB0byBzdG9wIGNhcmQgYWNxdWlzaXRpb24KICAgIEFkeWVuLT4+UE9TOiBFbmFibGUgc2VydmljZSByZXNwb25zZQogICAgUE9TLT4+RVJQOiBGaW5kIG9yZGVyCiAgICBFUlAtPj5QT1M6IE9yZGVyIGRldGFpbHMKICAgIFBPUy0+PkFkeWVuOiBNYW51YWwgY2FwdHVyZSByZXF1ZXN0CiAgICBBZHllbi0+PlBPUzogQ2FwdHVyZSByZXNwb25zZQoK\nInstructions\nThis section provides high-level instructions focusing on how to use the Adyen APIs and webhooks in the described shopper journey.\n\nThe code samples show the minimally required parameters. You can add more parameters.\n\nOnline purchase\nIf the shopper selected an option on your checkout to pick up their purchase at a (specific) physical location:\n\n\nMake a Checkout API payment request, and handle any additional action to complete the authorization. Capture needs to be set to manual, either in the API request (like in the example below) or in your Customer Area for every payment.\n\n    \n        Reference:\n    \n\n Online payments &gt; Build your integration, Enable manual capture.\n\n\n    \n        \n        \n    \n\n\n\n\nIf the resultCode from the API response shows the payment is authorized, present an option on your checkout to let the shopper indicate another person is going to pick up the order.\n\n\nIf the shopper selected pickup by another person (the \"assistant\"), add a UI element to provide the assistant's name and email address or phone number. You will need these details later to send a payment link to the assistant. Securely save the assistant's details in the shopper's profile in your system.\n\nIf the assistant's card details are at hand, you can alternatively add a UI element to collect the details directly. But in that case, you need to build an encryption solution to keep the card details secure.\n\n\n\nSecurely save the following details when you get the outcome of the payment in the  AUTHORISATION webhook message. You will need these details later to capture the payment.\n\npspReference: The Adyen-generated unique reference for the transaction.\namount: The currency and value of the transaction.\n\nIn addition, you can securely save the following details, for future recognition of the shopper:\n\nadditionalData.alias: The card alias uniquely represents the shopper's card number (PAN). This enables you to recognize the card that a shopper is using. You cannot use the card alias for making payments. For NFC wallet transactions, the card alias is not available.\nadditionalData.PaymentAccountReference: The payment account reference (PAR) represents the payment account that the card and\/or NFC wallet is linked to. It solves the issue with the PAN and alias not being available for NFC wallet transactions. Using the PAR, you can recognize the shopper.\n\n\n\nPayment link to assistant\nTo obtain the card details of the assistant, for later identification at pickup:\n\n\nMake sure that in your Customer Area, the general Pay by Link settings are configured, including a link to your terms and conditions.\n\n    \n        Reference:\n    \n\n Pay by Link terms and conditions, Pay by Link settings.\n\n\nCreate a payment link for a zero amount.\n\n    \n        Reference:\n    \n\n Create payment links.\nMake a POST  \/paymentLinks request, specifying the following parameters:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\n reference\n\nA string that enables you to associate the payment link with the order.\n\n\n amount\n\nSet the value to 0 (zero).\n\n\n description\n\nA text of no more than 280 characters to explain what the payment link is for. It is important that the assistant understands that the card will not be charged, and that the same card must be available when picking up the order. This text will appear on the payment page.\n\n\n allowedPaymentMethods\n\nAn array set to scheme, to restrict the available payment methods to card schemes. This is necessary because at pickup you will use a card acquisition request on the terminal to recognize the assistant's card, and card acquisition only works with cards (and NFC wallets).\n\n\n\n\n\n\n\n\nFrom the \/paymentLinks response, save the  url. This is the payment link that you need to send to the assistant.\n\n\nSend the payment link to the assistant by email or text message. Consider adding an explanation about what the link is for and how the obtained information will be used.\n\n\nWhen you receive the  AUTHORISATION webhook message for the payment link:\n\nFind the order in your system, using the additionalData.merchantReference. This is the order reference that you used in the payment link request.\nSave the additionalData.alias and\/or additionalData.PaymentAccountReference with the order, under the assistant's details. This is the alias (and\/or PAR) for the card that the assistant used to complete the zero amount payment link.\n\n\n\nIn-store pickup\nWhen the assistant arrives at the store to pick up the order:\n\n\nTo identify the assistant based on the card that was used to complete the payment link:\n\n\nMake a Terminal API  CardAcquisitionRequest with an empty CardAcquisitionTransaction object.\n\n    \n        Reference:\n    \n\nCard acquisition\n\n\n\n\n\nWhen you receive the  CardAcquisitionResponse, find the assistant and the order in your ERP system using the following information from the response.AdditionalResponse:\n\nPaymentAccountReference: the PAR, if present.\nalias: the card alias\n\nThe following example shows the AdditionalResponse as a string of key-value pairs concatenated with an ampersand (&amp;). It is possible you receive a Base64-encoded string instead, which you need to Base64 decode first.\n\n\n\n\n\nWhen you have confirmed that the assistant's card details match the assistant's details in the profile of the shopper, finish the card acquisition by making an  EnableServiceRequest to stop the flow.\nConsider including a DisplayOutput object with an explanatory message for the assistant, as shown in the following example.\n\n    \n        Reference:\n    \n\nFinish with a cancellation\n\n\n\n\n\n\n\nMake a manual capture request for the amount due:\nSend a POST request to the  \/payments\/{paymentPspReference}\/captures endpoint, where paymentPspReference is the PSP reference from the AUTHORISATION webhook message that you received for the online purchase.\n\nDo not use the AUTHORISATION webhook message that you received for the payment link.\n\n\n\n\n\n\nSee also\n\n\n                    Features per industry: Retail omnichannel\n                \n                    Other retail omnichannel use cases\n                \n","type":"page","locale":"en","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Omnichannel","lvl2":"Retail use cases","lvl3":"Click and collect","lvl4":"Buy online, pick up by assistant"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/unified-commerce","lvl2":"https:\/\/docs.adyen.com\/unified-commerce\/retail-use-cases","lvl3":"https:\/\/docs.adyen.com\/unified-commerce\/retail-use-cases\/click-and-collect","lvl4":"\/unified-commerce\/retail-use-cases\/click-and-collect\/c-and-c-assistant-pickup"},"levels":5,"category":"Omnichannel","category_color":"green","tags":["online,","assistant"]}}
