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

# Payment Intents

> What a payment intent is and how it relates to checkout sessions.

<Info>
  Slash Payment Processing is in beta and not enabled for all accounts. Contact
  [support@joinslash.com](mailto:support@joinslash.com) to get access.
</Info>

A payment intent represents a single intent to collect a card payment from
a buyer. It is the object that actually tracks the money: how much is
being collected, and where that collection stands — from `pending`
(nothing paid yet) through `processing` (a payment is in flight) to a
terminal `succeeded`, `failed`, or `canceled`.

Every product that collects a card payment creates one payment intent
under the hood:

* **Checkout sessions** — `POST /checkout-session` creates a payment
  intent alongside the session. The session is the buyer-facing wrapper
  (hosted `url`, expiry, prefill config); the payment intent is the money
  movement inside it. These intents carry a `checkoutSessionId` back
  reference.
* **Invoices** — an invoice paid by card creates a payment intent when the
  payer initiates the payment. These intents have no `checkoutSessionId`.

## Statuses

| Status       | Meaning                                                      |
| ------------ | ------------------------------------------------------------ |
| `pending`    | Created, no payment received yet.                            |
| `processing` | A buyer completed the payment form; settlement is in flight. |
| `succeeded`  | The payment settled. This is the terminal success state.     |
| `failed`     | A payment attempt failed.                                    |
| `canceled`   | The intent was canceled and can no longer be paid.           |

A checkout session's `status` is derived from its payment intent: the
session is `complete` exactly when the intent is `succeeded`, and an
`open` session with a `processing` intent is a payment awaiting
settlement.

## Reading payment intents

Use [`GET /payment-intent`](/api-reference/payment-intent-get) to list
payment intents across products (newest first, filterable by status), and
[`GET /payment-intent/{id}`](/api-reference/payment-intent-get-by-id) to
poll a single one — `status: "succeeded"` is equivalent to the
`checkout_session.completed` webhook for fulfillment purposes.
