Кассовые операции
Раздел «Кассовые операции» продажных касс: доходы, расходы и инкассации, внесённые вручную, с показателями касс за сегодня и действиями «Вернуть» и «Удалить». Продажи и оплаты долгов сюда не попадают — их касса проводит сама.
| Метод | Адрес | Назначение |
|---|---|---|
| GET | /company/cashbox/operation/cashboxes | Кассы для операций |
| GET | /company/cashbox/operation/stats | Показатели касс за сегодня |
| GET | /company/cashbox/operation/reasons | Категории операции |
| POST | /company/cashbox/operation/collection | Инкассировать кассу |
| PATCH | /company/cashbox/operation/{model}/return | Вернуть операцию |
| PATCH | /company/cashbox/operation/{model}/cancel | Удалить операцию |
| GET | /company/cashbox/operation | Список операций |
| POST | /company/cashbox/operation | Добавить доход или расход |
Кассы для операций
/company/cashbox/operation/cashboxesПродажные кассы пользователя для фильтров «Филиал» / «Касса»: филиал кассы и признак is_open — открыта ли на ней кассовая смена. is_shift_enabled показывает, включены ли смены в компании.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].name | string | Название |
data[].company | object | Компания |
data[].company.id | integer | ID |
data[].company.name | string | Название |
data[].is_open | boolean | |
is_shift_enabled | boolean |
{
"data": [
{
"id": 1,
"name": "Cashbox 1",
"company": {
"id": 1,
"name": "Company 1"
},
"is_open": false
},
{
"id": 2,
"name": "Cashbox 2",
"company": {
"id": 1,
"name": "Company 1"
},
"is_open": true
}
],
"is_shift_enabled": true
}Показатели касс за сегодня
/company/cashbox/operation/statsСводка выбранных продажных касс за сегодня, раздельно наличные (cash) и безнал (non_cash) по валютам: доход, расход, остаток на начало дня (opening, только наличные) и текущий остаток (balance), плюс детальные остатки balances. Без фильтров — по всем продажным кассам пользователя.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
filter | array | Нет | |
filter.company_id | integer | Нет | Филиал (компания), по кассам которого считать |
filter.cashbox_id | integer | Нет | Одна продажная касса |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
income | object | Доход |
income.cash | object | |
income.cash.uzs | integer | |
income.cash.usd | integer | |
income.non_cash | object | |
income.non_cash.uzs | integer | |
income.non_cash.usd | integer | |
outcome | object | |
outcome.cash | object | |
outcome.cash.uzs | integer | |
outcome.cash.usd | integer | |
outcome.non_cash | object | |
outcome.non_cash.uzs | integer | |
outcome.non_cash.usd | integer | |
opening | object | |
opening.cash | object | |
opening.cash.uzs | integer | |
opening.cash.usd | integer | |
balance | object | Баланс |
balance.cash | object | |
balance.cash.uzs | integer | |
balance.cash.usd | integer | |
balance.non_cash | object | |
balance.non_cash.uzs | integer | |
balance.non_cash.usd | integer | |
balances | object[] | |
balances[].payment_type | string | Тип оплаты |
balances[].currency | string | Валюта |
balances[].amount | integer | Сумма |
{
"income": {
"cash": {
"uzs": 500,
"usd": 0
},
"non_cash": {
"uzs": 700,
"usd": 0
}
},
"outcome": {
"cash": {
"uzs": 200,
"usd": 0
},
"non_cash": {
"uzs": 0,
"usd": 0
}
},
"opening": {
"cash": {
"uzs": 1000,
"usd": 0
}
},
"balance": {
"cash": {
"uzs": 1300,
"usd": 0
},
"non_cash": {
"uzs": 3700,
"usd": 0
}
},
"balances": [
{
"payment_type": "card",
"currency": "uzs",
"amount": 3700
},
{
"payment_type": "cash",
"currency": "uzs",
"amount": 1300
}
]
}Категории операции
/company/cashbox/operation/reasonsКатегории, доступные для дохода или расхода (type): вложенные статьи и группы без вложенных статей, по алфавиту, с группой-родителем (parent).
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
type | string | Да | Тип. Допустимые значения: income, outcome |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].name | string | Название |
data[].parent | object | |
data[].parent.id | integer | ID |
data[].parent.name | string | Название |
{
"data": [
{
"id": 2,
"name": "Transaction reason 1-1",
"parent": {
"id": 1,
"name": "Transaction reason 1"
}
}
]
}Инкассировать кассу
/company/cashbox/operation/collectionИнкассация продажной кассы в основную: по строке на пару «тип оплаты + валюта» (без повторов), каждая сумма не больше остатка кассы. Запрещена, пока на кассе открыта кассовая смена или если у компании нет основной кассы. Деньги сразу списываются, инкассация ждёт подтверждения (on_hold); возвращается созданная инкассация.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
cashbox_id | integer | Да | Касса. ID существующей записи, доступной пользователю |
creator_id | integer | Нет | Сотрудник, передавший деньги; по умолчанию текущий пользователь. ID существующей записи, доступной пользователю |
comment | string | Нет | Комментарий. Макс. 1000 символов |
items | object[] | Да | Инкассируемые суммы по типу оплаты и валюте. Мин. 1 элементов. Макс. 20 элементов |
items[].payment_type | string | Да | Тип оплаты. Допустимые значения: cash, card, bank |
items[].currency | string | Да | Валюта. Допустимые значения: uzs, usd, eur, rub |
items[].amount | number | Да | FSM бонус. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
{
"cashbox_id": 2,
"creator_id": 4,
"comment": "Сдал старшему",
"items": [
{
"payment_type": "cash",
"currency": "uzs",
"amount": 400
}
]
}curl -X POST "https://api.wasyt.uz/company/cashbox/operation/collection" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"cashbox_id":2,"creator_id":4,"comment":"Сдал старшему","items":[{"payment_type":"cash","currency":"uzs","amount":400}]}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
cashbox_id | integer | Касса |
creator_id | integer | Создатель |
status | string | Статус |
comment | string | Комментарий |
updated_at | string | Обновлено |
created_at | string | Создано |
company_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.cash | object | |
additional.on_hold_after.outcome.cash.uzs | string | |
cashbox | object | |
cashbox.id | integer | ID |
cashbox.creator_id | integer | Создатель |
cashbox.company_id | integer | Компания |
cashbox.name | string | Название |
cashbox.type | string | Тип |
cashbox.created_at | string | Создано |
cashbox.updated_at | string | Обновлено |
cashbox.is_deleted | boolean |
{
"cashbox_id": 2,
"creator_id": 4,
"status": "on_hold",
"comment": "Сдал старшему",
"updated_at": "2026-09-30 12:51:19",
"created_at": "2026-09-30 12:51:19",
"company_id": 1,
"id": 5,
"transactions_data": [
{
"additional": {
"balances_after": {
"cash": {
"uzs": "600.00"
},
"card": {
"uzs": "3000.00"
}
},
"on_hold_after": {
"outcome": {
"cash": {
"uzs": "400.00"
}
}
}
},
"source_data": {
"collection_id": 5,
"code": "CT-2-1877742378602764"
},
"cashbox_id": 2,
"creator_id": 4,
"comment": "Сдал старшему",
"type": "outcome",
"payment_type": "cash",
"currency": "uzs",
"amount": 400,
"status": "on_hold",
"source_type": "collection",
"source_id": 1,
"updated_at": "2026-09-30 12:51:19",
"created_at": "2026-09-30 12:51:19",
"company_id": 1,
"id": 12
}
],
"additional": {
"balances_after": {
"cash": {
"uzs": "600.00"
},
"card": {
"uzs": "3000.00"
}
},
"on_hold_after": {
"outcome": {
"cash": {
"uzs": "400.00"
}
}
}
},
"cashbox": {
"id": 2,
"creator_id": 2,
"company_id": 1,
"name": "Cashbox 2",
"type": "sale",
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"is_deleted": false
}
}Вернуть операцию
/company/cashbox/operation/{model}/return«Вернуть»: создаёт обратную проводку к завершённому ручному доходу/расходу (та же сумма, противоположный тип); исходная запись остаётся в истории как возвращённая. Нельзя вернуть уже возвращённую операцию, саму обратную проводку, не ручную операцию или расход закрытой кассовой смены — 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
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
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 | array | |
source_data | array | |
cashbox_id | integer | Касса |
type | string | Тип |
payment_type | string | Тип оплаты |
currency | string | Валюта |
amount | integer | Сумма |
status | string | Статус |
source_type | string | Источник |
source_id | integer | Источник |
reversal_of_id | integer | |
updated_at | string | Обновлено |
created_at | string | Создано |
company_id | integer | Компания |
creator_id | integer | Создатель |
id | integer | ID |
cashbox | object | |
cashbox.id | integer | ID |
cashbox.creator_id | integer | Создатель |
cashbox.company_id | integer | Компания |
cashbox.name | string | Название |
cashbox.type | string | Тип |
cashbox.created_at | string | Создано |
cashbox.updated_at | string | Обновлено |
cashbox.is_deleted | boolean | |
source | null | |
contract_number | null | Номер контракта |
{
"additional": {
"balances_after": {
"cash": {
"uzs": "1000.00"
},
"card": {
"uzs": "3000.00"
}
},
"on_hold_after": []
},
"source_data": [],
"cashbox_id": 2,
"type": "outcome",
"payment_type": "cash",
"currency": "uzs",
"amount": 500,
"status": "completed",
"source_type": "reason",
"source_id": 2,
"reversal_of_id": 24,
"updated_at": "2026-09-30 12:51:22",
"created_at": "2026-09-30 12:51:22",
"company_id": 1,
"creator_id": 2,
"id": 25,
"cashbox": {
"id": 2,
"creator_id": 2,
"company_id": 1,
"name": "Cashbox 2",
"type": "sale",
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"is_deleted": false
},
"source": null,
"contract_number": null
}Удалить операцию
/company/cashbox/operation/{model}/cancel«Удалить» с обязательной причиной: деньги возвращаются на кассу, запись остаётся в истории со статусом canceled и cancel_comment. Инкассация удаляется целиком и только пока ждёт подтверждения (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 записи |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
cancel_comment | string | Да | Причина удаления. Макс. 1000 символов |
{
"cancel_comment": "Внесено дважды"
}curl -X PATCH "https://api.wasyt.uz/company/cashbox/operation/7/cancel" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"cancel_comment":"Внесено дважды"}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
message | string | Сообщение |
{
"message": "Success"
}Список операций
/company/cashbox/operationРучные движения продажных касс пользователя (доходы, расходы, оплаты поставщикам, инкассации, переводы, конвертации); инкассация показывается одной строкой с составом в collection_items. Вкладка — filter[operation] (income, outcome, collection, transfer, pending), поиск по номеру, категории или сотруднику — filter[search], категория — filter[reason_id]; counts — число строк каждой вкладки. ?format=excel выгружает отчёт.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Параметр | Описание |
|---|---|
filter[id] | ID — точное значение |
filter[company_id] | Компания — одно значение или список filter[company_id][] |
filter[creator_id] | Создатель — точное значение |
filter[cashbox_id] | Касса — точное значение |
filter[payment_type] | Тип оплаты — точное значение |
filter[currency] | Валюта — точное значение |
filter[created_at] | Создано — период: [0] — с, [1] — по (Y-m-d) |
sort[] | Сортировка, - — по убыванию: id, -id |
with[] | Подгрузить связи: creator.profile, cashbox.company, source |
page | Номер страницы, с 1 |
page-size | Записей на странице, не больше 20 |
GET /company/cashbox/operation?with[0]=creator.profile&with[1]=cashbox.company&with[2]=source&filter[operation]=incomeОтвет · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].company_id | integer | Компания |
data[].creator_id | integer | Создатель |
data[].cashbox_id | integer | Касса |
data[].type | string | Тип |
data[].payment_type | string | Тип оплаты |
data[].currency | string | Валюта |
data[].amount | integer | Сумма |
data[].comment | string | Комментарий |
data[].status | string | Статус |
data[].source_type | string | Источник |
data[].source_id | integer | Источник |
data[].source_data | array | |
data[].related_to_id | null | |
data[].reversal_of_id | null | |
data[].cancel_comment | null | Причина удаления |
data[].additional | object | |
data[].additional.on_hold_after | array | |
data[].additional.balances_after | array | |
data[].created_at | string | Создано |
data[].updated_at | string | Обновлено |
data[].collection_items | null | |
data[].is_reversed | boolean | |
data[].creator | object | |
data[].creator.id | integer | ID |
data[].creator.type | string | Тип |
data[].creator.role_id | integer | Роль |
data[].creator.company_id | integer | Компания |
data[].creator.partner_id | null | Партнёр |
data[].creator.username | string | Логин |
data[].creator.pinfl | null | ПИНФЛ |
data[].creator.phone | string | Телефон |
data[].creator.sipuni_sip_number | string | VoIP - Sipuni (SIP-номер) |
data[].creator.is_confirmed | boolean | |
data[].creator.are_all_companies_available | boolean | |
data[].creator.last_login_at | null | |
data[].creator.created_at | string | Создано |
data[].creator.updated_at | string | Обновлено |
data[].creator.is_deleted | boolean | |
data[].creator.profile | object | |
data[].creator.profile.first_name | null | Имя |
data[].creator.profile.last_name | null | Фамилия |
data[].creator.profile.position | null | Должность |
data[].creator.profile.birth_date | null | Дата рождения |
data[].creator.profile.gender | null | Пол |
data[].creator.profile.full_name | string | ФИО |
data[].cashbox | object | |
data[].cashbox.id | integer | ID |
data[].cashbox.creator_id | integer | Создатель |
data[].cashbox.company_id | integer | Компания |
data[].cashbox.name | string | Название |
data[].cashbox.type | string | Тип |
data[].cashbox.created_at | string | Создано |
data[].cashbox.updated_at | string | Обновлено |
data[].cashbox.is_deleted | boolean | |
data[].cashbox.company | object | Компания |
data[].cashbox.company.id | integer | ID |
data[].cashbox.company.parent_id | null | Родитель |
data[].cashbox.company.partner_id | integer | Партнёр |
data[].cashbox.company.district_id | integer | Район |
data[].cashbox.company.industry_id | integer | Сфера деятельности |
data[].cashbox.company.name | string | Название |
data[].cashbox.company.company_name | string | Компания |
data[].cashbox.company.logo | object | Логотип |
data[].cashbox.company.logo.original | object | |
data[].cashbox.company.logo.widen_25 | object | |
data[].cashbox.company.logo.widen_100 | object | |
data[].cashbox.company.logo.widen_500 | object | |
data[].cashbox.company.inn | string | ИНН |
data[].cashbox.company.mfo | string | МФО |
data[].cashbox.company.address | string | Адрес |
data[].cashbox.company.latitude | null | Широта |
data[].cashbox.company.longitude | null | Долгота |
data[].cashbox.company.comment | string | Комментарий |
data[].cashbox.company.telegram_phone | string | Телефон в Telegram |
data[].cashbox.company.director_full_name | string | ФИО директора |
data[].cashbox.company.bank | string | Банк |
data[].cashbox.company.payment_account | string | Расчётный счёт |
data[].cashbox.company.agreement_number | string | Номер договора |
data[].cashbox.company.agreement_date | null | |
data[].cashbox.company.atmos_terminal_id | integer | ID терминала в Atmos |
data[].cashbox.company.uniaccess_auto_payment_credit_overdue_days | integer | |
data[].cashbox.company.uniaccess_branch_id | integer | Branch ID в Uniaccess |
data[].cashbox.company.field_of_activity | string | Направление |
data[].cashbox.company.vat_percent | string | НДС (%) |
data[].cashbox.company.is_using_new_my_uzcard_auto_payment_by_pinfl | boolean | Использует новый метод MyUzcard для автосписания по ПИНФЛ |
data[].cashbox.company.bonus_entry_period | integer | Период учёта бонусов (в месяцах) |
data[].cashbox.company.abc_segment_a | integer | |
data[].cashbox.company.abc_segment_b | integer | |
data[].cashbox.company.abc_segment_c | integer | |
data[].cashbox.company.is_pos_window_enabled | boolean | |
data[].cashbox.company.cashbox_shift_settings | object | |
data[].cashbox.company.cashbox_shift_settings.is_enabled | boolean | Включено |
data[].cashbox.company.has_bank_payment_type | boolean | |
data[].cashbox.company.is_ican_turned_on | boolean | ICAN включён |
data[].cashbox.company.is_partner_turned_on | boolean | Партнёр включён |
data[].cashbox.company.created_at | string | Создано |
data[].cashbox.company.updated_at | string | Обновлено |
data[].cashbox.company.is_deleted | boolean | |
data[].source | object | |
data[].source.id | integer | ID |
data[].source.parent_id | null | Родитель |
data[].source.creator_id | integer | Создатель |
data[].source.company_id | integer | Компания |
data[].source.name | string | Название |
data[].source.type | string | Тип |
data[].source.description | string | Описание |
data[].source.created_at | string | Создано |
data[].source.updated_at | string | Обновлено |
data[].source.is_deleted | boolean | |
data[].source.parent | null | |
data[].contract_number | null | Номер контракта |
{
"data": [
{
"id": 1,
"company_id": 1,
"creator_id": 2,
"cashbox_id": 1,
"type": "income",
"payment_type": "cash",
"currency": "uzs",
"amount": 1000,
"comment": "Comment 1",
"status": "completed",
"source_type": "reason",
"source_id": 1,
"source_data": [],
"related_to_id": null,
"reversal_of_id": null,
"cancel_comment": null,
"additional": {
"on_hold_after": [],
"balances_after": []
},
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"collection_items": null,
"is_reversed": false,
"creator": {
"id": 2,
"type": "director",
"role_id": 2,
"company_id": 1,
"partner_id": null,
"username": "director_1@local.host",
"pinfl": null,
"phone": "998020000001",
"sipuni_sip_number": "210",
"is_confirmed": true,
"are_all_companies_available": false,
"last_login_at": null,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false,
"profile": {
"first_name": null,
"last_name": null,
"position": null,
"birth_date": null,
"gender": null,
"full_name": " "
}
},
"cashbox": {
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Cashbox 1",
"type": "sale",
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"is_deleted": false,
"company": {
"id": 1,
"parent_id": null,
"partner_id": 1,
"district_id": 1,
"industry_id": 1,
"name": "Company 1",
"company_name": "Company 1",
"logo": {
"original": {
"raw": "https://api.wasyt.uz/test_data/images/1.png",
"webp": "https://api.wasyt.uz/storage/thumbs/original/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.webp"
},
"widen_25": {
"raw": "https://api.wasyt.uz/storage/thumbs/widen/25/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.png",
"webp": "https://api.wasyt.uz/storage/thumbs/widen/25/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.webp"
},
"widen_100": {
"raw": "https://api.wasyt.uz/storage/thumbs/widen/100/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.png",
"webp": "https://api.wasyt.uz/storage/thumbs/widen/100/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.webp"
},
"widen_500": {
"raw": "https://api.wasyt.uz/storage/thumbs/widen/500/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.png",
"webp": "https://api.wasyt.uz/storage/thumbs/widen/500/6a21a10b2d2ed8f4573f3842b10dc1df1778568717.webp"
}
},
"inn": "000000001",
"mfo": "00001",
"address": "Address 1",
"latitude": null,
"longitude": null,
"comment": "Comment 1",
"telegram_phone": "998000000001",
"director_full_name": "Director 1",
"bank": "Bank 1",
"payment_account": "00000000000000000001",
"agreement_number": "001/2026",
"agreement_date": null,
"atmos_terminal_id": 97007302,
"uniaccess_auto_payment_credit_overdue_days": 3,
"uniaccess_branch_id": 1,
"field_of_activity": "trading",
"vat_percent": "12.00",
"is_using_new_my_uzcard_auto_payment_by_pinfl": true,
"bonus_entry_period": 12,
"abc_segment_a": 75,
"abc_segment_b": 15,
"abc_segment_c": 10,
"is_pos_window_enabled": true,
"cashbox_shift_settings": {
"is_enabled": true
},
"has_bank_payment_type": false,
"is_ican_turned_on": true,
"is_partner_turned_on": false,
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:49:04",
"is_deleted": false
}
},
"source": {
"id": 1,
"parent_id": null,
"creator_id": 2,
"company_id": 1,
"name": "Transaction reason 1",
"type": "income",
"description": "Description 1",
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"is_deleted": false,
"parent": null
},
"contract_number": null
}
],
"links": {
"first": "https://api.wasyt.uz/company/cashbox/operation?page=1",
"last": "https://api.wasyt.uz/company/cashbox/operation?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/cashbox/operation",
"per_page": 20,
"to": 1,
"total": 1
},
"counts": {
"all": 2,
"income": 1,
"outcome": 1,
"collection": 0,
"transfer": 0,
"pending": 0
}
}Добавить доход или расход
/company/cashbox/operationВносит вручную доход (income) или расход (outcome) продажной кассы; запись сразу completed и меняет остаток. Категория необязательна; расход не может превышать остаток кассы в этом типе оплаты и валюте.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
type | string | Да | Тип. Допустимые значения: income, outcome |
cashbox_id | integer | Да | Касса. ID существующей записи, доступной пользователю |
payment_type | string | Да | Тип оплаты. Допустимые значения: cash, card, bank |
currency | string | Да | Валюта. Допустимые значения: uzs, usd, eur, rub |
amount | number | Да | Сумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
transaction_reason_id | integer | Нет | Категория (статья) операции. ID существующей записи, доступной пользователю |
creator_id | integer | Нет | Сотрудник, проводивший деньги; по умолчанию текущий пользователь. ID существующей записи, доступной пользователю |
comment | string | Нет | Комментарий. Макс. 1000 символов |
{
"cashbox_id": 2,
"payment_type": "cash",
"currency": "uzs",
"amount": 500,
"comment": "Аренда",
"type": "income",
"transaction_reason_id": 2,
"creator_id": 4
}curl -X POST "https://api.wasyt.uz/company/cashbox/operation" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"cashbox_id":2,"payment_type":"cash","currency":"uzs","amount":500,"comment":"Аренда","type":"income","transaction_reason_id":2,"creator_id":4}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
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 | array | |
source_data | array | |
cashbox_id | integer | Касса |
creator_id | integer | Создатель |
type | string | Тип |
payment_type | string | Тип оплаты |
currency | string | Валюта |
amount | integer | Сумма |
comment | string | Комментарий |
status | string | Статус |
source_type | string | Источник |
source_id | integer | Источник |
updated_at | string | Обновлено |
created_at | string | Создано |
company_id | integer | Компания |
id | integer | ID |
source | null | |
contract_number | null | Номер контракта |
{
"additional": {
"balances_after": {
"cash": {
"uzs": "1500.00"
},
"card": {
"uzs": "3000.00"
}
},
"on_hold_after": []
},
"source_data": [],
"cashbox_id": 2,
"creator_id": 4,
"type": "income",
"payment_type": "cash",
"currency": "uzs",
"amount": 500,
"comment": "Аренда",
"status": "completed",
"source_type": "reason",
"source_id": 2,
"updated_at": "2026-09-30 12:51:20",
"created_at": "2026-09-30 12:51:20",
"company_id": 1,
"id": 15,
"source": null,
"contract_number": null
}
