REST API
Reports

Reports

Report Types

TypeDescription
salesSales summary and breakdown
inventoryStock levels and product performance
taxTax summary for a period
creditCredit 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.