{"title":"Point of sale for platforms","category":"Classic Platforms","creationDate":1776961628,"content":"<div class=\"sc-notice info\"><div>\n<p>This page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our <a href=\"\/pt\/adyen-for-platforms-model\">new integration guide<\/a> instead.<\/p>\n<\/div><\/div>\n<p>Adyen for Platforms enables you to onboard account holders with point-of-sale (POS) integrations to accept in-person payments. To make this happen, you need to:<\/p>\n<ul>\n<li><a href=\"#subscribe-to-notifications\">Subscribe to store notifications<\/a>.<\/li>\n<li><a href=\"#add-store\">Add a store<\/a> for the account holder.<\/li>\n<li><a href=\"#assign-terminal-to-store\">Assign a terminal to the store<\/a> and ship it to the the account holder's store address.<\/li>\n<li><a href=\"#split-a-payment\">Split funds<\/a> between accounts in your platform.<\/li>\n<\/ul>\n<h2>Requirements<\/h2>\n<p>Before you start processing point-of-sale payments for your account holders, you need to:<\/p>\n<ul>\n<li>Have a <a href=\"\/pt\/point-of-sale\/get-started\">Terminal API integration with Adyen<\/a>.<\/li>\n<li>Be familiar with the features of <a href=\"\/pt\/platforms\">Adyen for Platforms<\/a>, such as <a href=\"\/pt\/classic-platforms\/account-structure\">account structure<\/a>, the <a href=\"\/pt\/classic-platforms\/onboard-users\">onboarding and verification process<\/a>, split payments, and notifications.<\/li>\n<li>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> and provide the following required information.\n<ul>\n<li>Countries<\/li>\n<li>Currencies<\/li>\n<li>Merchant category codes (MCCs)<\/li>\n<li>Payment methods<\/li>\n<\/ul><\/li>\n<\/ul>\n<p>You can specify different currencies, MCCs, and payment methods for each country\/region. We use this information to enable you to create stores based on the type of payments that must be processed in the store.<\/p>\n<h2 id=\"subscribe-to-notifications\">Subscribe to store notifications<\/h2>\n<p>When you add a store for an account holder, we send a notification to let you know the store has been set up. To ensure you receive this notification:<\/p>\n<ol>\n<li>\n<p>Make a POST request to the <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#endpoints\">Terminal API endpoint<\/a>, specifying:<\/p>\n<ul>\n<li><code>active<\/code>: <span translate=\"no\"><strong>true<\/strong><\/span>.<\/li>\n<li><code>description<\/code>: Your text to recognize the notification subscription by.<\/li>\n<li>An <code>eventConfigs<\/code> array with <code>eventType<\/code>: <span translate=\"no\"><strong>ACCOUNT_HOLDER_STORE_STATUS_CHANGE<\/strong><\/span> and <code>includeMode<\/code>: <span translate=\"no\"><strong>INCLUDE<\/strong><\/span>.<\/li>\n<li><code>notifyURL<\/code>: Endpoint on your server where you'll receive the notifications.<\/li>\n<li><code>hmacSignatureKey<\/code>: Use this parameter if you want us to <a href=\"\/pt\/classic-platforms\/configure-notifications\/signing-notifications-with-hmac\">protect notifications with HMAC signatures<\/a>. It specifies the HMAC key that we'll use to calculate the HMAC signatures of the notifications we send to the <code>notifyURL<\/code>. On your end you'll need to verify the signatures of the incoming notifications.<\/li>\n<li><code>notifyUsername<\/code> and <code>notifyPassword<\/code>: Username and password that we need for basic authentication with the server where you'll receive the notifications.<\/li>\n<li><code>sslProtocol<\/code>: Protocol used to secure the communication, such as <span translate=\"no\"><strong>TLS<\/strong><\/span> or <span translate=\"no\"><strong>SSL<\/strong><\/span>.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'\/createNotificationConfiguration request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/cal-test.adyen.com\\\/cal\\\/services\\\/Notification\\\/v6\\\/createNotificationConfiguration \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;configurationDetails\\&quot;:{\\n    \\&quot;active\\&quot;: true,\\n    \\&quot;description\\&quot;:\\&quot;YOUR_UNIQUE_DESCRIPTION\\&quot;,\\n    \\&quot;eventConfigs\\&quot;:[\\n      {\\n        \\&quot;eventType\\&quot;:\\&quot;ACCOUNT_HOLDER_STORE_STATUS_CHANGE\\&quot;,\\n        \\&quot;includeMode\\&quot;:\\&quot;INCLUDE\\&quot;\\n      }\\n    ],\\n    \\&quot;notifyURL\\&quot;:\\&quot;https:\\\/\\\/www.merchant-domain.com\\\/notification-handler\\&quot;,\\n    \\&quot;hmacSignatureKey\\&quot;:\\&quot;c6c608e9d2ec95889cb9757e6beb4956c187f44cf7bb7297b16880c0310af7ff\\&quot;,\\n    \\&quot;notifyUsername\\&quot;:\\&quot;YOUR_USERNAME\\&quot;,\\n    \\&quot;notifyPassword\\&quot;:\\&quot;YOUR_PASSWORD\\&quot;,\\n    \\&quot;sslProtocol\\&quot;:\\&quot;SSL\\&quot;\\n  }\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n  \\\"pspReference\\\": \\\"8515681150749298\\\",\\n  \\\"configurationDetails\\\": {\\n    \\\"active\\\": true,\\n    \\\"description\\\": \\\"YOUR_UNIQUE_DESCRIPTION\\\",\\n    \\\"eventConfigs\\\": [\\n      {\\n        \\\"eventType\\\": \\\"ACCOUNT_HOLDER_STORE_STATUS_CHANGE\\\",\\n        \\\"includeMode\\\": \\\"INCLUDE\\\"\\n      }\\n    ],\\n    \\\"notificationId\\\": 20337,\\n    \\\"notifyURL\\\": \\\"https:\\\/\\\/www.merchant-domain.com\\\/notification-handler\\\",\\n    \\\"sslProtocol\\\": \\\"SSLInsecureCiphers\\\"\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Make sure that your server <a href=\"\/pt\/classic-platforms\/configure-notifications#accept-notifications\">accepts the notifications<\/a>.<\/p>\n<\/li>\n<li>\n<p>Use the <code>notificationId<\/code> you receive in the response to <a href=\"\/pt\/classic-platforms\/configure-notifications#test-a-notification\">test the notification<\/a>.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"add-store\">Create a store for the account holder<\/h2>\n<div class=\"notices yellow\">\n<p>Make sure 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> has enabled creating stores. If you haven't requested this yet, refer to the <a href=\"#requirements\">requirements<\/a>.<\/p>\n<\/div>\n<p>Once our Support Team has enabled creating stores, you can start adding stores for your account holders.<\/p>\n<p>To provide store details, include a <code>storeDetails<\/code> array when you create a new account holder or when you update an existing one:<\/p>\n<ol>\n<li>\n<p>Make a POST request to one of the following endpoints:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Situation<\/th>\n<th style=\"text-align: left;\">Endpoint<\/th>\n<th style=\"text-align: left;\">Specify<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">There is no account holder for the sub-merchant yet.<\/td>\n<td style=\"text-align: left;\"><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Account\/createAccountHolder\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/createAccountHolder<\/a><\/td>\n<td style=\"text-align: left;\">The usual <a href=\"\/pt\/classic-platforms\/account-holders-and-accounts#create-an-account-holder\">parameters to create a business account holder<\/a>, as well as <code>businessDetails.taxId<\/code>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">You want to add a store to an existing account holder.<\/td>\n<td style=\"text-align: left;\"><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Account\/updateAccountHolder\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/updateAccountHolder<\/a><\/td>\n<td style=\"text-align: left;\"><code>accountHolderCode<\/code>: Your unique reference for the account holder. Include <code>businessDetails.taxId<\/code>, unless it is already present as part of <code>businessDetails<\/code>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p>In the request body, include an  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">accountHolderDetails.storeDetails<\/a> array, specifying:<\/p>\n<ul>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails-address\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">address<\/a>&#58; The <code>city<\/code>, <code>country<\/code>, <code>houseNumberOrName<\/code>, <code>postalCode<\/code>, <code>stateOrProvince<\/code>, and <code>street<\/code> of the physical store where the account holder will process payments from.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails-fullPhoneNumber\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">fullPhoneNumber<\/a>&#58; The phone number of the store.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails-merchantAccount\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">merchantAccount<\/a>&#58; The merchant account used for accepting payments.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails-merchantCategoryCode\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">merchantCategoryCode<\/a>&#58; The merchant category code (MCC) that classifies the business of the account holder.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails-storeName\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storeName<\/a>&#58; The name of the account holder's store. This will be included in the shopper statement.<\/li>\n<li> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Account\/latest\/post\/createAccountHolder#request-accountHolderDetails-storeDetails-storeReference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">storeReference<\/a>&#58; Your unique reference for the account holder's store.<\/li>\n<\/ul>\n<p>The next example shows a <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Account\/createAccountHolder\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/createAccountHolder<\/a> request to create a new account holder with a store.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'\/createAccountHolder request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/cal-test.adyen.com\\\/cal\\\/services\\\/Account\\\/v6\\\/createAccountHolder \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;accountHolderCode\\&quot;: \\&quot;YOUR_UNIQUE_ACCOUNT_HOLDER_CODE\\&quot;,\\n  \\&quot;accountHolderDetails\\&quot;: {\\n    \\&quot;address\\&quot;: {\\n        \\&quot;country\\&quot;: \\&quot;US\\&quot;\\n    },\\n    \\&quot;businessDetails\\&quot;: {\\n      \\&quot;legalBusinessName\\&quot;: \\&quot;Real Good Restaurant Inc.\\&quot;,\\n       \\&quot;taxId\\&quot;: \\&quot;444455555\\&quot;,\\n      \\&quot;shareholders\\&quot;: [\\n        {\\n            \\&quot;name\\&quot;: {\\n              \\&quot;firstName\\&quot;: \\&quot;Maria\\&quot;,\\n              \\&quot;gender\\&quot;: \\&quot;FEMALE\\&quot;,\\n              \\&quot;lastName\\&quot;: \\&quot;Green\\&quot;\\n            },\\n            \\&quot;address\\&quot;: {\\n              \\&quot;country\\&quot;: \\&quot;US\\&quot;\\n            }\\n        }\\n      ]\\n    },\\n    \\&quot;email\\&quot;: \\&quot;maria@green.com\\&quot;,\\n    \\&quot;storeDetails\\&quot; : [\\n      {\\n        \\&quot;storeReference\\&quot;: \\&quot;YOUR_SUBMERCHANT_STORE_ID\\&quot;,\\n        \\&quot;storeName\\&quot;: \\&quot;Store Name\\&quot;,\\n        \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n        \\&quot;merchantCategoryCode\\&quot;: \\&quot;7999\\&quot;,\\n        \\&quot;address\\&quot; : {\\n          \\&quot;city\\&quot;: \\&quot;Store City\\&quot;,\\n          \\&quot;country\\&quot;: \\&quot;US\\&quot;,\\n          \\&quot;houseNumberOrName\\&quot;: \\&quot;1\\&quot;,\\n          \\&quot;postalCode\\&quot;: \\&quot;123\\&quot;,\\n          \\&quot;stateOrProvince\\&quot;: \\&quot;CA\\&quot;,\\n          \\&quot;street\\&quot;: \\&quot;Store Street\\&quot;\\n        },\\n        \\&quot;fullPhoneNumber\\&quot;: \\&quot;+31201234567\\&quot;\\n      }\\n    ]\\n  },\\n  \\&quot;legalEntity\\&quot;: \\&quot;Business\\&quot;\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The following example shows how to add a store to an existing account holder using an <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Account\/updateAccountHolder\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/updateAccountHolder<\/a> call.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'\/updateAccountHolder request'\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/cal-test.adyen.com\\\/cal\\\/services\\\/Account\\\/v6\\\/updateAccountHolder \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n  \\&quot;accountHolderCode\\&quot;: \\&quot;YOUR_UNIQUE_ACCOUNT_HOLDER_CODE\\&quot;,\\n  \\&quot;accountHolderDetails\\&quot;: {\\n    \\&quot;storeDetails\\&quot; : [\\n      {\\n        \\&quot;storeReference\\&quot;: \\&quot;YOUR_SUBMERCHANT_STORE_ID\\&quot;,\\n        \\&quot;storeName\\&quot;: \\&quot;Store Name\\&quot;,\\n        \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n        \\&quot;merchantCategoryCode\\&quot;: \\&quot;7999\\&quot;,\\n        \\&quot;address\\&quot;: {\\n          \\&quot;city\\&quot;: \\&quot;Store City\\&quot;,\\n          \\&quot;country\\&quot;: \\&quot;US\\&quot;,\\n          \\&quot;houseNumberOrName\\&quot;: \\&quot;1\\&quot;,\\n          \\&quot;postalCode\\&quot;: \\&quot;123\\&quot;,\\n          \\&quot;stateOrProvince\\&quot;: \\&quot;CA\\&quot;,\\n          \\&quot;street\\&quot;: \\&quot;Store Street\\&quot;\\n         },\\n        \\&quot;fullPhoneNumber\\&quot;: \\&quot;+31201234567\\&quot;\\n      }\\n    ]\\n  }\\n}'&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response contains various account holder details, including the <code>storeDetails<\/code> showing that the status of the store is <span translate=\"no\"><strong>Pending<\/strong><\/span>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"invalidFields\\\": [],\\n   ...\\n   \\\"accountHolderDetails\\\":{\\n      ...\\n      \\\"storeDetails\\\" : [\\n         {\\n            \\\"address\\\": {\\n               \\\"city\\\": \\\"Store City\\\",\\n               \\\"country\\\": \\\"US\\\",\\n               \\\"houseNumberOrName\\\": \\\"1\\\",\\n               \\\"postalCode\\\": \\\"123\\\",\\n               \\\"stateOrProvince\\\": \\\"CA\\\",\\n               \\\"street\\\": \\\"Store Street\\\"\\n               },\\n        \\t\\\"fullPhoneNumber\\\": \\\"+31201234567\\\",\\n            \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n            \\\"merchantCategoryCode\\\": \\\"7999\\\",\\n            \\\"status\\\": \\\"Pending\\\",\\n            \\\"store\\\": \\\"6db2bdbc-5e77-4388-9a6e-9e653905d3e5\\\",\\n            \\\"storeReference\\\": \\\"YOUR_SUBMERCHANT_STORE_ID\\\",\\n            \\\"storeName\\\": \\\"Store Name\\\",\\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<li>\n<p>Before processing point-of-sale (POS) payments, wait until you receive an <code>ACCOUNT_HOLDER_STORE_STATUS_CHANGE<\/code> notification showing that the new status of the store is <span translate=\"no\"><strong>Active<\/strong><\/span>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Notification'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"eventType\\\":\\\"ACCOUNT_HOLDER_STORE_STATUS_CHANGE\\\",\\n   \\\"eventDate\\\":\\\"2018-04-23T13:13:44+02:00\\\",\\n   \\\"executingUserKey\\\":\\\"ws\\\",\\n   \\\"live\\\":true,\\n   \\\"pspReference\\\":\\\"12312312313\\\",\\n   \\\"content\\\":{\\n      \\\"accountHolderCode\\\":\\\"YOUR_UNIQUE_ACCOUNT_HOLDER_CODE\\\",\\n      \\\"store\\\": \\\"6db2bdbc-5e77-4388-9a6e-9e653905d3e5\\\",\\n      \\\"storeReference\\\":\\\"YOUR_SUBMERCHANT_STORE_ID\\\",\\n      \\\"newStatus\\\":\\\"Active\\\",\\n      \\\"oldStatus\\\":\\\"Pending\\\",\\n      \\\"reason\\\":\\\"Test Reason\\\"\\n   }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<\/ol>\n<h2 id=\"assign-terminal-to-store\">Assign a terminal to the store<\/h2>\n<p>To process POS payments, the account holder's store needs to have one or more payment terminals. The process is as follows:<\/p>\n<ol>\n<li>\n<p><a href=\"\/pt\/point-of-sale\/what-we-support\/select-your-terminals\">Select a terminal<\/a> and inform the account holder of the <a href=\"\/pt\/point-of-sale\/design-your-integration\/choose-your-architecture\">communication requirements<\/a>.<\/p>\n<\/li>\n<li>\n<p><a href=\"\/pt\/point-of-sale\/managing-terminals\/order-terminals#sales-order-steps\">Order a terminal<\/a> if you do not have the required terminal in your inventory.<\/p>\n<\/li>\n<li>\n<p>Assign the terminal from your inventory to the store of the account holder in one of the following ways:<\/p>\n<ul>\n<li>Assign terminals <a href=\"\/pt\/point-of-sale\/managing-terminals\/assign-terminals\">using your Customer Area<\/a><br \/>\nor<\/li>\n<li>\n<p>Assign terminals in bulk <a href=\"\/pt\/point-of-sale\/automating-terminal-management\/assign-terminals-api\">using API calls<\/a><\/p>\n<div class=\"sc-notice info\"><div>\n<p>The advantage of using the Terminal Management API over the Customer Area, is that API calls enable you to automate assigning terminals and retrieving an overview of terminal assignments.<\/p>\n<\/div><\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Configure the terminals in the <a href=\"https:\/\/ca-live.adyen.com\/ca\/ca\/login.shtml\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, under <strong>Point of Sale<\/strong> &gt; <strong>Terminal settings<\/strong>.<\/p>\n<\/li>\n<li>\n<p>Ship the terminal to the physical store address and instruct the account holder to <a href=\"\/pt\/point-of-sale\/managing-terminals\/board-terminal\">board the terminal<\/a>.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"split-a-payment\">Split a payment<\/h2>\n<p>To split a point-of-sale payment, you can:<\/p>\n<ul>\n<li>Create a split configuration to automatically split payments processed through the store. For more information, refer to <a href=\"\/pt\/classic-platforms\/split-configuration-for-stores#how-split-configuration-works\">How split configuration works<\/a>.<\/li>\n<li>Send split instructions for every transaction at <a href=\"#make-pos-payment\">time of payment<\/a> or <a href=\"#split-at-capture\">at capture<\/a>.<\/li>\n<\/ul>\n<p>When you use a split configuration, Adyen evaluates the rules in the split configuration for all the transactions processed through the store. If you need to change the commission fees for specific transactions, you can send split instructions in the payment or capture API request. Any split instructions that you send through the API overrides the automatic split.<\/p>\n<h3 id=\"make-pos-payment\">Make a split payment using the Terminal API<\/h3>\n<p>To split a POS payment, you make a <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api\">Terminal API<\/a> call. In the <code>PaymentRequest<\/code> you provide the split payment data in the <code>SaleToAcquirerData<\/code>, in key-value pair or Base64-encoded format. This credits payments directly to an account holder's account.<\/p>\n<p>To make the payment:<\/p>\n<ol>\n<li>\n<p>Make a POST request to a <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#endpoints\">Terminal API endpoint<\/a>, specifying:<\/p>\n<ul>\n<li>\n<p>The standard <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#request-message-header\">\n  <code>SaleToPOIRequest.MessageHeader<\/code>\n<\/a> object, with <code>MessageClass<\/code> set to <span translate=\"no\"><strong>Service<\/strong><\/span> and <code>MessageCategory<\/code> set to <span translate=\"no\"><strong>Payment<\/strong><\/span>.<\/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>ProtocolVersion<\/code><\/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;\"><strong>3.0<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageClass<\/code><\/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;\"><span translate=\"no\"><strong>Service<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageCategory<\/code><\/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;\"><span translate=\"no\"><strong>Payment<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>MessageType<\/code><\/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;\"><span translate=\"no\"><strong>Request<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>ServiceID<\/code><\/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;\">Your unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (<code>POIID<\/code>) being used.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleID<\/code><\/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;\">Your unique ID for the POS system component to send this request from.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>POIID<\/code><\/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;\">The unique ID of the terminal to send this request to. Format: <em>[device model]-[serial number]<\/em>.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p><code>PaymentRequest<\/code>: The request body. This must 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>SaleData.SaleTransactionID<\/code><\/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;\">An object with: <ul><li markdown=\"1\"><code>TransactionID<\/code>: your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the <strong>merchant reference<\/strong> for the transaction.<\/li> <li markdown=\"1\"><code>TimeStamp<\/code>: date and time of the request in <a href=\"https:\/\/en.wikipedia.org\/wiki\/ISO_8601#Coordinated_Universal_Time_(UTC)\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">UTC format<\/a>.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>SaleData.SaleToAcquirerData<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">Provides the split payment data as concatenated key-value pairs separated by an ampersand (&amp;) character, or in Base64-encoded format. See the tables below for details.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>PaymentTransaction.AmountsReq<\/code><\/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;\">An object with: <ul><li markdown=\"1\"><code>Currency<\/code>: the transaction <a href=\"\/pt\/development-resources\/currency-codes\">currency<\/a>.<\/li><li markdown=\"1\"><code>RequestedAmount<\/code>: the transaction amount.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<li>\n<p>To provide the split payment data in <code>PaymentRequest.SaleData.SaleToAcquirerData<\/code>, use the following fields:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Field<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<th style=\"text-align: left;\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>split.api<\/code><\/td>\n<td style=\"text-align: left;\">Version of the Split API: <strong>1<\/strong>.<\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>split.api=1<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>split.totalAmount<\/code><\/td>\n<td style=\"text-align: left;\">Amount to be split, in minor units. Must be equal to the transaction amount and to the sum of the split amounts.<\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>split.totalAmount=62000<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>split.currencyCode<\/code><\/td>\n<td style=\"text-align: left;\">Currency of the amount to be split.<\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>split.currencyCode=EUR<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>split.nrOfItems<\/code><\/td>\n<td style=\"text-align: left;\">Number of times you will split the payment. Must match the number of split items in the request.<\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>split.nrOfItems=2<\/strong><\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Specify each split as a\u00a0<code>split.item{item#}<\/code> starting at\u00a0<strong>1<\/strong>:\u00a0<code>split.item1<\/code>,\u00a0<code>split.item2<\/code>, and so on. Each split item includes:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Field<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<th style=\"text-align: left;\">Example<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><code>split.item{item#}.amount<\/code><\/td>\n<td style=\"text-align: left;\">Amount of the split, in minor units.<\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>split.item1.amount=60000<\/strong><\/span> and <span translate=\"no\"><strong>split.item2.amount=2000<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>split.item{item#}.type<\/code><\/td>\n<td style=\"text-align: left;\">Split type. A\u00a0type\u00a0of\u00a0<span translate=\"no\"><strong>MarketPlace<\/strong><\/span>\u00a0or <span translate=\"no\"><strong>VAT<\/strong><\/span> sends the amount to the\u00a0<code>account<\/code>\u00a0specified. A type of\u00a0<span translate=\"no\"><strong>Commission<\/strong><\/span>\u00a0or <span translate=\"no\"><strong>PaymentFee<\/strong><\/span> sends the amount to your\u00a0<a href=\"\/pt\/classic-platforms\/account-structure\">liable account<\/a>.<\/td>\n<td style=\"text-align: left;\"><span translate=\"no\"><strong>split.item1.type=MarketPlace<\/strong><\/span> and <span translate=\"no\"><strong>split.item2.type=Commission<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>split.item{item#}.account<\/code><\/td>\n<td style=\"text-align: left;\">Account that will receive the split. This is the\u00a0<code>accountCode<\/code>\u00a0of one of your account holder's accounts or your own liable account. You do not need to specify an account when <code>split.type<\/code> is <span translate=\"no\"><strong>Commission<\/strong><\/span>.<\/td>\n<td style=\"text-align: left;\">\u00a0<span translate=\"no\"><strong>split.item1.account=8815628270908491<\/strong><\/span><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>split.item{item#}.reference<\/code><\/td>\n<td style=\"text-align: left;\">The reference for that specific transaction split, which is returned in our reporting. We strongly recommend that you always include a reference for the split item. Required if the <code>split.type<\/code> is <span translate=\"no\"><strong>MarketPlace<\/strong><\/span>.<\/td>\n<td style=\"text-align: left;\">\u00a0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/li>\n<\/ul>\n<p>The following example shows how to split a EUR&nbsp;620.00 payment into EUR&nbsp;600.00 to be paid into the account holder's account with <code>accountCode<\/code> 8815628270908491 and EUR&nbsp;20.00 commission to be paid to the platform.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Payment request with split instructions'\" :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\\\":\\\"V400m-324688179\\\"\\n    },\\n    \\\"PaymentRequest\\\":{\\n      \\\"SaleData\\\":{\\n        \\\"SaleTransactionID\\\":{\\n          \\\"TransactionID\\\":\\\"27908\\\",\\n          \\\"TimeStamp\\\":\\\"2019-03-07T10:11:04+00:00\\\"\\n        },\\n        \\\"SaleToAcquirerData\\\": \\\"split.api=1&amp;split.nrOfItems=2&amp;split.totalAmount=62000&amp;split.currencyCode=EUR&amp;split.item1.amount=60000&amp;split.item1.type=MarketPlace&amp;split.item1.account=8815628270908491&amp;split.item1.reference=test1&amp;split.item2.amount=2000&amp;split.item2.type=Commission&amp;split.item2.reference=TestCommission\\\"\\n      },\\n      \\\"PaymentTransaction\\\":{\\n        \\\"AmountsReq\\\":{\\n          \\\"Currency\\\":\\\"EUR\\\",\\n          \\\"RequestedAmount\\\":620.00\\n        }\\n      }\\n    }\\n  }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The payment request is routed to the terminal, for the shopper to present their card and verify the payment. The payment is then sent to the Adyen payments platform for processing.<\/p>\n<\/li>\n<li>\n<p>Receive the payment result.<\/p>\n<div class=\"notices yellow\">\n<p>If your integration uses <a href=\"\/pt\/point-of-sale\/design-your-integration\/choose-your-architecture\/cloud#async\">asynchronous cloud communications<\/a>, you must set up event notifications. We then send the Terminal API responses to your endpoint.<\/p>\n<\/div>\n<p>If the payment is successful:<\/p>\n<ul>\n<li><strong>Approved<\/strong> is shown on the terminal display.<\/li>\n<li>You receive a payment response containing:\n<ul>\n<li><code>POIData.POITransactionID.TransactionID<\/code>: <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#transaction-identifier\">Transaction identifier<\/a> for the payment in the format <code>tenderReference.pspReference<\/code>. For example, <span translate=\"no\"><strong>oLkO0012498220087000.981517998282382C<\/strong><\/span>.<\/li>\n<li><code>PaymentResponse.Response.Result<\/code>: <span translate=\"no\"><strong>Success<\/strong><\/span><\/li>\n<li><code>PaymentResponse.Response.AdditionalResponse<\/code>: A base64 string. When decoded, this is a JSON object with additional transaction data.<\/li>\n<li><code>PaymentReceipt<\/code>: Object containing data you can use to <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/generate-receipts\">generate a receipt<\/a>.<\/li>\n<\/ul><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<p>You can also view the details of a payment in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, under <strong>Transactions<\/strong> &gt; <strong>Payments<\/strong>.<\/p>\n<h3 id=\"split-at-capture\">Split at capture using the API<\/h3>\n<p>Some platforms do not know the final split amounts at the moment the payment request is made. If this applies to your account holder's POS payments, you need to <a href=\"\/pt\/point-of-sale\/capturing-payments#enable-manual-capture\">enable manual capture for POS payments<\/a> and follow up each authorised Terminal API payment with a  <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> API call. Splitting at capture is also the procedure to use for tipping (gratuity) and partial payments.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>Enabling manual capture for POS payments applies to all your point-of-sale account holders.<\/p>\n<\/div><\/div>\n<p>Proceed as follows to split at capture:<\/p>\n<ol>\n<li>\n<p>From the <a href=\"\/pt\/point-of-sale\/design-your-integration\/terminal-api#transaction-identifier\">\n  <code>transactionID<\/code>\n<\/a> field in the <a href=\"\/pt\/point-of-sale\/basic-tapi-integration\/make-a-payment#payment-response\">payment response<\/a>, get the <code>pspReference<\/code> of the authorization you want to capture.<\/p>\n<\/li>\n<li>\n<p>To capture and split a payment at the same time, send a POST  <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> request, where <code>paymentPspReference<\/code> is the <code>pspReference<\/code> of the authorization you want to capture.<\/p>\n<p>In the body, include the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-splits\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">splits<\/a> array. For each item in the array, specify the following fields:<\/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\/payments\/(paymentPspReference)\/captures#request-splits-account\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">account<\/a><\/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 account that will receive (or be charged) the split amount. This is the <code>accountCode<\/code> of your account holder's accounts or your liable balance account. You do not need to specify this field when <code>type<\/code> is <strong>Commission<\/strong>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-amount-value\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">amount.value<\/a><\/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 value of the split amount. You do not need to specify this field for transaction fees, since they are not known at the time of payment.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-type\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">type<\/a><\/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;\">Defines the part of the payment you want to book to a specific <code>account<\/code>.<br>Possible values:<ul><li markdown=\"1\"><strong>Commission<\/strong>: books the commission to your platform's liable account.<\/li><li markdown=\"1\"><strong>MarketPlace<\/strong>: books the sale amount to the specified account.<\/li><li markdown=\"1\"><strong>PaymentFee<\/strong>: books the transaction fees to your platform's liable account.<\/li><li markdown=\"1\"><strong>VAT<\/strong>: books the value-added tax for the sale amount to the specified account.<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-reference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">reference<\/a><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">Required if <code>type<\/code> is <strong>MarketPlace<\/strong><br>Your reference for the split, which you can use to link the split to other operations and to reconcile payments. If the reference is not provided, the split is reported as part of the aggregated <strong>TransferBalance<\/strong> record in the <a href=\"\/pt\/classic-platforms\/reports-and-fees\/marketplace-payments-accounting-report\">Marketplace Payments accounting report<\/a>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"> <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#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;\">Your description for that specific transaction split, which is returned in our reporting.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The example below shows how to capture a USD&nbsp;80.00 authorization with <code>pspReference<\/code> 981517998282382C, and split it into USD&nbsp;76.00 to be paid into the account holder's account with <code>accountCode<\/code> 8815628270908491 and USD&nbsp;4.00 commission to be paid to your liable account.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Split funds at time of capture'\" :id=\"'capture-split-classic'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v72\\\/payments\\\/981517998282382C\\\/captures \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-d '{\\n      \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n      \\&quot;amount\\&quot;: {\\n          \\&quot;value\\&quot;: 8000,\\n          \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n      },\\n      \\&quot;reference\\&quot;: \\&quot;YOUR_REFERENCE_NUMBER\\&quot;,\\n      \\&quot;splits\\&quot;:[\\n        {\\n          \\&quot;amount\\&quot;:{\\n            \\&quot;value\\&quot;:7600\\n          },\\n          \\&quot;type\\&quot;:\\&quot;MarketPlace\\&quot;,\\n          \\&quot;account\\&quot;:\\&quot;8815628270908491\\&quot;,\\n          \\&quot;reference\\&quot;:\\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;\\n        },\\n        {\\n          \\&quot;amount\\&quot;:{\\n            \\&quot;value\\&quot;:400\\n          },\\n          \\&quot;type\\&quot;:\\&quot;Commission\\&quot;,\\n          \\&quot;reference\\&quot;:\\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;\\n        }\\n      ]\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v40.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nSplitAmount splitAmount1 = new SplitAmount()\\n  .value(7600L);\\n\\nSplitAmount splitAmount2 = new SplitAmount()\\n  .value(400L);\\n\\nAmount amount = new Amount()\\n  .currency(\\&quot;USD\\&quot;)\\n  .value(8000L);\\n\\nSplit split1 = new Split()\\n  .reference(\\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;)\\n  .amount(splitAmount1)\\n  .type(Split.TypeEnum.MARKETPLACE)\\n  .account(\\&quot;8815628270908491\\&quot;);\\n\\nSplit split2 = new Split()\\n  .reference(\\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;)\\n  .amount(splitAmount2)\\n  .type(Split.TypeEnum.COMMISSION);\\n\\nPaymentCaptureRequest paymentCaptureRequest = new PaymentCaptureRequest()\\n  .reference(\\&quot;YOUR_REFERENCE_NUMBER\\&quot;)\\n  .amount(amount)\\n  .splits(Arrays.asList(split1, split2))\\n  .merchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;);\\n\\n\\\/\\\/ Send the request\\nModificationsApi service = new ModificationsApi(client);\\nPaymentCaptureResponse response = service.captureAuthorisedPayment(\\&quot;paymentPspReference\\&quot;, paymentCaptureRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;&lt;?php\\n\\\/\\\/ Adyen PHP API Library v28.3.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\Split;\\nuse Adyen\\\\Model\\\\Checkout\\\\SplitAmount;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentCaptureRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\ModificationsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$splitAmount1 = new SplitAmount();\\n$splitAmount1\\n  -&gt;setValue(7600);\\n\\n$splitAmount2 = new SplitAmount();\\n$splitAmount2\\n  -&gt;setValue(400);\\n\\n$amount = new Amount();\\n$amount\\n  -&gt;setCurrency(\\&quot;USD\\&quot;)\\n  -&gt;setValue(8000);\\n\\n$split1 = new Split();\\n$split1\\n  -&gt;setReference(\\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;)\\n  -&gt;setAmount($splitAmount1)\\n  -&gt;setType(\\&quot;MarketPlace\\&quot;)\\n  -&gt;setAccount(\\&quot;8815628270908491\\&quot;);\\n\\n$split2 = new Split();\\n$split2\\n  -&gt;setReference(\\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;)\\n  -&gt;setAmount($splitAmount2)\\n  -&gt;setType(\\&quot;Commission\\&quot;);\\n\\n$paymentCaptureRequest = new PaymentCaptureRequest();\\n$paymentCaptureRequest\\n  -&gt;setReference(\\&quot;YOUR_REFERENCE_NUMBER\\&quot;)\\n  -&gt;setAmount($amount)\\n  -&gt;setSplits(array($split1, $split2))\\n  -&gt;setMerchantAccount(\\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Send the request\\n$service = new ModificationsApi($client);\\n$response = $service-&gt;captureAuthorisedPayment('paymentPspReference', $paymentCaptureRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .NET API Library v32.2.1\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nSplitAmount splitAmount1 = new SplitAmount\\n{\\n  Value = 7600\\n};\\n\\nSplitAmount splitAmount2 = new SplitAmount\\n{\\n  Value = 400\\n};\\n\\nAmount amount = new Amount\\n{\\n  Currency = \\&quot;USD\\&quot;,\\n  Value = 8000\\n};\\n\\nSplit split1 = new Split\\n{\\n  Reference = \\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;,\\n  Amount = splitAmount1,\\n  Type = Split.TypeEnum.MarketPlace,\\n  Account = \\&quot;8815628270908491\\&quot;\\n};\\n\\nSplit split2 = new Split\\n{\\n  Reference = \\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;,\\n  Amount = splitAmount2,\\n  Type = Split.TypeEnum.Commission\\n};\\n\\nPaymentCaptureRequest paymentCaptureRequest = new PaymentCaptureRequest\\n{\\n  Reference = \\&quot;YOUR_REFERENCE_NUMBER\\&quot;,\\n  Amount = amount,\\n  Splits = new List&lt;Split&gt;{ split1, split2 },\\n  MerchantAccount = \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;\\n};\\n\\n\\\/\\\/ Send the request\\nvar service = new ModificationsService(client);\\nvar response = service.CaptureAuthorisedPayment(\\&quot;paymentPspReference\\&quot;, paymentCaptureRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.0\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst paymentCaptureRequest = {\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  amount: {\\n    value: 8000,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  reference: \\&quot;YOUR_REFERENCE_NUMBER\\&quot;,\\n  splits: [ {\\n    amount: {\\n      value: 7600\\n    },\\n    type: \\&quot;MarketPlace\\&quot;,\\n    account: \\&quot;8815628270908491\\&quot;,\\n    reference: \\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;\\n  }, {\\n    amount: {\\n      value: 400\\n    },\\n    type: \\&quot;Commission\\&quot;,\\n    reference: \\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;\\n  } ]\\n}\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.ModificationsApi.captureAuthorisedPayment(\\&quot;paymentPspReference\\&quot;, paymentCaptureRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v21.1.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v21\\\/src\\\/checkout\\&quot;\\n)\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\nsplitAmount1 := checkout.SplitAmount{\\n  Value: 7600,\\n}\\n\\nsplitAmount2 := checkout.SplitAmount{\\n  Value: 400,\\n}\\n\\namount := checkout.Amount{\\n  Currency: \\&quot;USD\\&quot;,\\n  Value: 8000,\\n}\\n\\nsplit1 := checkout.Split{\\n  Reference: common.PtrString(\\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;),\\n  Amount: &amp;splitAmount1,\\n  Type: \\&quot;MarketPlace\\&quot;,\\n  Account: common.PtrString(\\&quot;8815628270908491\\&quot;),\\n}\\n\\nsplit2 := checkout.Split{\\n  Reference: common.PtrString(\\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;),\\n  Amount: &amp;splitAmount2,\\n  Type: \\&quot;Commission\\&quot;,\\n}\\n\\npaymentCaptureRequest := checkout.PaymentCaptureRequest{\\n  Reference: common.PtrString(\\&quot;YOUR_REFERENCE_NUMBER\\&quot;),\\n  Amount: amount,\\n  Splits: []checkout.Split{\\n      split1, split2,\\n  },\\n  MerchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n}\\n\\n\\\/\\\/ Send the request\\nservice := client.Checkout()\\nreq := service.ModificationsApi.CaptureAuthorisedPaymentInput(\\&quot;paymentPspReference\\&quot;).IdempotencyKey(\\&quot;UUID\\&quot;).PaymentCaptureRequest(paymentCaptureRequest)\\nres, httpRes, err := service.ModificationsApi.CaptureAuthorisedPayment(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v14.0.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 8000,\\n    \\&quot;currency\\&quot;: \\&quot;USD\\&quot;\\n  },\\n  \\&quot;reference\\&quot;: \\&quot;YOUR_REFERENCE_NUMBER\\&quot;,\\n  \\&quot;splits\\&quot;: [ {\\n    \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 7600\\n    },\\n    \\&quot;type\\&quot;: \\&quot;MarketPlace\\&quot;,\\n    \\&quot;account\\&quot;: \\&quot;8815628270908491\\&quot;,\\n    \\&quot;reference\\&quot;: \\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;\\n  }, {\\n    \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 400\\n    },\\n    \\&quot;type\\&quot;: \\&quot;Commission\\&quot;,\\n    \\&quot;reference\\&quot;: \\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;\\n  } ]\\n}\\n\\n# Send the request\\nresult = adyen.checkout.modifications_api.capture_authorised_payment(request=json_request, paymentPspReference=\\&quot;paymentPspReference\\&quot;, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v11.0.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\n# For the LIVE environment, also include your liveEndpointUrlPrefix.\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :merchantAccount =&gt; 'YOUR_MERCHANT_ACCOUNT',\\n  :amount =&gt; {\\n    :value =&gt; 8000,\\n    :currency =&gt; 'USD'\\n  },\\n  :reference =&gt; 'YOUR_REFERENCE_NUMBER',\\n  :splits =&gt; [ {\\n    :amount =&gt; {\\n      :value =&gt; 7600\\n    },\\n    :type =&gt; 'MarketPlace',\\n    :account =&gt; '8815628270908491',\\n    :reference =&gt; 'YOUR_REFERENCE_TO_SPLIT_#1'\\n  }, {\\n    :amount =&gt; {\\n      :value =&gt; 400\\n    },\\n    :type =&gt; 'Commission',\\n    :reference =&gt; 'YOUR_REFERENCE_TO_SPLIT_#2'\\n  } ]\\n}\\n\\n# Send the request\\nresult = adyen.checkout.modifications_api.capture_authorised_payment(request_body, 'paymentPspReference', headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v30.0.0\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\n\\\/\\\/ For the LIVE environment, also include your liveEndpointUrlPrefix.\\nconst config = new Config({\\n  apiKey: \\&quot;ADYEN_API_KEY\\&quot;,\\n  environment: EnvironmentEnum.TEST\\n});\\n\\nconst client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nconst splitAmount1: Types.checkout.SplitAmount = {\\n  value: 7600\\n};\\n\\nconst splitAmount2: Types.checkout.SplitAmount = {\\n  value: 400\\n};\\n\\nconst amount: Types.checkout.Amount = {\\n  currency: \\&quot;USD\\&quot;,\\n  value: 8000\\n};\\n\\nconst split1: Types.checkout.Split = {\\n  reference: \\&quot;YOUR_REFERENCE_TO_SPLIT_#1\\&quot;,\\n  amount: splitAmount1,\\n  type: Types.checkout.Split.TypeEnum.MarketPlace,\\n  account: \\&quot;8815628270908491\\&quot;\\n};\\n\\nconst split2: Types.checkout.Split = {\\n  reference: \\&quot;YOUR_REFERENCE_TO_SPLIT_#2\\&quot;,\\n  amount: splitAmount2,\\n  type: Types.checkout.Split.TypeEnum.Commission\\n};\\n\\nconst paymentCaptureRequest: Types.checkout.PaymentCaptureRequest = {\\n  reference: \\&quot;YOUR_REFERENCE_NUMBER\\&quot;,\\n  amount: amount,\\n  splits: [split1, split2],\\n  merchantAccount: \\&quot;YOUR_MERCHANT_ACCOUNT\\&quot;\\n};\\n\\n\\\/\\\/ Send the request\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.ModificationsApi.captureAuthorisedPayment(\\&quot;paymentPspReference\\&quot;, paymentCaptureRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>In the capture response, note the following:<\/p>\n<ul>\n<li><code>paymentPspReference<\/code>: The PSP reference of the authorization.<\/li>\n<li><code>pspReference<\/code>: The PSP reference associated with this capture request. This is different from the PSP reference of the authorization.<\/li>\n<li>\n<p><code>status<\/code>: <strong>received<\/strong><\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>Listen to the <a href=\"\/pt\/point-of-sale\/capturing-payments#capture-webhook\">CAPTURE webhook<\/a> to learn the outcome of the request.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"see-also\">See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/platforms\"\n                        target=\"_self\"\n                        >\n                    Adyen for Platforms\n                <\/a><\/li><li><a href=\"\/point-of-sale\/design-your-integration\/terminal-api\"\n                        target=\"_self\"\n                        >\n                    Terminal API\n                <\/a><\/li><li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/Payment\/latest\/capture\"\n                        target=\"_blank\"\n                         class=\"external\">\n                    API Explorer - Capture\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/pt\/classic-platforms\/platforms-for-pos","articleFields":{"description":"Process point-of-sale payments on behalf of your account holders.","search_category":"Classic Platforms","feedback_component":true,"last_edit_on":"02-08-2021 16:33","parameters":{"integrationType":"classic","channel":"pos","directoryPath":"\/classic-platforms","model":"platform"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/classic-platforms\/platforms-for-pos","title":"Point of sale for platforms","content":"\nThis page is for classic Adyen for Platforms integrations. If you are just starting your implementation, refer to our new integration guide instead.\n\nAdyen for Platforms enables you to onboard account holders with point-of-sale (POS) integrations to accept in-person payments. To make this happen, you need to:\n\nSubscribe to store notifications.\nAdd a store for the account holder.\nAssign a terminal to the store and ship it to the the account holder's store address.\nSplit funds between accounts in your platform.\n\nRequirements\nBefore you start processing point-of-sale payments for your account holders, you need to:\n\nHave a Terminal API integration with Adyen.\nBe familiar with the features of Adyen for Platforms, such as account structure, the onboarding and verification process, split payments, and notifications.\nContact our Support Team and provide the following required information.\n\nCountries\nCurrencies\nMerchant category codes (MCCs)\nPayment methods\n\n\nYou can specify different currencies, MCCs, and payment methods for each country\/region. We use this information to enable you to create stores based on the type of payments that must be processed in the store.\nSubscribe to store notifications\nWhen you add a store for an account holder, we send a notification to let you know the store has been set up. To ensure you receive this notification:\n\n\nMake a POST request to the Terminal API endpoint, specifying:\n\nactive: true.\ndescription: Your text to recognize the notification subscription by.\nAn eventConfigs array with eventType: ACCOUNT_HOLDER_STORE_STATUS_CHANGE and includeMode: INCLUDE.\nnotifyURL: Endpoint on your server where you'll receive the notifications.\nhmacSignatureKey: Use this parameter if you want us to protect notifications with HMAC signatures. It specifies the HMAC key that we'll use to calculate the HMAC signatures of the notifications we send to the notifyURL. On your end you'll need to verify the signatures of the incoming notifications.\nnotifyUsername and notifyPassword: Username and password that we need for basic authentication with the server where you'll receive the notifications.\nsslProtocol: Protocol used to secure the communication, such as TLS or SSL.\n\n\n\n\n\n\n\n\n\nMake sure that your server accepts the notifications.\n\n\nUse the notificationId you receive in the response to test the notification.\n\n\nCreate a store for the account holder\n\nMake sure our Support Team has enabled creating stores. If you haven't requested this yet, refer to the requirements.\n\nOnce our Support Team has enabled creating stores, you can start adding stores for your account holders.\nTo provide store details, include a storeDetails array when you create a new account holder or when you update an existing one:\n\n\nMake a POST request to one of the following endpoints:\n\n\n\nSituation\nEndpoint\nSpecify\n\n\n\n\nThere is no account holder for the sub-merchant yet.\n\/createAccountHolder\nThe usual parameters to create a business account holder, as well as businessDetails.taxId.\n\n\nYou want to add a store to an existing account holder.\n\/updateAccountHolder\naccountHolderCode: Your unique reference for the account holder. Include businessDetails.taxId, unless it is already present as part of businessDetails.\n\n\n\n\n\nIn the request body, include an  accountHolderDetails.storeDetails array, specifying:\n\n address&#58; The city, country, houseNumberOrName, postalCode, stateOrProvince, and street of the physical store where the account holder will process payments from.\n fullPhoneNumber&#58; The phone number of the store.\n merchantAccount&#58; The merchant account used for accepting payments.\n merchantCategoryCode&#58; The merchant category code (MCC) that classifies the business of the account holder.\n storeName&#58; The name of the account holder's store. This will be included in the shopper statement.\n storeReference&#58; Your unique reference for the account holder's store.\n\nThe next example shows a \/createAccountHolder request to create a new account holder with a store.\n\n\n\nThe following example shows how to add a store to an existing account holder using an \/updateAccountHolder call.\n\n\n\nThe response contains various account holder details, including the storeDetails showing that the status of the store is Pending.\n\n\n\n\n\nBefore processing point-of-sale (POS) payments, wait until you receive an ACCOUNT_HOLDER_STORE_STATUS_CHANGE notification showing that the new status of the store is Active.\n\n\n\n\n\nAssign a terminal to the store\nTo process POS payments, the account holder's store needs to have one or more payment terminals. The process is as follows:\n\n\nSelect a terminal and inform the account holder of the communication requirements.\n\n\nOrder a terminal if you do not have the required terminal in your inventory.\n\n\nAssign the terminal from your inventory to the store of the account holder in one of the following ways:\n\nAssign terminals using your Customer Area\nor\n\nAssign terminals in bulk using API calls\n\nThe advantage of using the Terminal Management API over the Customer Area, is that API calls enable you to automate assigning terminals and retrieving an overview of terminal assignments.\n\n\n\n\n\nConfigure the terminals in the Customer Area, under Point of Sale &gt; Terminal settings.\n\n\nShip the terminal to the physical store address and instruct the account holder to board the terminal.\n\n\nSplit a payment\nTo split a point-of-sale payment, you can:\n\nCreate a split configuration to automatically split payments processed through the store. For more information, refer to How split configuration works.\nSend split instructions for every transaction at time of payment or at capture.\n\nWhen you use a split configuration, Adyen evaluates the rules in the split configuration for all the transactions processed through the store. If you need to change the commission fees for specific transactions, you can send split instructions in the payment or capture API request. Any split instructions that you send through the API overrides the automatic split.\nMake a split payment using the Terminal API\nTo split a POS payment, you make a Terminal API call. In the PaymentRequest you provide the split payment data in the SaleToAcquirerData, in key-value pair or Base64-encoded format. This credits payments directly to an account holder's account.\nTo make the payment:\n\n\nMake a POST request to a Terminal API endpoint, specifying:\n\n\nThe standard \n  SaleToPOIRequest.MessageHeader\n object, with MessageClass set to Service and MessageCategory set to Payment.\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nProtocolVersion\n\n3.0\n\n\nMessageClass\n\nService\n\n\nMessageCategory\n\nPayment\n\n\nMessageType\n\nRequest\n\n\nServiceID\n\nYour unique ID for this request, consisting of 1-10 alphanumeric characters. Must be unique within the last 48 hours for the terminal (POIID) being used.\n\n\nSaleID\n\nYour unique ID for the POS system component to send this request from.\n\n\nPOIID\n\nThe unique ID of the terminal to send this request to. Format: [device model]-[serial number].\n\n\n\n\n\n\n\nPaymentRequest: The request body. This must include:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\nSaleData.SaleTransactionID\n\nAn object with: TransactionID: your reference to identify a payment. We recommend using a unique value per payment. In your Customer Area and Adyen reports, this will show as the merchant reference for the transaction. TimeStamp: date and time of the request in UTC format.\n\n\nSaleData.SaleToAcquirerData\n\nProvides the split payment data as concatenated key-value pairs separated by an ampersand (&amp;) character, or in Base64-encoded format. See the tables below for details.\n\n\nPaymentTransaction.AmountsReq\n\nAn object with: Currency: the transaction currency.RequestedAmount: the transaction amount.\n\n\n\n\n\nTo provide the split payment data in PaymentRequest.SaleData.SaleToAcquirerData, use the following fields:\n\n\n\nField\nDescription\nExample\n\n\n\n\nsplit.api\nVersion of the Split API: 1.\nsplit.api=1\n\n\nsplit.totalAmount\nAmount to be split, in minor units. Must be equal to the transaction amount and to the sum of the split amounts.\nsplit.totalAmount=62000\n\n\nsplit.currencyCode\nCurrency of the amount to be split.\nsplit.currencyCode=EUR\n\n\nsplit.nrOfItems\nNumber of times you will split the payment. Must match the number of split items in the request.\nsplit.nrOfItems=2\n\n\n\nSpecify each split as a\u00a0split.item{item#} starting at\u00a01:\u00a0split.item1,\u00a0split.item2, and so on. Each split item includes:\n\n\n\nField\nDescription\nExample\n\n\n\n\nsplit.item{item#}.amount\nAmount of the split, in minor units.\nsplit.item1.amount=60000 and split.item2.amount=2000\n\n\nsplit.item{item#}.type\nSplit type. A\u00a0type\u00a0of\u00a0MarketPlace\u00a0or VAT sends the amount to the\u00a0account\u00a0specified. A type of\u00a0Commission\u00a0or PaymentFee sends the amount to your\u00a0liable account.\nsplit.item1.type=MarketPlace and split.item2.type=Commission\n\n\nsplit.item{item#}.account\nAccount that will receive the split. This is the\u00a0accountCode\u00a0of one of your account holder's accounts or your own liable account. You do not need to specify an account when split.type is Commission.\n\u00a0split.item1.account=8815628270908491\n\n\nsplit.item{item#}.reference\nThe reference for that specific transaction split, which is returned in our reporting. We strongly recommend that you always include a reference for the split item. Required if the split.type is MarketPlace.\n\u00a0\n\n\n\n\n\nThe following example shows how to split a EUR&nbsp;620.00 payment into EUR&nbsp;600.00 to be paid into the account holder's account with accountCode 8815628270908491 and EUR&nbsp;20.00 commission to be paid to the platform.\n\n\n\nThe payment request is routed to the terminal, for the shopper to present their card and verify the payment. The payment is then sent to the Adyen payments platform for processing.\n\n\nReceive the payment result.\n\nIf your integration uses asynchronous cloud communications, you must set up event notifications. We then send the Terminal API responses to your endpoint.\n\nIf the payment is successful:\n\nApproved is shown on the terminal display.\nYou receive a payment response containing:\n\nPOIData.POITransactionID.TransactionID: Transaction identifier for the payment in the format tenderReference.pspReference. For example, oLkO0012498220087000.981517998282382C.\nPaymentResponse.Response.Result: Success\nPaymentResponse.Response.AdditionalResponse: A base64 string. When decoded, this is a JSON object with additional transaction data.\nPaymentReceipt: Object containing data you can use to generate a receipt.\n\n\n\n\nYou can also view the details of a payment in your Customer Area, under Transactions &gt; Payments.\nSplit at capture using the API\nSome platforms do not know the final split amounts at the moment the payment request is made. If this applies to your account holder's POS payments, you need to enable manual capture for POS payments and follow up each authorised Terminal API payment with a  \/payments\/{paymentPspReference}\/captures API call. Splitting at capture is also the procedure to use for tipping (gratuity) and partial payments.\n\nEnabling manual capture for POS payments applies to all your point-of-sale account holders.\n\nProceed as follows to split at capture:\n\n\nFrom the \n  transactionID\n field in the payment response, get the pspReference of the authorization you want to capture.\n\n\nTo capture and split a payment at the same time, send a POST  \/payments\/{paymentPspReference}\/captures request, where paymentPspReference is the pspReference of the authorization you want to capture.\nIn the body, include the  splits array. For each item in the array, specify the following fields:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\n account\n\nThe account that will receive (or be charged) the split amount. This is the accountCode of your account holder's accounts or your liable balance account. You do not need to specify this field when type is Commission.\n\n\n amount.value\n\nThe value of the split amount. You do not need to specify this field for transaction fees, since they are not known at the time of payment.\n\n\n type\n\nDefines the part of the payment you want to book to a specific account.Possible values:Commission: books the commission to your platform's liable account.MarketPlace: books the sale amount to the specified account.PaymentFee: books the transaction fees to your platform's liable account.VAT: books the value-added tax for the sale amount to the specified account.\n\n\n reference\n\nRequired if type is MarketPlaceYour reference for the split, which you can use to link the split to other operations and to reconcile payments. If the reference is not provided, the split is reported as part of the aggregated TransferBalance record in the Marketplace Payments accounting report.\n\n\n description\n\nYour description for that specific transaction split, which is returned in our reporting.\n\n\n\nThe example below shows how to capture a USD&nbsp;80.00 authorization with pspReference 981517998282382C, and split it into USD&nbsp;76.00 to be paid into the account holder's account with accountCode 8815628270908491 and USD&nbsp;4.00 commission to be paid to your liable account.\n\n\n\n\n\nIn the capture response, note the following:\n\npaymentPspReference: The PSP reference of the authorization.\npspReference: The PSP reference associated with this capture request. This is different from the PSP reference of the authorization.\n\nstatus: received\n\n\n\n\nListen to the CAPTURE webhook to learn the outcome of the request.\n\n\nSee also\n\n\n                    Adyen for Platforms\n                \n                    Terminal API\n                \n                    API Explorer - Capture\n                \n","type":"page","locale":"pt","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"Classic integration","lvl2":"Point of sale for platforms"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/classic-platforms","lvl2":"\/pt\/classic-platforms\/platforms-for-pos"},"levels":3,"category":"Classic Platforms","category_color":"green","tags":["Point","platforms"]}}
