Skip to main content

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 with capture: 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 the transaction_id from the authorize response:
Not all providers support partial capture. Verify provider capabilities in the Coverage Matrix before implementing partial capture flows.

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