{"title":"Pre-authorization and authorization adjustment","category":"default","creationDate":1705555560,"content":"<p>In a basic payment flow, the payable amount from your payment request is <a href=\"\/get-started-with-adyen\/adyen-glossary\/#authorization?target=_blank\">authorized<\/a> and then <a href=\"\/get-started-with-adyen\/adyen-glossary\/#capture-or-clearing-and-settlement?target=_blank\">captured<\/a>. But sometimes you want to change the amount or extend the length of the authorization. Using the <a href=\"#authorisation-types?target=_blank\">authorization type<\/a> <strong>pre-authorization<\/strong> for your payment request, you can increase or decrease the authorized amount at a later stage, and then capture the payment manually. Changes to a pre-authorized payment are called \"authorization adjustments\".<\/p>\n<h2>Requirements<\/h2>\n<p>Before you begin, take into account the following requirements, limitations, and preparations.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Integration type<\/strong><\/td>\n<td style=\"text-align: left;\">A <a href=\"\/point-of-sale\/basic-tapi-integration\/\">Terminal API integration<\/a> with payment terminals.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/development-resources\/api-credentials\">API credentials<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">You must have an API credential with an API key and the following <a href=\"\/development-resources\/api-credentials\/roles#roles-for-payments\">roles, which are assigned by default<\/a>: <ul><li markdown=\"1\">Merchant PAL webservice role<\/li> <li markdown=\"1\">Checkout webservice role<\/li><\/ul> <br>If you have a Terminal API integration with <a href=\"\/point-of-sale\/design-your-integration\/choose-your-architecture#cloud-communications\">cloud-based communications<\/a>, you can use the existing API key that you use for Terminal API requests.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong><a href=\"\/development-resources\/webhooks\">Webhooks<\/a><\/strong><\/td>\n<td style=\"text-align: left;\">Listen for <a href=\"\/development-resources\/webhooks\/webhook-types#default-event-codes\">Standard webhook messages<\/a> with the following <code>eventCode<\/code> values: <ul><li markdown=\"1\"><span translate=\"no\"><strong>AUTHORISATION_ADJUSTMENT<\/strong><\/span><\/li> <li markdown=\"1\"><span translate=\"no\"><strong>CAPTURE<\/strong><\/span><\/li> <li markdown=\"1\"><span translate=\"no\"><strong>CAPTURE_FAILED<\/strong><\/span><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Hardware<\/strong><\/td>\n<td style=\"text-align: left;\">Use a payment terminal model that is suitable for unattended use, like the <span translate=\"no\"><strong>P400 Plus<\/strong><\/span>, <span translate=\"no\"><strong>S1U2<\/strong><\/span>, or <span translate=\"no\"><strong>UX300<\/strong><\/span>.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\">Be aware of the following: <ul><li markdown=\"1\"><a href=\"\/point-of-sale\/pre-authorisation\/#availability\">Support for authorization adjustment<\/a> is limited to specific payment methods and Merchant Category Codes (MCC). It is ultimately up to the issuing bank whether they allow it.<\/li> <li markdown=\"1\">Pre-authorizations and authorizations <a href=\"\/point-of-sale\/pre-authorisation\/#validity\">eventually expire<\/a>. The length of an authorization's validity depends on the card scheme.<\/li> <li markdown=\"1\"><a href=\"#smart-pre-auth\">Smart pre-authorization<\/a> is not available for QR based payment methods, Mail Order\/Telephone Order (MOTO) and Manual Key Entry (MKE).<\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><strong>Setup steps<\/strong><\/td>\n<td style=\"text-align: left;\">Before you begin: <ul><li markdown=\"1\">Contact our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to configure your payment methods.<\/li> <li markdown=\"1\"><a href=\"\/point-of-sale\/capturing-payments#enable-manual-capture\">Enable manual capture<\/a>, either for your account or for individual transactions.<\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\nThe process to adjust an authorized amount is as follows:\n<ol>\n<li>To indicate that you will probably make changes later, you use the authorization type <a href=\"#pre-authorize\">pre-authorization<\/a> in your payment request.<br \/>\nThe payment is pre-authorized for the amount specified in the payment request.<\/li>\n<li>When the amount due increases (or decreases), you send a request to <a href=\"#adjust-auth\">adjust the pre-authorized amount<\/a>.<br \/>\nEach time that the amount due changes or the validity period of the authorization is about to expire, you send another authorization adjustment request.<\/li>\n<li>After your last authorization adjustment, you <a href=\"#capture-authorization\">manually capture the payment<\/a>.<\/li>\n<\/ol>\n<p>Note the following:<\/p>\n<ul>\n<li>You need to implement logic on your end to decide when to use the pre-authorization flow, and to calculate the amount when you make an authorization adjustment.<\/li>\n<li>You can use pre-authorization with <a href=\"\/point-of-sale\/currency-conversion\/#dcc-flow\">Dynamic Currency Conversion (DCC)<\/a>. This gives shoppers from abroad a choice to pay in the local currency or their own currency.<\/li>\n<\/ul>\n<h3>Use cases<\/h3>\n<p>There are several use cases for adjusting a pre-authorized amount:<\/p>\n<ul>\n<li>Hospitality. For example, in a hotel:\n<ol>\n<li>Just before the guest checks in, or when the guest checks in using an app or in person, the hotel pre-authorizes payment of the guest's room. At the same time, the hotel  <a href=\"\/point-of-sale\/shopper-recognition\">stores the shopper's payment information<\/a> , to be able to apply late charges when necessary.<\/li>\n<li>During their stay, the guest incurs expenses at the hotel facilities. The hotel adds these expenses to the pre-authorized amount by adjusting the authorization.<\/li>\n<li>When the guest checks out, the hotel captures the final amount, or cancels the payment if the guest prefers to settle their bill with a different payment method.<\/li>\n<li>If necessary, the hotel charges the guest after they have left, using the shopper's stored payment details for a new payment.<\/li>\n<\/ol><\/li>\n<\/ul>\n<ul>\n<li>\n<p><a href=\"\/point-of-sale\/tipping\/tipping-on-receipt\">Tipping<\/a> in regions and industries where it is customary that the guest adds a tip on the receipt after they have presented their card.<\/p>\n<\/li>\n<li>\n<p>Cross-channel customer journeys. For example: the shopper pre-orders a product in a web shop, and after a long delivery time goes to the store to make the payment and collect the product.<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"authorisation-types\">Authorization type<\/h2>\n<p>For some card schemes, you can set payment requests to be handled as either a pre-authorization or a final authorization.<\/p>\n<ul>\n<li>\n<p><strong>Pre-authorization<\/strong>: this authorization type verifies that the shopper's account is valid and has sufficient funds to cover a transaction, but does not debit the account. It is intended for use cases as described above, when you do not yet know the amount to be captured. It allows you to increase or decrease the initially authorized amount at a later point in time.<\/p>\n<\/li>\n<li>\n<p><strong>Final authorization<\/strong>: the final amount is agreed up front and the transaction will be captured in full. This is the default authorization type, and it doesn't allow you to adjust the authorized amount later.<\/p>\n<\/li>\n<\/ul>\n<p>By default, Adyen handles all card payment requests as final authorizations. To set an authorization type, you can either:<\/p>\n<ul>\n<li>Define the default authorization type at the merchant account level for all card transactions. See <a href=\"#configure-account\">Configure your account<\/a>.<\/li>\n<li>Specify <code>authorisationType<\/code> <strong>PreAuth<\/strong> or <code>authorisationType<\/code> <strong>FinalAuth<\/strong> in each payment request. See <a href=\"#pre-authorize\">Pre-authorize a payment<\/a>.<\/li>\n<\/ul>\n<h2>Asynchronous or synchronous adjustment<\/h2>\n<p>There are two ways to implement pre-authorization:<\/p>\n<ul>\n<li>\n<p><strong>Asynchronous authorization adjustment<\/strong>: you refer to a payment using the PSP reference that you received in the response to your pre-authorization request. In each authorization adjustment request, and in the final capture request, you specify this first PSP reference.<\/p>\n<p>Asynchronous adjustment is easier to implement, but it is not immediately clear if the adjustment succeeded. You must <a href=\"\/development-resources\/webhooks\">set up webhooks<\/a> to receive updates and to know if the final amount was authorized before you capture the payment.<\/p>\n<\/li>\n<li>\n<p><strong>Synchronous authorization adjustment<\/strong>: you pass an <code>adjustAuthorisationData<\/code> blob from one request to the next, to enable us to keep track of the latest amount. You receive the first blob in the response to your pre-authorization request. In your first authorization adjustment request, you specify the blob you received for the pre-authorization, and you receive a new blob in the response. In your next adjustment, you specify the blob that you received in the response for the previous adjustment, and so on.<\/p>\n<p>Synchronous adjustment requires more effort to implement, because you need to keep track of the latest blob. The advantage is that you receive the adjustment result synchronously. In this way you immediately know if the final amount was authorized before you capture the payment.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>If at any point you fail to pass the blob, the flow falls back to asynchronous adjustment, and it is no longer possible to return to synchronous adjustment for that payment.<\/p>\n<\/div><\/div>\n<\/li>\n<\/ul>\n<h2 id=\"configure-account\">Configure your account (Optional)<\/h2>\n<p>There are various aspects of your account that you may want to configure for pre-authorization and authorization adjustment:<\/p>\n<ul>\n<li>\n<p><strong>Synchronous authorization adjustment<\/strong>: to enable synchronous authorization adjustment, in your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a> go to <strong>In-person payments<\/strong> &gt; <strong>Developer<\/strong> &gt; <strong>Additional Data<\/strong> and select <strong>return adjust authorisation data<\/strong>. You will then receive the initial <code>adjustAuthorisationData<\/code> blob with your pre-authorization request and subsequently receive the authorization adjustment results synchronously.<\/p>\n<\/li>\n<li>\n<p><strong>Default authorization type<\/strong>: if you only do pre-authorization payment requests, you can ask 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 set your default <a href=\"#authorisation-types\">authorization type<\/a> to <span translate=\"no\"><strong>PreAuth<\/strong><\/span> so that you do not have to specify it in your payment requests.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>If you want to do both pre-authorization payment requests and regular payment requests, we recommend you specify the authorization type in all payment requests.<\/p>\n<\/div><\/div>\n<\/li>\n<li>\n<p><strong>Manual capture<\/strong>: to capture payments in the authorization adjustment flow, <a href=\"\/point-of-sale\/capturing-payments#enable-manual-capture\">manual capture must be enabled<\/a>. You can set this for your account, but then all payments require manual capture. The alternative is to enable manual capture in the individual pre-authorization requests.<\/p>\n<\/li>\n<\/ul>\n<h2 id=\"smart-pre-auth\">Enable smart pre-authorization (Optional)<\/h2>\n<p><a href=\"#availability\">Certain card schemes do not support incremental adjustments<\/a>. Because this is validated during the authorization adjustment step, you cannot know in advance, at the pre-authorization step, if you should accept the customer's card.<\/p>\n<p>The <strong>smart pre-authorization<\/strong> feature lets your payment terminal check if the card presented by the customer is of a brand that supports authorization adjustment. In addition to checking the card brand, you can optionally let the feature check if the funding source, such as credit or debit, supports authorization adjustment.<\/p>\n<p>If the card supports authorization adjustment, the terminal continues with the pre-authorization request. If the card does not support authorization adjustment, the terminal presents the shopper with a list of supported card brands to choose from. They can then use a different card and continue with the payment.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\"><\/th>\n<th style=\"text-align: left;\"><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Brand not supported: <br> <img title=\"Card brand does not support authorization adjustment\" alt=\"\" src=\"\/images\/5\/d\/4\/4\/d\/5d44d0d059a61263955fb8bedcf915a393a03e0e-screen-ensmart-pre-auth.png\" \/><\/td>\n<td style=\"text-align: left;\">Funding source not supported: <br> <img title=\"Funding source does not support authorization adjustment\" alt=\"\" src=\"\/images\/e\/e\/f\/8\/2\/eef82eea9a5819cb5251c701e8b2719b0943bb91-screen-ensmart-pre-auth-funding-source-compacttouch.png\" \/><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>To enable smart pre-authorization:<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a><\/li>\n<li>Go to <strong>In-person payments<\/strong> &gt; <strong>Terminal settings<\/strong> &gt; <strong>Payment features<\/strong>.<\/li>\n<li>Under <strong>Smart Pre-auth<\/strong> &gt; <strong>Filter supported Brands<\/strong>, select the pencil icon <i class=\"adl-icon-edit\"><\/i> and then select <strong>Enable<\/strong>.<\/li>\n<li>(Optional) If you want to exclude debit and\/or prepaid cards from the smart pre-authorization flow:\n<ol>\n<li>Under <strong>Filter Funding Sources<\/strong>, select the pencil icon <i class=\"adl-icon-edit\"><\/i>.<\/li>\n<li>Select <strong>Enable<\/strong>, and choose the types of cards that you want to exclude.<\/li>\n<\/ol><\/li>\n<li>Select <strong>Save<\/strong>.<\/li>\n<\/ol>\n<h2 id=\"pre-authorize\">1. Pre-authorize a payment<\/h2>\n<p>To start the pre-authorization payment flow, make a Terminal API payment request with an authorization type of <span translate=\"no\"><strong>PreAuth<\/strong><\/span>:<\/p>\n<ol>\n<li>\n<p><a href=\"\/point-of-sale\/basic-tapi-integration\/make-a-payment\">Make a payment request<\/a>, specifying:<\/p>\n<ul>\n<li>\n<p>The standard <a href=\"\/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>The  <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> object with:<\/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.<\/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;\">See <a href=\"#authorisation-types\">Authorization type<\/a><\/td>\n<td style=\"text-align: left;\">A string with: <ul><li markdown=\"1\"><span translate=\"no\"><strong>authorisationType=PreAuth<\/strong><\/span>: indicates this is a pre-authorization request.<\/li> <li markdown=\"1\"><span translate=\"no\"><strong>manualCapture=true<\/strong><\/span> to <a href=\"\/point-of-sale\/capturing-payments\/?tab=individual_payment_2#enable-manual-capture\">enable manual capture<\/a> for this request, if you haven't enabled manual capture for your account.<\/li><\/ul> <br>See <a href=\"\/point-of-sale\/add-data#instructions\">Adding data elements to your request<\/a> to learn how to format <code>SaleToAcquirerData<\/code>.<\/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=\"\/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<\/ul>\n<p>The following example shows how to initiate pre-authorization for a payment of <strong>EUR&nbsp;150.00<\/strong>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Pre-authorization request'\" :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\\\":\\\"P400Plus-275688710\\\"\\n    },\\n    \\\"PaymentRequest\\\":{\\n      \\\"SaleData\\\":{\\n        \\\"SaleTransactionID\\\":{\\n          \\\"TransactionID\\\":\\\"27908\\\",\\n          \\\"TimeStamp\\\":\\\"2019-03-07T10:11:04+00:00\\\"\\n        },\\n        \\\"SaleToAcquirerData\\\":\\\"authorisationType=PreAuth&amp;manualCapture=true\\\"\\n      },\\n      \\\"PaymentTransaction\\\":{\\n        \\\"AmountsReq\\\":{\\n          \\\"Currency\\\":\\\"EUR\\\",\\n          \\\"RequestedAmount\\\":150.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 customer presents their card to the payment terminal. The terminal collects the payment details and sends the request for the original amount to the Adyen payments platform for processing.<\/p>\n<\/li>\n<li>\n<p>Check the response. If the pre-authorization is successful:<\/p>\n<ul>\n<li>The terminal shows the transaction is approved.<\/li>\n<li>\n<p>The payment result contains:<\/p>\n<ul>\n<li>\n<p><code>POIData.POITransactionID.TransactionID<\/code>: <a href=\"\/point-of-sale\/design-your-integration\/terminal-api#transaction-identifier\">Transaction identifier<\/a> for the payment, in the format <em>tender_reference.PSP_reference<\/em>.<\/p>\n<\/li>\n<li>\n<p><code>PaymentResult<\/code>: payment method data including:<\/p>\n<ul>\n<li>\n<p><code>AmountsResp<\/code>: the <code>AuthorizedAmount<\/code> and <code>Currency<\/code> of the pre-authorized payment.<\/p>\n<!-- list separator -->\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>Response.Result<\/code>: <span translate=\"no\"><strong>Success<\/strong><\/span><\/p>\n<\/li>\n<li>\n<p><code>Response.AdditionalResponse<\/code>: additional transaction data. Depending on the format you used in the request, you receive either a string of form-encoded key-value pairs or a Base64 string that you need to decode to get a JSON object. This includes:<\/p>\n<ul>\n<li><code>posadditionalamounts.originalAmountValue<\/code>: the original amount in <a href=\"\/development-resources\/currency-codes\">minor units<\/a>.<\/li>\n<li><code>authorisedAmountValue<\/code>: the authorized amount in minor units, which at this stage is equal to the original amount.<\/li>\n<li><code>pspReference<\/code>: the PSP reference of your pre-authorization request.<\/li>\n<li><code>adjustAuthorisationData<\/code>: a blob with authorization data. You only receive this if the synchronous flow is enabled for your account.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>The following example shows the response to a EUR&nbsp;150.00 authorization request.<\/p>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Pre-authorization response - synchronous flow'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n    \\\"SaleToPOIResponse\\\": {\\n        \\\"PaymentResponse\\\": {\\n            \\\"POIData\\\":\\n                \\\"POITransactionID\\\": {\\n                    \\\"TimeStamp\\\": \\\"2019-12-04T13:56:26.000Z\\\",\\n                    \\\"TransactionID\\\": \\\"8ha5001575467786000.KHQC5N7G84BLNK43\\\"\\n                   }\\n                {...},\\n            \\\"SaleData\\\": {...},\\n            \\\"PaymentReceipt\\\": [...],\\n            \\\"PaymentResult\\\": {\\n                \\\"AuthenticationMethod\\\": [...],\\n                \\\"OnlineFlag\\\": true,\\n                \\\"PaymentAcquirerData\\\": {...},\\n                \\\"PaymentInstrumentData\\\": {...},\\n                \\\"AmountsResp\\\": {\\n                    \\\"AuthorizedAmount\\\": 150.00,\\n                    \\\"Currency\\\": \\\"EUR\\\"\\n                }\\n            },\\n            \\\"Response\\\": {\\n                \\\"Result\\\": \\\"Success\\\",\\n                \\\"AdditionalResponse\\\": \\\"...adjustAuthorisationData=BQABAQA+fbc==...\\\"\\n            }\\n        },\\n        \\\"MessageHeader\\\": {...}\\n    }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Store the <code>pspReference<\/code> and the <code>adjustAuthorisationData<\/code> from the <code>AdditionalResponse<\/code> for later use when adjusting the authorization or capturing the payment.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"adjust-auth\">2. Adjust the pre-authorized amount<\/h2>\n<p>To increase or decrease the pre-authorized amount or to <a href=\"#extend-authorization\">extend the authorization<\/a>, make an authorization adjustment request.<\/p>\n<p>This step involves making a request to the Adyen backend directly. This is not a Terminal API request to the terminal itself or the Cloud endpoint for the terminal.<\/p>\n<div class=\"notices yellow\">\n<p>When building or testing the flow, make sure there is at least a 5\u00a0second delay between the pre-authorization and the authorization adjustment.<\/p>\n<\/div>\n\n<div id=\"tabOky8e\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Asynchronous authorization adjustment&quot;,&quot;content&quot;:&quot;\\n&lt;ol&gt;\\n&lt;li&gt;\\n&lt;p&gt;Make a POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments\\\/{paymentPspReference}\\\/amountUpdates&lt;\\\/a&gt; request, including the following:&lt;\\\/p&gt;\\n&lt;p&gt;Path parameters:&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;paymentPspReference&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 PSP reference from the pre-authorization response.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;Body parameters:&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;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-merchantAccount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;merchantAccount&lt;\\\/a&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.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-amount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;amount&lt;\\\/a&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 &lt;code&gt;currency&lt;\\\/code&gt; and &lt;code&gt;value&lt;\\\/code&gt; of the new amount &lt;strong&gt;in minor units&lt;\\\/strong&gt;. This is the sum of the pre-authorized amount and the additional amount. &lt;br&gt;&lt;br&gt;If this is not the first authorization adjustment, it is the sum of the pre-authorized amount plus all additional amounts.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-industryUsage\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;industryUsage&lt;\\\/a&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;Use the &lt;strong&gt;delayedCharge&lt;\\\/strong&gt; value for pre-authorizations.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-reference\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;reference&lt;\\\/a&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 to this payment modification, for use in your reconciliation process.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;The following example shows how to add a charge of EUR&amp;nbsp;64.15 to a pre-authorized amount of EUR&amp;nbsp;150.00.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Asynchronous authorization adjustment request&#039;\\&quot; :id=\\&quot;&#039;async-auth-adjustment-request&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments\\\\\\\/{paymentPspReference}\\\\\\\/amountUpdates \\\\\\\\\\\\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;EUR\\\\&amp;quot;,\\\\n      \\\\&amp;quot;value\\\\&amp;quot;:21415\\\\n  },\\\\n  \\\\&amp;quot;industryUsage\\\\&amp;quot;: \\\\&amp;quot;delayedCharge\\\\&amp;quot;,\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v26.3.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, additionally include your liveEndpointUrlPrefix.\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount()\\\\n  .currency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  .value(21415L);\\\\n\\\\nPaymentAmountUpdateRequest paymentAmountUpdateRequest = new PaymentAmountUpdateRequest()\\\\n  .industryUsage(PaymentAmountUpdateRequest.IndustryUsageEnum.DELAYEDCHARGE)\\\\n  .reference(\\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;)\\\\n  .amount(amount)\\\\n  .merchantAccount(\\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nModificationsApi service = new ModificationsApi(client);\\\\nPaymentAmountUpdateResponse response = service.updateAuthorisedAmount(\\\\&amp;quot;paymentPspReference\\\\&amp;quot;, paymentAmountUpdateRequest, new RequestOptions().idempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;));&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen PHP API Library v18.2.1\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\LineItem;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\Amount;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\Checkout\\\\\\\\PaymentAmountUpdateRequest;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Checkout\\\\\\\\ModificationsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$amount = new Amount();\\\\n$amount\\\\n  -&amp;gt;setCurrency(\\\\&amp;quot;EUR\\\\&amp;quot;)\\\\n  -&amp;gt;setValue(21415);\\\\n\\\\n$paymentAmountUpdateRequest = new PaymentAmountUpdateRequest();\\\\n$paymentAmountUpdateRequest\\\\n  -&amp;gt;setIndustryUsage(\\\\&amp;quot;delayedCharge\\\\&amp;quot;)\\\\n  -&amp;gt;setReference(\\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;)\\\\n  -&amp;gt;setAmount($amount)\\\\n  -&amp;gt;setMerchantAccount(\\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;);\\\\n\\\\n$requestOptions[&#039;idempotencyKey&#039;] = &#039;UUID&#039;;\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new ModificationsApi($client);\\\\n$response = $service-&amp;gt;updateAuthorisedAmount(&#039;paymentPspReference&#039;, $paymentAmountUpdateRequest, $requestOptions);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v17.0.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Checkout;\\\\nusing Adyen.Service.Checkout;\\\\n\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAmount amount = new Amount\\\\n{\\\\n  Currency = \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value = 21415\\\\n};\\\\n\\\\nPaymentAmountUpdateRequest paymentAmountUpdateRequest = new PaymentAmountUpdateRequest\\\\n{\\\\n  IndustryUsage = PaymentAmountUpdateRequest.IndustryUsageEnum.DelayedCharge,\\\\n  Reference = \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;,\\\\n  Amount = amount,\\\\n  MerchantAccount = \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new ModificationsService(client);\\\\nvar response = service.UpdateAuthorisedAmount(\\\\&amp;quot;paymentPspReference\\\\&amp;quot;, paymentAmountUpdateRequest, requestOptions: new RequestOptions { IdempotencyKey = \\\\&amp;quot;UUID\\\\&amp;quot;});&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v17.3.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, CheckoutAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst paymentAmountUpdateRequest = {\\\\n  merchantAccount: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  amount: {\\\\n    currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    value: 21415\\\\n  },\\\\n  industryUsage: \\\\&amp;quot;delayedCharge\\\\&amp;quot;,\\\\n  reference: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.ModificationsApi.updateAuthorisedAmount(\\\\&amp;quot;paymentPspReference\\\\&amp;quot;, paymentAmountUpdateRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v10.4.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/checkout\\\\&amp;quot;\\\\n)\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\namount := checkout.Amount{\\\\n  Currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  Value: 21415,\\\\n}\\\\n\\\\npaymentAmountUpdateRequest := checkout.PaymentAmountUpdateRequest{\\\\n  IndustryUsage: common.PtrString(\\\\&amp;quot;delayedCharge\\\\&amp;quot;),\\\\n  Reference: common.PtrString(\\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;),\\\\n  Amount: amount,\\\\n  MerchantAccount: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Checkout()\\\\nreq := service.ModificationsApi.UpdateAuthorisedAmountInput(\\\\&amp;quot;paymentPspReference\\\\&amp;quot;).IdempotencyKey(\\\\&amp;quot;UUID\\\\&amp;quot;).PaymentAmountUpdateRequest(paymentAmountUpdateRequest)\\\\nres, httpRes, err := service.ModificationsApi.UpdateAuthorisedAmount(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v12.5.1\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\n# For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\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;EUR\\\\&amp;quot;,\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 21415\\\\n  },\\\\n  \\\\&amp;quot;industryUsage\\\\&amp;quot;: \\\\&amp;quot;delayedCharge\\\\&amp;quot;,\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.modifications_api.update_authorised_amount(request=json_request, paymentPspReference=\\\\&amp;quot;paymentPspReference\\\\&amp;quot;, idempotency_key=\\\\&amp;quot;UUID\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v9.5.1\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\n# For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :merchantAccount =&amp;gt; &#039;ADYEN_MERCHANT_ACCOUNT&#039;,\\\\n  :amount =&amp;gt; {\\\\n    :currency =&amp;gt; &#039;EUR&#039;,\\\\n    :value =&amp;gt; 21415\\\\n  },\\\\n  :industryUsage =&amp;gt; &#039;delayedCharge&#039;,\\\\n  :reference =&amp;gt; &#039;YOUR_UNIQUE_REFERENCE&#039;\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.checkout.modifications_api.update_authorised_amount(request_body, &#039;paymentPspReference&#039;, headers: { &#039;Idempotency-Key&#039; =&amp;gt; &#039;UUID&#039; })&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v17.3.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nimport { Client, CheckoutAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\n\\\\\\\/\\\\\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst amount: Types.checkout.Amount = {\\\\n  currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n  value: 21415\\\\n};\\\\n\\\\nconst paymentAmountUpdateRequest: Types.checkout.PaymentAmountUpdateRequest = {\\\\n  lineItems: [lineItem1, lineItem2],\\\\n  industryUsage: Types.checkout.PaymentAmountUpdateRequest.IndustryUsageEnum.DelayedCharge,\\\\n  reference: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;,\\\\n  amount: amount,\\\\n  merchantAccount: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst checkoutAPI = new CheckoutAPI(client);\\\\nconst response = checkoutAPI.ModificationsApi.updateAuthorisedAmount(\\\\&amp;quot;paymentPspReference\\\\&amp;quot;, paymentAmountUpdateRequest, { idempotencyKey: \\\\&amp;quot;UUID\\\\&amp;quot; });&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;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/amountUpdates&lt;\\\/a&gt; response, note the following parameters:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;pspReference&lt;\\\/code&gt;: the PSP reference for this  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/amountUpdates&lt;\\\/a&gt; request.&lt;br \\\/&gt;\\nThis is different from the PSP reference of the pre-authorization request.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;status&lt;\\\/code&gt;: &lt;strong&gt;received&lt;\\\/strong&gt;&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Asynchronous authorization adjustment response&#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;merchantAccount\\\\\\&quot;: \\\\\\&quot;ADYEN_MERCHANT_ACCOUNT\\\\\\&quot;,\\\\n   \\\\\\&quot;paymentPspReference\\\\\\&quot;: \\\\\\&quot;KHQC5N7G84BLNK43\\\\\\&quot;,\\\\n   \\\\\\&quot;pspReference\\\\\\&quot;: \\\\\\&quot;NC6HT9CRT65ZGN82\\\\\\&quot;,\\\\n   \\\\\\&quot;reference\\\\\\&quot;: \\\\\\&quot;YOUR_UNIQUE_REFERENCE\\\\\\&quot;,\\\\n   \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;received\\\\\\&quot;,\\\\n   \\\\\\&quot;amount\\\\\\&quot;: {\\\\n       \\\\\\&quot;currency\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;,\\\\n      \\\\\\&quot;value\\\\\\&quot;: 21415\\\\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;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Wait for a webhook message with the &lt;code&gt;eventCode&lt;\\\/code&gt;  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Webhooks\\\/latest\\\/post\\\/AUTHORISATION_ADJUSTMENT\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;AUTHORISATION_ADJUSTMENT&lt;\\\/a&gt;. This informs you whether the new amount has been authorized.&lt;\\\/p&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:1,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Synchronous authorization adjustment&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;&lt;a id=\\&quot;first-adjustment\\&quot;&gt;&lt;\\\/a&gt;&lt;\\\/p&gt;\\n&lt;ol&gt;\\n&lt;li&gt;\\n If this is the first adjustment after the pre-authorization:\\n&lt;ul&gt;\\n&lt;li&gt;\\n&lt;p&gt;If you received the &lt;code&gt;AdditionalResponse&lt;\\\/code&gt; in the initial Terminal API payment response as key-value pairs separated by ampersands (&lt;strong&gt;&amp;amp;&lt;\\\/strong&gt;), URL-decode the value of the &lt;code&gt;adjustAuthorisationData&lt;\\\/code&gt; key.&lt;\\\/p&gt;\\n&lt;div class=\\&quot;sc-notice info\\&quot;&gt;&lt;div&gt;\\n&lt;p&gt;To find a tool or instructions for URL-decoding, search the internet for &lt;em&gt;&amp;lt;YOUR_PROGRAMMING_LANGUAGE&gt; decode x-www-form-urlencoded&lt;\\\/em&gt;.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;If you received the &lt;code&gt;AdditionalResponse&lt;\\\/code&gt; in the initial Terminal API payment response as a Base64-encoded string, Base64-decode the string and copy the value of the &lt;code&gt;adjustAuthorisationData&lt;\\\/code&gt; field.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div class=\\&quot;sc-notice note\\&quot;&gt;&lt;div&gt;\\n&lt;p&gt;For adjustments after the first adjustment, skip the above step.&lt;\\\/p&gt;\\n&lt;\\\/div&gt;&lt;\\\/div&gt;\\n&lt;\\\/li&gt;\\n&lt;li&gt;\\n Make a POST  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/payments\\\/{paymentPspReference}\\\/amountUpdates&lt;\\\/a&gt; request, including the following:\\n&lt;p&gt;Path parameters:&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;paymentPspReference&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 PSP reference from the pre-authorization response.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;Body parameters:&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;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-merchantAccount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;merchantAccount&lt;\\\/a&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.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-amount\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;amount&lt;\\\/a&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 &lt;code&gt;currency&lt;\\\/code&gt; and &lt;code&gt;value&lt;\\\/code&gt; of the new amount &lt;strong&gt;in minor units&lt;\\\/strong&gt;. This is the sum of the pre-authorized amount and the additional amount.&lt;br&gt;&lt;br&gt;If this is not the first authorization adjustment, it is the sum of the pre-authorized amount plus all additional amounts.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt;&lt;code&gt;adjustAuthorisationData&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 previous &lt;code&gt;adjustAuthorisationData&lt;\\\/code&gt; blob.&lt;br&gt;&lt;br&gt;For the first adjustment, this is the blob you received in the response to the pre-authorization request. For the second adjustment, it is the blob you received in the response to the first adjustment, and so on.&lt;br&gt;&lt;br&gt;&lt;div class=\\&quot;sc-notice note\\&quot;&gt;&lt;div&gt;Always use the latest blob.&lt;\\\/div&gt;&lt;\\\/div&gt;&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;tr&gt;\\n&lt;td style=\\&quot;text-align: left;\\&quot;&gt; &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates#request-reference\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;reference&lt;\\\/a&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 to this payment modification, for use in your reconciliation process.&lt;\\\/td&gt;\\n&lt;\\\/tr&gt;\\n&lt;\\\/tbody&gt;\\n&lt;\\\/table&gt;\\n&lt;p&gt;The following example shows how to add a charge of EUR&amp;nbsp;64.15 to a pre-authorized amount of EUR&amp;nbsp;150.00.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;&#039;\\&quot; :id=\\&quot;&#039;sync-auth-adjustment-request&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl -X POST https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments\\\\\\\/{paymentPspReference}\\\\\\\/amountUpdates \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;idempotency-key: YOUR_IDEMPOTENCY_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;EUR\\\\&amp;quot;,\\\\n      \\\\&amp;quot;value\\\\&amp;quot;:21415\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_UNIQUE_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;adjustAuthorisationData\\\\&amp;quot;: \\\\&amp;quot;BQABAQA+fbc==...\\\\&amp;quot;\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v32.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.payment.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.service.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\npaymentApi service = new paymentApi(client);\\\\nModificationResult response = service.adjustAuthorisation(adjustAuthorisationRequest, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;&amp;lt;?php\\\\n\\\\\\\/\\\\\\\/ Adyen PHP API Library v23.0.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\Payments\\\\\\\\ModificationsApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\n$service = new ModificationsApi($client);\\\\n$response = $service-&amp;gt;adjustAuthorisation($adjustAuthorisationRequest);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v26.0.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.Payment;\\\\nusing Adyen.Service;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nvar service = new PaymentService(client);\\\\nvar response = service.AdjustAuthorisation(adjustAuthorisationRequest);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v22.1.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, PaymentAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\nconst client = new Client({ apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot; });\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst adjustAuthorisationRequest = {\\\\n  merchantAccount: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  originalReference: \\\\&amp;quot;KHQC5N7G84BLNK43\\\\&amp;quot;,\\\\n  modificationAmount: {\\\\n    currency: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    value: 21415\\\\n  },\\\\n  reference: \\\\&amp;quot;YOUR_MODIFICATION_REFERENCE\\\\&amp;quot;,\\\\n  additionalData: {\\\\n    adjustAuthorisationData: \\\\&amp;quot;BQABAQA+fbc==...\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst paymentAPI = new PaymentAPI(client);\\\\nconst response = paymentAPI.adjustAuthorisation(adjustAuthorisationRequest);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v16.1.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/payments\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nservice := client.Payments()\\\\nreq := service.ModificationsApi.AdjustAuthorisationInput().AdjustAuthorisationRequest(adjustAuthorisationRequest)\\\\nres, httpRes, err := service.ModificationsApi.AdjustAuthorisation(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v13.2.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;originalReference\\\\&amp;quot;: \\\\&amp;quot;KHQC5N7G84BLNK43\\\\&amp;quot;,\\\\n  \\\\&amp;quot;modificationAmount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;EUR\\\\&amp;quot;,\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 21415\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_MODIFICATION_REFERENCE\\\\&amp;quot;,\\\\n  \\\\&amp;quot;additionalData\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;adjustAuthorisationData\\\\&amp;quot;: \\\\&amp;quot;BQABAQA+fbc==...\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.payment.modifications_api.adjust_authorisation(request=json_request)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v10.1.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :merchantAccount =&amp;gt; &#039;ADYEN_MERCHANT_ACCOUNT&#039;,\\\\n  :originalReference =&amp;gt; &#039;KHQC5N7G84BLNK43&#039;,\\\\n  :modificationAmount =&amp;gt; {\\\\n    :currency =&amp;gt; &#039;EUR&#039;,\\\\n    :value =&amp;gt; 21415\\\\n  },\\\\n  :reference =&amp;gt; &#039;YOUR_MODIFICATION_REFERENCE&#039;,\\\\n  :additionalData =&amp;gt; {\\\\n    :adjustAuthorisationData =&amp;gt; &#039;BQABAQA+fbc==...&#039;\\\\n  }\\\\n}\\\\n\\\\n# Send the request\\\\nresult = adyen.payment.modifications_api.adjust_authorisation(request_body)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v22.1.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nimport { Client, PaymentAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\nconst client = new Client({ apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot; });\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n\\\\\\\/\\\\\\\/ Send the request\\\\nconst paymentAPI = new PaymentAPI(client);\\\\nconst response = paymentAPI.adjustAuthorisation(adjustAuthorisationRequest);&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;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;In the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/amountUpdates&lt;\\\/a&gt; response, note the following parameters:&lt;\\\/p&gt;\\n&lt;ul&gt;\\n&lt;li&gt;&lt;code&gt;adjustAuthorisationData&lt;\\\/code&gt;: The new blob for the new authorized amount. Store this for subsequent adjustments.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;paymentPspReference&lt;\\\/code&gt;: The PSP reference of the original pre-authorization.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;pspReference&lt;\\\/code&gt;: The PSP reference for this  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/amountUpdates&lt;\\\/a&gt; request.&lt;br \\\/&gt;\\nThis is different from the PSP reference of the pre-authorization request.&lt;\\\/li&gt;\\n&lt;li&gt;&lt;code&gt;status&lt;\\\/code&gt;: &lt;strong&gt;Authorised&lt;\\\/strong&gt;&lt;br \\\/&gt;\\nThis indicates the new amount is authorized.&lt;\\\/li&gt;\\n&lt;\\\/ul&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Synchronous authorization adjustment response&#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;merchantAccount\\\\\\&quot;: \\\\\\&quot;ADYEN_MERCHANT_ACCOUNT\\\\\\&quot;,\\\\n   \\\\\\&quot;paymentPspReference\\\\\\&quot;: \\\\\\&quot;KHQC5N7G84BLNK43\\\\\\&quot;,\\\\n   \\\\\\&quot;pspReference\\\\\\&quot;: \\\\\\&quot;NC6HT9CRT65ZGN82\\\\\\&quot;,\\\\n   \\\\\\&quot;reference\\\\\\&quot;: \\\\\\&quot;YOUR_UNIQUE_REFERENCE\\\\\\&quot;,\\\\n   \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;Authorised\\\\\\&quot;,\\\\n   \\\\\\&quot;adjustAuthorisationData\\\\\\&quot;: \\\\\\&quot;BQABAQArqht7L...\\\\\\&quot;,\\\\n   \\\\\\&quot;amount\\\\\\&quot;: {\\\\n      \\\\\\&quot;currency\\\\\\&quot;: \\\\\\&quot;EUR\\\\\\&quot;,\\\\n      \\\\\\&quot;value\\\\\\&quot;: 21415\\\\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;\\\/li&gt;\\n&lt;li&gt;\\n&lt;p&gt;Store the &lt;code&gt;adjustAuthorisationData&lt;\\\/code&gt; blob you received in the  &lt;a href=\\&quot;https:\\\/\\\/docs.adyen.com\\\/api-explorer\\\/Checkout\\\/latest\\\/post\\\/payments\\\/(paymentPspReference)\\\/amountUpdates\\&quot; class=\\&quot;codeLabel  external-link no-image\\&quot; target=\\&quot;_blank\\&quot; rel=\\&quot;nofollow noopener noreferrer\\&quot;&gt;\\\/amountUpdates&lt;\\\/a&gt; response. You will need this if you adjust the authorization again.&lt;\\\/p&gt;\\n&lt;\\\/li&gt;\\n&lt;\\\/ol&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<h3 id=\"extend-authorization\">Extending the authorization<\/h3>\n<p>Authorizations <a href=\"#validity\">expire<\/a> after a while. To extend the authorization period, follow the same instructions as for <a href=\"#adjust-auth\">adjusting the pre-authorized amount<\/a>, but use the same amount as the current balance on the authorization:<\/p>\n<ul>\n<li>If you haven't adjusted the authorization yet, use the amount from the original pre-authorization request.<\/li>\n<li>If you did adjust the authorization, use the amount from the last adjustment. When using the asynchronous adjustment flow, check the amount in the AUTHORISATION_ADJUSTMENT webhook.<\/li>\n<\/ul>\n<h2 id=\"capture-authorization\">3. Capture the payment<\/h2>\n<p>After you make your last authorization adjustment, you must manually capture the payment to transfer the reserved funds to your account.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>Always double-check that you have completed all authorization adjustments for the payment before you capture it. Captures are done asynchronously, so it may seem that the payment hasn't been completely captured yet and that it is still possible to adjust the authorization.<\/p>\n<\/div><\/div>\n<ol>\n<li>\n<p>Decide whether you are ready to capture the payment:<\/p>\n<ul>\n<li>\n<p>If there are additional charges to make, first <a href=\"#adjust-auth\">adjust the authorization<\/a>.<\/p>\n<\/li>\n<li>\n<p>If the customer wants to settle the bill using a different payment method than the one used for the pre-authorization, do not capture the payment. Instead,  <a href=\"\/point-of-sale\/capturing-payments#cancel-authorisation\">cancel<\/a>  the pre-authorization by sending a POST  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/cancels\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/{paymentPspReference}\/cancels<\/a> request, where <code>{paymentPspReference}<\/code> is the PSP reference from the pre-authorization response.<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<li>\n<p>When you are ready to capture the payment, make 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 PSP reference from the pre-authorization response. Specify:<\/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>amount<\/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 <code>currency<\/code> of the final amount and its <code>value<\/code> in <a href=\"\/development-resources\/currency-codes\">minor units<\/a>. This is the sum of the original, pre-authorized amount and all later adjustments.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>merchantAccount<\/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 name of your merchant account that is used to process the payment.<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\"><code>reference<\/code><\/td>\n<td style=\"text-align: center;\"><\/td>\n<td style=\"text-align: left;\">Your reference to this payment modification, for use in your reconciliation process.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Capture request'\" :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\\\/KHQC5N7G84BLNK43\\\/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;currency\\&quot;:\\&quot;EUR\\&quot;,\\n          \\&quot;value\\&quot;:21415\\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>In 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\">\/captures<\/a> response, note the following parameters:<\/p>\n<ul>\n<li><code>pspReference<\/code>: The PSP reference associated with this  <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\">\/captures<\/a> request.<br \/>\nThis is different from the PSP reference associated with the pre-authorization request.<\/li>\n<li><code>status<\/code>: <strong>received<\/strong><\/li>\n<li><code>reference<\/code>: Your reference to this payment modification, for use in your reconciliation process.<\/li>\n<\/ul>\n<div data-component-wrapper=\"code-sample\">\n<code-sample :title=\"'Capture response'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"{\\n   \\\"merchantAccount\\\": \\\"YOUR_MERCHANT_ACCOUNT\\\",\\n   \\\"paymentPspReference\\\": \\\"KHQC5N7G84BLNK43\\\",\\n   \\\"pspReference\\\": \\\"QJ7GWQ756L2GWR86\\\",\\n   \\\"reference\\\": \\\"YOUR_UNIQUE_REFERENCE\\\",\\n   \\\"status\\\": \\\"received\\\",\\n   \\\"amount\\\": {\\n       \\\"currency\\\": \\\"EUR\\\",\\n       \\\"value\\\": 21415\\n   }\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<\/li>\n<li>\n<p>Wait for a webhook message with the <code>eventCode<\/code>  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/CAPTURE\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CAPTURE<\/a>. This informs you whether the final amount has been captured.<\/p>\n<p>If the capture fails, the webhook contains <code>success<\/code>: <strong>false<\/strong>. Review the <code>reason<\/code> you received in the webhook, fix the issue, and submit the <code>\/captures<\/code> request again.<\/p>\n<\/li>\n<\/ol>\n<div class=\"notices green\">\n<p>If you need to charge the customer for an additional amount after they have left, and you  <a href=\"\/point-of-sale\/recurring-payments\">stored the customer's payment details<\/a>  with your pre-authorisation request, you can apply these late charges in a recurring payment request using the token.<\/p>\n<\/div>\n<h2>Testing<\/h2>\n<p>Our test environment supports testing the whole authorization adjustment flow. For the pre-authorization request you can use our <a href=\"\/point-of-sale\/testing-pos-payments\/#testing-card-payments\">POS test cards<\/a>.<\/p>\n<p>When building or testing the flow, make sure there is at least a 5 second delay between the pre-authorization and the authorization adjustment.<\/p>\n<h2 id=\"availability\">Availability<\/h2>\n<p>Authorization adjustment is available for the following payment methods:<\/p>\n<table>\n<thead>\n<tr>\n<th>Payment method<\/th>\n<th>Availability<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Card<\/td>\n<td>Card schemes set specific rules around which businesses can adjust authorizations. Your eligibility is determined by your <a href=\"\/get-started-with-adyen\/adyen-glossary\/#merchant-category-code\" target=\"_blank\">Merchant Category Code (MCC)<\/a>. For a business type, each card scheme uses a different MCC. See which <a href=\"#mcc-authorization-adjustment\">schemes support which MCC codes<\/a>.<\/td>\n<\/tr>\n<tr>\n<td>Apple Pay<\/td>\n<td>Available if the card associated with the Apple Pay wallet is from a card scheme for which authorization adjustment is available.<\/td>\n<\/tr>\n<tr>\n<td>Google Pay<\/td>\n<td>Available if the card associated with the Google Pay wallet is from a card scheme for which authorization adjustment is available.<\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3 id=\"mcc-authorization-adjustment\">Merchant Category Code (MCC) and authorization adjustment<\/h3>\n<p>To view your MCCs for each payment method:<\/p>\n<ol>\n<li>Log in to your <a href=\"https:\/\/ca-live.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">live Customer Area<\/a>.<\/li>\n<li>Switch to your merchant account.<\/li>\n<li>Select <strong>Settings<\/strong> &gt; <strong>Payment methods<\/strong>.<\/li>\n<li>Find the line for the specific payment method. The <strong>MCC<\/strong> column shows your MCC for that payment method.<\/li>\n<\/ol>\n<p>The following table shows, for each card scheme, which MCC codes authorization adjustment is available for:<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Card scheme<\/th>\n<th style=\"text-align: left;\">Merchant Category Codes (MCC) for which authorization adjustment is available<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">American Express<\/td>\n<td style=\"text-align: left;\">All MCCs except 5542<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Discover<\/td>\n<td style=\"text-align: left;\">3351-3441, 3501-3999, 4111, 4112, 4121, 4131, 4411, 4457,  5499, 5812, 5813, 7011, 7033, 7996, 7394, 7512, 7513, 7519, 7999<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Mastercard<\/td>\n<td style=\"text-align: left;\">All MCCs except 5542<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Mexico Domestic (Network MX)<\/td>\n<td style=\"text-align: left;\">Card present: 4722, 5541, 5542, 5812, 5813, 8062, multiple MCCs for car rental, entertainment, and hotels <br>Card not present: 4011, 4112, 4121, 4131, 4816, 5300, 5310, 5311, 5331, 5411, 5422, 5814, all air transportation<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All MCCs except 5542 <br\/><div class=\"notices blue\">Authorization adjustment does not work for V Pay cards.<\/div><\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">China UnionPay<\/td>\n<td style=\"text-align: left;\">7011, 7512, 4411, 3xxx<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"validity\">Expiration of pre-authorizations<\/h2>\n<p>You can only adjust a pre-authorization that has not expired yet. There are two authorization validity periods to take into account:<\/p>\n<ul>\n<li>For the global card schemes, Adyen expires (pre-)authorization requests automatically after 28 days from the day the payment is authorized. 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> if you want to change this default setting, and configure custom authorization validity periods for specific merchant accounts and card schemes.\n<div class=\"notices green\">\n<p>The maximum allowable partial captures against a single pre-authorization is determined by the issuer.<\/p>\n<\/div><\/li>\n<li>Card schemes have their own rules on authorization validity, and can expire a pre-authorization before or after the scheme's official authorization validity period. Using <a href=\"\/online-payments\/capture#manual-capture\">manual capture<\/a> it is possible to capture remaining balance on a payment after an authorization has already expired on the card scheme's side, but this practice increases the risk of:\n<ul>\n<li>A <a href=\"\/online-payments\/capture#failed-capture\">failed capture<\/a>.<\/li>\n<li>Increased interchange fees.<\/li>\n<li>Card scheme transaction fees.<\/li>\n<li>A cardholder-initiated <a href=\"\/risk-management\/understanding-disputes\/dispute-reason-codes\">chargeback<\/a> for 'No Authorization' or 'Late Presentment' reasons.<\/li>\n<\/ul><\/li>\n<\/ul>\n<p>The following tables include information on authorization validity periods for major card schemes <strong>that allow authorization adjustment<\/strong>.<\/p>\n<h3>American Express<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Amex<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">7 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Cartes Bancaires<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Carte Bancaires<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">12 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>China UnionPay<\/h3>\n<ul>\n<li>30 Days from the initial authorisation.<\/li>\n<li>Authorisation adjustment does not extend the authorisation validity period.<\/li>\n<\/ul>\n<h3>Diners<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Diners<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">MOTO<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">7 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Diners<\/td>\n<td style=\"text-align: left;\">Debit<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">7 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Diners<\/td>\n<td style=\"text-align: left;\">Credit<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Diners<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Car Rental, Hotel\/Lodging<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Discover<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Discover<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">10 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Discover<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Car Rental, Hotel\/Lodging<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>JCB<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">JCB<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">1 year<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">JCB<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-auth<\/td>\n<td style=\"text-align: left;\">Hotel and Car rental<\/td>\n<td style=\"text-align: left;\">Time of stay\/rental<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Mastercard<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Mastercard<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Final auth<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">7 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Mastercard<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-auth<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"notices blue\">\n<p>Capturing Mastercard payments can be successful even when the authorization has expired after seven or 30 days. For domestic transactions in the US and Canada, there is a late capture fee.<\/p>\n<\/div>\n<h3>Mexico Domestic<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Network MX<\/td>\n<td style=\"text-align: left;\">Debit<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Final auth<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">7 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Network MX<\/td>\n<td style=\"text-align: left;\">Credit<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Final auth<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Network MX<\/td>\n<td style=\"text-align: left;\">Debit<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-auth<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Network MX<\/td>\n<td style=\"text-align: left;\">Credit<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-auth<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">120 days<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Visa<\/h3>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Scheme<\/th>\n<th style=\"text-align: left;\">Debit\/credit<\/th>\n<th style=\"text-align: left;\">Environment<\/th>\n<th style=\"text-align: left;\"><a href=\"#authorisation-types\">Authorization type<\/a><\/th>\n<th style=\"text-align: left;\">MCC<\/th>\n<th style=\"text-align: left;\">Days<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\">Visa electron<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">5 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">POS<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">5 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Merchant initiated transactions (MIT) <br\/><br\/><u>Applies to:<\/u><br\/><li> ContAuth + Subscription \/ UnscheduledCardOnFile<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">5 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\"><a href=\"https:\/\/docs.adyen.com\/get-started-with-adyen\/adyen-glossary\/#card-not-present-cnp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">CNP<\/a> Cardholder-initiated transactions (CIT) <br\/><br\/><u>Applies to:<\/u><br\/><li> Ecommerce \/ ContAuth + CardOnFile <br\/><li> Ecommerce + Subscription \/ UnscheduledCardOnFile<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">10 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\"><a href=\"https:\/\/docs.adyen.com\/get-started-with-adyen\/adyen-glossary\/#card-not-present-cnp\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">CNP<\/a> Cardholder-initiated transactions (CIT) <br\/><br\/><u>Applies to:<\/u><br\/><li> Ecommerce \/ ContAuth + CardOnFile <br\/><li> Ecommerce + Subscription \/ UnscheduledCardOnFile<\/td>\n<td style=\"text-align: left;\">Extended-Auth<a href=\"#exauth\">\n  <sup>1<\/sup>\n<\/a><\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-Auth<\/td>\n<td style=\"text-align: left;\">Cruise, Lodging, Vehicle Rental<\/td>\n<td style=\"text-align: left;\">30 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-Auth<\/td>\n<td style=\"text-align: left;\">7999, 4457, 7296, 7841, 7394, 7519, 7033<\/td>\n<td style=\"text-align: left;\">10 days<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: left;\">Visa<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">All<\/td>\n<td style=\"text-align: left;\">Pre-Auth<\/td>\n<td style=\"text-align: left;\">5542<\/td>\n<td style=\"text-align: left;\">2 hours<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div class=\"notices blue\">\n<p>Capturing Visa payments after the authorization validity period may result in <a href=\"https:\/\/docs.adyen.com\/online-payments\/capture\/failure-reasons\/#capture-cant-be-recaptured\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">capture failures<\/a> and processing integrity fees. Capturing Visa cardholder-initiated card-not-present transactions (CIT CnP) after the 10-day validity period may also incur an additional Extended Authorisation scheme fee, depending on regional requirements.<\/p>\n<\/div>\n<p><a id=\"exauth\"><\/a> <sup>1<\/sup> Visa's \"Extended-Auth\" feature is currently available only in pilot. If you would like to pilot this feature and provide feedback, reach out to your Adyen point of 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>.<\/p>\n<h2>See also<\/h2>\n<div class=\"see-also-links output-inline\" id=\"see-also\">\n<ul><li><a href=\"\/point-of-sale\/capturing-payments#manual-capture\"\n                        target=\"_self\"\n                        >\n                    Manual capture\n                <\/a><\/li><li><a href=\"\/point-of-sale\/shopper-recognition\"\n                        target=\"_self\"\n                        >\n                    Shopper recognition\n                <\/a><\/li><li><a href=\"\/development-resources\/webhooks\"\n                        target=\"_self\"\n                        >\n                    Webhooks\n                <\/a><\/li><\/ul><\/div>\n","url":"https:\/\/docs.adyen.com\/point-of-sale\/pre-authorisation","articleFields":{"description":"Pre-authorize a payment, adjust the authorized amount, and capture the payment.","page_id":"ed967444-4360-417b-88fa-a350548b5f76","feedback_component":true,"parameters":{"integrationType":"pos"},"filters_component":false,"decision_tree":"[]","last_edit_on":"18-01-2024 06:26"},"algolia":{"url":"https:\/\/docs.adyen.com\/point-of-sale\/pre-authorisation","title":"Pre-authorization and authorization adjustment","content":"In a basic payment flow, the payable amount from your payment request is authorized and then captured. But sometimes you want to change the amount or extend the length of the authorization. Using the authorization type pre-authorization for your payment request, you can increase or decrease the authorized amount at a later stage, and then capture the payment manually. Changes to a pre-authorized payment are called \"authorization adjustments\".\nRequirements\nBefore you begin, take into account the following requirements, limitations, and preparations.\n\n\n\nRequirement\nDescription\n\n\n\n\nIntegration type\nA Terminal API integration with payment terminals.\n\n\nAPI credentials\nYou must have an API credential with an API key and the following roles, which are assigned by default: Merchant PAL webservice role Checkout webservice role If you have a Terminal API integration with cloud-based communications, you can use the existing API key that you use for Terminal API requests.\n\n\nWebhooks\nListen for Standard webhook messages with the following eventCode values: AUTHORISATION_ADJUSTMENT CAPTURE CAPTURE_FAILED\n\n\nHardware\nUse a payment terminal model that is suitable for unattended use, like the P400 Plus, S1U2, or UX300.\n\n\nLimitations\nBe aware of the following: Support for authorization adjustment is limited to specific payment methods and Merchant Category Codes (MCC). It is ultimately up to the issuing bank whether they allow it. Pre-authorizations and authorizations eventually expire. The length of an authorization's validity depends on the card scheme. Smart pre-authorization is not available for QR based payment methods, Mail Order\/Telephone Order (MOTO) and Manual Key Entry (MKE).\n\n\nSetup steps\nBefore you begin: Contact our Support Team to configure your payment methods. Enable manual capture, either for your account or for individual transactions.\n\n\n\nHow it works\nThe process to adjust an authorized amount is as follows:\n\nTo indicate that you will probably make changes later, you use the authorization type pre-authorization in your payment request.\nThe payment is pre-authorized for the amount specified in the payment request.\nWhen the amount due increases (or decreases), you send a request to adjust the pre-authorized amount.\nEach time that the amount due changes or the validity period of the authorization is about to expire, you send another authorization adjustment request.\nAfter your last authorization adjustment, you manually capture the payment.\n\nNote the following:\n\nYou need to implement logic on your end to decide when to use the pre-authorization flow, and to calculate the amount when you make an authorization adjustment.\nYou can use pre-authorization with Dynamic Currency Conversion (DCC). This gives shoppers from abroad a choice to pay in the local currency or their own currency.\n\nUse cases\nThere are several use cases for adjusting a pre-authorized amount:\n\nHospitality. For example, in a hotel:\n\nJust before the guest checks in, or when the guest checks in using an app or in person, the hotel pre-authorizes payment of the guest's room. At the same time, the hotel  stores the shopper's payment information , to be able to apply late charges when necessary.\nDuring their stay, the guest incurs expenses at the hotel facilities. The hotel adds these expenses to the pre-authorized amount by adjusting the authorization.\nWhen the guest checks out, the hotel captures the final amount, or cancels the payment if the guest prefers to settle their bill with a different payment method.\nIf necessary, the hotel charges the guest after they have left, using the shopper's stored payment details for a new payment.\n\n\n\n\nTipping in regions and industries where it is customary that the guest adds a tip on the receipt after they have presented their card.\n\n\nCross-channel customer journeys. For example: the shopper pre-orders a product in a web shop, and after a long delivery time goes to the store to make the payment and collect the product.\n\n\nAuthorization type\nFor some card schemes, you can set payment requests to be handled as either a pre-authorization or a final authorization.\n\n\nPre-authorization: this authorization type verifies that the shopper's account is valid and has sufficient funds to cover a transaction, but does not debit the account. It is intended for use cases as described above, when you do not yet know the amount to be captured. It allows you to increase or decrease the initially authorized amount at a later point in time.\n\n\nFinal authorization: the final amount is agreed up front and the transaction will be captured in full. This is the default authorization type, and it doesn't allow you to adjust the authorized amount later.\n\n\nBy default, Adyen handles all card payment requests as final authorizations. To set an authorization type, you can either:\n\nDefine the default authorization type at the merchant account level for all card transactions. See Configure your account.\nSpecify authorisationType PreAuth or authorisationType FinalAuth in each payment request. See Pre-authorize a payment.\n\nAsynchronous or synchronous adjustment\nThere are two ways to implement pre-authorization:\n\n\nAsynchronous authorization adjustment: you refer to a payment using the PSP reference that you received in the response to your pre-authorization request. In each authorization adjustment request, and in the final capture request, you specify this first PSP reference.\nAsynchronous adjustment is easier to implement, but it is not immediately clear if the adjustment succeeded. You must set up webhooks to receive updates and to know if the final amount was authorized before you capture the payment.\n\n\nSynchronous authorization adjustment: you pass an adjustAuthorisationData blob from one request to the next, to enable us to keep track of the latest amount. You receive the first blob in the response to your pre-authorization request. In your first authorization adjustment request, you specify the blob you received for the pre-authorization, and you receive a new blob in the response. In your next adjustment, you specify the blob that you received in the response for the previous adjustment, and so on.\nSynchronous adjustment requires more effort to implement, because you need to keep track of the latest blob. The advantage is that you receive the adjustment result synchronously. In this way you immediately know if the final amount was authorized before you capture the payment.\n\nIf at any point you fail to pass the blob, the flow falls back to asynchronous adjustment, and it is no longer possible to return to synchronous adjustment for that payment.\n\n\n\nConfigure your account (Optional)\nThere are various aspects of your account that you may want to configure for pre-authorization and authorization adjustment:\n\n\nSynchronous authorization adjustment: to enable synchronous authorization adjustment, in your Customer Area go to In-person payments &gt; Developer &gt; Additional Data and select return adjust authorisation data. You will then receive the initial adjustAuthorisationData blob with your pre-authorization request and subsequently receive the authorization adjustment results synchronously.\n\n\nDefault authorization type: if you only do pre-authorization payment requests, you can ask our Support Team to set your default authorization type to PreAuth so that you do not have to specify it in your payment requests.\n\nIf you want to do both pre-authorization payment requests and regular payment requests, we recommend you specify the authorization type in all payment requests.\n\n\n\nManual capture: to capture payments in the authorization adjustment flow, manual capture must be enabled. You can set this for your account, but then all payments require manual capture. The alternative is to enable manual capture in the individual pre-authorization requests.\n\n\nEnable smart pre-authorization (Optional)\nCertain card schemes do not support incremental adjustments. Because this is validated during the authorization adjustment step, you cannot know in advance, at the pre-authorization step, if you should accept the customer's card.\nThe smart pre-authorization feature lets your payment terminal check if the card presented by the customer is of a brand that supports authorization adjustment. In addition to checking the card brand, you can optionally let the feature check if the funding source, such as credit or debit, supports authorization adjustment.\nIf the card supports authorization adjustment, the terminal continues with the pre-authorization request. If the card does not support authorization adjustment, the terminal presents the shopper with a list of supported card brands to choose from. They can then use a different card and continue with the payment.\n\n\n\n\n\n\n\n\n\nBrand not supported:  \nFunding source not supported:  \n\n\n\nTo enable smart pre-authorization:\n\nLog in to your Customer Area\nGo to In-person payments &gt; Terminal settings &gt; Payment features.\nUnder Smart Pre-auth &gt; Filter supported Brands, select the pencil icon  and then select Enable.\n(Optional) If you want to exclude debit and\/or prepaid cards from the smart pre-authorization flow:\n\nUnder Filter Funding Sources, select the pencil icon .\nSelect Enable, and choose the types of cards that you want to exclude.\n\nSelect Save.\n\n1. Pre-authorize a payment\nTo start the pre-authorization payment flow, make a Terminal API payment request with an authorization type of PreAuth:\n\n\nMake a payment request, 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\nThe  PaymentRequest object with:\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. TimeStamp: date and time of the request in UTC format.\n\n\nSaleData.SaleToAcquirerData\nSee Authorization type\nA string with: authorisationType=PreAuth: indicates this is a pre-authorization request. manualCapture=true to enable manual capture for this request, if you haven't enabled manual capture for your account. See Adding data elements to your request to learn how to format SaleToAcquirerData.\n\n\nPaymentTransaction.AmountsReq\n\nAn object with: Currency: the transaction currency.RequestedAmount: the transaction amount.\n\n\n\n\n\nThe following example shows how to initiate pre-authorization for a payment of EUR&nbsp;150.00.\n\n\n\nThe customer presents their card to the payment terminal. The terminal collects the payment details and sends the request for the original amount to the Adyen payments platform for processing.\n\n\nCheck the response. If the pre-authorization is successful:\n\nThe terminal shows the transaction is approved.\n\nThe payment result contains:\n\n\nPOIData.POITransactionID.TransactionID: Transaction identifier for the payment, in the format tender_reference.PSP_reference.\n\n\nPaymentResult: payment method data including:\n\n\nAmountsResp: the AuthorizedAmount and Currency of the pre-authorized payment.\n\n\n\n\n\nResponse.Result: Success\n\n\nResponse.AdditionalResponse: additional transaction data. Depending on the format you used in the request, you receive either a string of form-encoded key-value pairs or a Base64 string that you need to decode to get a JSON object. This includes:\n\nposadditionalamounts.originalAmountValue: the original amount in minor units.\nauthorisedAmountValue: the authorized amount in minor units, which at this stage is equal to the original amount.\npspReference: the PSP reference of your pre-authorization request.\nadjustAuthorisationData: a blob with authorization data. You only receive this if the synchronous flow is enabled for your account.\n\n\n\n\n\nThe following example shows the response to a EUR&nbsp;150.00 authorization request.\n\n\n\n\n\nStore the pspReference and the adjustAuthorisationData from the AdditionalResponse for later use when adjusting the authorization or capturing the payment.\n\n\n2. Adjust the pre-authorized amount\nTo increase or decrease the pre-authorized amount or to extend the authorization, make an authorization adjustment request.\nThis step involves making a request to the Adyen backend directly. This is not a Terminal API request to the terminal itself or the Cloud endpoint for the terminal.\n\nWhen building or testing the flow, make sure there is at least a 5\u00a0second delay between the pre-authorization and the authorization adjustment.\n\n\n\n    \n        \n        \n    \n\n\nExtending the authorization\nAuthorizations expire after a while. To extend the authorization period, follow the same instructions as for adjusting the pre-authorized amount, but use the same amount as the current balance on the authorization:\n\nIf you haven't adjusted the authorization yet, use the amount from the original pre-authorization request.\nIf you did adjust the authorization, use the amount from the last adjustment. When using the asynchronous adjustment flow, check the amount in the AUTHORISATION_ADJUSTMENT webhook.\n\n3. Capture the payment\nAfter you make your last authorization adjustment, you must manually capture the payment to transfer the reserved funds to your account.\n\nAlways double-check that you have completed all authorization adjustments for the payment before you capture it. Captures are done asynchronously, so it may seem that the payment hasn't been completely captured yet and that it is still possible to adjust the authorization.\n\n\n\nDecide whether you are ready to capture the payment:\n\n\nIf there are additional charges to make, first adjust the authorization.\n\n\nIf the customer wants to settle the bill using a different payment method than the one used for the pre-authorization, do not capture the payment. Instead,  cancel  the pre-authorization by sending a POST  \/payments\/{paymentPspReference}\/cancels request, where {paymentPspReference} is the PSP reference from the pre-authorization response.\n\n\n\n\nWhen you are ready to capture the payment, make a POST  \/payments\/{paymentPspReference}\/captures request, where {paymentPspReference} is the PSP reference from the pre-authorization response. Specify:\n\n\n\nParameter\nRequired\nDescription\n\n\n\n\namount\n\nThe currency of the final amount and its value in minor units. This is the sum of the original, pre-authorized amount and all later adjustments.\n\n\nmerchantAccount\n\nThe name of your merchant account that is used to process the payment.\n\n\nreference\n\nYour reference to this payment modification, for use in your reconciliation process.\n\n\n\n\n\n\n\n\nIn the  \/captures response, note the following parameters:\n\npspReference: The PSP reference associated with this  \/captures request.\nThis is different from the PSP reference associated with the pre-authorization request.\nstatus: received\nreference: Your reference to this payment modification, for use in your reconciliation process.\n\n\n\n\n\n\nWait for a webhook message with the eventCode  CAPTURE. This informs you whether the final amount has been captured.\nIf the capture fails, the webhook contains success: false. Review the reason you received in the webhook, fix the issue, and submit the \/captures request again.\n\n\n\nIf you need to charge the customer for an additional amount after they have left, and you  stored the customer's payment details  with your pre-authorisation request, you can apply these late charges in a recurring payment request using the token.\n\nTesting\nOur test environment supports testing the whole authorization adjustment flow. For the pre-authorization request you can use our POS test cards.\nWhen building or testing the flow, make sure there is at least a 5 second delay between the pre-authorization and the authorization adjustment.\nAvailability\nAuthorization adjustment is available for the following payment methods:\n\n\n\nPayment method\nAvailability\n\n\n\n\nCard\nCard schemes set specific rules around which businesses can adjust authorizations. Your eligibility is determined by your Merchant Category Code (MCC). For a business type, each card scheme uses a different MCC. See which schemes support which MCC codes.\n\n\nApple Pay\nAvailable if the card associated with the Apple Pay wallet is from a card scheme for which authorization adjustment is available.\n\n\nGoogle Pay\nAvailable if the card associated with the Google Pay wallet is from a card scheme for which authorization adjustment is available.\n\n\n\n\nMerchant Category Code (MCC) and authorization adjustment\nTo view your MCCs for each payment method:\n\nLog in to your live Customer Area.\nSwitch to your merchant account.\nSelect Settings &gt; Payment methods.\nFind the line for the specific payment method. The MCC column shows your MCC for that payment method.\n\nThe following table shows, for each card scheme, which MCC codes authorization adjustment is available for:\n\n\n\nCard scheme\nMerchant Category Codes (MCC) for which authorization adjustment is available\n\n\n\n\nAmerican Express\nAll MCCs except 5542\n\n\nDiscover\n3351-3441, 3501-3999, 4111, 4112, 4121, 4131, 4411, 4457,  5499, 5812, 5813, 7011, 7033, 7996, 7394, 7512, 7513, 7519, 7999\n\n\nMastercard\nAll MCCs except 5542\n\n\nMexico Domestic (Network MX)\nCard present: 4722, 5541, 5542, 5812, 5813, 8062, multiple MCCs for car rental, entertainment, and hotels Card not present: 4011, 4112, 4121, 4131, 4816, 5300, 5310, 5311, 5331, 5411, 5422, 5814, all air transportation\n\n\nVisa\nAll MCCs except 5542 Authorization adjustment does not work for V Pay cards.\n\n\nChina UnionPay\n7011, 7512, 4411, 3xxx\n\n\n\nExpiration of pre-authorizations\nYou can only adjust a pre-authorization that has not expired yet. There are two authorization validity periods to take into account:\n\nFor the global card schemes, Adyen expires (pre-)authorization requests automatically after 28 days from the day the payment is authorized. Contact our Support Team if you want to change this default setting, and configure custom authorization validity periods for specific merchant accounts and card schemes.\n\nThe maximum allowable partial captures against a single pre-authorization is determined by the issuer.\n\nCard schemes have their own rules on authorization validity, and can expire a pre-authorization before or after the scheme's official authorization validity period. Using manual capture it is possible to capture remaining balance on a payment after an authorization has already expired on the card scheme's side, but this practice increases the risk of:\n\nA failed capture.\nIncreased interchange fees.\nCard scheme transaction fees.\nA cardholder-initiated chargeback for 'No Authorization' or 'Late Presentment' reasons.\n\n\nThe following tables include information on authorization validity periods for major card schemes that allow authorization adjustment.\nAmerican Express\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nAmex\nAll\nAll\nAll\nAll\n7 days\n\n\n\nCartes Bancaires\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nCarte Bancaires\nAll\nAll\nAll\nAll\n12 days\n\n\n\nChina UnionPay\n\n30 Days from the initial authorisation.\nAuthorisation adjustment does not extend the authorisation validity period.\n\nDiners\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nDiners\nAll\nMOTO\nAll\nAll\n7 days\n\n\nDiners\nDebit\nAll\nAll\nAll\n7 days\n\n\nDiners\nCredit\nAll\nAll\nAll\n30 days\n\n\nDiners\nAll\nAll\nAll\nCar Rental, Hotel\/Lodging\n30 days\n\n\n\nDiscover\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nDiscover\nAll\nAll\nAll\nAll\n10 days\n\n\nDiscover\nAll\nAll\nAll\nCar Rental, Hotel\/Lodging\n30 days\n\n\n\nJCB\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nJCB\nAll\nAll\nAll\nAll\n1 year\n\n\nJCB\nAll\nAll\nPre-auth\nHotel and Car rental\nTime of stay\/rental\n\n\n\nMastercard\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nMastercard\nAll\nAll\nFinal auth\nAll\n7 days\n\n\nMastercard\nAll\nAll\nPre-auth\nAll\n30 days\n\n\n\n\nCapturing Mastercard payments can be successful even when the authorization has expired after seven or 30 days. For domestic transactions in the US and Canada, there is a late capture fee.\n\nMexico Domestic\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nNetwork MX\nDebit\nAll\nFinal auth\nAll\n7 days\n\n\nNetwork MX\nCredit\nAll\nFinal auth\nAll\n30 days\n\n\nNetwork MX\nDebit\nAll\nPre-auth\nAll\n30 days\n\n\nNetwork MX\nCredit\nAll\nPre-auth\nAll\n120 days\n\n\n\nVisa\n\n\n\nScheme\nDebit\/credit\nEnvironment\nAuthorization type\nMCC\nDays\n\n\n\n\nVisa electron\nAll\nAll\nAll\nAll\n5 days\n\n\nVisa\nAll\nPOS\nAll\nAll\n5 days\n\n\nVisa\nAll\nMerchant initiated transactions (MIT) Applies to: ContAuth + Subscription \/ UnscheduledCardOnFile\nAll\nAll\n5 days\n\n\nVisa\nAll\nCNP Cardholder-initiated transactions (CIT) Applies to: Ecommerce \/ ContAuth + CardOnFile  Ecommerce + Subscription \/ UnscheduledCardOnFile\nAll\nAll\n10 days\n\n\nVisa\nAll\nCNP Cardholder-initiated transactions (CIT) Applies to: Ecommerce \/ ContAuth + CardOnFile  Ecommerce + Subscription \/ UnscheduledCardOnFile\nExtended-Auth\n  1\n\nAll\n30 days\n\n\nVisa\nAll\nAll\nPre-Auth\nCruise, Lodging, Vehicle Rental\n30 days\n\n\nVisa\nAll\nAll\nPre-Auth\n7999, 4457, 7296, 7841, 7394, 7519, 7033\n10 days\n\n\nVisa\nAll\nAll\nPre-Auth\n5542\n2 hours\n\n\n\n\nCapturing Visa payments after the authorization validity period may result in capture failures and processing integrity fees. Capturing Visa cardholder-initiated card-not-present transactions (CIT CnP) after the 10-day validity period may also incur an additional Extended Authorisation scheme fee, depending on regional requirements.\n\n 1 Visa's \"Extended-Auth\" feature is currently available only in pilot. If you would like to pilot this feature and provide feedback, reach out to your Adyen point of contact our Support Team.\nSee also\n\n\n                    Manual capture\n                \n                    Shopper recognition\n                \n                    Webhooks\n                \n","type":"page","locale":"en","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"In-person payments","lvl2":"Pre-authorization and authorization adjustment"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/","lvl1":"https:\/\/docs.adyen.com\/point-of-sale","lvl2":"\/point-of-sale\/pre-authorisation"},"levels":3,"category":"In-person payments","category_color":"green","tags":["Pre-authorization","authorization","adjustment"]},"articleFiles":{"screen-EN_smart-pre-auth-funding-source-Compact_Touch.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/images\/e\/a\/8\/6\/4\/ea8641cb022d6ebd1de2ec0a6046d90467b94dab-screen-ensmart-pre-auth-funding-source-compacttouch.png\" \/>","screen-EN_smart-pre-auth.png":"<img alt=\"\" src=\"https:\/\/docs.adyen.com\/images\/2\/1\/f\/0\/9\/21f0988d4fb51c3acaa1dfb3a2365fbfd25cb4f7-screen-ensmart-pre-auth.png\" \/>"}}
