Skip to main content
Capture an authorization when the order is ready to settle. The operator transfers all or part of the escrowed amount to the receiver and fee receiver without collecting from the payer again.

Demo

The demo above is mock only. If you want to see onchain demos on Vibenet, head to Base chain demos.

Check and Capture

Read paymentState(paymentInfoHash) before capture. The amount must be nonzero, no greater than capturableAmount, and submitted strictly before authorizationExpiry. The operator supplies an absolute feeAmount in raw token units. The protocol validates it against the per-capture minFeeBps and maxFeeBps stored in PaymentInfo.
TypeScript
Capture decreases capturableAmount and increases refundableAmount by the same gross amount. The receiver gets the gross amount minus fees.
Verify PaymentCaptured(paymentInfoHash, amount, feeAmount, feeReceiver) and the expected receiver transfers before marking the fulfillment increment settled.
At authorizationExpiry, capture is no longer available and the payer can reclaim the remaining balance. Use chain time rather than an application server clock when enforcing the deadline.

See Also

Capture a Partial Amount

Settle split shipments or a reduced final total.

Refund a Payment

Return previously captured value to the payer.