Hold funds for extended periods before capture

Pre-authorisation allows you to reserve funds on a customer's payment method with extended clearing windows (up to 30 days, depending on card scheme), compared to standard (final) authorisation (7 days).

This guide shows you how to implement pre-authorisation for scenarios where the final charge amount may vary or where you need extended time before capturing funds.

Payment method support

For pre-authorisation orders, only card-based payment methods are available. Support depends on both the Revolut product and card brand:

Revolut productPre-auth support
Card payments✓ Supported
Revolut Checkout (card payment)✓ Supported
Apple Pay / Google Pay✓ Supported (if card supports it)
Hosted Checkout Page (card payment)✓ Supported
Revolut Pay (card payment)✓ Supported via direct API (not shown on hosted checkout for pre-auth orders)
Revolut Pay (A2A)✗ Not supported
Pay by Bank✗ Not supported
SEPA Direct Debit✗ Not supported (requires automatic capture mode)

Advanced authorisations are only supported for Card Not Present (CNP) transactions.

Card brandSupport level
MastercardAll cards
VisaAll except Vpay
MaestroLimited support

What is pre-authorisation

Pre-authorisation (also called "pre-auth") is a type of payment authorisation that reserves funds on a customer's card with an extended clearing window—the period during which you can capture the authorised amount.

Key differences with final authorisation

Final authorisationPre-authorisation
Clearing windowTypically 7 daysUp to 30 days (card scheme dependent)
PurposeImmediate or near-immediate captureExtended holds for variable amounts
Capture modeAutomatic or manualManual only
Amount flexibilityFixed amountCan be combined with incremental authorisation
Card scheme indicatorMarks transaction as finalMarks transaction as estimated/pre-auth

What you can do

  • Hold funds for up to 30 days (depending on Merchant Category Code (MCC) and card scheme)
  • Capture the exact amount needed when service is completed
  • Release funds immediately if service is cancelled
  • Combine with incremental authorisation to increase the authorised amount during service
  • Avoid authorisation expiry during long-duration services

Use cases

Pre-authorisation is designed for scenarios where you need to hold funds for extended periods or the final charge amount is unknown:

  • Hotels and lodging - Authorise deposit at check-in, capture actual charges (room, minibar, services) at checkout
  • Car and vehicle rentals - Hold deposit at pickup, capture actual cost including fuel and damages at return
  • Equipment rentals - Reserve deposit for equipment value, capture based on rental duration and condition
  • Event venues - Hold deposit during planning period, capture after event or release if cancelled
  • Service providers - Authorise estimated cost, capture actual amount based on materials and time used

Clearing window availability

Every card scheme has different rules that determine clearing window lengths for pre-authorisation. The capture_deadline parameter in your order response is automatically calculated based on the card scheme and your Merchant Category Code (MCC), and represents the authoritative deadline by which you must capture the payment.

The following table shows typical validity windows for Mastercard and Visa to help you understand the timeframes. However, always use the capture_deadline from your API response for the actual deadline, as it accounts for your specific MCC and card scheme rules.

Card schemeMerchant categoryClearing windowNotes
MastercardAll (except special MCCs)30 daysCan be extended with incremental authorisation
VisaLodging, cruise, vehicle rental30 daysFixed window (no extension)
VisaOther rentals10 daysFixed window (no extension)
VisaMost other categories5 daysFixed window (no extension)
Card support
  • Mastercard: All cards supported except Maestro (limited support)
  • Visa: All cards supported except Vpay (not supported)

For more details on clearing windows, MCCs, and scheme-specific rules, see the Clearing windows.

Automatic payment expiry

If you do not capture the payment before the capture_deadline, the payment will be automatically failed and marked as abandoned. The authorised funds will be released back to the customer's card, and you will no longer be able to capture the payment.

How it works

Pre-authorisation is a server-to-server integration between the Merchant API and your backend server. Your frontend (website or app) implementation is up to you—this guide focuses on the server-side API interactions.

Pre-authorisation works like manual capture, separating authorisation from capture. The key difference is setting authorisation_type: pre_authorisation when creating the order, which gives you extended clearing windows (up to 30 days) instead of the standard 7-day period.

This extended window lets you hold funds during long-duration services, giving you time to determine the final charge amount before capturing.

Pre-authorisation flow

Here's the step-by-step process:

  1. Your server creates an order with capture_mode: manual and authorisation_type: pre_authorisation via the Merchant API.
  2. Customer makes a payment via your chosen card payment integration.
  3. Order reaches authorised state and funds are reserved on the customer's card.
  4. Funds remain on hold during the service delivery period (up to 30 days depending on card scheme).
  5. At this point, you decide to:
    • Capture - Settle the final amount (full or partial).
    • Cancel - Release the held funds immediately back to the customer.
  6. If no action is taken within the clearing window, the authorisation expires and funds are automatically released.

Before you begin

Ensure you have:

Create a pre-authorised order

Follow these steps to create a pre-authorised order, then capture or cancel it.

1. Create an order with pre-authorisation

Call the Create an order endpoint with the following parameters:

Request body
{
"amount": 10000,
"currency": "GBP",
"capture_mode": "manual",
"authorisation_type": "pre_authorisation",
"description": "Hotel booking deposit - Room 101"
}

Required parameters:

ParameterDescription
capture_modeSet to "manual" to separate authorisation from capture, giving you control over when funds are settled
authorisation_typeSet to "pre_authorisation" to enable extended clearing windows
amountInitial authorisation amount in minor units (e.g., 10000 = £100.00)
currencyThree-letter currency code (e.g., "GBP", "EUR", "USD")

Optional but recommended:

ParameterDescription
descriptionHelps to identify the transaction
customer.emailFor sending receipts and notifications
merchant_order_data.referenceYour internal order reference
cancel_authorised_afterAutomatic cancellation period in ISO 8601 duration format. For pre-authorisation orders, you can set this up to 30 days (P30D), aligning with the maximum clearing window available. If omitted, only capture_deadline governs expiry.
Info

The 30-day maximum for cancel_authorised_after applies to pre-authorisation orders only. For final authorisation orders, the 7-day maximum (P7D) still applies.

2. Collect payment from customer

Take a payment from your customer with your preferred payment solution. For pre-authorisation orders, only card, Apple Pay, and Google Pay are supported. Choose an integration that accepts cards:

  • Revolut Checkout: Offers an embedded checkout form with card payment options.
  • Card payments: Our widget accepts most major credit and debit cards. This is a familiar and widely used payment method.
  • Apple Pay or Google Pay: Provides a quick and convenient checkout experience, if the underlying card supports pre-authorisation.
  • Hosted Checkout Page: Use payment links to redirect your customers to our self-hosted checkout page with card payment option.
Note

Revolut Pay account-to-account (A2A) payments, Pay by Bank, and SEPA Direct Debit are not supported for pre-authorisation orders.

Tip

You can also authorise payments using a customer's saved payment method via the Pay for an order endpoint. The saved payment method must be a card (Mastercard or Visa).

For more information see: Charge a customer's saved payment method.

When the customer completes the payment
  • Funds are reserved (held) on the customer's card
  • Order reaches authorised state
  • Funds remain on hold for up to 30 days (depending on card scheme) - check the capture_deadline parameter for the exact deadline
  • You control when to settle the payment

3. Monitor order state

After the customer completes payment, monitor the order state to confirm successful authorisation:

Configure a webhook URL to receive real-time notifications:

Webhook payload
{
"event": "ORDER_AUTHORISED",
"order_id": "6920869a-8d8d-aefd-a3c3-8fe4690e4323",
"merchant_order_ext_ref": "Hotel booking #12345"
}

When you receive the ORDER_AUTHORISED event, retrieve the full order details using the order_id to confirm the authorisation and check the capture_deadline.

Handling events:

EventWhen it firesRecommended action
ORDER_AUTHORISEDPayment authorised successfullyDeliver service, capture when ready
ORDER_PAYMENT_DECLINEDPayment declined by issuer/bankNotify customer to retry with different card
ORDER_PAYMENT_FAILEDTechnical failure during processingCustomer can retry same payment method
ORDER_CANCELLEDOrder manually cancelledNo action needed
ORDER_FAILEDOrder expired (timeout)Create new order if customer returns

When a payment is declined or fails, the order returns to pending state and customers can make another payment attempt.

Info

For details on the complete lifecycle, see: Order and payment lifecycle.

4. Capture the payment

When you're ready to finalise the transaction (e.g., when service is completed), capture the authorised order:

Use the Capture an order endpoint in the Merchant API to capture the payment. You can choose from two approaches:

  • Full capture: Send the request without a body to capture the full amount.
  • Partial capture: Send the request with a specific amount in the body to capture a partial amount of what was initially authorised. The remaining amount will be automatically released back to the customer's card. For more information see: Partial capture.
Capture before expiry

You must capture before the clearing window expires. Check the capture_deadline parameter in your order details, or see: Clearing windows for scheme-specific details.

5. (Optional) Cancel the payment

If the service is cancelled or not delivered, you can cancel the order. The amount will be immediately voided and returned to your customer's card, providing a much faster experience than standard refunds (which typically take 5-7 days).

Note

Once a payment has been captured, you can no longer cancel it. Captured payments can only be refunded using the standard refund process.

For more information see: Refund payments.


Success

You've completed the pre-authorisation tutorial!

You now know how to hold funds for extended periods before capture, giving you the flexibility to handle variable amounts and long-duration services.

What's next

Explore related topics:

API references:

Related resources: