Skip to content
StraventaDocs

Z-report (end-of-day summary) for a closed shift

Returns the full Z-report DTO: cash drawer variance, per-channel payment breakdown (cash, card, QRIS, manual_qr, external_reference), refunds, voids, tax-bracket breakdown, and variance_alert flag when the cash variance exceeds the per-tenant threshold. Idempotent: a second call returns the same shape and re-uses the existing pos_shift_reports row.

GET
/api/pos/v1/shifts/{id}/z-report

Returns the full Z-report DTO: cash drawer variance, per-channel payment breakdown (cash, card, QRIS, manual_qr, external_reference), refunds, voids, tax-bracket breakdown, and variance_alert flag when the cash variance exceeds the per-tenant threshold. Idempotent: a second call returns the same shape and re-uses the existing pos_shift_reports row.

Authorization

bearerAuth
AuthorizationBearer <token>

In: header

Path Parameters

id*string
Formatuuid

Response Body

application/json

curl -X GET "https://example.com/api/pos/v1/shifts/497f6eca-6276-4993-bfeb-53cbbbba6f08/z-report"
{
  "shift_id": "018f4d9f-7b8a-7c2d-9a2d-1f8b92f6d201",
  "store_id": "018f4d9f-7b8a-7c2d-9a2d-1f8b92f6d101",
  "opened_at": "2026-06-03T08:00:00Z",
  "closed_at": "2026-06-03T17:00:00Z",
  "opening_cash_cents": 250000,
  "closing_cash_cents": 1500000,
  "cash_variance_cents": 0,
  "variance_alert": false,
  "total_sales_cents": 3500000,
  "total_refunds_cents": 50000,
  "channels": {
    "cash": {
      "count": 10,
      "total_cents": 1500000
    },
    "qris": {
      "count": 5,
      "total_cents": 2000000
    }
  }
}
Empty
Empty

Was this page helpful?