Attendance Stats — Products
Paginated on-demand breakdown of sold product lines (RELATED) in the attendance window grouped by product (enriched with product name/images). full=true splits each product by transaction payment-state (PAID/UNPAID); full=false collapses to one row per product. Paginated via page/per_page.
Authorization
default You can retrieve your token by logging in.
In: header
Path Parameters
Query Parameters
When true, ignore the report filter and group by dimension x payment-state (rows with count>0). When false, apply the filter and collapse to one row per dimension value.
Page number for pagination. Must be at least 1.
Rows per page (max 100). Must be at least 1. Must not be greater than 100.
When false, scope to this attendance user. When true, whole branch (all cashiers).
Order statuses to include. Applied only when full=false.
Order types to include. Applied only when full=false.
Transaction statuses (PAID/UNPAID) to include. Applied only when full=false.
Header Parameters
API contract version to target. See the Changelog for what changed in each version.
"2.0.0""2.3.0" | "2.2.0" | "2.1.0" | "2.0.0"Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://api.flavours.sa/dev/api/v2/attendances/architecto/stats/products?full=true&page=1&per_page=60&filter.entirely=false&filter.statuses=PROCESS&filter.types=DINING&filter.transaction.statuses=PAID" \ -H "X-API-Version: 2.3.0"{
"meta": {
"code": 200,
"status": "success",
"message": "Data Loaded Successfully"
},
"data": {
"current_page": 1,
"data": [
{
"key": "04374bab-ca75-49cd-a88f-781b5a095780",
"count": 2,
"total": "100.00",
"breakdown": [
{
"state": "PAID",
"count": 2,
"total": "100.00"
}
],
"name_en": "Docs Burger",
"name_ar": "برجر",
"images": null
},
{
"key": "aed8c598-85e6-4581-a07d-b14521ec9c91",
"count": 1,
"total": "50.00",
"breakdown": [
{
"state": "UNPAID",
"count": 1,
"total": "50.00"
}
],
"name_en": "Docs Fries",
"name_ar": "بطاطس",
"images": null
}
],
"first_page_url": "http://localhost:8000/api/v2/attendances/2/stats/products?page=1",
"from": 1,
"last_page": 1,
"last_page_url": "http://localhost:8000/api/v2/attendances/2/stats/products?page=1",
"links": [
{
"url": null,
"label": "« Previous",
"page": null,
"active": false
},
{
"url": "http://localhost:8000/api/v2/attendances/2/stats/products?page=1",
"label": "1",
"page": 1,
"active": true
},
{
"url": null,
"label": "Next »",
"page": null,
"active": false
}
],
"next_page_url": null,
"path": "http://localhost:8000/api/v2/attendances/2/stats/products",
"per_page": 20,
"prev_page_url": null,
"to": 2,
"total": 2
}
}{
"meta": {
"code": 401,
"status": "error",
"message": "Unauthenticated."
},
"data": null
}{
"meta": {
"code": 403,
"status": "error",
"message": "Unauthorized."
},
"data": null
}{
"meta": {
"code": 404,
"status": "error",
"message": "Resource not found."
},
"data": null
}{
"meta": {
"code": 500,
"status": "error",
"message": "Internal server error."
},
"data": null
}Attendance Stats — Payments GET
Paginated on-demand breakdown of payments collected in the attendance window grouped by payment method (enriched with method name/logo). full=true splits each method into SUCCESS/PENDING/RETURN buckets (rows with count>0); full=false collapses to one row per method. Paginated via page/per_page.
Attendance Stats — Settlements GET
Paginated on-demand breakdown of cross-shift settlements: payments collected during this attendance window for orders created before it started, grouped by payment method (enriched with method name/logo). full=true splits each method into SUCCESS/RETURN buckets; full=false collapses to one row per method. Paginated via page/per_page.