Manual Capture

Available via: API only (private key), card payments

Authorize Now, Capture Later

By default, card payments are captured immediately (captureMode: "AUTOMATIC"). With manual capture, the payment is only authorized — the funds are reserved on the customer's card but not taken — and you capture them later, when you're ready (e.g. when the order ships).

Step 1: Create the Payment With Manual Capture

Set captureMode: "MANUAL" when creating the payment:

curl -X POST https://api.inflowpay.xyz/api/server/payment \
  -H "X-Inflow-Api-Key: inflow_prod_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "products": [{ "name": "Pre-order", "price": 4999, "quantity": 1 }],
    "currency": "EUR",
    "customerEmail": "[email protected]",
    "billingCountry": "FR",
    "purchasingAsBusiness": false,
    "captureMode": "MANUAL"
  }'

This works with the SDK flow too — the customer completes the card form as usual; the payment simply stops at authorization instead of being captured.

Step 2: Wait for Authorization

Once the customer completes the payment, the payment reaches the CHECKOUT_AUTHORIZED status: the funds are reserved but not captured.

Step 3: Capture the Funds

curl -X POST https://api.inflowpay.xyz/api/payment/{paymentId}/capture \
  -H "X-Inflow-Api-Key: inflow_prod_your_key"

The full authorized amount is captured and the payment continues through the normal settlement flow (PAYMENT_SUCCESS, balance credit, webhooks).

Notes

  • The payment must be in CHECKOUT_AUTHORIZED status to be captured.
  • Card networks limit how long an authorization can be held (typically around 7 days) — capture before it expires, or the reservation is released.
  • CHECKOUT_AUTHORIZED has no dedicated webhook event; poll GET /api/payment/{paymentId} or capture from your own order workflow.