Some businesses need to authorize a card when an order is placed but only capture the money
when the order ships. Set captureMethod to manual.
1. Authorize
curl https://payments.leffelconsulting.com/v1/payments/intents \
-H "X-Api-Key: lc_live_XXXXXXXXXXXXXXXXXXXX" \
-H "Idempotency-Key: order-10432" \
-H "Content-Type: application/json" \
-d '{ "amountCents": 4999, "currency": "usd", "captureMethod": "manual" }'
After the customer confirms in the browser, the payment sits at status requires_capture — the
funds are held but not yet taken.
2. Capture
When you’re ready (for example, at ship time), capture the payment by its lcPaymentId:
# Full capture (omit amountCents)
curl https://payments.leffelconsulting.com/v1/payments/lcpay_9f2c.../capture \
-H "X-Api-Key: lc_live_XXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{}'
# Partial capture — take less than authorized; the rest is released
curl https://payments.leffelconsulting.com/v1/payments/lcpay_9f2c.../capture \
-H "X-Api-Key: lc_live_XXXXXXXXXXXXXXXXXXXX" \
-H "Content-Type: application/json" \
-d '{ "amountCents": 3999 }'
Authorizations expire
A card authorization lasts about 7 days. If you can’t capture within that window, capture up front as a deposit or re-authorize. Capture as soon as you’re able.
The payment_intent.amount_capturable_updated callback tells you an authorization
is ready to capture.