> ## Documentation Index
> Fetch the complete documentation index at: https://docs.momentco.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Captures and Voids

> How to capture or void authorised payments

## Capture Scenarios

### Full capture

Capture the entire authorised amount. Omit the `amount` field:

```json theme={"system"}
POST /collect/payments/pay_rOaZNqKZMFxsRb2NBL1cj/captures
Idempotency-Key: capture_order_123

// No request body needed
```

Response:

```json theme={"system"}
{
  "id": "pay_rOaZNqKZMFxsRb2NBL1cj",
  "status": "succeeded",
  "amount": 100000,
  "capture_method": "manual",
  "authorised_amount": 100000,
  "paid_amount": 100000,
  "voided_amount": 0,
  ...
}
```

**Webhook fired:** `payment.captured`

### Partial capture

Capture less than the full authorised amount by specifying `amount`:

```json theme={"system"}
POST /collect/payments/pay_rOaZNqKZMFxsRb2NBL1cj/captures
Idempotency-Key: capture_order_123_shipment_1

{
  "amount": 60000
}
```

Response:

```json theme={"system"}
{
  "authorised_amount": 100000,
  "paid_amount": 60000,
  "voided_amount": 0,
  ...
}
```

The remaining R400.00 of authorisation can be voided:

```json theme={"system"}
POST /collect/payments/pay_rOaZNqKZMFxsRb2NBL1cj/voids
Idempotency-Key: void_order_123_remainder

// No request body needed
```

## Void

<Note>
  **Best practice: void unused authorisations promptly.** A live authorisation reserves funds on the customer's card and reduces their available balance until it expires (typically 5 to 30 days depending on issuer and scheme). If you have decided not to capture, void the authorisation as soon as possible rather than letting it expire. This improves the customer experience and reduces support contact about held funds.
</Note>

### Full void

Release the entire remaining authorised amount:

```json theme={"system"}
POST /collect/payments/pay_rOaZNqKZMFxsRb2NBL1cj/voids
Idempotency-Key: void_order_123

// No request body needed
```

Response:

```json theme={"system"}
{
  "authorised_amount": 100000,
  "paid_amount": 0,
  "voided_amount": 100000,
  ...
}
```

**Webhook fired:** `payment.voided`

### Void after partial capture

After a partial capture, void the remaining authorisation to close the payment:

```
1. Authorisation:         authorised_amount = 100000, paid_amount = 0,     voided_amount = 0
2. Partial capture 60000: authorised_amount = 100000, paid_amount = 60000, voided_amount = 0
3. Void remaining:        authorised_amount = 100000, paid_amount = 60000, voided_amount = 40000
```
