# 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.

:::warning[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 product                                                                                                                | Pre-auth support                                                                |
| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------- |
| [Card payments](/docs/guides/merchant/accept-payments/online-payments/card-payments/introduction)                              | ✓ Supported                                                                     |
| [Revolut Checkout](/docs/guides/merchant/accept-payments/online-payments/revolut-checkout/introduction) (card payment)         | ✓ Supported                                                                     |
| [Apple Pay / Google Pay](/docs/guides/merchant/accept-payments/online-payments/apple-pay-google-pay/introduction)              | ✓ Supported _(if card supports it)_                                             |
| [Hosted Checkout Page](/docs/guides/merchant/accept-payments/online-payments/hosted-checkout-page/introduction) (card payment) | ✓ Supported                                                                     |
| [Revolut Pay](/docs/guides/merchant/accept-payments/online-payments/revolut-pay/introduction) (card payment)                   | ✓ Supported via direct API _(not shown on hosted checkout for pre-auth orders)_ |
| [Revolut Pay](/docs/guides/merchant/accept-payments/online-payments/revolut-pay/introduction) (A2A)                            | ✗ Not supported                                                                 |
| [Pay by Bank](/docs/guides/merchant/accept-payments/online-payments/pay-by-bank/introduction)                                  | ✗ Not supported                                                                 |
| [SEPA Direct Debit](/docs/guides/merchant/accept-payments/online-payments/sepa-direct-debit/server-to-server)                  | ✗ Not supported _(requires automatic capture mode)_                             |

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

|                  | Card brand | Support level     |
| ---------------- | ---------- | ----------------- |
| :LogoMc\|image:  | Mastercard | All cards         |
| :LogoVisaColour: | Visa       | All except _Vpay_ |
| :LogoMa\|image:  | 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](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/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)                    |

:::info[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](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/clearing-windows).
:::

:::warning[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](/docs/guides/merchant/operations/capture-and-settlement/capture-later), 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](/docs/api/merchant#create-order) with `capture_mode: manual` and `authorisation_type: pre_authorisation` via the Merchant API.
1. Customer makes a payment via your chosen card payment integration.
1. Order reaches `authorised` state and funds are reserved on the customer's card.
1. Funds remain on hold during the service delivery period (up to 30 days depending on card scheme).
1. At this point, you decide to:
   - [**Capture**](/docs/api/merchant#capture-order) - Settle the final amount (full or partial).
   - [**Cancel**](/docs/api/merchant#cancel-order) - Release the held funds immediately back to the customer.
1. 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](/docs/guides/merchant/get-started)
- [ ] [API credentials for the Merchant API](/docs/guides/merchant/get-started)
- [ ] Understanding of [basic manual capture](/docs/guides/merchant/operations/capture-and-settlement/capture-later)
- [ ] 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](/docs/api/merchant#create-order) with the following parameters:

```json [Request body] {4-5}
{
  "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](https://en.wikipedia.org/wiki/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:**](/docs/guides/merchant/accept-payments/online-payments/revolut-checkout/introduction) Offers an embedded checkout form with card payment options.
- [**Card payments:**](/docs/guides/merchant/accept-payments/online-payments/card-payments/introduction) Our widget accepts most major credit and debit cards. This is a familiar and widely used payment method.
- [**Apple Pay or Google Pay:**](/docs/guides/merchant/accept-payments/online-payments/apple-pay-google-pay/introduction) Provides a quick and convenient checkout experience, if the underlying card supports pre-authorisation.
- [**Hosted Checkout Page:**](/docs/guides/merchant/accept-payments/online-payments/hosted-checkout-page/introduction) 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](/docs/api/merchant#pay-order) endpoint. The saved payment method must be a card (_Mastercard_ or _Visa_).

For more information see: [Charge a customer's saved payment method](/docs/guides/merchant/optimise-checkout/save-payment-methods/charge-saved-payment-method).
:::

:::tip[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:

- ![Webhooks (recommended)]

  [Configure a webhook URL](/docs/api/merchant#create-webhook) to receive real-time notifications:

  ```json [Webhook payload] {2}
  {
    "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](/docs/api/merchant#retrieve-order) 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.

  :::info
  For details on the complete lifecycle, see: [Order and payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).
  :::

- ![Polling]

  Call the [Retrieve an order](/docs/api/merchant#retrieve-order) endpoint at regular intervals.

  ```json [Response body] {5,10-11,23}
  {
    "id": "69726c30-1358-a043-a099-da9a0ef7f931",
    "token": "4749c99d-b744-44aa-88ed-36070470162d",
    "type": "payment",
    "state": "authorised",
    "created_at": "2026-01-22T18:28:00.983427Z",
    "updated_at": "2026-01-22T20:29:17.321172Z",
    "amount": 500,
    "currency": "GBP",
    "capture_mode": "manual",
    "authorisation_type": "pre_authorisation",
    ...
    "payments": [
      {
        "id": "69728898-34fc-a4bd-8b92-d4f4ea018581",
        "state": "authorised",
        "amount": 500,
        "authorised_amount": 500,
        "payment_method": {
          "type": "card",
          "card_brand": "visa",
          ...
          "capture_deadline": "2026-01-29T20:29:16.057Z"
        }
      }
    ]
    ...
  }
  ```

  When the order reaches `authorised` state, funds are successfully reserved on the customer's card. Check the `capture_deadline` to see when you must capture by.

  **Possible order states:**

  | Order state  | Description                              | Next steps                             |
  | ------------ | ---------------------------------------- | -------------------------------------- |
  | `authorised` | Payment authorised, funds reserved       | Proceed with service delivery          |
  | `pending`    | Waiting for payment or payment failed    | Customer needs to pay or retry payment |
  | `processing` | Payment attempt in progress              | Continue polling                       |
  | `failed`     | Order expired without successful payment | Create new order if needed             |
  | `cancelled`  | Order cancelled or authorisation expired | Create new order if needed             |

  :::info
  For details on the complete order lifecycle, see: [Order and payment lifecycle](/docs/guides/merchant/reference/order-lifecycle).
  :::

  :::tip[Payment-level details]
  You can also retrieve individual payment attempt details using the [Retrieve payment details](/docs/api/merchant#retrieve-payment-details) endpoint.

  This provides granular information about each payment attempt, which can be useful for detailed analytics or debugging specific payment failures.
  :::

### 4. Capture the payment

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

- ![Merchant API]

  Use the [Capture an order endpoint](/docs/api/merchant#capture-order) 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](/docs/guides/merchant/operations/capture-and-settlement/capture-later#partial-capture).

  :::warning[Capture before expiry]
  You must capture before the clearing window expires. Check the `capture_deadline` parameter in your order details, or see: [Clearing windows](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/clearing-windows) for scheme-specific details.
  :::

- ![Revolut Business]

  :::info
  On the Revolut Business dashboard, you can only capture the **full amount**.
  :::

  To capture the authorised amount using Revolut Business, follow these steps:
  1. Log in to [Revolut Business](https://business.revolut.com).
  1. Navigate to the :Cart: **Merchant** menu on the sidebar.
  1. Select an authorised payment, and click :Check: **Capture** on the overview panel.
  1. Click **Capture order** in the pop-up to confirm the capture.
  1. Once the capture is successful, the order will proceed to the processing stage.

### 5. (Optional) Cancel the payment

If the service is cancelled or not delivered, you can [cancel the order](/docs/api/merchant#cancel-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).

:::info
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](/docs/guides/merchant/operations/refunds).
:::

---

:::tip
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](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/incremental-authorisation) - Learn how to increase authorised amounts during service
- [Clearing windows](/docs/guides/merchant/operations/capture-and-settlement/advanced-authorisation/clearing-windows) - Detailed card scheme and Merchant Category Code (MCC) clearing window rules
- [Authorise a payment to capture later](/docs/guides/merchant/operations/capture-and-settlement/capture-later) - Basic manual capture tutorial

**API references:**

- [Create an order](/docs/api/merchant#create-order)
- [Capture an order](/docs/api/merchant#capture-order)
- [Cancel an order](/docs/api/merchant#cancel-order)
- [Retrieve an order](/docs/api/merchant#retrieve-order)

**Related resources:**

- [Order and payment lifecycle](/docs/guides/merchant/reference/order-lifecycle)
- [Work with webhooks](/docs/guides/merchant/monitor-and-observe/webhooks/using-webhooks)