# Captures

Manual capture separates authorization from the transfer of funds. When you authorize a payment with manual capture, the customer's card is held for the amount but no money is transferred until you explicitly capture it.

## Prerequisites

* You have a Secret API Key.
* You have read [Making Payments](https://docs.odus.com/docs/guides/payments/making-payments.md) and understand the standard payment flow.

## Capture methods

ODUS supports three capture methods. You can set one per payment, or configure a default for your entire account.

| Method             | Behavior                                                                                           |
| ------------------ | -------------------------------------------------------------------------------------------------- |
| `automatic`        | Funds are captured immediately when the payment is authorized. This is the default.                |
| `manual`           | Funds are held but not transferred. You must explicitly call the capture endpoint.                 |
| `automaticDelayed` | ODUS captures automatically after the number of days set in `captureDelay`. No API call is needed. |

## Step 1: Create a payment with manual capture

Set `captureMethod` to `"manual"` in `paymentMethodOptions` when creating the payment with [`POST /v2/payments`](https://docs.odus.com/docs/api/core/v2/payment-controller-create).

Creating a payment with manual capture

```
{

  "amount": 5000,

  "currency": "usd",

  "paymentMethodOptions": {

    "captureMethod": "manual",

    "card": {

      "mode": "cascade",

      "cascade": "cas_abc123"

    }

  }

}
```

tip

You can also set `captureMethod` at the payment method level (e.g. `paymentMethodOptions.card.captureMethod`). A payment method-level value overrides the top-level one for that specific payment method.

## Step 2: Authorize the payment

Authorize the payment as usual — directly via the API with a saved payment method, or through the Checkout SDK. See [Making Payments](https://docs.odus.com/docs/guides/payments/making-payments.md#authorizing-a-payment) for details.

After authorization, the payment will have:

* `status: "succeeded"`
* `isCaptured: false`
* `displayStatus: "uncaptured"`

The customer's card is held for the amount. No funds have been transferred yet.

important

Authorizations typically expire after approximately 7 days, though the exact limit depends on the gateway and card network. If you do not capture before the authorization lapses, the funds are released back to the customer automatically.

## Step 3: Capture the payment

### Via the API

Send a [`POST /v2/payments/{id}/capture`](https://docs.odus.com/docs/api/core/v2/payment-controller-capture) request. The request body must be an empty JSON object.

Capture request body

```
{}
```

The response is the full payment object. After a successful capture, `isCaptured` will be `true` and `capturedAt` will contain the capture timestamp.

### Via the Dashboard

1. Open the payment detail page.
2. Click **Actions** in the top-right area of the payment summary card.
3. Select **Capture** from the menu.
4. Confirm the dialog.

warning

Capturing a payment cannot be undone. You can issue a refund later if needed.

## Delayed automatic capture

Use `captureMethod: "automaticDelayed"` together with `captureDelay` (number of days) if you want ODUS to capture automatically after a set period — without any additional API call.

Creating a payment with delayed automatic capture

```
{

  "amount": 5000,

  "currency": "usd",

  "paymentMethodOptions": {

    "captureMethod": "automaticDelayed",

    "captureDelay": 2,

    "card": {

      "mode": "cascade",

      "cascade": "cas_abc123"

    }

  }

}
```

The maximum `captureDelay` is **5 days** for card and Apple Pay. For PayPal, you can set up to **15 days** by specifying `captureDelay` at the PayPal level (`paymentMethodOptions.paypal.captureDelay`).

warning

Ensure `captureDelay` is within the authorization window of your gateway. If the authorization expires before the scheduled capture, the capture will fail.

### Capturing at night

Delayed captures normally fire as soon as the delay elapses, which can be any time of day for the shopper. Enable **Capture at night** in [Merchant Configuration](https://docs.odus.com/docs/guides/dashboard/merchant-configuration.md#capture-at-night) to have ODUS schedule each delayed capture at a random moment between 02:00 and 04:00 in the shopper's local time instead.

The scheduled capture is never moved earlier than `captureDelay`, so the delay you configure stays a lower bound.

This only applies when the shopper's UTC offset is known. It is read from the shopper's browser at authorization — automatic for payments made through the Checkout SDK — and remembered for that shopper afterwards. Authorizations that carry no browser information of their own, such as server-to-server charges, subscription renewals, and retries, are scheduled from the offset last recorded for the same shopper. Payments for a shopper whose offset has never been recorded keep the standard schedule.

Offsets are only recorded while **Capture at night** is enabled, so after turning it on a returning shopper's payments keep the standard schedule until their next authorization from a browser.

note

Shopper location is known only as the UTC offset reported at authorization, not as a full time zone. If a daylight-saving transition falls between authorization and capture, the effective window can shift by an hour.

## Voiding an uncaptured authorization

To release the held funds before capturing, you can void the payment. See [Refunds and Voids](https://docs.odus.com/docs/guides/payments/refunds.md) for details.

## Setting a default capture method

You do not need to set `captureMethod` on every payment. Configure a default for your account in Merchant Configuration — all payments without an explicit `captureMethod` will inherit this default.

See [Merchant Configuration](https://docs.odus.com/docs/guides/dashboard/merchant-configuration.md) for setup instructions.
