Order Lifecycle & Payment States
The /submit call represents an authorized order, not necessarily a captured one. Capture happens after /submit succeeds — so a terminal submit failure never leaves funds in an inconsistent state: the authorization is simply released, with no manual reconciliation required on the partner side. For synchronous methods the authorize/capture distinction rarely matters in practice; for asynchronous methods (MultiBanco, MBway, Sequra) it's central to the partner integration.
Synchronous payment methods
Card, Apple Pay, Google Pay, PayPal and similar methods settle within the /submit call itself.
- Shopper completes payment in the Simpler checkout.
- Simpler calls
/submit. The order in your system is created withstatus: COMPLETED. - No further webhook is required for payment confirmation.
Asynchronous payment methods
MultiBanco, MBway, and Sequra require the shopper to take additional action after the checkout completes. The order is created at /submit time but funds haven't moved yet.
- Shopper selects the async method in Simpler checkout and sees a "Success" screen (e.g. a MultiBanco voucher).
- Simpler calls
/submit. Create the order in your system withstatus: PENDING. - Shopper completes payment offline (e.g. pays the voucher at an ATM or via home banking).
- Simpler receives the payment confirmation from the PSP and fires an
ORDER_UPDATEDwebhook withstatus: PAYMENT_SUCCESS. - Your webhook handler moves the order to its final state (e.g.
processing).
If the shopper never completes payment, an ORDER_UPDATED webhook with status: PAYMENT_FAILED fires instead.
Settlement windows
| Method | Typical settlement | Expiration |
|---|---|---|
| MultiBanco | 1–3 days depending on when the shopper pays | 72 hours; PAYMENT_FAILED webhook on expiry |
| MBway | Typically same-day (confirm with Simpler for your region) | — |
| Sequra | Risk-check + instalment plan; confirm with Simpler for your region | — |
Cancellation semantics (MultiBanco specific)
Once a MultiBanco voucher has been issued, the transaction cannot be programmatically canceled. Only the shopper can effectively cancel by letting the voucher expire. No funds are moved until the shopper pays, so no auto-return is required for expired vouchers.
Partner UI guidance
For async methods, render a "Pending Payment" or "Awaiting Payment" badge on the partner order-detail page until the PAYMENT_SUCCESS webhook arrives. Do not treat the order as ready for fulfillment based on /submit alone — the funds haven't moved yet.
See also
- Retries & Timeouts — what happens when
/submitor webhooks fail. - Webhook Event Catalog — the
ORDER_UPDATEDevent payload. - Handling Webhooks tutorial — receiver implementation.