{"title":"Order in store, ship to home","category":"default","creationDate":1788778638,"content":"<p>In this Endless Aisle retail use case, online items are ordered in a store or other physical location, and authorized using a payment terminal. The order is then shipped to the shopper's address, either in one go or in several partial shipments. The payment is captured when the order is shipped. In case of partial shipments, there will be corresponding partial captures.<\/p>\n<p>This use case also covers a \"mixed basket\", where the shopper adds items that are available at the store to the ordered online items. The payment for the in-store items is captured on the spot. The payment for the ordered items is captured later, when the items are shipped.<\/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 shoppers may return items to the store or to the warehouse, and both systems need to be able to update the inventory in case of a 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 shopper's perspective, this Endless Aisle retail use case is as follows.<\/p>\n<p>In the store, it turns out that items that the shopper wants to purchase are not available at the location. Store staff helps the shopper to order the items online. If desired, the shopper can combine the order with purchasing items from the store that do not need to be ordered.<\/p>\n<p>The shopper presents their card on the payment terminal, and confirms or provides the delivery address. When the order is shipped, the payment is captured and the shopper receives the ordered goods.<\/p>\n<p>The following diagram illustrates this shopper journey.<\/p>\n<div id=\"mermaid-6a9e9a671c57b-wrapper\"><div id=\"mermaid-6a9e9a671c57b\" class=\"mermaid-shortcode loading\">CmdyYXBoIExSCiAgICBBKChPcmRlciBpbi1zdG9yZSkpOjo6c3RlcFN0eWxlIC0tPiBCe0FkZDxicj5hdmFpbGFibGU8YnI+aXRlbXM\/fTo6OnN0ZXBTdHlsZQogICAgQiAtLSBZZXMgLS0+IENbUHJlc2VudDxicj5jYXJkIG9uPGJyPnRlcm1pbmFsXTo6OnN0ZXBTdHlsZQogICAgQiAtLSBObyAtLT4gQ1tQcmVzZW50PGJyPmNhcmQgb248YnI+dGVybWluYWxdOjo6c3RlcFN0eWxlCiAgICBDIC0tPiBEW0NvbmZpcm08YnI+ZGVsaXZlcnk8YnI+YWRkcmVzc106OjpzdGVwU3R5bGUKICAgIEQgLS0+IEUoKFJlY2VpdmU8YnI+ZGVsaXZlcnkpKTo6OmZpbmFsU3R5bGUKCiUlIFN0eWxlcwogICAgY2xhc3NEZWYgdG9wU3R5bGUgZmlsbDojMDAwLHN0cm9rZTojMDAwLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIGNhdGVnb3J5U3R5bGUgZmlsbDojNDQ0LHN0cm9rZTojMzMzLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIHN0ZXBTdHlsZSBmaWxsOiNmZmYsc3Ryb2tlOiMwYWJmNTMsc3Ryb2tlLXdpZHRoOjJweCxjb2xvcjojMDAwCiAgICBjbGFzc0RlZiBmaW5hbFN0eWxlIGZpbGw6IzBhYmY1MyxzdHJva2U6IzA3OGQzZSxjb2xvcjojMDAwCg==<\/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>Legal entity and location<\/h3>\n<p>In this use case, you use the payment terminal to authorize the online order.<\/p>\n<p>If you want to process your Endless Aisle online transactions over a different merchant account than the regular in-person transactions, ask your Ayden Account Manager or Implementation Engineer about <em>Merchant Account Sharing<\/em>. With this, orders for both merchant accounts are processed on the same terminal, but kept separate. Enabling Merchant Account Sharing is subject to compliance approval. Terminals require a local legal entity.<\/p>\n<p>If compliance approval is not given, you have other options to keep the transactions separate:<\/p>\n<ul>\n<li>You can use separate terminals for regular in-store transactions and Endless Aisle transactions.<\/li>\n<li>Or you can set up multiple stores under the same merchant account. This keeps the reporting simple.<\/li>\n<li>Alternatively, instead of authorizing Endless Aisle online orders on a payment terminal, you can use Pay by Link payment links.<\/li>\n<\/ul>\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\" target=\"_blank\">Pay by Link<\/a><\/p>\n<h3>Capture settings<\/h3>\n<p>This use case requires specific procedures to capture the payment. You must enable and use manual capture, and 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 multiple partial captures.<\/p>\n<p>For the ordered items, the amount is initially authorized, but not captured. When the items are shipped from the warehouse, you make a manual capture request. If all items are shipped together, you capture the full amount. If items are delivered in several partial shipments, you make a partial capture request for each shipment.<\/p>\n<p>It depends on your other use cases whether it is best to enable manual capture for every payment, or in the API request for an individual payment.<\/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#enable-manual-capture\" target=\"_blank\">Enable manual capture<\/a>, <a href=\"\/online-payments\/capture#partial-capture\" target=\"_blank\">Partial manual capture<\/a>, <a href=\"\/online-payments\/capture#capture-a-payment\" target=\"_blank\">Capture a payment<\/a><\/p>\n<h3>Mixed baskets<\/h3>\n<p>If you want to support mixed baskets, where the shopper combines an online order with items that are available in the store, we recommend discussing your Adyen account structure and capture strategy with your Adyen implementation engineer or account manager.<\/p>\n<p>You have the following options for capturing the payment:<\/p>\n<ul>\n<li>\n<p>One transaction with multiple partial captures: this option requires that online and in-store items are processed under the same merchant account.<br \/>\nYou authorize the full amount of both the online order and the point-of-sale items, and make a partial capture request for the in-store items. Later, you make one or more partial captures as the ordered items are shipped.<\/p>\n<\/li>\n<li>\n<p>Two separate transactions: you authorize the online order and capture the amount later as ordered items are shipped. For the in-store items, you make a separate payment request and capture the amount immediately or with a capture delay.<\/p>\n<\/li>\n<\/ul>\n<p><div data-component-wrapper=\"tag\">\n    <tag :variant=&quot;success&quot;>\n        Reference:\n    <\/tag>\n<\/div>\n <a href=\"\/unified-commerce\/retail-use-cases\/mixed-baskets-accounts\">Account structures for mixed baskets<\/a>, <a href=\"\/point-of-sale\/capturing-payments#delayed-automatic-capture\" target=\"_blank\">Delayed automatic capture<\/a>. Also see the references under \"Capture\" above.<\/p>\n<h3>Delivery address<\/h3>\n<p>To get the delivery address you use a \"card acquisition\" request: the shopper presents their card or other payment instrument to the payment terminal. You then use the card alias or PAR from the response to look up the delivery address in your CRM system and add the address to the order.<\/p>\n<p>To use card acquisition in this way, you must enable receiving shopper identifying data in API responses, and you must store the card alias and\/or PAR in the shopper's profile.<\/p>\n<p>If the shopper wants the order to be delivered to a different address or does not have a record in your CRM system yet, the CRM must also support manual entry of shopper details and creation of a new CRM record.<\/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>, <a href=\"\/point-of-sale\/card-acquisition\/identifiers#receiving-identifiers-in-responses\" target=\"_blank\">Receive card and shopper identifiers<\/a>.<\/p>\n<h3>Sale attribution<\/h3>\n<p>You need to decide beforehand on how you will attribute the sale: if items are ordered in-store and the payment is captured upon shipment, is this an in-store sale or an ecommerce sale?<\/p>\n<h3>Refunds and discounts<\/h3>\n<p>If the shopper does not want a delivered item, the item may be returned to the store or to the warehouse. Both systems must be able to look up the PSP reference for the order and issue a (partial) referenced refund. You need to support both:<\/p>\n<ul>\n<li><strong>Terminal API<\/strong> referenced refunds from the POS to the terminal for returns brought to the store.<\/li>\n<li><strong>Checkout API<\/strong> referenced refunds for returns sent to the warehouse.<\/li>\n<\/ul>\n<p>If discounts are offered over the phone or chat, customer service agents must be able to trigger partial referenced refunds as well.<\/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\/basic-tapi-integration\/refund-payment\/referenced\" target=\"_blank\">Terminal API partial referenced refund<\/a>, <a href=\"\/online-payments\/refund\" target=\"_blank\">Checkout API refund<\/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 diagrams for:<\/p>\n<ul>\n<li>The flow without mixed baskets and the flow with mixed baskets as a single transaction. These flows are very similar.<\/li>\n<li>The flow with a mixed basket as two separate transactions.<\/li>\n<\/ul>\n<p>The next section, \"Instructions\", provides more details about the API flow.<\/p>\n<h3>No mixed basket or mixed basket as one transaction<\/h3>\n<div id=\"mermaid-6a9e9a671c57f-wrapper\"><div id=\"mermaid-6a9e9a671c57f\" class=\"mermaid-shortcode loading\">CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgRVJQCiAgICBwYXJ0aWNpcGFudCBQT1MKICAgIHBhcnRpY2lwYW50IEFkeWVuCgogICAgU2hvcHBlci0+PkVSUDogT3JkZXIgb25saW5lIGl0ZW1zCiAgICBvcHQKICAgICAgICBTaG9wcGVyLT4+UE9TOiBNaXhlZCBiYXNrZXQ6IEFkZCBpbi1zdG9yZSBpdGVtcwogICAgZW5kCiAgICBTaG9wcGVyLT4+UE9TOiBBdXRob3JpemUgdHJhbnNhY3Rpb24KICAgIFBPUy0+PkFkeWVuOiBDYXJkIGFjcXVpc2l0aW9uIHJlcXVlc3QgZm9yIHdob2xlIGJhc2tldAogICAgQWR5ZW4tPj5QT1M6IENhcmQgYWNxdWlzaXRpb24gcmVzcG9uc2UKICAgIFBPUy0+PkVSUDogTG9vayB1cC9lbnRlciBkZWxpdmVyeSBhZGRyZXNzLCBhZGQgdG8gb3JkZXIKICAgIFBPUy0+PkFkeWVuOiBUZXJtaW5hbCBBUEkgcGF5bWVudCByZXF1ZXN0IHdpdGggbWFudWFsIGNhcHR1cmUKICAgIEFkeWVuLT4+UE9TOiBQYXltZW50IHJlc3BvbnNlCiAgICBvcHQgTWl4ZWQgYmFza2V0OiBJbi1zdG9yZSBpdGVtcyBhZGRlZAogICAgICAgIFBPUy0+PkFkeWVuOiBQYXJ0aWFsIG1hbnVhbCBjYXB0dXJlIG9mIGluLXN0b3JlIGl0ZW1zCiAgICAgICAgQWR5ZW4tPj5QT1M6IENhcHR1cmUgcmVzcG9uc2UKICAgIGVuZAogICAgRVJQLT4+U2hvcHBlcjogU2hpcCBvcmRlcgogICAgRVJQLT4+QWR5ZW46IFBhcnRpYWwgbWFudWFsIGNhcHR1cmUgb2Ygb25saW5lIGl0ZW1zCiAgICBBZHllbi0+PkVSUDogQ2FwdHVyZSByZXNwb25zZQogICAgb3B0IFJldHVybiB0byBzdG9yZQogICAgICAgIFNob3BwZXItLT4+UE9TOiBSZXR1cm4gaXRlbXMKICAgICAgICBQT1MtPj5BZHllbjogVGVybWluYWwgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5QT1M6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCiAgICBvcHQgUmV0dXJuIHRvIHdhcmVob3VzZQogICAgICAgIFNob3BwZXItLT4+RVJQOiBSZXR1cm4gaXRlbXMKICAgICAgICBFUlAtPj5BZHllbjogQ2hlY2tvdXQgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5FUlA6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCg==<\/div><\/div>\n<h3>Mixed basket as two transactions<\/h3>\n<p>We usually recommend delayed automatic capture for point-of-sale transactions. That is why the diagram shows automatic capture for the separate payment request related to the in-store items.<\/p>\n<div id=\"mermaid-6a9e9a671c581-wrapper\"><div id=\"mermaid-6a9e9a671c581\" class=\"mermaid-shortcode loading\">CnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgRVJQCiAgICBwYXJ0aWNpcGFudCBQT1MKICAgIHBhcnRpY2lwYW50IEFkeWVuCgogICAgU2hvcHBlci0+PkVSUDogT3JkZXIgb25saW5lIGl0ZW1zCiAgICBTaG9wcGVyLT4+UE9TOiBBZGQgaW4tc3RvcmUgaXRlbXMKICAgIFNob3BwZXItPj5QT1M6IEF1dGhvcml6ZSB0cmFuc2FjdGlvbgogICAgUE9TLT4+QWR5ZW46IENhcmQgYWNxdWlzaXRpb24gcmVxdWVzdAogICAgQWR5ZW4tPj5QT1M6IENhcmQgYWNxdWlzaXRpb24gcmVzcG9uc2UKICAgIFBPUy0+PkVSUDogTG9vayB1cC9lbnRlciBkZWxpdmVyeSBhZGRyZXNzLCBhZGQgdG8gb3JkZXIKICAgIG5vdGUgb3ZlciBQT1MsIEFkeWVuOiBObyBjYXB0dXJlIHlldCBvZiBvbmxpbmUgaXRlbXMKICAgIFBPUy0+PkFkeWVuOiBUZXJtaW5hbCBBUEkgcGF5bWVudCByZXF1ZXN0IDEgZm9yIG9ubGluZSBpdGVtcywgd2l0aCBtYW51YWwgY2FwdHVyZQogICAgQWR5ZW4tPj5QT1M6IFBheW1lbnQgcmVzcG9uc2UgMQogICAgbm90ZSBvdmVyIFBPUywgQWR5ZW46IEltbWVkaWF0ZSBvciBkZWxheWVkIGF1dG9tYXRpYyBjYXB0dXJlIG9mIGluLXN0b3JlIGl0ZW1zCiAgICBQT1MtPj5BZHllbjogVGVybWluYWwgQVBJIHBheW1lbnQgcmVxdWVzdCAyIGZvciBpbi1zdG9yZSBpdGVtcwogICAgQWR5ZW4tPj5QT1M6IFBheW1lbnQgcmVzcG9uc2UgMiB3aXRoIGF1dG9tYXRpYyBjYXB0dXJlCiAgICBFUlAtPj5TaG9wcGVyOiBTaGlwIG9yZGVyCiAgICBFUlAtPj5BZHllbjogTWFudWFsIGNhcHR1cmUgb2Ygb25saW5lIGl0ZW1zCiAgICBBZHllbi0+PkVSUDogQ2FwdHVyZSByZXNwb25zZQogICAgb3B0IFJldHVybiB0byBzdG9yZQogICAgICAgIFNob3BwZXItLT4+UE9TOiBSZXR1cm4gaXRlbXMKICAgICAgICBQT1MtPj5BZHllbjogVGVybWluYWwgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5QT1M6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCiAgICBvcHQgUmV0dXJuIHRvIHdhcmVob3VzZQogICAgICAgIFNob3BwZXItLT4+RVJQOiBSZXR1cm4gaXRlbXMKICAgICAgICBFUlAtPj5BZHllbjogQ2hlY2tvdXQgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5FUlA6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCg==<\/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>Delivery address<\/h4>\n<p>After the shopper has ordered the online items:<\/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> where the <code>CardAcquisitionTransaction<\/code> object contains the <code>TotalAmount<\/code> field with the purchase amount for the ordered items and, if you support mixed baskets as a single transaction, any items from the store.<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'\" :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               \\\"TotalAmount\\\": 124.66\\n            }\\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>, save the following information:<\/p>\n<ul>\n<li><code>AdditionalResponse.PaymentAccountReference<\/code>: the PAR, if present.<\/li>\n<li><code>AdditionalResponse.alias<\/code>: the card alias.<\/li>\n<li>The <code>TimeStamp<\/code> and <code>TransactionID<\/code> from the <code>POIData.POITransactionID<\/code> object. You need these values later, when you authorize the transaction.<\/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>Use the card alias and\/or PAR from the card acquisition response to look up the shopper's delivery address in your ERP system.<\/p>\n<\/li>\n<li>\n<p>If the shopper is found in the ERP system, let the shop assistant verify the delivery address with the shopper.<br \/>\nEnsure the shop assistant can:<\/p>\n<ul>\n<li>Update the delivery address if needed.<\/li>\n<li>Enter an additional delivery address if the shopper wants the order shipped to a different address.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>If the shopper is not found in the ERP system, add a record for the shopper to the ERP system with the card alias and\/or PAR from the card acquisition response, and the other details that you need, specifically the delivery address and the name of the shopper. You can collect those other details in various ways, for example:<\/p>\n<ul>\n<li>The shop assistant asks the shopper for the details.<\/li>\n<li>You collect the shopper's details on a secondary screen, for instance a tablet.<\/li>\n<li>You use <a href=\"\/point-of-sale\/shopper-engagement\/shopper-input\/\" target=\"_blank\">input requests<\/a>  to collect the shopper's details on the payment terminal.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Add the delivery address to the order.<\/p>\n<\/li>\n<\/ol>\n<h4>Authorization<\/h4>\n<ol>\n<li>\n<p>Make a Terminal API  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/terminal-api\/latest\/post\/payment\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">PaymentRequest<\/a> with:<\/p>\n<ul>\n<li>\n<p><code>PaymentData.CardAcquisitionReference<\/code>: an object with the <code>TimeStamp<\/code> and <code>TransactionID<\/code> returned in the <code>POIData.POITransactionID<\/code> object of the card acquisition response.<\/p>\n<\/li>\n<li>\n<p><code>PaymentTransaction.AmountsReq<\/code>: an object with the <code>Currency<\/code> and the <code>RequestedAmount<\/code>.<br \/>\nIf you support mixed baskets as a single transaction, use the total amount of the basket.<br \/>\nIf you support mixed baskets as two separate transactions, use only the amount of the ordered online items.<\/p>\n<\/li>\n<li>\n<p><code>SaleToAcquirerData<\/code>: a parameter with <span translate=\"no\"><strong>manualCapture<\/strong><\/span> set to <span translate=\"no\"><strong>true<\/strong><\/span> in one of the following formats:<\/p>\n<ul>\n<li>Option 1: A JSON object converted to a Base64-encoded string.<\/li>\n<li>Option 2: A key-value pair.<\/li>\n<\/ul>\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\/capturing-payments?tab=manual-individual-pos_2\" target=\"_blank\">Enable manual capture for a payment<\/a><\/p>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Terminal API - Payment setting the capture method to manual'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"SaleToPOIRequest\\\":{\\n      \\\"MessageHeader\\\":{\\n         \\\"ProtocolVersion\\\": \\\"3.0\\\",\\n         \\\"MessageClass\\\": \\\"Service\\\",\\n         \\\"MessageCategory\\\": \\\"Payment\\\",\\n         \\\"MessageType\\\": \\\"Request\\\",\\n         \\\"SaleID\\\": \\\"POSSystemID12345\\\",\\n         \\\"ServiceID\\\":\\\"0207111104\\\",\\n         \\\"POIID\\\": \\\"AMS1-324688179\\\"\\n      },\\n      \\\"PaymentRequest\\\": {\\n         \\\"SaleData\\\": {\\n            \\\"SaleTransactionID\\\": {\\n               \\\"TransactionID\\\": \\\"27908\\\",\\n               \\\"TimeStamp\\\": \\\"2026-02-10T12:30:03.122-06:00\\\"\\n            },\\n            \\\"SaleToAcquirerData\\\": \\\"manualCapture=true\\\"\\n         },\\n         \\\"PaymentTransaction\\\": {\\n            \\\"AmountsReq\\\": {\\n               \\\"Currency\\\": \\\"USD\\\",\\n               \\\"RequestedAmount\\\": 124.66\\n            }\\n         },\\n         \\\"PaymentData\\\": {\\n            \\\"CardAcquisitionReference\\\": {\\n               \\\"TimeStamp\\\": \\\"2026-02-10T12:30:01.399-06:00\\\",\\n               \\\"TransactionID\\\": \\\"BV0q001770726600000\\\"\\n            }\\n         }\\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 payment response, save the following details:<\/p>\n<ul>\n<li>\n<p><code>POITransactionID.TransactionID<\/code>: The transaction ID in the format <code>tenderReference.pspReference<\/code>, which includes the PSP reference. For example, in the transaction ID <strong>BV0q001765198054002.CWBC43ZX2VTFWR82<\/strong>, the PSP reference is <strong>CWBC43ZX2VTFWR82<\/strong>. The PSP reference is also provided in the <code>AdditionalResponse<\/code>.<\/p>\n<ul>\n<li>You need the PSP reference later for the capture request. You also need the PSP reference if the shopper returns items to the warehouse.<\/li>\n<li>You need the full transaction ID if the shopper returns items in-store.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>The payment date and time in the <code>POITransactionID.TimeStamp<\/code> field. You need the timestamp if the shopper returns items in-store.<\/p>\n<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Payment response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n \\\"SaleToPOIResponse\\\": {\\n   \\\"MessageHeader\\\": {...},\\n   \\\"PaymentResponse\\\": {\\n     \\\"POIData\\\": {\\n       \\\"POITransactionID\\\": {\\n         \\\"TimeStamp\\\": \\\"2026-02-10T12:30:05.314-06:00\\\",\\n         \\\"TransactionID\\\":\\\"BV0q001765198054002.CWBC43ZX2VTFWR82\\\"\\n       }\\n     },\\n     \\\"PaymentReceipt\\\": [...],\\n     \\\"PaymentResult\\\": {...},\\n     \\\"Response\\\": {\\n       \\\"AdditionalResponse\\\": \\\"...posAuthAmountCurrency=USD&amp;posAuthAmountValue=12466&amp;...pspReference=CWBC43ZX2VTFWR82...\\\",\\n       \\\"Result\\\": \\\"Success\\\"\\n     },\\n     \\\"SaleData\\\": {...}\\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>If you support mixed baskets as two separate transactions, make another Terminal API payment request for the in-store items.<br \/>\nIf your point-of-sale merchant account uses immediate or delayed capture by default (which we usually recommend), do not set manual capture in this payment request. Otherwise, see the next section, \"Capture\", and make a separate manual capture request for the in-store items.<\/p>\n<\/li>\n<\/ol>\n<h4>Captures and refunds<\/h4>\n<ol>\n<li>\n<p>If you support mixed baskets as a single transaction, make a partial manual capture request for the in-store items immediately after the payment request (see the next step for an example).<\/p>\n<\/li>\n<li>\n<p>When the order is shipped from the warehouse, make a manual capture request for the amount due:<\/p>\n<p>Send 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 of the authorization you want to capture.<br><\/p>\n<p>In your request, include:<\/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;\"><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 style=\"text-align: left;\">The name of your merchant account that is used to process the payment. This depends on how you <a href=\"#sale-attribution\">attribute the sale<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>amount.value<\/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 style=\"text-align: left;\">The amount in <a href=\"\/development-resources\/currency-codes\" target=\"_blank\">minor units<\/a> (without a decimal point) being captured. To capture the full amount, specify a <code>value<\/code> equal to the <code>requestedAmount<\/code> you authorized. <br> For a partial capture, specify a <code>value<\/code> less than the <code>requestedAmount<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Checkout API - Partial 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\\\/CWBC43ZX2VTFWR82\\\/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;: 6509\\n       },\\n       \\&quot;reference\\&quot;: \\&quot;YOUR_UNIQUE_REFERENCE\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>If the shopper returns one or more of the delivered items, issue a refund using the Terminal API if the items are returned in-store, or using the Checkout API if the items returned to the warehouse.<\/p>\n\n<div id=\"tabInkhs\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Terminal API&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Send a Terminal API  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/terminal-api\\\/latest\\\/post\\\/reversal\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;ReversalRequest&lt;\\\/a&gt; specifying the following details from the Terminal API payment response:&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;OriginalPOITransaction.POITransactionID&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;An object with: &lt;ul&gt;&lt;li markdown=\\&quot;1\\&quot;&gt;&lt;code&gt;TransactionID&lt;\\\/code&gt;: transaction identifier of the payment authorization in the format &lt;code&gt;tenderReference.pspReference&lt;\\\/code&gt;.&lt;\\\/li&gt; &lt;li markdown=\\&quot;1\\&quot;&gt;&lt;code&gt;TimeStamp&lt;\\\/code&gt;: date and time in &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_8601#Coordinated_Universal_Time_(UTC)\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;UTC format&lt;\\\/a&gt; of the payment authorization.&lt;\\\/li&gt;&lt;\\\/ul&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;ReversalReason&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Set to &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;MerchantCancel&lt;\\\/strong&gt;&lt;\\\/span&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;ReversedAmount&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Conditionally required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Conditionally required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/conditionally-required\\\/conditionally-required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Required for partial refunds. &lt;br&gt;The amount (provided as a number, not a string) being returned to the shopper in the partial refund. Must be smaller than or equal to the authorized amount.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;SaleData.SaleToAcquirerData&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Conditionally required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Conditionally required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/conditionally-required\\\/conditionally-required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Required for partial refunds. &lt;br&gt; The currency of the refund, in the format &lt;code&gt;currency=ABC&lt;\\\/code&gt; where &lt;code&gt;ABC&lt;\\\/code&gt; is the three-letter &lt;a href=\\&quot;\\\/development-resources\\\/currency-codes\\&quot; target=\\&quot;_blank\\&quot;&gt;currency code&lt;\\\/a&gt; of the payment authorization.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;SaleData.SaleTransactionID&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;An object with: &lt;ul&gt;&lt;li markdown=\\&quot;1\\&quot;&gt;&lt;code&gt;TransactionID&lt;\\\/code&gt;: your reference for the refund. In your Customer Area and Adyen reports, this will show as the &lt;strong&gt;merchant reference&lt;\\\/strong&gt;.&lt;\\\/li&gt; &lt;li markdown=\\&quot;1\\&quot;&gt;&lt;code&gt;TimeStamp&lt;\\\/code&gt;: date and time in &lt;a href=\\&quot;https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/ISO_8601#Coordinated_Universal_Time_(UTC)\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot; class=\\&quot;external-link no-image\\&quot;&gt;UTC format&lt;\\\/a&gt; of the refund.&lt;\\\/li&gt;&lt;\\\/ul&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Terminal API - Partial referenced refund of USD 30.53&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n   \\\\\\&quot;SaleToPOIRequest\\\\\\&quot;: {\\\\n      \\\\\\&quot;MessageHeader\\\\\\&quot;: {\\\\n         \\\\\\&quot;ProtocolVersion\\\\\\&quot;: \\\\\\&quot;3.0\\\\\\&quot;,\\\\n         \\\\\\&quot;MessageClass\\\\\\&quot;: \\\\\\&quot;Service\\\\\\&quot;,\\\\n         \\\\\\&quot;MessageCategory\\\\\\&quot;: \\\\\\&quot;Reversal\\\\\\&quot;,\\\\n         \\\\\\&quot;MessageType\\\\\\&quot;: \\\\\\&quot;Request\\\\\\&quot;,\\\\n         \\\\\\&quot;SaleID\\\\\\&quot;: \\\\\\&quot;POSSystemID12345\\\\\\&quot;,\\\\n         \\\\\\&quot;ServiceID\\\\\\&quot;: \\\\\\&quot;207111108\\\\\\&quot;,\\\\n         \\\\\\&quot;POIID\\\\\\&quot;: \\\\\\&quot;AMS1-324688179\\\\\\&quot;\\\\n      },\\\\n      \\\\\\&quot;ReversalRequest\\\\\\&quot;: {\\\\n         \\\\\\&quot;OriginalPOITransaction\\\\\\&quot;: {\\\\n            \\\\\\&quot;POITransactionID\\\\\\&quot;: {\\\\n               \\\\\\&quot;TransactionID\\\\\\&quot;: \\\\\\&quot;BV0q001765198054002.CWBC43ZX2VTFWR82\\\\\\&quot;,\\\\n               \\\\\\&quot;TimeStamp\\\\\\&quot;: \\\\\\&quot;2026-02-10T12:30:05.314-06:00\\\\\\&quot;\\\\n            }\\\\n         },\\\\n         \\\\\\&quot;ReversalReason\\\\\\&quot;: \\\\\\&quot;MerchantCancel\\\\\\&quot;,\\\\n         \\\\\\&quot;ReversedAmount\\\\\\&quot;: 30.53,\\\\n         \\\\\\&quot;SaleData\\\\\\&quot;: {\\\\n            \\\\\\&quot;SaleToAcquirerData\\\\\\&quot;: \\\\\\&quot;currency=USD\\\\\\&quot;,\\\\n            \\\\\\&quot;SaleTransactionID\\\\\\&quot;: {\\\\n               \\\\\\&quot;TimeStamp\\\\\\&quot;: \\\\\\&quot;2026-02-12T11:04:12.159-06:00\\\\\\&quot;,\\\\n               \\\\\\&quot;TransactionID\\\\\\&quot;: \\\\\\&quot;YOUR_UNIQUE_REFERENCE\\\\\\&quot;\\\\n            }\\\\n         }\\\\n      }\\\\n   }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;&lt;div data-component-wrapper=\\&quot;tag\\&quot;&gt;\\n    &lt;tag :variant=&amp;quot;success&amp;quot;&gt;\\n        Reference:\\n    &lt;\\\/tag&gt;\\n&lt;\\\/div&gt;\\n&lt;a href=\\&quot;\\\/point-of-sale\\\/basic-tapi-integration\\\/refund-payment\\\/referenced#refund-ecommerce-payment\\&quot; target=\\&quot;_blank\\&quot;&gt;Make a referenced refund&lt;\\\/a&gt;&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Checkout API&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Send a POST request to the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/refunds\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments\\\/{paymentPspReference}\\\/refunds&lt;\\\/a&gt; endpoint, specifying the PSP reference of the authorization in the path.&lt;\\\/p&gt;\\n&lt;table&gt;\\n&lt;thead&gt;\\n&lt;tr&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Parameter&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: center;\\&quot;&gt;Required&lt;\\\/th&gt;\\n&lt;th style=\\&quot;text-align: left;\\&quot;&gt;Description&lt;\\\/th&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/thead&gt;\\n&lt;tbody&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;merchantAccount&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;The name of your merchant account that is used to process the payment. This depends on how you &lt;a href=\\&quot;#sale-attribution\\&quot;&gt;attribute the sale&lt;\\\/a&gt;.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;amount&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;span class=\\&quot;hint--bottom\\&quot; data-hint=\\&quot;Required\\&quot; markdown=\\&quot;1\\&quot;&gt;&lt;img style=\\&quot;width: 25px;\\&quot; alt=\\&quot;Required\\&quot; src=\\&quot;\\\/user\\\/pages\\\/reuse\\\/image-library\\\/01.icons\\\/required\\\/required.svg?decoding=auto&amp;amp;fetchpriority=auto\\&quot; \\\/&gt;&lt;\\\/span&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;The amount that you want to refund. The &lt;code&gt;value&lt;\\\/code&gt; must be the same or less than the captured amount. The &lt;code&gt;currency&lt;\\\/code&gt; must match the currency used in the authorization.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;reference&lt;\\\/code&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: center;\\&quot;&gt;&lt;\\\/td&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;Your reference for the refund, for example to tag a partial refund for future reconciliation.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Checkout API - Partial referenced refund of USD 30.53&#039;\\&quot; :id=\\&quot;&#039;&#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\\\\\\\/v72\\\\\\\/payments\\\\\\\/CWBC43ZX2VTFWR82\\\\\\\/refunds \\\\\\\\\\\\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;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n      \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n         \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n         \\\\&amp;quot;value\\\\&amp;quot;: 3053\\\\n      },\\\\n      \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;\\\\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&lt;p&gt;&lt;div data-component-wrapper=\\&quot;tag\\&quot;&gt;\\n    &lt;tag :variant=&amp;quot;success&amp;quot;&gt;\\n        Reference:\\n    &lt;\\\/tag&gt;\\n&lt;\\\/div&gt;\\n&lt;a href=\\&quot;\\\/online-payments\\\/refund\\&quot; target=\\&quot;_blank\\&quot;&gt;Refund a payment&lt;\\\/a&gt;&lt;\\\/p&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<\/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\/endless-aisle\/e-a-ship-home","articleFields":{"description":"Endless aisle: Order in store and ship to home.","type":"page","_expandable":{"operations":""}},"algolia":{"url":"https:\/\/docs.adyen.com\/unified-commerce\/retail-use-cases\/endless-aisle\/e-a-ship-home","title":"Order in store, ship to home","content":"In this Endless Aisle retail use case, online items are ordered in a store or other physical location, and authorized using a payment terminal. The order is then shipped to the shopper's address, either in one go or in several partial shipments. The payment is captured when the order is shipped. In case of partial shipments, there will be corresponding partial captures.\nThis use case also covers a \"mixed basket\", where the shopper adds items that are available at the store to the ordered online items. The payment for the in-store items is captured on the spot. The payment for the ordered items is captured later, when the items are shipped.\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 shoppers may return items to the store or to the warehouse, and both systems need to be able to update the inventory in case of a 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 shopper's perspective, this Endless Aisle retail use case is as follows.\nIn the store, it turns out that items that the shopper wants to purchase are not available at the location. Store staff helps the shopper to order the items online. If desired, the shopper can combine the order with purchasing items from the store that do not need to be ordered.\nThe shopper presents their card on the payment terminal, and confirms or provides the delivery address. When the order is shipped, the payment is captured and the shopper receives the ordered goods.\nThe following diagram illustrates this shopper journey.\nCmdyYXBoIExSCiAgICBBKChPcmRlciBpbi1zdG9yZSkpOjo6c3RlcFN0eWxlIC0tPiBCe0FkZDxicj5hdmFpbGFibGU8YnI+aXRlbXM\/fTo6OnN0ZXBTdHlsZQogICAgQiAtLSBZZXMgLS0+IENbUHJlc2VudDxicj5jYXJkIG9uPGJyPnRlcm1pbmFsXTo6OnN0ZXBTdHlsZQogICAgQiAtLSBObyAtLT4gQ1tQcmVzZW50PGJyPmNhcmQgb248YnI+dGVybWluYWxdOjo6c3RlcFN0eWxlCiAgICBDIC0tPiBEW0NvbmZpcm08YnI+ZGVsaXZlcnk8YnI+YWRkcmVzc106OjpzdGVwU3R5bGUKICAgIEQgLS0+IEUoKFJlY2VpdmU8YnI+ZGVsaXZlcnkpKTo6OmZpbmFsU3R5bGUKCiUlIFN0eWxlcwogICAgY2xhc3NEZWYgdG9wU3R5bGUgZmlsbDojMDAwLHN0cm9rZTojMDAwLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIGNhdGVnb3J5U3R5bGUgZmlsbDojNDQ0LHN0cm9rZTojMzMzLGNvbG9yOiNmZmYKICAgIGNsYXNzRGVmIHN0ZXBTdHlsZSBmaWxsOiNmZmYsc3Ryb2tlOiMwYWJmNTMsc3Ryb2tlLXdpZHRoOjJweCxjb2xvcjojMDAwCiAgICBjbGFzc0RlZiBmaW5hbFN0eWxlIGZpbGw6IzBhYmY1MyxzdHJva2U6IzA3OGQzZSxjb2xvcjojMDAwCg==\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.\nLegal entity and location\nIn this use case, you use the payment terminal to authorize the online order.\nIf you want to process your Endless Aisle online transactions over a different merchant account than the regular in-person transactions, ask your Ayden Account Manager or Implementation Engineer about Merchant Account Sharing. With this, orders for both merchant accounts are processed on the same terminal, but kept separate. Enabling Merchant Account Sharing is subject to compliance approval. Terminals require a local legal entity.\nIf compliance approval is not given, you have other options to keep the transactions separate:\n\nYou can use separate terminals for regular in-store transactions and Endless Aisle transactions.\nOr you can set up multiple stores under the same merchant account. This keeps the reporting simple.\nAlternatively, instead of authorizing Endless Aisle online orders on a payment terminal, you can use Pay by Link payment links.\n\n\n    \n        Reference:\n    \n\n Pay by Link\nCapture settings\nThis use case requires specific procedures to capture the payment. You must enable and use manual capture, and contact our Support Team to enable multiple partial captures.\nFor the ordered items, the amount is initially authorized, but not captured. When the items are shipped from the warehouse, you make a manual capture request. If all items are shipped together, you capture the full amount. If items are delivered in several partial shipments, you make a partial capture request for each shipment.\nIt depends on your other use cases whether it is best to enable manual capture for every payment, or in the API request for an individual payment.\n\n    \n        Reference:\n    \n\n Enable manual capture, Partial manual capture, Capture a payment\nMixed baskets\nIf you want to support mixed baskets, where the shopper combines an online order with items that are available in the store, we recommend discussing your Adyen account structure and capture strategy with your Adyen implementation engineer or account manager.\nYou have the following options for capturing the payment:\n\n\nOne transaction with multiple partial captures: this option requires that online and in-store items are processed under the same merchant account.\nYou authorize the full amount of both the online order and the point-of-sale items, and make a partial capture request for the in-store items. Later, you make one or more partial captures as the ordered items are shipped.\n\n\nTwo separate transactions: you authorize the online order and capture the amount later as ordered items are shipped. For the in-store items, you make a separate payment request and capture the amount immediately or with a capture delay.\n\n\n\n    \n        Reference:\n    \n\n Account structures for mixed baskets, Delayed automatic capture. Also see the references under \"Capture\" above.\nDelivery address\nTo get the delivery address you use a \"card acquisition\" request: the shopper presents their card or other payment instrument to the payment terminal. You then use the card alias or PAR from the response to look up the delivery address in your CRM system and add the address to the order.\nTo use card acquisition in this way, you must enable receiving shopper identifying data in API responses, and you must store the card alias and\/or PAR in the shopper's profile.\nIf the shopper wants the order to be delivered to a different address or does not have a record in your CRM system yet, the CRM must also support manual entry of shopper details and creation of a new CRM record.\n\n    \n        Reference:\n    \n\n Card acquisition, Receive card and shopper identifiers.\nSale attribution\nYou need to decide beforehand on how you will attribute the sale: if items are ordered in-store and the payment is captured upon shipment, is this an in-store sale or an ecommerce sale?\nRefunds and discounts\nIf the shopper does not want a delivered item, the item may be returned to the store or to the warehouse. Both systems must be able to look up the PSP reference for the order and issue a (partial) referenced refund. You need to support both:\n\nTerminal API referenced refunds from the POS to the terminal for returns brought to the store.\nCheckout API referenced refunds for returns sent to the warehouse.\n\nIf discounts are offered over the phone or chat, customer service agents must be able to trigger partial referenced refunds as well.\n\n    \n        Reference:\n    \n\n Terminal API partial referenced refund, Checkout API refund\nAPI flow\nThere are several Adyen API requests involved in the described shopper journey, as shown in the following diagrams for:\n\nThe flow without mixed baskets and the flow with mixed baskets as a single transaction. These flows are very similar.\nThe flow with a mixed basket as two separate transactions.\n\nThe next section, \"Instructions\", provides more details about the API flow.\nNo mixed basket or mixed basket as one transaction\nCnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgRVJQCiAgICBwYXJ0aWNpcGFudCBQT1MKICAgIHBhcnRpY2lwYW50IEFkeWVuCgogICAgU2hvcHBlci0+PkVSUDogT3JkZXIgb25saW5lIGl0ZW1zCiAgICBvcHQKICAgICAgICBTaG9wcGVyLT4+UE9TOiBNaXhlZCBiYXNrZXQ6IEFkZCBpbi1zdG9yZSBpdGVtcwogICAgZW5kCiAgICBTaG9wcGVyLT4+UE9TOiBBdXRob3JpemUgdHJhbnNhY3Rpb24KICAgIFBPUy0+PkFkeWVuOiBDYXJkIGFjcXVpc2l0aW9uIHJlcXVlc3QgZm9yIHdob2xlIGJhc2tldAogICAgQWR5ZW4tPj5QT1M6IENhcmQgYWNxdWlzaXRpb24gcmVzcG9uc2UKICAgIFBPUy0+PkVSUDogTG9vayB1cC9lbnRlciBkZWxpdmVyeSBhZGRyZXNzLCBhZGQgdG8gb3JkZXIKICAgIFBPUy0+PkFkeWVuOiBUZXJtaW5hbCBBUEkgcGF5bWVudCByZXF1ZXN0IHdpdGggbWFudWFsIGNhcHR1cmUKICAgIEFkeWVuLT4+UE9TOiBQYXltZW50IHJlc3BvbnNlCiAgICBvcHQgTWl4ZWQgYmFza2V0OiBJbi1zdG9yZSBpdGVtcyBhZGRlZAogICAgICAgIFBPUy0+PkFkeWVuOiBQYXJ0aWFsIG1hbnVhbCBjYXB0dXJlIG9mIGluLXN0b3JlIGl0ZW1zCiAgICAgICAgQWR5ZW4tPj5QT1M6IENhcHR1cmUgcmVzcG9uc2UKICAgIGVuZAogICAgRVJQLT4+U2hvcHBlcjogU2hpcCBvcmRlcgogICAgRVJQLT4+QWR5ZW46IFBhcnRpYWwgbWFudWFsIGNhcHR1cmUgb2Ygb25saW5lIGl0ZW1zCiAgICBBZHllbi0+PkVSUDogQ2FwdHVyZSByZXNwb25zZQogICAgb3B0IFJldHVybiB0byBzdG9yZQogICAgICAgIFNob3BwZXItLT4+UE9TOiBSZXR1cm4gaXRlbXMKICAgICAgICBQT1MtPj5BZHllbjogVGVybWluYWwgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5QT1M6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCiAgICBvcHQgUmV0dXJuIHRvIHdhcmVob3VzZQogICAgICAgIFNob3BwZXItLT4+RVJQOiBSZXR1cm4gaXRlbXMKICAgICAgICBFUlAtPj5BZHllbjogQ2hlY2tvdXQgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5FUlA6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCg==\nMixed basket as two transactions\nWe usually recommend delayed automatic capture for point-of-sale transactions. That is why the diagram shows automatic capture for the separate payment request related to the in-store items.\nCnNlcXVlbmNlRGlhZ3JhbQogICAgcGFydGljaXBhbnQgU2hvcHBlcgogICAgcGFydGljaXBhbnQgRVJQCiAgICBwYXJ0aWNpcGFudCBQT1MKICAgIHBhcnRpY2lwYW50IEFkeWVuCgogICAgU2hvcHBlci0+PkVSUDogT3JkZXIgb25saW5lIGl0ZW1zCiAgICBTaG9wcGVyLT4+UE9TOiBBZGQgaW4tc3RvcmUgaXRlbXMKICAgIFNob3BwZXItPj5QT1M6IEF1dGhvcml6ZSB0cmFuc2FjdGlvbgogICAgUE9TLT4+QWR5ZW46IENhcmQgYWNxdWlzaXRpb24gcmVxdWVzdAogICAgQWR5ZW4tPj5QT1M6IENhcmQgYWNxdWlzaXRpb24gcmVzcG9uc2UKICAgIFBPUy0+PkVSUDogTG9vayB1cC9lbnRlciBkZWxpdmVyeSBhZGRyZXNzLCBhZGQgdG8gb3JkZXIKICAgIG5vdGUgb3ZlciBQT1MsIEFkeWVuOiBObyBjYXB0dXJlIHlldCBvZiBvbmxpbmUgaXRlbXMKICAgIFBPUy0+PkFkeWVuOiBUZXJtaW5hbCBBUEkgcGF5bWVudCByZXF1ZXN0IDEgZm9yIG9ubGluZSBpdGVtcywgd2l0aCBtYW51YWwgY2FwdHVyZQogICAgQWR5ZW4tPj5QT1M6IFBheW1lbnQgcmVzcG9uc2UgMQogICAgbm90ZSBvdmVyIFBPUywgQWR5ZW46IEltbWVkaWF0ZSBvciBkZWxheWVkIGF1dG9tYXRpYyBjYXB0dXJlIG9mIGluLXN0b3JlIGl0ZW1zCiAgICBQT1MtPj5BZHllbjogVGVybWluYWwgQVBJIHBheW1lbnQgcmVxdWVzdCAyIGZvciBpbi1zdG9yZSBpdGVtcwogICAgQWR5ZW4tPj5QT1M6IFBheW1lbnQgcmVzcG9uc2UgMiB3aXRoIGF1dG9tYXRpYyBjYXB0dXJlCiAgICBFUlAtPj5TaG9wcGVyOiBTaGlwIG9yZGVyCiAgICBFUlAtPj5BZHllbjogTWFudWFsIGNhcHR1cmUgb2Ygb25saW5lIGl0ZW1zCiAgICBBZHllbi0+PkVSUDogQ2FwdHVyZSByZXNwb25zZQogICAgb3B0IFJldHVybiB0byBzdG9yZQogICAgICAgIFNob3BwZXItLT4+UE9TOiBSZXR1cm4gaXRlbXMKICAgICAgICBQT1MtPj5BZHllbjogVGVybWluYWwgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5QT1M6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCiAgICBvcHQgUmV0dXJuIHRvIHdhcmVob3VzZQogICAgICAgIFNob3BwZXItLT4+RVJQOiBSZXR1cm4gaXRlbXMKICAgICAgICBFUlAtPj5BZHllbjogQ2hlY2tvdXQgQVBJIHJlZnVuZCByZXF1ZXN0CiAgICAgICAgQWR5ZW4tPj5FUlA6IFJlZnVuZCByZXNwb25zZQogICAgZW5kCg==\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\nDelivery address\nAfter the shopper has ordered the online items:\n\n\nMake a Terminal API  CardAcquisitionRequest where the CardAcquisitionTransaction object contains the TotalAmount field with the purchase amount for the ordered items and, if you support mixed baskets as a single transaction, any items from the store.\n\n    \n        Reference:\n    \n\nCard acquisition\n\n\n\n\n\nWhen you receive the  CardAcquisitionResponse, save the following information:\n\nAdditionalResponse.PaymentAccountReference: the PAR, if present.\nAdditionalResponse.alias: the card alias.\nThe TimeStamp and TransactionID from the POIData.POITransactionID object. You need these values later, when you authorize the transaction.\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\nUse the card alias and\/or PAR from the card acquisition response to look up the shopper's delivery address in your ERP system.\n\n\nIf the shopper is found in the ERP system, let the shop assistant verify the delivery address with the shopper.\nEnsure the shop assistant can:\n\nUpdate the delivery address if needed.\nEnter an additional delivery address if the shopper wants the order shipped to a different address.\n\n\n\nIf the shopper is not found in the ERP system, add a record for the shopper to the ERP system with the card alias and\/or PAR from the card acquisition response, and the other details that you need, specifically the delivery address and the name of the shopper. You can collect those other details in various ways, for example:\n\nThe shop assistant asks the shopper for the details.\nYou collect the shopper's details on a secondary screen, for instance a tablet.\nYou use input requests  to collect the shopper's details on the payment terminal.\n\n\n\nAdd the delivery address to the order.\n\n\nAuthorization\n\n\nMake a Terminal API  PaymentRequest with:\n\n\nPaymentData.CardAcquisitionReference: an object with the TimeStamp and TransactionID returned in the POIData.POITransactionID object of the card acquisition response.\n\n\nPaymentTransaction.AmountsReq: an object with the Currency and the RequestedAmount.\nIf you support mixed baskets as a single transaction, use the total amount of the basket.\nIf you support mixed baskets as two separate transactions, use only the amount of the ordered online items.\n\n\nSaleToAcquirerData: a parameter with manualCapture set to true in one of the following formats:\n\nOption 1: A JSON object converted to a Base64-encoded string.\nOption 2: A key-value pair.\n\n\n    \n        Reference:\n    \n\nEnable manual capture for a payment\n\n\n\n\n\n\n\nWhen you receive the payment response, save the following details:\n\n\nPOITransactionID.TransactionID: The transaction ID in the format tenderReference.pspReference, which includes the PSP reference. For example, in the transaction ID BV0q001765198054002.CWBC43ZX2VTFWR82, the PSP reference is CWBC43ZX2VTFWR82. The PSP reference is also provided in the AdditionalResponse.\n\nYou need the PSP reference later for the capture request. You also need the PSP reference if the shopper returns items to the warehouse.\nYou need the full transaction ID if the shopper returns items in-store.\n\n\n\nThe payment date and time in the POITransactionID.TimeStamp field. You need the timestamp if the shopper returns items in-store.\n\n\n\n\n\n\n\nIf you support mixed baskets as two separate transactions, make another Terminal API payment request for the in-store items.\nIf your point-of-sale merchant account uses immediate or delayed capture by default (which we usually recommend), do not set manual capture in this payment request. Otherwise, see the next section, \"Capture\", and make a separate manual capture request for the in-store items.\n\n\nCaptures and refunds\n\n\nIf you support mixed baskets as a single transaction, make a partial manual capture request for the in-store items immediately after the payment request (see the next step for an example).\n\n\nWhen the order is shipped from the warehouse, make a manual capture request for the amount due:\nSend a POST request to the  \/payments\/{paymentPspReference}\/captures endpoint, where paymentPspReference is the PSP reference of the authorization you want to capture.\nIn your request, include:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nmerchantAccount\n\nThe name of your merchant account that is used to process the payment. This depends on how you attribute the sale.\n\n\namount.value\n\nThe amount in minor units (without a decimal point) being captured. To capture the full amount, specify a value equal to the requestedAmount you authorized.  For a partial capture, specify a value less than the requestedAmount.\n\n\n\n\n\n\n\n\nIf the shopper returns one or more of the delivered items, issue a refund using the Terminal API if the items are returned in-store, or using the Checkout API if the items returned to the warehouse.\n\n\n    \n        \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":"Endless aisle","lvl4":"Order in store, ship to home"},"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\/endless-aisle","lvl4":"\/unified-commerce\/retail-use-cases\/endless-aisle\/e-a-ship-home"},"levels":5,"category":"Omnichannel","category_color":"green","tags":["Order","store,"]}}
