Modules
Point of Sale
Read the tickets sold in the POS screen, with payments, credit and lines.
Overview
The Point of sale module is a full screen for selling at a counter with an open cash register. Each ticket (psal_...) issues a core invoice, so revenue, payments and stock work like any other invoice. The API is read-only: sales are made and voided by a cashier in the POS screen.
Requires the Point of sale module. An owner or admin turns it on in Settings > Modules. While it is off, every endpoint on this page returns 403 with type permission_error and code module_disabled.
The POS Sale Object
JSON
statusiscompletedorvoided; pending sales are never returnedcredit_amountis the part left on credit (the balance of the invoice)paymentsaggregates the invoice payments by method:cash,credit_card,debit_card,bank_transfer,wallet,otherlinesis only included when you retrieve one sale. For the full document useGET /v1/invoices/{invoice_id}
Endpoints
| Method | Path | Permission | Description |
|---|---|---|---|
GET | /v1/pos-sales | read | List sales (session_id, register_id, customer_id, status, created[gte], created[lte]) |
GET | /v1/pos-sales/{id} | read | Retrieve a sale with its lines |
Sales of the Day
created[gte] and created[lte] accept ISO 8601 (2026-10-11 or 2026-10-11T15:30:00Z) or unix seconds. Invalid values return 400 invalid_timestamp. POS sales emit pos_sale.completed and pos_sale.voided.