Counter Order
The Counter Order integration allows external POS and kitchen management systems to receive, manage, and fulfill orders placed by customers through the Cheers app, web, or kiosk.
When a customer places an order, Cheers notifies your system via a callback. Your system then fetches the order details, manages its lifecycle (approve, prepare, complete), and handles payment when applicable.
Your system can also enable or disable desks to control where customers can order -- for example to temporarily suspend incoming orders or to stop ordering when the restaurant is closed. See Desk Availability.
How It Works
Key Concepts
| Concept | Description |
|---|---|
| Callback | A POST request sent by Cheers to your configured callback URL when an order becomes actionable. Contains the orderId as a query parameter. |
| Order Status | The lifecycle state of the order (NEW, APPROVABLE, APPROVED, DONE, COMPLETED, REJECTED, LEFT, CANCELLED). |
| Transaction Status | The payment state of the order (UNPAID, AUTHORIZED, CAPTURED, PAID_EXTERNALLY, RELEASED, FAILED, PAYMENT_NOT_REQUIRED). |
| Payment Processor | How the order is paid: BARION, SIMPLE_PAY (in-app), EXTERNAL_MANUAL (at counter), EXTERNAL_AUTO, or NONE. |
| Desk | The counter or table associated with the order. Type is either COUNTER or TABLE. Each desk has an enabled flag -- customers can only place orders at enabled desks. |
| Order Source | Where the order originated: MOBILE, WEB, or KIOSK. |
API Endpoints
All endpoints are documented in the Counter Order API Reference. Here is a summary:
| Endpoint | Description |
|---|---|
GET /{orderId} | Fetch full order details |
PUT /{orderId}/status | Update order status (APPROVED, REJECTED, DONE, LEFT, COMPLETED) |
PUT /{orderId}/finalize-external-payment | Confirm external payment was collected |
PUT /{orderId}/cancel-external-payment | Cancel an external payment that failed |
GET /me/desks | List your desks and their enabled state |
PUT /desks/status | Enable or disable desks (suspend/resume ordering) |