Выгрузки
Сырые чеки, позиции и возвраты — для загрузки в своё хранилище (ClickHouse, BigQuery, PostgreSQL) и построения любых отчётов на своей стороне.
Если нужны готовые цифры в разрезах, удобнее OLAP продаж: он агрегирует на сервере и отдаёт в тысячи раз меньше данных.
Доступ — как у всех отчётов: галочка «Доступ к отчётам» на ключе.
Постраничная выгрузка
Все выгрузки устроены одинаково:
| Параметр | Описание |
|---|---|
date_from, date_to | Период, YYYY-MM-DD, до 31 дня |
point_id | UUID точки. Без него — все точки бренда |
after_id | Курсор: отдать записи с id больше этого. Первая страница — 0 или не передавать |
limit | Размер страницы, до 1000. По умолчанию 1000 |
Записи отсортированы по id. В ответе:
{
"date_from": "2026-09-01",
"date_to": "2026-09-30",
"cheques": [ ... ],
"has_more": true,
"next_after_id": 12864711
}
Пока has_more: true, запрашивайте следующую страницу с after_id = next_after_id:
after=0
while :; do
page=$(curl -s "https://backend.mison.uz/api/integrations/v1/export/cheques?date_from=2026-09-01&date_to=2026-09-30&after_id=$after" \
-H "Authorization: Bearer $TOKEN")
# ... сохранить $page ...
[ "$(echo "$page" | jq .has_more)" = "true" ] || break
after=$(echo "$page" | jq .next_after_id)
done
Курсор надёжнее номера страницы: если во время выгрузки касса пришлёт новый чек, записи не сдвинутся и не задвоятся.
Инкрементальная загрузка
Раз в сутки перезагружайте последние 3 дня целиком — заменяйте записи по id. Касса может досылать чеки с опозданием, а возврат оформляется отдельным документом позже продажи.
Чеки
GET /export/cheques?date_from=2026-09-01&date_to=2026-09-30
Закрытые чеки, вошедшие в период по бизнес-дню закрытия, вместе с оплатами.
{
"id": 12864657,
"point_id": "f40d9ea6-bb66-4d8a-9185-219916b68224",
"cheque_number": 22,
"business_date": "2026-09-28",
"opened_at": "2026-09-28 12:53:12",
"closed_at": "2026-09-28 13:17:16",
"order_type_id": 3,
"order_type_sub_id": 175,
"source_id": 0,
"external_id": "APP-10045",
"waiter_id": 2590,
"cashier_id": 2594,
"courier_id": 3120,
"client_id": 88213,
"table_id": null,
"guests": 1,
"goods_amount": 150000,
"discount": 15000,
"delivery_amount": 10000,
"total_amount": 145000,
"payments": [
{ "payment_type_id": 59, "payment_type_name": "Наличные", "payment_category_id": 1, "amount": 100000 },
{ "payment_type_id": 60, "payment_type_name": "Терминал", "payment_category_id": 2, "amount": 45000 }
]
}
| Поле | Описание |
|---|---|
id | Идентификатор чека, тот же, что order_id в заказах |
business_date | Бизнес-день закрытия — по нему чек входит в отчёты |
source_id | 0 — свой заказ заведения, иначе id интеграции-агрегатора |
external_id | Номер заказа во внешней системе, если чек пришёл через API или агрегатор |
goods_amount | Сумма позиций до скидки на чек |
discount | Скидка на чек |
delivery_amount | Стоимость доставки |
total_amount | Итог к оплате: позиции − скидка + обслуживание + доставка |
payments | Оплаты. Сдача уже вычтена из наличных: сумма оплат равна total_amount |
Возврат чек не меняет — он приходит в выгрузке возвратов.
Позиции чеков
GET /export/cheque-lines?date_from=2026-09-01&date_to=2026-09-30
Позиции закрытых чеков периода: блюда и модификаторы. Обслуживание и доставка сюда не входят — они уже есть в итоге чека.
{
"id": 52709923,
"cheque_id": 12864657,
"point_id": "f40d9ea6-bb66-4d8a-9185-219916b68224",
"business_date": "2026-09-28",
"product_id": 69965,
"product_name": "Самса с тыквой",
"category_id": 117,
"quantity": 3,
"price": 5000,
"amount": 15000,
"discount": 1500,
"net_amount": 13500,
"cost": 6300,
"waiter_id": 2590,
"returned_quantity": 0
}
| Поле | Описание |
|---|---|
id | Идентификатор позиции. Курсор выгрузки |
price | Цена за единицу |
amount | Сумма позиции со скидкой на саму позицию |
discount | Доля скидки на чек, пришедшаяся на позицию |
net_amount | Сумма после всех скидок |
cost | Себестоимость позиции на момент продажи |
returned_quantity | Сколько из позиции уже вернули |
Возвраты
GET /export/returns?date_from=2026-09-01&date_to=2026-09-30
Проведённые возвраты, вошедшие в период по дате возврата, вместе с позициями.
{
"id": 498,
"cheque_id": 12033915,
"point_id": "f40d9ea6-bb66-4d8a-9185-219916b68224",
"document_number": 5,
"created_at": "2026-09-05 19:03:56",
"business_date": "2026-09-05",
"total_amount": 820800,
"service_amount": 0,
"delivery_amount": 0,
"refunded_amount": 0,
"debt_amount": 820800,
"payment_type_id": 589,
"payment_type_name": "Долг организации",
"lines": [
{
"cheque_line_id": 49739960,
"product_id": 81901,
"product_name": "Куриное филе",
"quantity": 15.2,
"price": 54000,
"amount": 820800,
"cost": 544540
}
]
}
| Поле | Описание |
|---|---|
cheque_id | Чек, по которому оформлен возврат. Он мог быть в прошлом периоде |
total_amount | Сумма возврата, включая обслуживание и доставку |
refunded_amount | Выдано деньгами типом оплаты payment_type_id |
debt_amount | Списано с долга гостя или организации вместо выдачи денег |
lines[].cheque_line_id | Позиция чека из выгрузки позиций |