Create the intent on your server
Resolve the final order amount and currency before creating the intent. The API key and internal order data stay on the server.x-api-key or the webhook secret to browser code.
Confirm the payment
Use the secure SDK or the confirm endpoint to collect payment details and complete customer action. The confirmation response describes the next state; it does not guarantee settlement.requires_payment_method: ask for another method or show a validation errorrequires_action: keep the customer in the secure flowprocessing: show pending and wait for the verified eventsucceeded: compare amount, currency, and order ID before fulfillmentcancelled: close the unpaid order and release reserved inventory
Capture an authorization
SetcaptureMethod: "manual" when you need to authorize now and capture later, such as after inventory or fraud review. Capture the full amount or a lower amount before the authorization expires.
Cancel or recover
Cancel an intent only when the order is abandoned, expired, or rejected before capture. If a create, confirm, or capture request returns a timeout, retrieve the intent by ID and reconcile its status. Never create a replacement intent because a response was lost. Fulfill only from a verifiedpayment.confirmed event or an authoritative terminal retrieval. For delayed bank methods, keep the order pending and use the reconciliation guide when the browser and event timelines differ.