> ## Documentation Index
> Fetch the complete documentation index at: https://docs.broco.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Cash checkout overview

> Let customers order online and pay in cash at a Broco cash point.

Cash checkout lets a customer order online and pay in cash at a Broco cash point **before the order ships**. The customer does not need a Broco account. The merchant is credited when the cash agent validates the cash received.

## How a cash payment works

```mermaid theme={null}
flowchart TD

  A["Your server creates the cash payment<br/>status: awaiting_payment"]:::step --> B["Customer receives the reference,<br/>amount and deadline"]:::step
  B --> C["Customer hands the cash to the agent<br/>at a Broco point, before shipping"]:::step
  C --> D["Agent counts and validates the cash"]:::check
  D --> E["Broco credits the merchant<br/>status: succeeded"]:::money
  E -.-> F["cash_payment.succeeded<br/>sent to your server"]:::notify
  F --> G["Your server ships the order"]:::step
  B -. "no payment before expires_at" .-> X["status: expired"]:::step
  classDef money fill:#158FAB,stroke:#0E6F86,color:#FFFFFF
  classDef check fill:#E8F4F7,stroke:#158FAB,color:#0E1C29
  classDef notify fill:#FFF6C2,stroke:#B89400,color:#0E1C29,stroke-dasharray:4 3
  classDef step fill:#FFFFFF,stroke:#C9D0D6,color:#0E1C29
```

In this diagram, blue steps move money, light blue steps are validations, and dashed yellow steps are notifications.

<Steps>
  <Step title="The customer chooses to pay in cash">
    At checkout, the customer selects **Pay in cash at a Broco point**. Your server creates a cash payment linked to the order.
  </Step>

  <Step title="The customer receives the payment instructions">
    Your order confirmation shows the payment reference or QR code, the exact amount, the deadline and how to find a Broco cash point.
  </Step>

  <Step title="The customer pays at a cash point">
    The cash agent finds the request from the reference or QR code, checks the merchant, the order, the amount and the deadline, then counts the cash.
  </Step>

  <Step title="The agent validates the cash received">
    The payment succeeds when the agent validates the cash. The customer receives a receipt. The merchant's balance is credited.
  </Step>

  <Step title="Your server confirms and ships">
    Broco sends `cash_payment.succeeded` to your server. Your server marks the order as paid and starts fulfilment.
  </Step>
</Steps>

<Warning>
  A QR code that was opened or scanned does not prove that cash was handed over. Only `succeeded` confirms the payment.
</Warning>

## What the customer sees

| Information | Example |
| - | - |
| Payment reference | `BR-7Q4M-2K9D` |
| Amount to pay | 8 400 DZD |
| Merchant | The merchant's name in Broco |
| Pay before | 14 October 2026, 21:00 UTC |
| Where to pay | Any Broco cash point |

## When a payment does not go through

| Situation | Result |
| - | - |
| The customer does not pay before the deadline | `expired`. The order stays unpaid. |
| Your platform cancels the order | `canceled`. The reference can no longer be paid. |
| The reference is unknown or no longer payable | The agent does not accept the cash |
| The cash offered differs from the amount due | The agent does not validate the payment |
| The same payment is validated twice | Broco records one payment and one credit |

## Next steps

<CardGroup cols={2}>
  <Card title="Quickstart" href="/cash-checkout/quickstart">
    Integrate an 8 400 DZD order step by step.
  </Card>

  <Card title="Cash checkout API" href="/api-reference/cash-payments">
    Fields, statuses and examples.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.