Authorize now, capture later

Hold funds at confirmation and capture them in a separate step (manual capture).

By default Fluveo captures funds automatically the moment a PaymentIntent is confirmed (capture_method=automatic). When you need to charge after a delay — shipping physical goods, finalizing a hotel folio, accepting a marketplace order — set capture_method=manual to authorize the card now and capture it later, within the authorization window.

This is a scenario guide. For the per-field contract see the API Reference; for first-run setup see the Quickstart.

Which capture method?

capture_methodFunds moveReach for it when
automatic (default)immediately on confirmdigital goods, instant fulfilment
manualwhen you call captureyou fulfil or verify before charging

1. Authorize (create + confirm, manual)

Create the PaymentIntent with capture_method=manual and confirm it with a payment method. It lands in requires_capture — the funds are held, not taken.

$curl https://api.fluveo.dev/v1/payment_intents \
> -u sk_test_123: \
> -d amount=4242 \
> -d currency=usd \
> -d capture_method=manual \
> -d confirm=true \
> -d payment_method=pm_card_visa

In production the card is collected in the browser via VGS Collect and you pass a vault alias, never a raw PAN — see the card vault.

2. Capture (full or partial)

When you’re ready to take the money, capture up to the authorized amount. Omit amount_to_capture for a full capture; a partial capture automatically refunds the held remainder.

$curl https://api.fluveo.dev/v1/payment_intents/pi_1A9e8AzB2xQRH9JfQu5N/capture \
> -u sk_test_123: \
> -d amount_to_capture=4242

3. Release without charging

To let an authorization go (the customer cancelled, the item is out of stock), cancel the intent — the hold is released and nothing is captured.

$curl https://api.fluveo.dev/v1/payment_intents/pi_1A9e8AzB2xQRH9JfQu5N/cancel \
> -u sk_test_123:

Next