Reports
Report Types
| Type | Description |
|---|---|
sales | Sales summary and breakdown |
inventory | Stock levels and product performance |
tax | Tax summary for a period |
credit | Credit tabs and outstanding balances |
GET /reports/types
List available report types.
Auth: Required
Response:
{
"success": true,
"data": {
"report_types": [
{ "type": "sales", "name": "Sales Report" },
{ "type": "inventory", "name": "Inventory Report" },
{ "type": "tax", "name": "Tax Report" },
{ "type": "credit", "name": "Credit Report" }
]
}
}POST /reports/generate
Generate a report. Returns CSV file or JSON data.
Auth: Required
Request Body:
{
"report_type": "sales",
"format": "csv",
"range": "30d",
"date_from": "2024-01-01",
"date_to": "2024-01-31"
}Response: CSV file download or JSON data.
GET /reports/exports
List past report exports.
Auth: Required
Query: limit, report_type, format
Response:
{
"success": true,
"data": [
{
"id": "uuid",
"report_type": "sales",
"format": "csv",
"file_url": "https://...",
"created_at": "2024-01-15T10:00:00Z"
}
]
}GET /reports/exports/:id/download
Re-download a previous export.
Auth: Required
Scheduled Reports (Owner Only)
GET /reports/scheduled
List scheduled reports.
Auth: Required + Owner
Response: Array of ScheduledReport objects.
POST /reports/scheduled
Create a scheduled report.
Auth: Required + Owner
Request Body:
{
"report_type": "sales",
"name": "Weekly Sales Report",
"frequency": "weekly",
"date_range_preset": "7d",
"recipients": ["manager@ziadapos.com"]
}Frequencies: daily, weekly, monthly
Date Range Presets: 7d, 30d, 90d, month, ytd
PATCH /reports/scheduled/:id
Update a scheduled report.
Auth: Required + Owner
Request Body (all optional):
{
"name": "Updated Name",
"frequency": "daily",
"date_range_preset": "30d",
"recipients": ["new@email.com"],
"is_enabled": true
}DELETE /reports/scheduled/:id
Delete a scheduled report.
Auth: Required + Owner
POST /reports/scheduled/:id/send
Send a scheduled report immediately.
Auth: Required + Owner
Response: Dispatch result.