Payment intents
title: "Payment intents" description: "A payment intent represents a single on-chain charge with a fresh address and an expected amount." section: "Concepts" order: 1 updated: "2026-04-18" sourcePath: "content/docs/concepts/payment-intents.mdx"
A payment intent is BchainPay's central object for accepting a payment. You declare the amount, the settlement coin, and the network. We allocate a fresh on-chain address and track every confirmation against it until the intent is completed, expired, or canceled.
Lifecycle
requires_payment— created, waiting for funds.processing— payment seen on-chain, waiting for confirmations.completed— confirmed and credited to the matching pocket.expired—expires_atpassed before the customer paid.canceled— you canceled before payment.
When to use one intent vs. many
- One intent per order. Every checkout, invoice, or recurring charge gets its own intent.
- Never reuse an address across orders. Each intent gets a unique address so you can attribute payments unambiguously.
Why we settle in stablecoins
You always receive the asset your customer paid in. BchainPay does not auto-swap, so you keep the upside (and downside) of price moves until you withdraw. To realize a fiat amount, settle in USDC or USDT.