Shifts
Cash shifts track a cashier's working period — opening float, all orders taken, and closing reconciliation. Every order can be linked to a shift for accurate end-of-day reporting.
List shifts
bash
GET /v1/slate/shifts| Name | Type | Required | Description |
|---|---|---|---|
| filter[status] | string | No | open or closed. |
| page | integer | No | Page number. |
| per_page | integer | No | Results per page. Max 100. |
Get a shift
bash
GET /v1/slate/shifts/:idOpen a shift
bash
POST /v1/slate/shifts| Name | Type | Required | Description |
|---|---|---|---|
| action | string | Yes | Must be "open". |
| starting_cash | number | No | Opening cash float in the drawer. Defaults to 0. |
bash
curl -X POST https://api.hldgroup.org/v1/slate/shifts \
-H "x-internal-secret: <key>" \
-H "x-tenant-id: ten_01hxyz" \
-H "x-user-id: usr_01hxyz" \
-H "x-platform-role: tenant-system-admin" \
-H "Content-Type: application/json" \
-d '{ "action": "open", "starting_cash": 200.00 }'json
{
"data": {
"id": "shft_01hxyz",
"tenant_id": "ten_01hxyz",
"opened_at": "2025-06-01T08:00:00Z",
"opened_by_user_id": "usr_01hxyz",
"starting_cash": 200.00,
"closing_cash": null,
"status": "open"
}
}Note:Only one shift can be open per tenant at a time. Opening a second shift while one is open returns
409 Conflict.Close a shift
bash
POST /v1/slate/shifts| Name | Type | Required | Description |
|---|---|---|---|
| action | string | Yes | Must be "close". |
| shift_id | string | Yes | ID of the open shift to close. |
| closing_cash | number | No | Actual cash count at close for reconciliation. |
bash
curl -X POST https://api.hldgroup.org/v1/slate/shifts \
-H "x-internal-secret: <key>" \
-H "x-tenant-id: ten_01hxyz" \
-H "x-user-id: usr_01hxyz" \
-H "x-platform-role: tenant-system-admin" \
-H "Content-Type: application/json" \
-d '{ "action": "close", "shift_id": "shft_01hxyz", "closing_cash": 348.50 }'