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

# Overview

The **Payments API** is a flexible building block that gives merchants full control over the payment flow. It is ideal for creating fully customized payment experiences that go beyond prebuilt pages or links.

## Authorisation-Only Payments

By setting `capture_method: manual` when creating a payment session, you can authorise a payment without immediately capturing the funds. This is useful for scenarios where you need to verify a customer's payment method and reserve funds before fulfilling an order.

When `capture_method` is set to `manual`:

* A successful payment transitions to the `succeeded` status, indicating that funds have been **authorised** (reserved) but not yet settled.
* Use the [Capture Payment](/api-reference/collect/payments/capture) endpoint to settle the funds.
* Use the [Void Payment](/api-reference/collect/payments/void) endpoint to release the reserved funds.
* Partial captures are supported. Voids always release the full remaining authorised amount.
* Authorisations expire after a set period determined by the issuing bank and card network. After expiry, the authorisation can no longer be captured.

For a detailed guide on the authorisation and capture lifecycle, see [Authorisation & Capture](/documentation/collect/payment-sessions/authorisation-capture/overview).

## Key Concepts

| Field               | Type              | Description                                                                                                                                                                                            |
| ------------------- | ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `capture_method`    | `string`          | `automatic` (default) settles immediately on authorisation. `manual` reserves funds without settling, enabling the capture/void flow.                                                                  |
| `authorised_amount` | `integer \| null` | The original total amount authorised on the customer's payment method, in minor units. Remains stable across capture and void operations. Present only when the payment method supports authorisation. |
| `paid_amount`       | `integer \| null` | Total amount captured (settled), in minor units. Incremented when a capture is performed.                                                                                                              |
| `voided_amount`     | `integer \| null` | Total amount released from the original authorisation, in minor units. Incremented when a void is performed. Present only when the payment method supports authorisation.                              |

When `capture_method` is `manual`, the remaining capturable amount is `authorised_amount - paid_amount - voided_amount`.

## **Webhooks**

The **Payments API** supports webhook events that allow you to monitor and react to changes in payment state in real time.

Webhook events can be used to update internal systems, trigger order fulfillment, or log payment outcomes for reporting and reconciliation.

### **Available Events**

* **`payment.succeeded`**
  Triggered when a payment is successfully completed.
  👉 [See `payment.succeeded` Event](/api-reference/collect/payments/webhook/succeeded)

* **`payment.attempt_failed`**
  Triggered when an attempt is failed.
  👉 [See `payment.attempt_failed` Event](/api-reference/collect/payments/webhook/attempt_failed)

* **`payment.failed`**
  Triggered when all payment attempts are exhausted and the payment has failed terminally.
  👉 [See `payment.failed` Event](/api-reference/collect/payments/webhook/failed)

* **`payment.captured`**
  Triggered when an authorised payment is successfully captured (fully or partially).
  👉 [See `payment.captured` Event](/api-reference/collect/payments/webhook/captured)

* **`payment.voided`**
  Triggered when an authorised payment is successfully voided.
  👉 [See `payment.voided` Event](/api-reference/collect/payments/webhook/voided)

The event payload includes a `payment` object, which contains fields such as `created_at`, `updated_at`, and `payment_method_details`.

The `payment_method_details` field includes the payment method `type` (e.g., `card`) and additional metadata like `scheme` and `bin`.

### Error Codes

👉 [See Common Error Codes](/api-reference/getting-started/errors)
