Skip to main content
Slash Payment Processing is in beta and not enabled for all accounts. Contact support@joinslash.com to get access.
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 sessionsPOST /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

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 to list payment intents across products (newest first, filterable by status), and GET /payment-intent/{id} to poll a single one — status: "succeeded" is equivalent to the checkout_session.completed webhook for fulfillment purposes.