report_type=invoice is the Detailed view and returns document rows inside each group; client, staff, sales_person and period are Summary views and return one figure block per group.currency=-1 to convert everything into the base currency and receive a single bucket./owner/reports/revenue, and backs 7 of the Sales Reports tab's cards.{format} suffix. /api2/reports/revenue.json is not a route, and ext=csv and friends are refused -- the response is always JSON.| Bound | Default | Applies to |
|---|---|---|
| Documents | 7,000 | report_type=invoice |
| Groups | 2,000 | every report type |
| Parameter | Reason |
|---|---|
showResults | Not a filter. The API always runs the report. |
quick | A page rendering mode. |
no_graph | A page rendering mode; the API returns no charts. |
hidden | A PDF column-hiding control. |
ext | This endpoint always answers JSON. |
auto_csv | A page export control. |
csv_confirmed | A page export control. |
handler | A page export control. |
is_summary | Set by this endpoint itself; not a filter. |
threshold_limit | A page export control. Sending it would suppress the query entirely. |
data | Send the nested filters at the top level: work_order_id, order_source_id, branch_id, e_invoice_status. |
field_<id>) are refused too. Any parameter not documented above is a 400 naming it -- nothing is silently ignored, so a typo or a pasted report-page URL fails loudly rather than returning a different report.curl --location --globoff 'https://.daftara.com/api2/reports/revenue?report_type=period&group_by=monthly&date_from=2026-09-01&date_to=2026-10-01&client_id=&client_category=&staff_id=&invoice_type=¤cy=-1&shipping_option_id=&show_not_taxed=&work_order_id=&order_source_id=&branch_id=&e_invoice_status=' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer ' \
--header 'apikey: ' \
--header 'Content-Type: application/json'{
"result": "successful",
"code": 200,
"data": {
"report": {
"key": "revenue",
"report_type": "client",
"mode": "detailed",
"group_by": "string",
"group_dimension": "string",
"title": "string"
},
"filters": {
"report_type": "string",
"group_by": "string",
"date_from": "2019-08-24",
"date_to": "2019-08-24",
"client_id": 0,
"client_category": [
0
],
"staff_id": [
"string"
],
"invoice_type": [
"string"
],
"currency": "string",
"shipping_option_id": 0,
"show_not_taxed": true,
"work_order_id": 0,
"order_source_id": 0,
"branch_id": [
0
],
"e_invoice_status": [
"string"
],
"converted_to": "string"
},
"columns": [
{
"key": "string",
"label": "string"
}
],
"currencies": [
{
"currency": "string",
"totals": {
"paid": 0,
"unpaid": 0,
"refund": 0,
"total": 0,
"total_without_tax": 0,
"unpaid_retention": 0
},
"groups": [
{
"key": "string",
"label": "string",
"period": {
"start": "2019-08-24",
"end": "2019-08-24"
},
"id": 0,
"client_identity": {
"bn1": "string",
"bn1_label": "string"
},
"subtotals": {
"paid": 0,
"unpaid": 0,
"refund": 0,
"total": 0,
"total_without_tax": 0,
"unpaid_retention": 0
},
"invoices": [
{
"paid": 0,
"unpaid": 0,
"refund": 0,
"total": 0,
"total_without_tax": 0,
"unpaid_retention": 0,
"no": "string",
"document_type": "invoice",
"date": "2019-08-24",
"client": {
"id": 0,
"name": "string",
"bn1": "string",
"bn1_label": "string",
"bn2": "string",
"bn2_label": "string"
},
"staff": {
"id": 0,
"name": "string"
},
"sales_person": {
"id": 0,
"name": "string"
},
"e_invoice_status": {
"code": "string",
"label": "string"
},
"shows_retention": true
}
]
}
]
}
],
"meta": {
"currency_count": 0,
"group_count": 0,
"retention_enabled": true,
"e_invoice_enabled": true,
"sales_without_tax_enabled": true,
"invoice_count": 0,
"invoice_id_available": true,
"converted_to": "string"
}
}
}