Инкассации
Инкассация — передача денег из продажной кассы в основную. Деньги сразу списываются с продажной кассы и ждут подтверждения (status = on_hold), пока основная касса их не примет или инкассацию не отменят.
| Метод | Адрес | Назначение |
|---|---|---|
| GET | /company/cashbox/collection/not-collected-amounts | Неинкассированные суммы |
| PATCH | /company/cashbox/collection/{model}/complete | Принять инкассацию |
| PATCH | /company/cashbox/collection/{model}/cancel | Отменить инкассацию |
| GET | /company/cashbox/collection | Список инкассаций |
| GET | /company/cashbox/collection/{model} | Инкассация |
| POST | /company/cashbox/collection | Создать инкассацию |
Неинкассированные суммы
/company/cashbox/collection/not-collected-amountsТекущие остатки кассы из ?cashbox_id= в виде матрицы «тип оплаты → валюта → сумма»; отсутствующие сочетания заполняются нулём. Без cashbox_id все суммы нулевые.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Параметр | Описание |
|---|---|
cashbox_id | Касса |
GET /company/cashbox/collection/not-collected-amounts?cashbox_id=2Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
bank | object | Банк |
bank.uzs | integer | |
bank.usd | integer | |
bank.eur | integer | |
bank.rub | integer | |
card | object | |
card.uzs | string | |
card.usd | integer | |
card.eur | integer | |
card.rub | integer | |
cash | object | |
cash.uzs | string | |
cash.usd | integer | |
cash.eur | integer | |
cash.rub | integer | |
system | object | |
system.uzs | integer | |
system.usd | integer | |
system.eur | integer | |
system.rub | integer |
{
"bank": {
"uzs": 0,
"usd": 0,
"eur": 0,
"rub": 0
},
"card": {
"uzs": "3000.00",
"usd": 0,
"eur": 0,
"rub": 0
},
"cash": {
"uzs": "1000.00",
"usd": 0,
"eur": 0,
"rub": 0
},
"system": {
"uzs": 0,
"usd": 0,
"eur": 0,
"rub": 0
}
}Принять инкассацию
/company/cashbox/collection/{model}/completeОсновная касса подтверждает получение: инкассация и её транзакции переходят в completed, а деньги зачисляются на основную кассу. Доступно только из статуса on_hold, иначе 400.
Из формы (
multipart/form-data) методPATCHотправляется какPOSTс параметром?_method=PATCH.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение |
{
"message": "Success"
}Отменить инкассацию
/company/cashbox/collection/{model}/cancelОтменяет инкассацию в статусе on_hold: транзакции переходят в canceled, и деньги возвращаются на продажную кассу. Из другого статуса — 400.
Из формы (
multipart/form-data) методPATCHотправляется какPOSTс параметром?_method=PATCH.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение |
{
"message": "Success"
}Список инкассаций
/company/cashbox/collectionИнкассации по кассам, доступным пользователю. Помимо страницы, в ответе total — суммы, сгруппированные по статусу и валюте (total.on_hold.uzs и т. п.) с учётом фильтров.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Параметр | Описание |
|---|---|
filter[id] | ID — точное значение |
filter[company_id] | Компания — точное значение |
filter[creator_id] | Создатель — точное значение |
filter[cashbox_id] | Касса — точное значение |
filter[status] | Статус — точное значение |
filter[created_at] | Создано — период: [0] — с, [1] — по (Y-m-d) |
sort[] | Сортировка, - — по убыванию: id, -id |
with[] | Подгрузить связи: company, creator.profile, cashbox |
page | Номер страницы, с 1 |
page-size | Записей на странице, не больше 20 |
GET /company/cashbox/collection?sort[0]=id&sort[1]=-idОтвет · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].company_id | integer | Компания |
data[].creator_id | integer | Создатель |
data[].cashbox_id | integer | Касса |
data[].status | string | Статус |
data[].comment | string | Комментарий |
data[].transactions_data | object[] | |
data[].transactions_data[].id | integer | ID |
data[].transactions_data[].type | string | Тип |
data[].transactions_data[].amount | integer | Сумма |
data[].transactions_data[].status | string | Статус |
data[].transactions_data[].comment | string | Комментарий |
data[].transactions_data[].currency | string | Валюта |
data[].transactions_data[].source_id | integer | Источник |
data[].transactions_data[].additional | string | |
data[].transactions_data[].cashbox_id | integer | Касса |
data[].transactions_data[].company_id | integer | Компания |
data[].transactions_data[].created_at | string | Создано |
data[].transactions_data[].creator_id | integer | Создатель |
data[].transactions_data[].updated_at | string | Обновлено |
data[].transactions_data[].source_type | string | Источник |
data[].transactions_data[].payment_type | string | Тип оплаты |
data[].additional | object | |
data[].additional.on_hold_after | array | |
data[].additional.balances_after | array | |
data[].created_at | string | Создано |
data[].updated_at | string | Обновлено |
{
"data": [
{
"id": 1,
"company_id": 1,
"creator_id": 2,
"cashbox_id": 2,
"status": "on_hold",
"comment": "Comment 1",
"transactions_data": [
{
"id": 1,
"type": "income",
"amount": 1000,
"status": "completed",
"comment": "Comment 1",
"currency": "uzs",
"source_id": 1,
"additional": "{\"balances_after\":[],\"on_hold_after\":[]}",
"cashbox_id": 1,
"company_id": 1,
"created_at": "2026-09-30 12:47:58",
"creator_id": 2,
"updated_at": "2026-09-30 12:47:58",
"source_type": "reason",
"payment_type": "cash"
},
{
"id": 2,
"type": "outcome",
"amount": 2000,
"status": "canceled",
"comment": "Comment 2",
"currency": "usd",
"source_id": 1,
"additional": "{\"balances_after\":[],\"on_hold_after\":[]}",
"cashbox_id": 1,
"company_id": 1,
"created_at": "2026-09-30 12:47:58",
"creator_id": 2,
"updated_at": "2026-09-30 12:47:58",
"source_type": "supplier",
"payment_type": "cash"
}
],
"additional": {
"on_hold_after": [],
"balances_after": []
},
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58"
}
],
"links": {
"first": "https://api.wasyt.uz/company/cashbox/collection?page=1",
"last": "https://api.wasyt.uz/company/cashbox/collection?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/cashbox/collection",
"per_page": 20,
"to": 1,
"total": 1
},
"total": {
"on_hold": {
"uzs": "1000",
"usd": "2000"
}
}
}Инкассация
/company/cashbox/collection/{model}Одна инкассация с её транзакциями (transactions_data) и снимком остатков кассы на момент создания (additional).
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Параметры запроса
| Параметр | Описание |
|---|---|
cashbox_id | Касса |
GET /company/cashbox/collection/not-collected-amounts?cashbox_id=2Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
bank | object | Банк |
bank.uzs | integer | |
bank.usd | integer | |
bank.eur | integer | |
bank.rub | integer | |
card | object | |
card.uzs | string | |
card.usd | integer | |
card.eur | integer | |
card.rub | integer | |
cash | object | |
cash.uzs | string | |
cash.usd | integer | |
cash.eur | integer | |
cash.rub | integer | |
system | object | |
system.uzs | integer | |
system.usd | integer | |
system.eur | integer | |
system.rub | integer |
{
"bank": {
"uzs": 0,
"usd": 0,
"eur": 0,
"rub": 0
},
"card": {
"uzs": "3000.00",
"usd": 0,
"eur": 0,
"rub": 0
},
"cash": {
"uzs": "1000.00",
"usd": 0,
"eur": 0,
"rub": 0
},
"system": {
"uzs": 0,
"usd": 0,
"eur": 0,
"rub": 0
}
}Создать инкассацию
/company/cashbox/collectionИнкассирует продажную кассу: наличные — суммами из transactions (по одной строке на валюту), а все положительные безналичные остатки добавляются целиком автоматически. Наличная сумма не может превышать остаток и для UZS может быть меньше него не более чем на 100 000, для других валют — только весь остаток. Деньги сразу списываются с кассы, инкассация создаётся в статусе on_hold.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
cashbox_id | integer | Да | Касса. ID существующей записи, доступной пользователю |
comment | string | Нет | Комментарий. Макс. 1000 символов |
transactions | object[] | Нет | Инкассируемые наличные, по строке на валюту |
transactions[].currency | string | Да | Валюта. Без повторов. Допустимые значения: uzs, usd, eur, rub |
transactions[].amount | number | Да | Сумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
{
"cashbox_id": 2,
"comment": "Comment 3",
"transactions": [
{
"currency": "uzs",
"amount": 300
}
]
}curl -X POST "https://api.wasyt.uz/company/cashbox/collection" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"cashbox_id":2,"comment":"Comment 3","transactions":[{"currency":"uzs","amount":300}]}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
cashbox_id | integer | Касса |
comment | string | Комментарий |
status | string | Статус |
updated_at | string | Обновлено |
created_at | string | Создано |
company_id | integer | Компания |
creator_id | integer | Создатель |
id | integer | ID |
transactions_data | object[] | |
transactions_data[].additional | object | |
transactions_data[].additional.balances_after | object | |
transactions_data[].additional.balances_after.cash | object | |
transactions_data[].additional.balances_after.cash.uzs | string | |
transactions_data[].additional.balances_after.card | object | |
transactions_data[].additional.balances_after.card.uzs | string | |
transactions_data[].additional.on_hold_after | object | |
transactions_data[].additional.on_hold_after.outcome | object | |
transactions_data[].additional.on_hold_after.outcome.cash | object | |
transactions_data[].source_data | object | |
transactions_data[].source_data.collection_id | integer | |
transactions_data[].source_data.code | string | Код |
transactions_data[].cashbox_id | integer | Касса |
transactions_data[].creator_id | integer | Создатель |
transactions_data[].comment | string | Комментарий |
transactions_data[].type | string | Тип |
transactions_data[].payment_type | string | Тип оплаты |
transactions_data[].currency | string | Валюта |
transactions_data[].amount | integer | Сумма |
transactions_data[].status | string | Статус |
transactions_data[].source_type | string | Источник |
transactions_data[].source_id | integer | Источник |
transactions_data[].updated_at | string | Обновлено |
transactions_data[].created_at | string | Создано |
transactions_data[].company_id | integer | Компания |
transactions_data[].id | integer | ID |
additional | object | |
additional.balances_after | object | |
additional.balances_after.cash | object | |
additional.balances_after.cash.uzs | string | |
additional.balances_after.card | object | |
additional.balances_after.card.uzs | string | |
additional.on_hold_after | object | |
additional.on_hold_after.outcome | object | |
additional.on_hold_after.outcome.card | object | |
additional.on_hold_after.outcome.card.uzs | string | |
additional.on_hold_after.outcome.cash | object | |
additional.on_hold_after.outcome.cash.uzs | string |
{
"cashbox_id": 2,
"comment": "Comment 3",
"status": "on_hold",
"updated_at": "2026-09-30 12:51:11",
"created_at": "2026-09-30 12:51:11",
"company_id": 1,
"creator_id": 2,
"id": 2,
"transactions_data": [
{
"additional": {
"balances_after": {
"cash": {
"uzs": "700.00"
},
"card": {
"uzs": "3000.00"
}
},
"on_hold_after": {
"outcome": {
"cash": {
"uzs": "300.00"
}
}
}
},
"source_data": {
"collection_id": 2,
"code": "CT-2-1877742370559153"
},
"cashbox_id": 2,
"creator_id": 2,
"comment": "Comment 3",
"type": "outcome",
"payment_type": "cash",
"currency": "uzs",
"amount": 300,
"status": "on_hold",
"source_type": "collection",
"source_id": 1,
"updated_at": "2026-09-30 12:51:11",
"created_at": "2026-09-30 12:51:11",
"company_id": 1,
"id": 4
},
{
"additional": {
"balances_after": {
"cash": {
"uzs": "700.00"
},
"card": {
"uzs": "0.00"
}
},
"on_hold_after": {
"outcome": {
"card": {
"uzs": "3000.00"
},
"cash": {
"uzs": "300.00"
}
}
}
},
"source_data": {
"collection_id": 2,
"code": "CT-2-1877742370583008"
},
"cashbox_id": 2,
"creator_id": 2,
"comment": "Comment 3",
"type": "outcome",
"payment_type": "card",
"currency": "uzs",
"amount": 3000,
"status": "on_hold",
"source_type": "collection",
"source_id": 1,
"updated_at": "2026-09-30 12:51:11",
"created_at": "2026-09-30 12:51:11",
"company_id": 1,
"id": 5
}
],
"additional": {
"balances_after": {
"cash": {
"uzs": "700.00"
},
"card": {
"uzs": "0.00"
}
},
"on_hold_after": {
"outcome": {
"card": {
"uzs": "3000.00"
},
"cash": {
"uzs": "300.00"
}
}
}
}
}Пример ошибки · 422
{
"message": "Значение поля Сумма не может быть больше 0.",
"errors": {
"transactions.1.amount": [
"Значение поля Сумма не может быть больше 0."
]
}
}
