Skip to content

Sales and revenue export

Two similar tasks are solved by different methods:

What is needed Method Granularity
Summary revenue by shop for a date GET /v1/general-report-table shop × date
Breakdown by payment type GET /v1/transaction-report-table transaction
Окно терминала
curl -X GET 'https://api-admin.billz.ai/v1/general-report-table?start_date=2026-08-22&end_date=2026-08-22&shop_ids=ID1,ID2&currency=UZS&detalization=day&limit=50&page=1' \
-H 'Authorization: Bearer TOKEN'

A report row is a “shop × date” pair:

Field What it is
date, shop_name date and shop
gross_sales revenue
net_gross_sales net revenue: gross_sales − discounts − returns
gross_profit gross profit
discount_sum, discount_percent discounts
transactions_count, orders_count, returns_count, exchanges_count number of transactions by type
average_cheque, average_measurement_value average receipt and average number of items in it
products_sold, products_returned units sold and units returned

When the question is “how much was paid in cash and how much by card”: GET /v1/transaction-report-table; totals: GET /v1/transaction-report-totals. The list of payment types for the filter: GET /v1/transaction-report-payments; type names: GET /v1/company-payment-type.

A ready-made file instead of page-by-page reading

Section titled “A ready-made file instead of page-by-page reading”

Both reports have a paired method that builds an .xlsx in the background and returns a link to the ready file: POST /v1/general-report-excel — the summary report by shop, POST /v1/transaction-report-excel — transactions. One request instead of dozens of pages; the Billz-Response-Channel: HTTP header is mandatory here, without it there will be no link. Parameters, the file’s columns and the full list of sixteen reports are in report export to Excel.

All the reports listed are in the list of routes available to the integration key.

The output is narrowed by the list of shops available to the token: the passed shop_ids are intersected with the allowed ones.

  • The previous day is fetched in full, once: a sale can be edited or returned retroactively.
  • Dates in reports are in the company’s time zone (Tashkent is UTC+5).
  • A retry with exponential backoff on 429 is always required.