awaiting_payment and ends in one final status. Only succeeded means the cash was validated and the merchant credited.
Statuses
succeeded, expired and canceled are final.
At the cash point
The agent validates a payment only when all checks pass.
Opening or scanning the QR code only retrieves the request. It is not a payment.
Expired requests
An expired request is never shown as paid. If the customer still wants the order, your platform creates a new cash payment with a newIdempotency-Key, such as ORD-20731-cash-2, and shares the new reference.
If cash was handed over on a request that was not payable, Broco treats it as an anomaly and resolves it with the parties. It does not become a payment automatically.
Duplicate validation
A cash payment is validated once. Any further validation attempt is refused. If Broco sendscash_payment.succeeded again, your server ignores the duplicate event id.
Receipt and reconciliation
Next steps
Cash checkout API
The cash payment object and its operations.
Events & webhooks
Receive
cash_payment.succeeded and cash_payment.expired.