Skip to main content
A cash payment starts as 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 new Idempotency-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 sends cash_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.