Automatic or manual capture
By default, payments are captured automatically: you receivepayment.authorized
and then payment.captured.
Set capture_method: "manual" on the checkout session to authorise first and capture
later, for example when you ship.
- A capture is
pendinguntilpayment.captured,payment.partially_capturedorcapture.failedarrives. - The total captured can never exceed the authorised amount (
amount_too_large). - Not every payment method supports separate or partial captures. Authorisations expire after a few days depending on the method; capture as soon as you can.
Cancel
payment.canceled.
Refund
- Multiple partial refunds are allowed. The total refunded can never exceed the captured amount, even when requests arrive at the same time.
- A refund is
pendinguntilrefund.succeededorrefund.failed. - Disputed payments cannot be refunded (
payment_disputed); the dispute decides the outcome. - With automatic capture, wait for
payment.capturedbefore refunding.