### Would you like to contact support?

Pre-authorise a payment, adjust the authorised amount, and capture the payment.

In a basic payment flow, the payable amount from your payment request is authorised and then captured. But sometimes you may want to change the amount or extend the length of the authorisation. You can enable this using the authorisation type pre-authorisation with your payment request. In this payment flow you can increase or decrease the authorised amount at a later stage, and then capture the payment. We refer to these changes to a pre-authorised payment as authorisation adjustments.

Authorisation adjustment is currently available for Discover, Mastercard, Visa, and American Express. Support is ultimately up to the issuer. See Availability for more information.

### Use cases

There are several use cases for adjusting an authorisation:

• Hospitality. For example, in a hotel:

1. Just before the guest checks in, or when the guest checks in using an app or in person, the hotel pre-authorises payment of the room that the guest booked. At the same time, the hotel stores the shopper's payment information, to be able to apply late charges when necessary.
2. During their stay, the guest incurs expenses at the hotel facilities. The hotel adds these expenses to the pre-authorised amount by adjusting the authorisation.
3. 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.
4. If necessary, the hotel charges the guest after they have left, using the shopper's stored payment details for a new payment.
• Pre-ordering items. For example, a shopper pre-orders a video game that will be released three months later. The video game seller authorises the payment, but as they can only ship the product three months later, they need to extend the authorisation validity.

## Authorisation types

For some card schemes, you can set card payment requests to be handled as either a pre-authorisation or a final authorisation.

• Pre-authorisation: This is intended for use cases as described above, when you don't yet know the amount to be captured. It allows you to increase or decrease the initially authorised amount at a later point in time using the API.
• Final authorisation: Use this when the final amount is agreed up front and the transaction will definitely be captured in full. It's not possible to adjust the authorised amount.

To set an authorisation type, you can manually specify the authorisation type (PreAuth or FinalAuth) in each payment request. See Pre-authorise a payment.

There are two ways to implement pre-authorisation:

• With asynchronous authorisation adjustment, you refer to a payment using the PSP reference that you received in the response to your pre-authorisation request. In each authorisation adjustment request as well as in the final capture request, you only need to specify this first PSP reference.

Asynchronous adjustment is easier to implement, but it is not immediately clear if the adjustment succeeded. You need to set up webhook notifications to receive updates and to know if the final amount was authorised before you capture the payment.

• With synchronous authorisation adjustment, you pass an adjustAuthorisationData blob from one authorisation adjustment to the next, to enable us to keep track of the latest amount. You receive the first blob in the response to your pre-authorisation request. In your first authorisation adjustment request, you specify the blob you received for the pre-authorisation, 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.

Synchronous adjustment requires an additional step to implement, because you need to keep track of the latest blob to submit it in the subsequent adjust authorisation request. The advantage is that you receive the adjustment result synchronously. In this way you immediately know if the final amount was authorised before you capture the payment.

If at some stage 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.

## Before you begin

Before you configure and use pre-authorisation:

1. Make sure that you have built an integration that can make a payment.
2. Set up webhook notifications. You'll need to rely on notifications to know whether the capture succeeded. If you use asynchronous authorisation adjustment, you'll also need to rely on notifications for the authorisation adjustment result.

You also need to implement logic on your end, for example to decide when to use the pre-authorisation flow, and to calculate the amount when you make an authorisation adjustment.

You may want to configure your account with the following setting for pre-authorisation and authorisation adjustment:

• Synchronous authorisation adjustment: To receive the initial adjustAuthorisationData blob with your pre-authorisation request and to subsequently receive the authorisation adjustment results synchronously, ask our Support Team to enable this.

## Step 1: Pre-authorise a payment

Make a payment request, and additionally specify:

• additionalData.authorisationType: PreAuth
curl https://checkout-test.adyen.com/checkout/v69/payments \
-H 'X-API-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"reference":"YOUR_ORDER_NUMBER",
"merchantAccount":"YOUR_MERCHANT_ACCOUNT",
"paymentMethod": {
"type": "scheme",
"number":"4111111111111111",
"cvc":"737",
"expiryMonth":"10",
"expiryYear":"2020",
"holderName":"John Smith"
},
"amount":{
"currency":"EUR",
"value":1500
},
"returnUrl": "https://your-company.com/checkout?shopperOrder=12xy..",
"authorisationType":"PreAuth"
}
}'
String xApiKey = "YOUR_X-API-KEY";
Client client = new Client(xApiKey,Environment.TEST);
Checkout checkout = new Checkout(client);
PaymentsRequest paymentsRequest = new PaymentsRequest();
paymentsRequest.setMerchantAccount("YOUR_MERCHANT_ACCOUNT");
// STATE_DATA is the paymentMethod field of an object passed from the front end or client app, deserialized from JSON to a data structure.
paymentsRequest.setPaymentMethod(STATE_DATA)
Amount amount = new Amount();
amount.setCurrency("EUR");
amount.setValue(1500L);
paymentsRequest.setAmount(amount);
paymentsRequest.setReference("YOUR_ORDER_NUMBER");
paymentsRequest.setReturnUrl("https://your-company.com/checkout?shopperOrder=12xy..");
Map<String, String> additionalData = new HashMap<>();
var response = checkout.payments(paymentsRequest);

The response includes a pspReference. Store this for later use when adjusting the authorisation or capturing the payment.

{
"pspReference": "KHQC5N7G84BLNK43",
"resultCode": "Authorised"
}

## Step 2: (Optional) Modify the authorisation

To modify the pre-authorised amount, make an authorisation adjustment request.

1. Make a POST request to the /payments/{paymentPspReference}/amountUpdates endpoint, specifying:

Parameter Required Description
paymentPspReference The pspReference of the pre-authorisation request. You received this in the response to your pre-authorisation request.
merchantAccount The name of your merchant account that is used to process the payment.
amount The currency and value of the new amount in minor units. This is the sum of the pre-authorised amount and the additional amount.
If this is not the first authorisation adjustment, it's the sum of the pre-authorised amount plus all additional amounts.
reason The reason for the amount update. The value can be DelayedCharge, NoShow or Reauthorization.
reference Your reference to this payment modification, for use in your reconciliation process.

The following example shows how you would add a charge of 64.15 EUR to a pre-authorised amount of 150.00 EUR.

curl https://checkout-test.adyen.com/v69/payments/KHQC5N7G84BLNK43/amountUpdates \
-H "x-API-key: YOUR_X-API-KEY" \
-H "content-type: application/json" \
-d '{
"merchantAccount":"YOUR_MERCHANT_ACCOUNT",
"amount": {
"currency":"EUR",
"value":21415
},
"reason":"DelayedCharge",
"reference":"YOUR_UNIQUE_REFERENCE"
}'
String xApiKey = "YOUR_X-API-KEY";
Client client = new Client(xApiKey,Environment.TEST);
Checkout checkout = new Checkout(client);
var paymentAmountUpdateRequest = new CreatePaymentAmountUpdateRequest();
var amount = new Amount();
amount.setCurrency("EUR");
amount.setValue(21415L);
paymentAmountUpdateRequest.setAmount(amount);
paymentAmountUpdateRequest.setMerchantAccount("YOUR_MERCHANT_ACCOUNT");
paymentAmountUpdateRequest.setReference("YOUR_UNIQUE_REFERENCE");
paymentAmountUpdateRequest.setReason(ReasonEnum.DELAYEDCHARGE);
String paymentPspReference = "KHQC5N7G84BLNK43";
var response = checkout.paymentsAmountUpdates(paymentPspReference, paymentAmountUpdateRequest);

• pspReference: The PSP reference for this /payments/{paymentPspReference}/amountUpdates request. Note that this is different from the PSP reference of the pre-authorisation request.
• status: received
{
"merchantAccount": "YOUR_MERCHANT_ACCOUNT",
"paymentPspReference": "KHQC5N7G84BLNK43",
"pspReference": "NC6HT9CRT65ZGN82",
"reference": "YOUR_UNIQUE_REFERENCE",
"amount": {
"currency": "EUR",
"value": 21415
}
}
2. Wait for the asynchronous notification. This informs you whether the new amount has been authorised.

### Extend the authorisation

To extend the authorisation period make an /payments/{paymentPspReference}/amountUpdates request with the same amount as the current balance on the authorisation:

• If you haven't adjusted the authorisation yet, use the amount from the original pre-authorisation request.
• If you did adjust the authorisation, use the amount from the last adjustment.

See Adjust the authorisation for instructions. To check the status of the authorisation (the original and the extension), make sure to consume notification webhooks.

## Step 3: Finalize the pre-authorised payment

When you have made your last authorisation adjustment, you need to manually capture the payment to transfer the reserved funds to your account:

1. Decide whether you are ready to capture the payment:

• Does the shopper want to settle the bill using a different payment method than the one used for the pre-authorisation?
If yes, do not capture the payment. Instead, cancel the pre-authorisation:

2. When you are ready to capture the payment, make a POST request to the /payments/paymentPspReference/captures endpoint, specifying:

Parameter Required Description
merchantAccount The name of your merchant account that is used to process the payment.
paymentPspReference The pspReference of the original pre-authorisation. You received this in the response to your pre-authorisation request.
amount The currency of the final amount and its value in minor units. This is the sum of the original, pre-authorised amount and all later adjustments.
reference Your reference to this payment modification, for use in your reconciliation process.
curl https://checkout-test.adyen.com/v69/payments/KHQC5N7G84BLNK43/captures \
-H "x-API-key: YOUR_X-API-KEY" \
-H "content-type: application/json" \
-d '{
"merchantAccount": "YOUR_MERCHANT_ACCOUNT",
"amount": {
"value": 21415,
"currency": "EUR"
},
"reference": "YOUR_UNIQUE_REFERENCE"
}'
String xApiKey = "YOUR_X-API-KEY";
Client client = new Client(xApiKey,Environment.TEST);
Checkout checkout = new Checkout(client);
var paymentCaptureRequest = new CreatePaymentCaptureRequest();
var amount = new Amount();
amount.setCurrency("EUR");
amount.setValue(21415L);
paymentCaptureRequest.setAmount(amount);
paymentCaptureRequest.setMerchantAccount("YOUR_MERCHANT_ACCOUNT");
paymentCaptureRequest.setReference("YOUR_UNIQUE_REFERENCE");
String paymentPspReference = "KHQC5N7G84BLNK43";
var response = checkout.paymentsCaptures(paymentPspReference, paymentCaptureRequest);
3. When you receive the /payments/paymentPspReference/captures response, note the following:

• pspReference: The PSP reference associated with this /payments/paymentPspReference/captures request. Note that this is different from the PSP reference associated with the pre-authorisation request.
• status: received.
• reference: Your reference to this payment modification, for use in your reconciliation process.
{
"merchantAccount": "YOUR_MERCHANT_ACCOUNT",
"paymentPspReference": "KHQC5N7G84BLNK43",
"pspReference": "QJ7GWQ756L2GWR86",
"reference": "YOUR_UNIQUE_REFERENCE",
"amount": {
"currency": "EUR",
"value": 21415
}
}
4. Wait for the asynchronous notification. This informs you whether the final amount has been captured.
If the capture is successful, this notification contains:

• eventCode: CAPTURE
• originalReference: The pspReference of the pre-authorisation.
• pspReference: The PSP reference associated with this /payments/paymentPspReference/captures request.
• success: true

If success is false then your capture request failed. Review the reason you received in the notification, fix the issue, and submit the capture request again.

If you need to charge the guest for an additional amount after they have left, and you stored your shopper's payment details (token) with your pre-authorisation request, you can apply these late charges in a recurring payment request using the token. See Recurring payments.

You can combine the steps listed before to fulfill your use case. For example, if you want to do multiple partial captures, modify the amount authorised after the first partial capture. To do so, pre-authorise a payment, partially capture the payment, and then adjust the authorisation amount.

## Availability

You can use adjust authorisation for certain business models that are most common in travel, public transport, and restaurant businesses. Card schemes set specific rules around which businesses are able to adjust an authorisation. Your eligibility is determined by your Merchant Category Code (MCC), together with the card scheme.
To obtain the required MCC value:

3. Go to Settings > Payment methods.
4. Scroll to the right of the table to see your MCC for the relevant payment methods.

Scheme Available Merchant Category Codes (MCC)
Mastercard All MCCs
Visa Within Europe: all MCCs
Outside of Europe: 3351-3500, 3501-3999, 4111, 4112, 4121, 4131, 4411, 5311, 5411, 5072, 5137, 5552, 5651, 5691, 5732, 5734, 5812, 5814, 5945, 7011, 7033, 7211, 7338, 7394, 7512, 7513, 7519, 7523, 7542, 7841, 7996, 7999.
Discover 3351-3441, 3501-3999, 4111, 4112, 4121, 4131, 4411, 4457, 5812, 5813, 7011, 7033, 7996, 7394, 7512, 7513, 7519, 7999.
American Express All MCCs

## Validity

Adyen expires an authorisation request automatically after:

• 28 days from the day the payment is authorised, for all major global card networks, except Cartes Bancaires.
• 12 days from the day the payment is authorised, for Cartes Bancaires.

The default expiry period can be adjusted and ensures that Adyen does not automatically expire the authorization after the default 28 days. Contact our Support Team to configure a custom expiry date for you and specify the merchant accounts, schemes and timeframe in hours or days.
Note that card schemes, too, have their own set of rules on authorisation expiry. Capturing a transaction after the scheme expiry time increases the risk of a failed capture, and may also increase the interchange and/or scheme fees charged for the transaction. Card schemes can also expire an authorisation before or after the official scheme expiry period has been reached.
You can often capture a payment successfully after an authorisation has expired. Depending on the card scheme, there can be a fee for late capture, and an increase in interchange fee. The risk of cardholder chargebacks increase as well.
The following tables include expiry information from major card schemes:

### Amex

Scheme Debit/credit Environment Authorisation type MCC Days
Amex All All All All 7 days

### Carte Bancaires

Scheme Debit/credit Environment Authorisation type MCC Days
Carte Bancaires All All All All 13 days

### Diners

Scheme Debit/credit Environment Authorisation type MCC Days
Diners All MOTO All All 7 days
Diners Debit All All All 7 days
Diners Credit All All All 30 days
Diners All All All Car Rental, Hotel/Lodging 30 days

### Discover

Scheme Debit/credit Environment Authorisation type MCC Days
Discover All All All All 10 days
Discover All All All Car Rental, Hotel/Lodging MCCs 30 days

### JCB

Scheme Debit/credit Environment Authorisation type MCC Days
JCB All All All All 1 year
JCB All All Pre-auth Hotel and Car rental Time of stay/rental

### Mastercard

Scheme Debit/credit Environment Authorisation type MCC Days
Mastercard All All Final auth All 7 days
Mastercard All All Pre-auth All 30 days

### Visa

Scheme Debit/credit Environment Authorisation type MCC Days
Visa electron All All All All 5 days
Visa All POS All All 1 day
Visa All Ecommerce All All 7 days
Visa All All Pre-Auth Cruise, Lodging, Vehicle Rental 31 days
Visa All Subscriptions and UnscheduledCardOnFile All All 1 day
Visa All CnP All 4121 1 day