Skip to main content
Cresora Commerce
Core Concepts

Transaction Lifecycle

How payments move through states from creation to settlement.

Every payment in Cresora follows a deterministic state machine. Understanding this is essential for building correct integration logic.

State diagram

requires_action → authorized → captured → settled

Plus terminal states: voided, refunded, disputed, ach_returned

States

StateMeaning
requires_actionPayment created but requires 3DS or additional verification before authorization
authorizedFunds reserved on the card; not yet captured. Only on capture_method: manual.
capturedFunds captured; awaiting settlement batch. The typical happy-path final state for card payments.
settledFunds transferred to the merchant's settlement account.
voidedAuthorization reversed before capture. No settlement.
refundedCaptured payment reversed after settlement. Creates a credit to the cardholder.
disputedCardholder has initiated a dispute. Cresora delivers dispute.created webhook.
ach_returnedACH payment returned by the receiving bank (R-code). See ACH Returns.

Webhook events

Each state transition fires a webhook event:

TransitionEvent
Created → captured (automatic)payment.captured
Created → authorized (manual)payment.authorized
authorizedcapturedpayment.captured
Any → failedpayment.failed
Any → refundedpayment.refunded
Any → disputeddispute.created
💡Tip

Webhooks are the authoritative source for payment state. Do not poll GET /v1/payments/{id} to check status — subscribe to webhook events instead.

Idempotent transitions

State transitions are idempotent: if you send a capture request for a payment that is already captured, Cresora returns the existing payment object without creating a new capture.