# Report export to Excel

> How to get a ready-made report file in one request and which columns are available in each report.

The methods of the “Report export” section return a link to a ready-made `.xlsx` file — the same report as on the report pages in BILLZ, and the same data as in the [reports](/en/reference/api/) read page by page. The difference is in the load: instead of dozens of `GET` pages — a single `POST` and a link to the file.

All the methods take a `POST` with a JSON body and respond in the same way.

## How to get the file

The file is not prepared instantly — it is built in the background. There are two modes.

### Wait for the file in the response

Pass the header:

```plaintext
Billz-Response-Channel: HTTP
```

The request will wait for the file to be ready — up to 100 seconds — and return a response with the link. For an integration this is the only mode in which a link to the file can be obtained at all.

```bash
curl -X POST 'https://api-admin.billz.ai/v1/stock-report-excel' \
  -H 'Authorization: Bearer TOKEN' \
  -H 'Billz-Response-Channel: HTTP' \
  -H 'Content-Type: application/json' \
  -d '{
    "shop_ids": ["6f244db4-75d6-4fac-9841-14867d45e36a"],
    "report_date": "2026-08-31",
    "currency": "UZS",
    "fields": ["product_name", "measurement_value", "supply_price", "retail_price"]
  }'
```

### Do not wait

Without the header the method responds immediately:

```json
{ "message": "7c1e2f3a-9b21-4e2a-8c31-3f4a2b1c9d0e" }
```

This is the request’s `correlation_id`.

> **Without the header the file cannot be obtained through the API**
>
> In this mode the link to the file is **never** returned: the ready file goes as a notification to the BILLZ interface, and the API has no “fetch the file by `correlation_id`” method. For an integration `Billz-Response-Channel: HTTP` is mandatory.

## Response

```json
{
  "status_code": 200,
  "data": {
    "filename": "Stock report for 2026-08-31_7c1e2f3a-9b21-4e2a-8c31-3f4a2b1c9d0e",
    "url": "https://minio.billz.ai/report-excel/Stock report for 2026-08-31_7c1e2f3a-9b21-4e2a-8c31-3f4a2b1c9d0e"
  }
}
```

The file name is built from the template `<Report name> for <period>_<unique id>`; the template of each report is given below, in its own section. The service builds the name **in Russian** regardless of `lang` and of the integration’s language — on this page the templates and the example above are given by meaning, but the name that arrives is Russian.

> **The link has no extension**
>
> The link ends with an identifier, not with `.xlsx`. The content is nevertheless an ordinary `.xlsx`: when saving, the extension is added by hand.

Errors come in the [common format](/en/reference/errors/). If the file has not been built within 100 seconds, the request ends with `408` and `error.code = TIMEOUT`, while the build continues. The wait of 100 seconds applies only to report exports; for the other asynchronous methods it is longer.

> **Rate limiter: 5 requests per second**
>
> Ten methods of the section carry a limiter of their own — **5 requests per second** (burst 10), shared by all clients of the platform: `general-report-excel`, `product-general-report-excel`, `seller-general-report-excel`, `customer-general-report-excel`, `customer-purchases-report-excel`, `sells-supplier-report-excel`, `transaction-report-excel`, `import-report-excel`, `stock-report-excel`, `transfer-report-excel-export`. When it is exceeded — `429`, the details are in [response codes](/en/reference/errors/). The remaining six methods of the section have no limiter of their own.

## Columns: the `fields` parameter

`fields` is the list of columns that will go into the file, in the order in which they are listed. The allowed values are in the “Columns” table of each report.

> **Without `fields` the file will be empty**
>
> The method will return a file, but without data columns.

### Columns from product attributes and custom fields

In product reports, instead of a column name you can pass in `fields` the **UUID of a product attribute or custom field** configured in the company catalog (“Size”, “Color”):

```json
{
  "fields": ["product_name", "measurement_value", "9f1c2e3a-5b7d-4c1e-8a2f-3d6b0e4c7a91"]
}
```

The column gets the attribute’s name from the catalog, and the rows hold its value for each product. If a product has no value, the cell is empty. The reports where this works are marked below.

## Report registry

| Section      | Report                             | Method                                                                                                                            |
| ------------ | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
| Shop         | Summary report by shop             | [`POST /v1/general-report-excel`](/en/reference/api/operations/post_v1_general_report_excel/)                                     |
| Transactions | Transactions                       | [`POST /v1/transaction-report-excel`](/en/reference/api/operations/post_v1_transaction_report_excel/)                             |
| Sellers      | Seller summary                     | [`POST /v1/seller-general-report-excel`](/en/reference/api/operations/post_v1_seller_general_report_excel/)                       |
| Customers    | Customer summary                   | [`POST /v1/customer-general-report-excel`](/en/reference/api/operations/post_v1_customer_general_report_excel/)                   |
| Customers    | Customer purchases                 | [`POST /v1/customer-purchases-report-excel`](/en/reference/api/operations/post_v1_customer_purchases_report_excel/)               |
| Finance      | Profit and loss                    | [`POST /v1/report-profit-and-lose-excel`](/en/reference/api/operations/post_v1_report_profit_and_lose_excel/)                     |
| Finance      | Financial transactions (cash flow) | [`POST /v1/cashflow-excel`](/en/reference/api/operations/post_v1_cashflow_excel/)                                                 |
| Products     | Sales by product                   | [`POST /v1/product-general-report-excel`](/en/reference/api/operations/post_v1_product_general_report_excel/)                     |
| Products     | Product performance                | [`POST /v1/report-product-performance-excel`](/en/reference/api/operations/post_v1_report_product_performance_excel/)             |
| Products     | Imports                            | [`POST /v1/import-report-excel`](/en/reference/api/operations/post_v1_import_report_excel/)                                       |
| Products     | Sales by supplier                  | [`POST /v1/sells-supplier-report-excel`](/en/reference/api/operations/post_v1_sells_supplier_report_excel/)                       |
| Products     | Order returns                      | [`POST /v1/supplier-order-returned-export`](/en/reference/api/operations/post_v1_supplier_order_returned_export/)                 |
| Products     | Stocktaking results                | [`POST /v1/stocktaking-summary-table-excel-export`](/en/reference/api/operations/post_v1_stocktaking_summary_table_excel_export/) |
| Products     | Product stock                      | [`POST /v1/stock-report-excel`](/en/reference/api/operations/post_v1_stock_report_excel/)                                         |
| Products     | Write-offs                         | [`POST /v1/write-off-report-table-export`](/en/reference/api/operations/post_v1_write_off_report_table_export/)                   |
| Products     | Transfers                          | [`POST /v1/transfer-report-excel-export`](/en/reference/api/operations/post_v1_transfer_report_excel_export/)                     |

## Shop

### Summary report by shop

[`POST /v1/general-report-excel`](/en/reference/api/operations/post_v1_general_report_excel/) · file `Summary report for <start_date> - <end_date>_<id>`

Revenue, profit, average receipt and the number of transactions for the period.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "detalization": "day",
  "fields": ["date", "shop_name", "gross_sales", "net_gross_sales", "average_cheque"]
}
```

Columns:

| `fields` value              | Column in the file                      |
| --------------------------- | --------------------------------------- |
| `date`                      | Date                                    |
| `shop_name`                 | Shop                                    |
| `gross_sales`               | Revenue                                 |
| `discount_sum`              | Discount amount                         |
| `discount_percent`          | Discount percentage                     |
| `products_returned`         | Number of returned products             |
| `returned_supply_price`     | Returns at supply price                 |
| `returned_discount_price`   | Returns at the discounted price         |
| `returned_retail_price`     | Returns at retail price                 |
| `sales_supply_price`        | Sales at supply price                   |
| `net_gross_sales`           | Net revenue                             |
| `gross_profit`              | Gross profit                            |
| `average_cheque`            | Average receipt                         |
| `average_price`             | Average price of a product in a receipt |
| `average_measurement_value` | Average number of products in a receipt |
| `average_extra_charge`      | Average markup                          |
| `products_sold`             | Number of products sold                 |
| `transactions_count`        | Total number of transactions            |
| `orders_count`              | Number of sale transactions             |
| `returns_count`             | Number of return transactions           |
| `exchanges_count`           | Number of exchange transactions         |
| `sales_per_square`          | Sales per square metre                  |

## Transactions

### Transactions

[`POST /v1/transaction-report-excel`](/en/reference/api/operations/post_v1_transaction_report_excel/) · file `Transaction report for <start_date> - <end_date>_<id>`

Sales, returns and exchanges for the period — one row per transaction.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "order_types": ["SALE"],
  "fields": ["date", "order_type", "total_price", "seller_names"]
}
```

Columns:

| `fields` value               | Column in the file                                 |
| ---------------------------- | -------------------------------------------------- |
| `date`                       | Date                                               |
| `external_id`                | Transaction ID                                     |
| `shop_name`                  | Shop                                               |
| `customer_name`              | Customer name                                      |
| `cashier_name`               | Cashier name                                       |
| `seller_names`               | Seller name                                        |
| `order_type`                 | Transaction type                                   |
| `sold_measurement_value`     | Number of products and services sold               |
| `returned_measurement_value` | Number of returned products                        |
| `total_price`                | Transaction total                                  |
| `discount_percent`           | Discount                                           |
| `average_product_price`      | Average price of a product or service in a receipt |
| `gross_sales`                | Payment amount before discount                     |
| `comment`                    | Comment on the transaction                         |
| `is_modified`                | Edit history                                       |

## Sellers

### Seller summary

[`POST /v1/seller-general-report-excel`](/en/reference/api/operations/post_v1_seller_general_report_excel/) · file `Seller report for <start_date> - <end_date>_<id>`

Sales broken down by the company’s sellers.

> **Filtering by seller is not available**
>
> The report is always built for all sellers of the company. It can be narrowed only by shops (`shop_ids`) and by the `hide_sellers_without_sales` flag.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "price_type": 1,
  "hide_sellers_without_sales": true,
  "detalization": "day",
  "fields": ["date", "seller_name", "gross_sales", "net_gross_profit", "transaction_count"]
}
```

Columns:

| `fields` value               | Column in the file          |
| ---------------------------- | --------------------------- |
| `date`                       | Date                        |
| `shop_name`                  | Shop                        |
| `seller_name`                | Seller                      |
| `gross_sales`                | Revenue                     |
| `discount_sum`               | Discount amount             |
| `discount_percent`           | Discount percentage         |
| `net_gross_sales`            | Net revenue                 |
| `net_gross_profit`           | Gross profit                |
| `sum_returned`               | Returns total               |
| `sold_measurement_value`     | Number of products sold     |
| `returned_measurement_value` | Number of returned products |
| `sold_without_return`        | Number sold net of returns  |
| `transaction_count`          | Number of transactions      |
| `orders_count`               | Number of sale transactions |
| `average_cheque`             | Average receipt             |
| `average_measurement_value`  | Average number of products  |
| `average_price`              | Average price of a product  |
| `net_sold_supply_sum`        | Sales at supply price       |
| `rounding_amount`            | Rounding amount             |

## Customers

### Customer summary

[`POST /v1/customer-general-report-excel`](/en/reference/api/operations/post_v1_customer_general_report_excel/) · file `Customer report for <start_date> - <end_date>_<id>`

Purchases, returns and average receipt for each customer — for all time and for the selected period.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "price_type": 1,
  "fields": ["customer_name", "customer_phones", "total_purchase_sum", "total_sale_count"]
}
```

Columns:

| `fields` value                      | Column in the file                                     |
| ----------------------------------- | ------------------------------------------------------ |
| `registration_date`                 | Registration date                                      |
| `registration_shop_name`            | Registration shop                                      |
| `customer_name`                     | Customer name                                          |
| `birth_date`                        | Date of birth                                          |
| `customer_id`                       | Customer ID                                            |
| `customer_phones`                   | Phone                                                  |
| `customer_groups`                   | Groups and tags                                        |
| `is_new_client`                     | New customer                                           |
| `is_returned_client`                | Returning customer                                     |
| `total_sale_count`                  | Sales (all time)                                       |
| `total_exchange_count`              | Exchanges (all time)                                   |
| `total_return_count`                | Returns (all time)                                     |
| `total_measurement_value`           | Number of products bought (all time)                   |
| `total_purchase_sum`                | Total amount of purchases (all time)                   |
| `total_average_measurement_value`   | Average number of products in a receipt (all time)     |
| `total_average_purchase_sum`        | Average receipt (all time)                             |
| `total_average_purchase_discount`   | Average discount (all time)                            |
| `total_returned_measurement_value`  | Number of returned products (all time)                 |
| `total_returned_sum`                | Amount of returned products (all time)                 |
| `period_sale_count`                 | Sales for the period                                   |
| `period_exchange_count`             | Exchanges for the period                               |
| `period_return_count`               | Returns for the period                                 |
| `period_measurement_value`          | Number of products bought for the period               |
| `period_purchase_sum`               | Total amount of purchases for the period               |
| `period_average_measurement_value`  | Average number of products in a receipt for the period |
| `period_average_purchase_sum`       | Average receipt for the period                         |
| `period_average_purchase_discount`  | Average discount for the period                        |
| `period_returned_measurement_value` | Number of returned products for the period             |
| `period_returned_sum`               | Amount of returned products for the period             |

### Customer purchases

[`POST /v1/customer-purchases-report-excel`](/en/reference/api/operations/post_v1_customer_purchases_report_excel/) · file `Customer purchases report for <start_date> - <end_date>_<id>`

A line-by-line list of purchases: what was bought, by whom and when.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "with_customers": true,
  "currency": "UZS",
  "fields": ["created_at", "customer_name", "product_name", "gross_sales"]
}
```

Columns:

| `fields` value               | Column in the file             |
| ---------------------------- | ------------------------------ |
| `created_at`                 | Purchase date                  |
| `shop_name`                  | Shop                           |
| `order_type`                 | Transaction type               |
| `order_number`               | Transaction ID                 |
| `seller_name`                | Seller                         |
| `customer_number`            | Customer ID                    |
| `customer_name`              | Customer name                  |
| `phone_numbers`              | Phone                          |
| `tags`                       | Tag                            |
| `groups`                     | Group                          |
| `product_name`               | Name                           |
| `product_brand_name`         | Brand                          |
| `product_barcode`            | Barcode                        |
| `product_sku`                | SKU                            |
| `categories_path`            | Category                       |
| `level_1` … `level_5`        | Category and subcategories 1–4 |
| `free_price`                 | Free price                     |
| `used_wholesale_price`       | Wholesale price                |
| `gross_sales`                | Revenue                        |
| `net_sales`                  | Net revenue                    |
| `net_sold_supply_sum`        | Sales at cost price            |
| `net_profit`                 | Gross profit                   |
| `discount_percent`           | Average discount               |
| `sold_measurement_value`     | Number of products sold        |
| `returned_measurement_value` | Number of returned products    |

## Finance

### Profit and loss

[`POST /v1/report-profit-and-lose-excel`](/en/reference/api/operations/post_v1_report_profit_and_lose_excel/) · file `Profit and loss report for <start_date> - <end_date>_<id>`

The company’s income, expenses and net profit for the period.

> **The report has no `fields`**
>
> The set of rows is fixed: income by category, “Revenue”, “Discounts”, “Returns”, “Net revenue”, “Rounding amount”, “TOTAL INCOME”, expenses by category, “COST OF GOODS”, “CONTRIBUTION MARGIN”, “CONTRIBUTION MARGIN RATIO”, “Write-offs at cost price”, “TOTAL EXPENSES”, “NET PROFIT”.
>
> The row labels come filled in only with `lang: "ru"`; with any other value they will be empty.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "detalization": "day",
  "price_type": 1,
  "lang": "ru"
}
```

### Financial transactions (cash flow)

[`POST /v1/cashflow-excel`](/en/reference/api/operations/post_v1_cashflow_excel/) · file `Cash flow for <start_date> - <end_date>_<id>`

Movement of money: income, expenses, cash collections, conversions.

Operation types for `operation` are listed comma-separated, for example `1,2`:

| Value | Operation                                                                                                                        |
| ----- | -------------------------------------------------------------------------------------------------------------------------------- |
| `1`   | Income                                                                                                                           |
| `2`   | Expense                                                                                                                          |
| `3`   | Shift close — the movement of money the system creates itself when a cash register shift is closed, for cashless payment methods |
| `4`   | Transfer — a manual movement of money between cash registers and accounts, initiated by a user                                   |
| `5`   | Conversion                                                                                                                       |
| `6`   | Cash collection                                                                                                                  |
| `7`   | Opening amount                                                                                                                   |

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "operation": "1,2",
  "fields": ["created_at", "cashbox", "operation", "amount_from_retail_currency", "user"]
}
```

Columns:

| `fields` value                | Column in the file                    |
| ----------------------------- | ------------------------------------- |
| `created_at`                  | Date and time                         |
| `cashbox`                     | Cash register                         |
| `payment_type`                | Money operation type                  |
| `operation`                   | Transaction type                      |
| `from_account`                | From                                  |
| `to_account`                  | To                                    |
| `amount_from_retail_currency` | Amount FROM (in the company currency) |
| `amount_to_retail_currency`   | Amount TO (in the company currency)   |
| `amount_from_usd`             | Amount FROM (USD)                     |
| `amount_to_usd`               | Amount TO (USD)                       |
| `user`                        | User                                  |

## Products

### Sales by product

[`POST /v1/product-general-report-excel`](/en/reference/api/operations/post_v1_product_general_report_excel/) · file `Sales report for <start_date> - <end_date>_<id>`

Sales statistics broken down by product. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "detalization": "day",
  "fields": ["product_name", "sold_measurement_value", "gross_sales", "net_profit"]
}
```

Columns:

| `fields` value                        | Column in the file                      |
| ------------------------------------- | --------------------------------------- |
| `date`                                | Date                                    |
| `product_name`                        | Name                                    |
| `product_sku`                         | SKU                                     |
| `product_barcode`                     | Barcode                                 |
| `product_brand_name`                  | Brand                                   |
| `shop_name`                           | Shop name                               |
| `categories_path`                     | Category                                |
| `level_1` … `level_5`                 | Category and subcategories 1–4          |
| `product_measurement_unit_short_name` | Unit of measure                         |
| `product_suppliers`                   | Supplier                                |
| `sold_measurement_value`              | Quantity sold                           |
| `returned_measurement_value`          | Quantity returned                       |
| `net_sold_measurement_value`          | Sold net of returns                     |
| `gross_sales`                         | Sales before discount                   |
| `returned_sales_sum`                  | Returns total                           |
| `net_sales`                           | Sales after discount and net of returns |
| `net_profit`                          | Gross profit                            |
| `sold_supply_sum`                     | Sales at supply price                   |
| `average_margin`                      | Average markup                          |
| `discount`                            | Discount                                |
| `sold_with_discount`                  | Sold with a discount                    |
| `sold_without_discount`               | Sold without a discount                 |
| `product_is_archived`                 | Archived                                |

### Product performance

[`POST /v1/report-product-performance-excel`](/en/reference/api/operations/post_v1_report_product_performance_excel/) · file `Product Performance report for <start_date> - <end_date>_<id>`

Every movement of each product for the period: stock at the start and at the end, imports, sales, write-offs, transfers, sell-out rate and turnover. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "grouping_fields": "attribute.color",
  "group_id": "9f1c2e3a-5b7d-4c1e-8a2f-3d6b0e4c7a91",
  "filter": { "skus": ["SKU-001"] },
  "order_by": "+product_name",
  "currency": "UZS",
  "fields": ["name", "sold_amount", "sold_retail_sum"]
}
```

Product columns:

| `fields` value        | Column in the file             |
| --------------------- | ------------------------------ |
| `shop_name`           | Shop                           |
| `supplier_name`       | Supplier                       |
| `name`                | Name                           |
| `sku`                 | SKU                            |
| `bar_code`            | Barcode                        |
| `is_archived`         | Archived                       |
| `brand_name`          | Brand                          |
| `categories_path`     | Category                       |
| `level_1` … `level_5` | Category and subcategories 1–4 |

Metric columns, each group for the selected period:

| Group                            | `fields` values                                                                                        | What is in the columns                                                                                    |
| -------------------------------- | ------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------- |
| Stock at the start of the period | `stock_amount_begin`, `stock_supply_sum_begin`, `stock_retail_sum_begin`                               | quantity, amount at supply price, amount at retail price                                                  |
| Product import                   | `import_amount`, `import_supply_sum`, `import_retail_sum`                                              | quantity, amount at supply price, amount at retail price                                                  |
| Product orders                   | `order_amount`, `order_supply_sum`, `order_retail_sum`                                                 | quantity, amount at supply price, amount at retail price                                                  |
| Order return                     | `supplier_order_return_amount`, `supplier_order_return_supply_sum`, `supplier_order_return_retail_sum` | quantity, amount at supply price, amount at retail price                                                  |
| Incoming transfer                | `inc_transfer_amount`, `inc_transfer_supply_sum`, `inc_transfer_retail_sum`                            | quantity, amount at supply price, amount at retail price                                                  |
| Product returns                  | `returned_amount`, `returned_supply_sum`, `returned_retail_sum`, `returned_sales_sum`                  | quantity, amount at supply price, amount at retail price, amount at the discounted price                  |
| Product sales                    | `sold_amount`, `sold_supply_sum`, `sold_retail_sum`, `sold_sales_sum`, `rounding_amount`               | quantity, amount at supply price, amount at retail price, amount at the discounted price, rounding amount |
| Product write-offs               | `write_off_amount`, `write_off_supply_sum`, `write_off_retail_sum`                                     | quantity, amount at supply price, amount at retail price                                                  |
| Outgoing transfer                | `out_transfer_amount`, `out_transfer_supply_sum`, `out_transfer_retail_sum`                            | quantity, amount at supply price, amount at retail price                                                  |
| Repricing                        | `repricing_amount`, `repricing_supply_sum`, `repricing_retail_sum`                                     | quantity, amount at supply price, amount at retail price                                                  |
| Stock at the end of the period   | `stock_amount_end`, `stock_supply_sum_end`, `stock_retail_sum_end`                                     | quantity, amount at supply price, amount at retail price                                                  |
| Sell-out rate                    | `qty_sellout`, `sum_sellout`                                                                           | by quantity, by sales amount                                                                              |
| Stock turnover in days           | `day_difference`, `sellout_in_number`, `sellout_by_days`                                               | number of days, sell-out rate, turnover                                                                   |

### Imports

[`POST /v1/import-report-excel`](/en/reference/api/operations/post_v1_import_report_excel/) · file `Import report for <start_date> - <end_date>_<id>`

What came in through imports and purchase orders and what happened to it afterwards: sales, write-offs, transfers, stock. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "import_type": "supplier_order",
  "fields": ["date", "shop_name", "imported_qty", "sold_qty"]
}
```

Columns:

| `fields` value                     | Column in the file                           |
| ---------------------------------- | -------------------------------------------- |
| `date`                             | Import date                                  |
| `external_import_id`               | Import ID                                    |
| `external_supplier_order_id`       | Order ID                                     |
| `supplier_name`                    | Supplier                                     |
| `import_type`                      | Import type                                  |
| `shop_name`                        | Shop                                         |
| `product_name`                     | Name                                         |
| `product_brand_name`               | Brand                                        |
| `product_barcode`                  | Barcode                                      |
| `product_sku`                      | SKU                                          |
| `is_archived`                      | Archived                                     |
| `categories_path`                  | Category                                     |
| `level_1` … `level_5`              | Category and subcategories 1–4               |
| `imported_qty`                     | Quantity imported                            |
| `imported_retail_sum`              | Import amount at retail price                |
| `imported_supply_sum`              | Import amount at supply price                |
| `sold_qty`                         | Sales, quantity                              |
| `sold_retail_sum`                  | Sales amount at retail price                 |
| `sold_supply_sum`                  | Sales amount at supply price                 |
| `sold_sale_sum`                    | Sales amount at the discounted price         |
| `written_off_qty`                  | Write-offs, quantity                         |
| `written_off_retail_sum`           | Write-off amount at retail price             |
| `written_off_supply_sum`           | Write-off amount at supply price             |
| `transfer_finished_qty`            | Sent transfers, quantity                     |
| `transfer_finished_retail_sum`     | Amount of sent transfers at retail price     |
| `transfer_finished_supply_sum`     | Amount of sent transfers at supply price     |
| `transfer_arrived_qty`             | Accepted transfers, quantity                 |
| `transfer_arrived_retail_price`    | Amount of accepted transfers at retail price |
| `transfer_arrived_supply_sum`      | Amount of accepted transfers at supply price |
| `repricing_qty`                    | Repricing, quantity                          |
| `repricing_retail_sum`             | Repricing amount at retail price             |
| `repricing_supply_sum`             | Repricing amount at supply price             |
| `returned`                         | Returns, quantity                            |
| `returned_retail_sum`              | Returns amount at retail price               |
| `returned_supply_sum`              | Returns amount at supply price               |
| `left_qty`                         | Stock, quantity                              |
| `left_retail_sum`                  | Stock amount at retail price                 |
| `left_supply_sum`                  | Stock amount at supply price                 |
| `return_supplier_order_qty`        | Order returns, quantity                      |
| `return_supplier_order_retail_sum` | Amount of order returns at retail price      |
| `return_supplier_order_supply_sum` | Amount of order returns at supply price      |

### Sales by supplier

[`POST /v1/sells-supplier-report-excel`](/en/reference/api/operations/post_v1_sells_supplier_report_excel/) · file `Sales by supplier report for <start_date> - <end_date>_<id>`

Product sales broken down by supplier. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "supplier_ids": ["8c1a25e0-4f7b-4c6a-9d2e-1b0f5a3c7d94"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "price_type": 1,
  "all_suppliers": 0,
  "detalization": "day",
  "fields": ["date", "supplier_name", "gross_sales", "net_profit"]
}
```

Columns:

| `fields` value                        | Column in the file                      |
| ------------------------------------- | --------------------------------------- |
| `date`                                | Date                                    |
| `supplier_name`                       | Supplier                                |
| `product_name`                        | Name                                    |
| `product_sku`                         | SKU                                     |
| `product_barcode`                     | Barcode                                 |
| `product_brand_name`                  | Brand                                   |
| `shop_name`                           | Shop name                               |
| `categories_path`                     | Category                                |
| `level_1` … `level_5`                 | Category and subcategories 1–4          |
| `free_price`                          | Free price                              |
| `used_wholesale_price`                | Wholesale price                         |
| `product_measurement_unit_short_name` | Unit of measure                         |
| `product_suppliers`                   | Suppliers                               |
| `sold_measurement_value`              | Quantity sold                           |
| `returned_measurement_value`          | Quantity returned                       |
| `net_sold_measurement_value`          | Sold net of returns                     |
| `gross_sales`                         | Sales before discount                   |
| `returned_sales_sum`                  | Returns total                           |
| `net_sales`                           | Sales after discount and net of returns |
| `net_profit`                          | Gross profit                            |
| `sold_supply_sum`                     | Sales at supply price                   |
| `average_margin`                      | Average markup                          |
| `discount`                            | Discount                                |
| `sold_with_discount`                  | Sold with a discount                    |
| `sold_without_discount`               | Sold without a discount                 |

### Order returns

[`POST /v1/supplier-order-returned-export`](/en/reference/api/operations/post_v1_supplier_order_returned_export/) · file `Returned orders report for <start_date> - <end_date>_<id>`

Returns of products to suppliers against purchase orders. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "display_currency": "UZS",
  "fields": ["created_at", "product_name", "total_return_price"]
}
```

Columns:

| `fields` value        | Column in the file             |
| --------------------- | ------------------------------ |
| `return_operation_id` | Return operation ID            |
| `order_operation_id`  | Order operation ID             |
| `shop_name`           | Shop                           |
| `created_at`          | Date and time                  |
| `created_by_name`     | User                           |
| `product_name`        | Name                           |
| `product_sku`         | SKU                            |
| `product_barcode`     | Barcode                        |
| `product_brand`       | Brand                          |
| `categories_path`     | Category                       |
| `level_1` … `level_5` | Category and subcategories 1–4 |
| `measurement_value`   | Quantity                       |
| `supply_price`        | Supply price                   |
| `retail_price`        | Retail price                   |
| `supplier_order_name` | Order                          |
| `total_return_price`  | Return amount                  |
| `supplier_name`       | Supplier                       |

### Stocktaking results

[`POST /v1/stocktaking-summary-table-excel-export`](/en/reference/api/operations/post_v1_stocktaking_summary_table_excel_export/) · file `Stocktaking results report - <id>`

The totals of a single stocktaking: declared, counted, what was written off and additionally imported as its result. The report has no period — it is a snapshot. `stocktaking_guid` is taken from [`GET /v2/stocktaking`](/en/reference/api/operations/get_v2_stocktaking/). `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "stocktaking_guid": "eeeeaf2b-1360-4f03-aa74-87ad7cc2edd7",
  "currency": "UZS",
  "fields": ["product_name", "expected_measurement_value", "scanned_measurement_value"]
}
```

Columns:

| `fields` value                      | Column in the file                        |
| ----------------------------------- | ----------------------------------------- |
| `stocktaking_external_id`           | ID                                        |
| `stocktaking_name`                  | Stocktaking name                          |
| `shop_name`                         | Shop                                      |
| `product_name`                      | Name                                      |
| `product_sku`                       | SKU                                       |
| `product_barcode`                   | Barcode                                   |
| `product_brand`                     | Brand                                     |
| `product_is_archived`               | Archived                                  |
| `product_measurement_unit`          | Unit of measure                           |
| `product_categories`                | Categories                                |
| `level_1`                           | Category                                  |
| `level_2` … `level_5`               | Level 1–4                                 |
| `expected_measurement_value`        | Declared                                  |
| `scanned_measurement_value`         | Counted                                   |
| `sold_measurement_value`            | Sold during the stocktaking               |
| `postponed_measurement_value`       | Held during the stocktaking               |
| `written_off_measurement_value`     | Written off during the stocktaking        |
| `in_transfer_measurement_value`     | In transfer during the stocktaking        |
| `transferred_measurement_value`     | Transferred during the stocktaking        |
| `imported_after_stocktaking_finish` | Auto-import on the stocktaking results    |
| `imported_supply_price_sum`         | Amount of surpluses at supply price       |
| `imported_retail_price_sum`         | Amount of surpluses at retail price       |
| `written_off_after_stocktaking`     | Auto write-off on the stocktaking results |
| `written_off_supply_price_sum`      | Amount of shortages at supply price       |
| `written_off_retail_price_sum`      | Amount of shortages at retail price       |

### Product stock

[`POST /v1/stock-report-excel`](/en/reference/api/operations/post_v1_stock_report_excel/) · file `Stock report for <report_date>_<id>`

Product stock by shop on the selected date. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["6f244db4-75d6-4fac-9841-14867d45e36a"],
  "report_date": "2026-08-31",
  "currency": "UZS",
  "fields": ["product_name", "measurement_value", "supply_price", "retail_price"]
}
```

Columns:

| `fields` value                        | Column in the file         |
| ------------------------------------- | -------------------------- |
| `shop_name`                           | Shop                       |
| `product_name`                        | Product name               |
| `supply_price`                        | Supply price               |
| `retail_price`                        | Retail price               |
| `measurement_value`                   | Quantity                   |
| `product_sku`                         | SKU                        |
| `product_barcode`                     | Barcode                    |
| `product_measurement_unit_short_name` | Unit of measure            |
| `product_brand_name`                  | Brand                      |
| `categories_path`                     | Category                   |
| `level_1`                             | Category                   |
| `level_2` … `level_5`                 | Subcategories 1–4          |
| `supplier_name`                       | Supplier                   |
| `estimated_margin`                    | Margin, %                  |
| `estimated_income`                    | Profit amount of the stock |
| `product_is_archived`                 | Archived                   |

### Write-offs

[`POST /v1/write-off-report-table-export`](/en/reference/api/operations/post_v1_write_off_report_table_export/) · file `Write-off report for <start_date> - <end_date>_<id>`

Products written off during the period, with reasons and amounts. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "currency": "UZS",
  "fields": ["product_name", "written_off_measurement_value", "product_supply_price", "product_retail_price"]
}
```

Columns:

| `fields` value                  | Column in the file             |
| ------------------------------- | ------------------------------ |
| `write_off_external_id`         | Write-off ID                   |
| `write_off_name`                | Write-off name                 |
| `write_off_reason`              | Write-off reason               |
| `shop_name`                     | Shop name                      |
| `created_by_name`               | User name                      |
| `created_at`                    | Creation time                  |
| `product_name`                  | Product name                   |
| `product_sku`                   | SKU                            |
| `product_barcode`               | Barcode                        |
| `categories`                    | Categories                     |
| `level_1`                       | Category                       |
| `level_2` … `level_5`           | Level 1–4                      |
| `product_brand`                 | Brand                          |
| `supplier`                      | Supplier                       |
| `product_is_archived`           | Archived                       |
| `product_supply_price`          | Supply price                   |
| `product_retail_price`          | Retail price                   |
| `written_off_measurement_value` | Number of products written off |
| `written_off_supply_price_sum`  | Amount at supply price         |
| `written_off_retail_price_sum`  | Amount at retail price         |

### Transfers

[`POST /v1/transfer-report-excel-export`](/en/reference/api/operations/post_v1_transfer_report_excel_export/) · file `Transfer report for <start_date> - <end_date>_<id>`

Transfers of products between shops. `fields` accepts the UUIDs of attributes and custom fields.

```json
{
  "shop_ids": ["2339a738-a67f-48d2-bb60-8cf4ec54d6cd"],
  "start_date": "2026-08-01",
  "end_date": "2026-08-31",
  "display_currency": "UZS",
  "group_by": "product_name",
  "date_group": "day",
  "fields": ["product_name", "from_shop", "to_shop", "sent_quantity", "arrived_quantity", "sum_supply_price"]
}
```

Columns:

| `fields` value         | Column in the file     |
| ---------------------- | ---------------------- |
| `created_at`           | Sent                   |
| `accepted_at`          | Accepted               |
| `name`                 | Transfer               |
| `external_id`          | ID                     |
| `from_shop`            | From                   |
| `to_shop`              | To                     |
| `product_name`         | Name                   |
| `product_sku`          | SKU                    |
| `product_barcode`      | Barcode                |
| `product_brand`        | Brand                  |
| `categories_path`      | Category               |
| `product_attribute`    | Variation              |
| `product_custom_field` | Custom field           |
| `supplier`             | Supplier               |
| `sent_quantity`        | Quantity sent          |
| `arrived_quantity`     | Quantity accepted      |
| `sum_supply_price`     | Amount at supply price |
| `sum_retail_price`     | Amount at retail price |
| `measurement_name`     | Unit of measure        |

## Permissions

All sixteen methods are in the [list of integration key routes](/en/reference/permissions/). The output is narrowed by the list of shops available to the token: the passed `shop_ids` are intersected with the allowed ones.