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.
For pre-authorisation orders, only card-based payment methods are available. Support depends on both the Revolut product and card brand:
| Revolut product | Pre-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 brand | Support level | |
|---|---|---|
| Mastercard | All cards | |
| Visa | All except Vpay | |
| Maestro | Limited 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 authorisation | Pre-authorisation | |
|---|---|---|
| Clearing window | Typically 7 days | Up to 30 days (card scheme dependent) |
| Purpose | Immediate or near-immediate capture | Extended holds for variable amounts |
| Capture mode | Automatic or manual | Manual only |
| Amount flexibility | Fixed amount | Can be combined with incremental authorisation |
| Card scheme indicator | Marks transaction as final | Marks 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 scheme | Merchant category | Clearing window | Notes |
|---|---|---|---|
| Mastercard | All (except special MCCs) | 30 days | Can be extended with incremental authorisation |
| Visa | Lodging, cruise, vehicle rental | 30 days | Fixed window (no extension) |
| Visa | Other rentals | 10 days | Fixed window (no extension) |
| Visa | Most other categories | 5 days | Fixed window (no extension) |
- 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.
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:
- Your server creates an order with
capture_mode: manualandauthorisation_type: pre_authorisationvia the Merchant API. - Customer makes a payment via your chosen card payment integration.
- Order reaches
authorisedstate and funds are reserved on the customer's card. - Funds remain on hold during the service delivery period (up to 30 days depending on card scheme).
- At this point, you decide to:
- If no action is taken within the clearing window, the authorisation expires and funds are automatically released.
Before you begin
Ensure you have:
- Active Revolut Business account with Merchant capabilities
- API credentials for the Merchant API
- Understanding of basic manual capture
- Server-side integration capability (server-to-server API flow)
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:
{
"amount": 10000,
"currency": "GBP",
"capture_mode": "manual",
"authorisation_type": "pre_authorisation",
"description": "Hotel booking deposit - Room 101"
}
Required parameters:
| Parameter | Description |
|---|---|
capture_mode | Set to "manual" to separate authorisation from capture, giving you control over when funds are settled |
authorisation_type | Set to "pre_authorisation" to enable extended clearing windows |
amount | Initial authorisation amount in minor units (e.g., 10000 = £100.00) |
currency | Three-letter currency code (e.g., "GBP", "EUR", "USD") |
Optional but recommended:
| Parameter | Description |
|---|---|
description | Helps to identify the transaction |
customer.email | For sending receipts and notifications |
merchant_order_data.reference | Your internal order reference |
cancel_authorised_after | Automatic 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. |
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.
Revolut Pay account-to-account (A2A) payments, Pay by Bank, and SEPA Direct Debit are not supported for pre-authorisation orders.
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.
- Funds are reserved (held) on the customer's card
- Order reaches
authorisedstate - Funds remain on hold for up to 30 days (depending on card scheme) - check the
capture_deadlineparameter 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:
{
"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:
| Event | When it fires | Recommended action |
|---|---|---|
ORDER_AUTHORISED | Payment authorised successfully | Deliver service, capture when ready |
ORDER_PAYMENT_DECLINED | Payment declined by issuer/bank | Notify customer to retry with different card |
ORDER_PAYMENT_FAILED | Technical failure during processing | Customer can retry same payment method |
ORDER_CANCELLED | Order manually cancelled | No action needed |
ORDER_FAILED | Order 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.
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.
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).
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.
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:
- Incremental authorisation - Learn how to increase authorised amounts during service
- Clearing windows - Detailed card scheme and Merchant Category Code (MCC) clearing window rules
- Authorise a payment to capture later - Basic manual capture tutorial
API references:
Related resources: