Overview
Two-step (authorize and capture) payment flows let you reserve funds on a customer’s card without immediately charging them. This is useful for scenarios like hotel reservations, pre-orders, or marketplace payments where the final amount may change.Flow Diagram
Step 1: Authorize
Create a payment withcapture: false to authorize without capturing:
Authorizations typically expire after 7 days (varies by provider and card issuer). Capture the payment before the authorization expires, or the funds will be released automatically.
Step 2a: Capture
Capture the authorized payment to transfer the funds. Use thetransaction_id from the authorize response:
Step 2b: Cancel (Void)
Cancel an authorized payment to release the held funds:Status Transitions
Best Practices
- Set internal reminders to capture or cancel authorizations before they expire
- Use cancel (void) instead of refund for un-captured authorizations to avoid processing fees
- Log the authorization ID for reconciliation purposes
- Implement idempotency keys to prevent duplicate captures