Skip to content

Отчёты ​

Раздел «Отчёты»: продажи, кассиры, клиенты, ABC-анализ, эффективность товаров, остатки, движение товаров, списания, акт сверки с поставщиком. Отчёты не кешируются; период по умолчанию — вся история до конца текущего месяца, большинство списков можно выгрузить в Excel через format=excel, а пара *-total отдаёт карточки итогов с теми же фильтрами.

МетодАдресНазначение
GET/company/stat/report/cashiersОтчёт по кассирам
GET/company/stat/report/cashiers-totalИтоги по кассирам
GET/company/stat/report/abcABC-анализ
GET/company/stat/report/abc-totalИтоги ABC-анализа
GET/company/stat/report/abc-thresholdsПороги сегментов ABC
PUT/company/stat/report/abc-thresholdsИзменить пороги ABC
GET/company/stat/report/bonus-tariffsОтчёт по бонусным тарифам
GET/company/stat/report/clientsОтчёт по клиентам
GET/company/stat/report/clients-totalИтоги по клиентам
GET/company/stat/report/efficiencyЭффективность товаров
GET/company/stat/report/sale-productsОтчёт по проданным товарам
GET/company/stat/report/salesОтчёт по продажам
GET/company/stat/report/sales-totalИтоги по продажам
GET/company/stat/report/stock-balanceОстатки товаров
GET/company/stat/report/stock-balance-totalИтоги по остаткам
GET/company/stat/report/stock-movementДвижение товаров
GET/company/stat/report/supplier-reconciliationАкт сверки с поставщиком
GET/company/stat/report/trade-sale-index-totalsИтоги списка продаж
GET/company/stat/report/trade-sale-print-reportОтчёт для печати
GET/company/stat/report/writeoffsОтчёт по списаниям

Отчёт по кассирам ​

GET/company/stat/report/cashiers

Строка на кассира × филиал × кассу: число чеков completed, число возвратов, выручка, сумма возвратов, скидки и средний чек по валютам. Итоговые карточки — GET company/stat/report/cashiers-total.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
phonestringНетТелефон. Макс. 255 символов
cashbox_idintegerНетКасса
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Итоги по кассирам ​

GET/company/stat/report/cashiers-total

Карточки к отчёту GET company/stat/report/cashiers с теми же фильтрами: число кассиров, чеков и возвратов, выручка, сумма возвратов, чистая выручка, скидки и средний чек по валютам.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
phonestringНетТелефон. Макс. 255 символов
cashbox_idintegerНетКасса

Ответ · 200 ​

Поля ответа
ПолеТипОписание
cashiers_countinteger
net_revenueobject
net_revenue.uzsinteger
net_revenue.usdinteger
net_revenue.eurinteger
net_revenue.rubinteger
average_checkobjectСредний чек
average_check.uzsinteger
average_check.usdinteger
average_check.eurinteger
average_check.rubinteger
total_receipts_countinteger
total_returns_countinteger
total_revenueobject
total_revenue.uzsinteger
total_revenue.usdinteger
total_revenue.eurinteger
total_revenue.rubinteger
total_returned_amountobject
total_returned_amount.uzsinteger
total_returned_amount.usdinteger
total_returned_amount.eurinteger
total_returned_amount.rubinteger
total_discountsobject
total_discounts.uzsinteger
total_discounts.usdinteger
total_discounts.eurinteger
total_discounts.rubinteger
json
{
    "cashiers_count": 0,
    "net_revenue": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    },
    "average_check": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    },
    "total_receipts_count": 0,
    "total_returns_count": 0,
    "total_revenue": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    },
    "total_returned_amount": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    },
    "total_discounts": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    }
}

ABC-анализ ​

GET/company/stat/report/abc

Каждый товар доступных филиалов с проданным за период количеством, долей и накопленной долей продаж и сегментом a / b / c по порогам компании (GET company/stat/report/abc-thresholds). Фильтры name и segment сужают строки, не пересчитывая доли. Итоги — GET company/stat/report/abc-total.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
segmentstringНетСегмент. Допустимые значения: a, b, c
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Итоги ABC-анализа ​

GET/company/stat/report/abc-total

Карточки к отчёту GET company/stat/report/abc с теми же фильтрами: число товаров в сегментах a, b, c, всего товаров, проданное количество и текущие пороги сегментов.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
segmentstringНетСегмент. Допустимые значения: a, b, c

Ответ · 200 ​

Поля ответа
ПолеТипОписание
a_countinteger
b_countinteger
c_countinteger
products_countinteger
sold_quantityintegerКол-во в продаже
thresholdsobject
thresholds.ainteger
thresholds.binteger
thresholds.cinteger
json
{
    "a_count": 0,
    "b_count": 0,
    "c_count": 3,
    "products_count": 3,
    "sold_quantity": 0,
    "thresholds": {
        "a": 75,
        "b": 15,
        "c": 10
    }
}

Пороги сегментов ABC ​

GET/company/stat/report/abc-thresholds

Проценты сегментов a, b, c для ABC-анализа. Хранятся на головной компании (филиал читает пороги родителя); по умолчанию 75 / 15 / 10.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Ответ · 200 ​

Поля ответа
ПолеТипОписание
ainteger
binteger
cinteger
json
{
    "a": 75,
    "b": 15,
    "c": 10
}

Изменить пороги ABC ​

PUT/company/stat/report/abc-thresholds

Сохраняет проценты сегментов на головной компании — они действуют для всех её филиалов. Сумма a + b + c должна быть ровно 100, иначе ответ 400.

Из формы (multipart/form-data) метод PUT отправляется как POST с параметром ?_method=PUT.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
aintegerДаДоля сегмента A, %. Не меньше 1. Не больше 100
bintegerДаДоля сегмента B, %. Не меньше 0. Не больше 100
cintegerДаДоля сегмента C, %. Не меньше 0. Не больше 100

Ответ ​

Пример ответа пока не записан тестами.

Отчёт по бонусным тарифам ​

GET/company/stat/report/bonus-tariffs

По каждому бонусному тарифу: филиал, начисленные (income) и списанные (outcome) за период бонусы клиентов этого тарифа и их текущий накопленный бонус. Без пагинации; фильтр name ищет по названию тарифа.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
product_category_idintegerНетКатегория
product_brand_idintegerНетID бренда товара

Ответ · 200 ​

Поля ответа
ПолеТипОписание
[].idintegerID
[].namestringНазвание
[].company_idintegerКомпания
[].company_namestringКомпания
[].incomestringДоход
[].outcomestring
[].client_bonus_accumulations_amountstring
json
[
    {
        "id": 2,
        "name": "Tariff 2",
        "company_id": 1,
        "company_name": "Company 1",
        "income": "0",
        "outcome": "0",
        "client_bonus_accumulations_amount": "0"
    },
    {
        "id": 1,
        "name": "Tariff 1",
        "company_id": 1,
        "company_name": "Company 1",
        "income": "1000.00",
        "outcome": "0",
        "client_bonus_accumulations_amount": "1000.00"
    }
]

Отчёт по клиентам ​

GET/company/stat/report/clients

Строка на клиента: куплено и возвращено (количество и сумма по валютам), число чеков и средний чек за период; учитываются чеки completed, partial_returned, full_returned. Итоговые карточки — GET company/stat/report/clients-total.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
phonestringНетТелефон. Макс. 255 символов
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "links": {
        "first": "https://api.wasyt.uz/company/stat/report/clients?page=1",
        "last": "https://api.wasyt.uz/company/stat/report/clients?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/stat/report/clients",
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Итоги по клиентам ​

GET/company/stat/report/clients-total

Карточки к отчёту GET company/stat/report/clients с теми же фильтрами: число клиентов, созданных в периоде, чистая сумма покупок и средний чек по валютам.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
phonestringНетТелефон. Макс. 255 символов

Ответ · 200 ​

Поля ответа
ПолеТипОписание
clients_countinteger
income_amountobjectВыручка
income_amount.uzsstring
income_amount.usdstring
income_amount.eurstring
income_amount.rubstring
average_checkobjectСредний чек
average_check.uzsinteger
average_check.usdinteger
average_check.eurinteger
average_check.rubinteger
json
{
    "clients_count": 0,
    "income_amount": {
        "uzs": "0",
        "usd": "0",
        "eur": "0",
        "rub": "0"
    },
    "average_check": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    }
}

Эффективность товаров ​

GET/company/stat/report/efficiency

Каждый товар доступных филиалов: начальный остаток, приход, продано за период и конечный остаток (по приходам, продажам и списаниям). Сортировка по названию; пары *-total нет.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Отчёт по проданным товарам ​

GET/company/stat/report/sale-products

Строка на товар: чистое проданное количество, выручка, себестоимость, прибыль и рентабельность (%) по валютам за период. Фильтр категории включает подкатегории.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
product_category_idintegerНетКатегория
product_brand_idintegerНетID бренда товара
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "links": {
        "first": "https://api.wasyt.uz/company/stat/report/sale-products?page=1",
        "last": "https://api.wasyt.uz/company/stat/report/sale-products?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/stat/report/sale-products",
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Отчёт по продажам ​

GET/company/stat/report/sales

Строка на товар × филиал: категория, кассы, проданное и возвращённое количество, чистая выручка по валютам и дата последней продажи; услуги не входят, учитываются чеки completed, partial_returned, full_returned. Итоги — GET company/stat/report/sales-total.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Итоги по продажам ​

GET/company/stat/report/sales-total

Карточки к отчёту GET company/stat/report/sales с теми же фильтрами: чистое проданное количество, выручка и прибыль по валютам.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов

Ответ · 200 ​

Поля ответа
ПолеТипОписание
sold_quantityintegerКол-во в продаже
income_amountobjectВыручка
income_amount.uzsinteger
income_amount.usdinteger
income_amount.eurinteger
income_amount.rubinteger
profit_amountobjectСумма прибыли
profit_amount.uzsinteger
profit_amount.usdinteger
profit_amount.eurinteger
profit_amount.rubinteger
json
{
    "sold_quantity": 0,
    "income_amount": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    },
    "profit_amount": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    }
}

Остатки товаров ​

GET/company/stat/report/stock-balance

Остаток каждого товара по филиалу и складу на дату date_to (приходы и входящие перемещения плюс, продажи, списания и исходящие перемещения минус), с ценой прихода, ценой продажи и статусом in_stock / low_stock / zero_stock / illiquid. Товар без движения — одна строка без склада с нулём; product_brand_id не применяется. Итоги — GET company/stat/report/stock-balance-total.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
product_category_idintegerНетКатегория
product_brand_idintegerНетID бренда товара (в этом отчёте не применяется)
company_ids[]integerНетID филиала
statusstringНетСтатус. Допустимые значения: in_stock, low_stock, zero_stock, illiquid
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 20,
        "to": null,
        "total": 0
    }
}

Итоги по остаткам ​

GET/company/stat/report/stock-balance-total

Карточки к отчёту GET company/stat/report/stock-balance с теми же фильтрами: стоимость остатков по цене прихода в разрезе валют, число товаров и число товаров с малым, нулевым остатком и неликвидных (считаются уникальные товары).

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
product_category_idintegerНетКатегория
product_brand_idintegerНетID бренда товара (в этом отчёте не применяется)
company_ids[]integerНетID филиала
statusstringНетСтатус. Допустимые значения: in_stock, low_stock, zero_stock, illiquid

Ответ ​

Пример ответа пока не записан тестами.

Движение товаров ​

GET/company/stat/report/stock-movement

Товары, сгруппированные по складам: начальный остаток, приход, расход (продажи и списания) и конечный остаток — количество и сумма по валютам, с итогами по складу и общими totals. Отдаётся целиком, без пагинации; фильтруется по company_ids[], stock_ids[], product_ids[] (name, product_category_id, product_brand_id не применяются).

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
product_category_idintegerНетКатегория
product_brand_idintegerНетID бренда товара (в этом отчёте не применяется)
stock_idsarrayНетID складов для фильтра
stock_ids[]integerНетID склада
product_idsarrayНетID товаров для фильтра
product_ids[]integerНетID товара
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)

Ответ · 200 ​

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].stock_idintegerСклад
data[].stock_namestring
data[].productsobject[]Продукты
data[].products[].product_idintegerПродукт
data[].products[].product_namestringНаименование товаров
data[].products[].initial_quantitystringНачальный остаток
data[].products[].initial_amountobject
data[].products[].initial_amount.uzsstring
data[].products[].initial_amount.usdstring
data[].products[].initial_amount.eurstring
data[].products[].initial_amount.rubstring
data[].products[].income_quantitystringПриход
data[].products[].income_amountobjectВыручка
data[].products[].income_amount.uzsstring
data[].products[].income_amount.usdstring
data[].products[].income_amount.eurstring
data[].products[].income_amount.rubstring
data[].products[].outcome_quantitystring
data[].products[].outcome_amountobject
data[].products[].outcome_amount.uzsstring
data[].products[].outcome_amount.usdstring
data[].products[].outcome_amount.eurstring
data[].products[].outcome_amount.rubstring
data[].products[].final_quantityintegerКонечный остаток
data[].products[].final_amountobject
data[].products[].final_amount.uzsinteger
data[].products[].final_amount.usdinteger
data[].products[].final_amount.eurinteger
data[].products[].final_amount.rubinteger
data[].totalsobject
data[].totals.initial_quantityintegerНачальный остаток
data[].totals.income_quantityintegerПриход
data[].totals.outcome_quantityinteger
data[].totals.final_quantityintegerКонечный остаток
data[].totals.initial_amountobject
data[].totals.initial_amount.uzsinteger
data[].totals.initial_amount.usdinteger
data[].totals.initial_amount.eurinteger
data[].totals.initial_amount.rubinteger
data[].totals.income_amountobjectВыручка
data[].totals.income_amount.uzsinteger
data[].totals.income_amount.usdinteger
data[].totals.income_amount.eurinteger
data[].totals.income_amount.rubinteger
data[].totals.outcome_amountobject
data[].totals.outcome_amount.uzsinteger
data[].totals.outcome_amount.usdinteger
data[].totals.outcome_amount.eurinteger
data[].totals.outcome_amount.rubinteger
data[].totals.final_amountobject
data[].totals.final_amount.uzsinteger
data[].totals.final_amount.usdinteger
data[].totals.final_amount.eurinteger
data[].totals.final_amount.rubinteger
totalsobject
totals.initial_quantityintegerНачальный остаток
totals.income_quantityintegerПриход
totals.outcome_quantityinteger
totals.final_quantityintegerКонечный остаток
totals.initial_amountobject
totals.initial_amount.uzsinteger
totals.initial_amount.usdinteger
totals.initial_amount.eurinteger
totals.initial_amount.rubinteger
totals.income_amountobjectВыручка
totals.income_amount.uzsinteger
totals.income_amount.usdinteger
totals.income_amount.eurinteger
totals.income_amount.rubinteger
totals.outcome_amountobject
totals.outcome_amount.uzsinteger
totals.outcome_amount.usdinteger
totals.outcome_amount.eurinteger
totals.outcome_amount.rubinteger
totals.final_amountobject
totals.final_amount.uzsinteger
totals.final_amount.usdinteger
totals.final_amount.eurinteger
totals.final_amount.rubinteger
json
{
    "data": [
        {
            "stock_id": 1,
            "stock_name": "Stock 1",
            "products": [
                {
                    "product_id": 1,
                    "product_name": "Product 1",
                    "initial_quantity": "-1.00000000",
                    "initial_amount": {
                        "uzs": "-1000.0000000000",
                        "usd": "0",
                        "eur": "0",
                        "rub": "0"
                    },
                    "income_quantity": "0",
                    "income_amount": {
                        "uzs": "0",
                        "usd": "0",
                        "eur": "0",
                        "rub": "0"
                    },
                    "outcome_quantity": "0",
                    "outcome_amount": {
                        "uzs": "0",
                        "usd": "0",
                        "eur": "0",
                        "rub": "0"
                    },
                    "final_quantity": -1,
                    "final_amount": {
                        "uzs": -1000,
                        "usd": 0,
                        "eur": 0,
                        "rub": 0
                    }
                },
                {
                    "product_id": 2,
                    "product_name": "Product 1-1 full text",
                    "initial_quantity": "-2.00000000",
                    "initial_amount": {
                        "uzs": "-4000.0000000000",
                        "usd": "0",
                        "eur": "0",
                        "rub": "0"
                    },
                    "income_quantity": "0",
                    "income_amount": {
                        "uzs": "0",
                        "usd": "0",
                        "eur": "0",
                        "rub": "0"
                    },
                    "outcome_quantity": "0",
                    "outcome_amount": {
                        "uzs": "0",
                        "usd": "0",
                        "eur": "0",
                        "rub": "0"
                    },
                    "final_quantity": -2,
                    "final_amount": {
                        "uzs": -4000,
                        "usd": 0,
                        "eur": 0,
                        "rub": 0
                    }
                }
            ],
            "totals": {
                "initial_quantity": -3,
                "income_quantity": 0,
                "outcome_quantity": 0,
                "final_quantity": -3,
                "initial_amount": {
                    "uzs": -5000,
                    "usd": 0,
                    "eur": 0,
                    "rub": 0
                },
                "income_amount": {
                    "uzs": 0,
                    "usd": 0,
                    "eur": 0,
                    "rub": 0
                },
                "outcome_amount": {
                    "uzs": 0,
                    "usd": 0,
                    "eur": 0,
                    "rub": 0
                },
                "final_amount": {
                    "uzs": -5000,
                    "usd": 0,
                    "eur": 0,
                    "rub": 0
                }
            }
        }
    ],
    "totals": {
        "initial_quantity": -3,
        "income_quantity": 0,
        "outcome_quantity": 0,
        "final_quantity": -3,
        "initial_amount": {
            "uzs": -5000,
            "usd": 0,
            "eur": 0,
            "rub": 0
        },
        "income_amount": {
            "uzs": 0,
            "usd": 0,
            "eur": 0,
            "rub": 0
        },
        "outcome_amount": {
            "uzs": 0,
            "usd": 0,
            "eur": 0,
            "rub": 0
        },
        "final_amount": {
            "uzs": -5000,
            "usd": 0,
            "eur": 0,
            "rub": 0
        }
    }
}

Акт сверки с поставщиком ​

GET/company/stat/report/supplier-reconciliation

Операции с поставщиком за период по порядку: приход, оплата, возврат поставщику, начальный остаток — с дебетом, кредитом и нарастающим сальдо по валюте, плюс ending_balance на date_to. Отменённые операции исключены; поставщик должен принадлежать доступному филиалу. По умолчанию до 1000 строк на странице.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
supplier_idintegerДаПоставщик. ID существующей записи
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 1000 (по умолчанию 1000)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "ending_balance": {
        "uzs": 0,
        "usd": 0,
        "eur": 0,
        "rub": 0
    },
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 1000,
        "to": null,
        "total": 0
    }
}

Итоги списка продаж ​

GET/company/stat/report/trade-sale-index-totals

Правая панель страницы «Все продажи» с теми же фильтрами, что у списка: показатели продаж (чеки, товары и услуги, возвраты, перемещения), суммы чеков и оплаты по способам, бонусы клиентов, погашения долгов и кредитные платежи ICAN (отдельно от выручки).

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idintegerНетКомпания
cashbox_idintegerНетКасса
creator_idintegerНетСоздатель
stock_idintegerНетСклад
codestringНетКод. Макс. 255 символов
payment_typestringНетТип оплаты. Допустимые значения: bank, card, cash, bonus, debt, system

Ответ · 200 ​

Поля ответа
ПолеТипОписание
sales_metricsobject
sales_metrics.transactions_countinteger
sales_metrics.returns_countintegerВозвраты (шт.)
sales_metrics.returns_amountinteger
sales_metrics.products_sold_countinteger
sales_metrics.services_sold_countinteger
sales_metrics.transfers_countinteger
sales_metrics.transfers_amountinteger
transaction_amountsobject
transaction_amounts.totalintegerВсего записей
transaction_amounts.by_payment_typeobject
transaction_amounts.by_payment_type.bankintegerБанк
transaction_amounts.by_payment_type.cardinteger
transaction_amounts.by_payment_type.cashinteger
transaction_amounts.by_payment_type.bonusinteger
transaction_amounts.by_payment_type.debtintegerДолг
transaction_amounts.by_payment_type.systeminteger
client_balanceobject
client_balance.totalintegerВсего записей
client_balance.accruedinteger
client_balance.spentinteger
debt_repaymentobject
debt_repayment.totalintegerВсего записей
debt_repayment.by_payment_typeobject
debt_repayment.by_payment_type.bankintegerБанк
debt_repayment.by_payment_type.cardinteger
debt_repayment.by_payment_type.cashinteger
credit_paymentsobject
credit_payments.totalintegerВсего записей
credit_payments.countintegerКоличество
credit_payments.by_payment_typeobject
credit_payments.by_payment_type.bankobjectБанк
credit_payments.by_payment_type.bank.amountintegerСумма
credit_payments.by_payment_type.bank.countintegerКоличество
credit_payments.by_payment_type.cardobject
credit_payments.by_payment_type.card.amountintegerСумма
credit_payments.by_payment_type.card.countintegerКоличество
credit_payments.by_payment_type.cashobject
credit_payments.by_payment_type.cash.amountintegerСумма
credit_payments.by_payment_type.cash.countintegerКоличество
credit_payments.by_payment_type.bonusobject
credit_payments.by_payment_type.bonus.amountintegerСумма
credit_payments.by_payment_type.bonus.countintegerКоличество
credit_payments.by_payment_type.debtobjectДолг
credit_payments.by_payment_type.debt.amountintegerСумма
credit_payments.by_payment_type.debt.countintegerКоличество
credit_payments.by_payment_type.systemobject
credit_payments.by_payment_type.system.amountintegerСумма
credit_payments.by_payment_type.system.countintegerКоличество
json
{
    "sales_metrics": {
        "transactions_count": 0,
        "returns_count": 0,
        "returns_amount": 0,
        "products_sold_count": 0,
        "services_sold_count": 0,
        "transfers_count": 0,
        "transfers_amount": 0
    },
    "transaction_amounts": {
        "total": 0,
        "by_payment_type": {
            "bank": 0,
            "card": 0,
            "cash": 0,
            "bonus": 0,
            "debt": 0,
            "system": 0
        }
    },
    "client_balance": {
        "total": 1000,
        "accrued": 1000,
        "spent": 0
    },
    "debt_repayment": {
        "total": 0,
        "by_payment_type": {
            "bank": 0,
            "card": 0,
            "cash": 0
        }
    },
    "credit_payments": {
        "total": 0,
        "count": 0,
        "by_payment_type": {
            "bank": {
                "amount": 0,
                "count": 0
            },
            "card": {
                "amount": 0,
                "count": 0
            },
            "cash": {
                "amount": 0,
                "count": 0
            },
            "bonus": {
                "amount": 0,
                "count": 0
            },
            "debt": {
                "amount": 0,
                "count": 0
            },
            "system": {
                "amount": 0,
                "count": 0
            }
        }
    }
}

Отчёт для печати ​

GET/company/stat/report/trade-sale-print-report

Сводка для печати по списку продаж с теми же фильтрами: выручка, число чеков и средний чек, операции (продажи, возвраты), оплаты по способам, продажи по кассирам, топ товаров, движение кассы, долги и клиенты.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idintegerНетКомпания
cashbox_idintegerНетКасса
creator_idintegerНетСоздатель
stock_idintegerНетСклад
codestringНетКод. Макс. 255 символов
payment_typestringНетТип оплаты. Допустимые значения: bank, card, cash, bonus, debt, system

Ответ · 200 ​

Поля ответа
ПолеТипОписание
summaryobject
summary.revenueintegerВыручка (всего)
summary.checks_countinteger
summary.average_checkintegerСредний чек
summary.net_profitnull
operationsobject
operations.salesobject
operations.sales.countintegerКоличество
operations.sales.amountintegerСумма
operations.returnsobject
operations.returns.countintegerКоличество
operations.returns.amountintegerСумма
operations.exchangesobject
operations.exchanges.countintegerКоличество
operations.exchanges.amountintegerСумма
by_payment_typeobject
by_payment_type.totalintegerВсего записей
by_payment_type.by_payment_typeobject
by_payment_type.by_payment_type.bankintegerБанк
by_payment_type.by_payment_type.cardinteger
by_payment_type.by_payment_type.cashinteger
by_payment_type.by_payment_type.bonusinteger
by_payment_type.by_payment_type.debtintegerДолг
by_payment_type.by_payment_type.systeminteger
by_sellerarray
top_productsarray
cashbox_movementobject
cashbox_movement.opening_balanceinteger
cashbox_movement.cash_revenueinteger
cashbox_movement.incomeintegerДоход
cashbox_movement.expensesinteger
cashbox_movement.closing_balanceinteger
debtobjectДолг
debt.issuedinteger
debt.returnedinteger
debt.total_remaininginteger
clientsobject
clients.new_countinteger
clients.total_servedinteger
json
{
    "summary": {
        "revenue": 0,
        "checks_count": 0,
        "average_check": 0,
        "net_profit": null
    },
    "operations": {
        "sales": {
            "count": 0,
            "amount": 0
        },
        "returns": {
            "count": 0,
            "amount": 0
        },
        "exchanges": {
            "count": 0,
            "amount": 0
        }
    },
    "by_payment_type": {
        "total": 0,
        "by_payment_type": {
            "bank": 0,
            "card": 0,
            "cash": 0,
            "bonus": 0,
            "debt": 0,
            "system": 0
        }
    },
    "by_seller": [],
    "top_products": [],
    "cashbox_movement": {
        "opening_balance": 0,
        "cash_revenue": 0,
        "income": 1000,
        "expenses": 0,
        "closing_balance": 1000
    },
    "debt": {
        "issued": 0,
        "returned": 0,
        "total_remaining": 0
    },
    "clients": {
        "new_count": 2,
        "total_served": 0
    }
}

Отчёт по списаниям ​

GET/company/stat/report/writeoffs

Строка на позицию завершённого списания со склада: товар, количество, сумма по цене прихода и её валюта, причина, ответственный и филиал; сначала новые. Списания по приходу (возврат поставщику) не входят.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры запроса ​

ПолеТипОбязательноОписание
date_fromstring (date)НетДата (от). Формат Y-m-d
date_tostring (date)НетДата (до). Формат Y-m-d
company_idsarrayНетID филиалов для фильтра; по умолчанию — все доступные пользователю
namestringНетНазвание. Макс. 255 символов
formatstringНетexcel — скачать отчёт файлом Excel вместо JSON (не больше 30 000 строк)
pageintegerНетНомер страницы, с 1
page-sizeintegerНетСтрок на странице, не больше 20 (по умолчанию 20)

Ответ · 200 ​

Постраничный ответ: записи в data[], пагинация в links и meta.

Поля ответа
ПолеТипОписание
dataarrayДанные
json
{
    "data": [],
    "meta": {
        "current_page": 1,
        "from": null,
        "last_page": 1,
        "per_page": 20,
        "to": null,
        "total": 0
    }
}