Overview
Cash registers represent physical or virtual points of sale. Each register belongs to a branch and can be of three types: ON_PREMISE (dine-in), DELIVERY, or EVENT (temporary operations).
Create Cash Register
POST /api/v1/cash-registers
Request Body
Branch ID where the register is located
Operating unit ID (required for EVENT type registers)
Unique register code (max 50 characters)
Register name (max 255 characters)
Register type: ON_PREMISE, DELIVERY, or EVENT
Additional metadata Physical location description
Response
Operating unit ID (for events)
Operating unit information (if applicable)
curl -X POST https://api.sushigo.local/api/v1/cash-registers \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"branch_id": 1,
"code": "REG-001",
"name": "Caja Principal",
"type": "ON_PREMISE",
"is_active": true,
"meta": {
"location": "Counter 1"
}
}'
{
"message" : "Cash register created successfully" ,
"data" : {
"id" : 1 ,
"branch_id" : 1 ,
"operating_unit_id" : null ,
"code" : "REG-001" ,
"name" : "Caja Principal" ,
"type" : "ON_PREMISE" ,
"is_active" : true ,
"meta" : {
"location" : "Counter 1"
},
"created_at" : "2025-12-13T08:00:00+00:00" ,
"updated_at" : "2025-12-13T08:00:00+00:00" ,
"branch" : {
"id" : 1 ,
"name" : "Sucursal Centro"
},
"operating_unit" : null
}
}
List Cash Registers
GET /api/v1/cash-registers
Query Parameters
Filter by register type: ON_PREMISE, DELIVERY, or EVENT
Response
Returns paginated list of cash registers with branch and operating unit information.
curl https://api.sushigo.local/api/v1/cash-registers?branch_id= 1 & is_active = true \
-H "Authorization: Bearer YOUR_TOKEN"
{
"current_page" : 1 ,
"data" : [
{
"id" : 1 ,
"branch_id" : 1 ,
"code" : "REG-001" ,
"name" : "Caja Principal" ,
"type" : "ON_PREMISE" ,
"is_active" : true ,
"branch" : {
"id" : 1 ,
"name" : "Sucursal Centro"
}
},
{
"id" : 2 ,
"branch_id" : 1 ,
"code" : "REG-DEL" ,
"name" : "Caja Delivery" ,
"type" : "DELIVERY" ,
"is_active" : true ,
"branch" : {
"id" : 1 ,
"name" : "Sucursal Centro"
}
}
],
"per_page" : 15 ,
"total" : 2
}
Get Cash Register
GET /api/v1/cash-registers/{id}
Path Parameters
Response
Returns register details with recent sessions (last 5).
Operating unit (for events)
curl https://api.sushigo.local/api/v1/cash-registers/1 \
-H "Authorization: Bearer YOUR_TOKEN"
Update Cash Register
PUT /api/v1/cash-registers/{id}
Path Parameters
Request Body
Operating unit ID (for events)
Register code (must be unique)
Register type: ON_PREMISE, DELIVERY, or EVENT
Response
curl -X PUT https://api.sushigo.local/api/v1/cash-registers/1 \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Caja Principal Actualizada",
"is_active": false
}'
Delete Cash Register
Cannot delete a register with existing sessions. Set is_active to false instead.
DELETE /api/v1/cash-registers/{id}
Path Parameters
Response
curl -X DELETE https://api.sushigo.local/api/v1/cash-registers/1 \
-H "Authorization: Bearer YOUR_TOKEN"
Success Response
422 Cannot Delete
{
"message" : "Cash register deleted successfully"
}
Register Types
ON_PREMISE
DELIVERY
EVENT
Used for dine-in sales at the restaurant location. This is the most common type for traditional POS operations.
Dedicated register for delivery orders. Separates delivery cash flow from on-premise operations.
Temporary register for catering events or pop-up locations. Linked to an operating unit with specific dates.