Skip to content

Кассовые операции ​

Раздел «Кассовые операции» продажных касс: доходы, расходы и инкассации, внесённые вручную, с показателями касс за сегодня и действиями «Вернуть» и «Удалить». Продажи и оплаты долгов сюда не попадают — их касса проводит сама.

МетодАдресНазначение
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Добавить доход или расход

Кассы для операций ​

GET/company/cashbox/operation/cashboxes

Продажные кассы пользователя для фильтров «Филиал» / «Касса»: филиал кассы и признак is_open — открыта ли на ней кассовая смена. is_shift_enabled показывает, включены ли смены в компании.

Заголовки ​

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

Ответ · 200 ​

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].idintegerID
data[].namestringНазвание
data[].companyobjectКомпания
data[].company.idintegerID
data[].company.namestringНазвание
data[].is_openboolean
is_shift_enabledboolean
json
{
    "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
}

Показатели касс за сегодня ​

GET/company/cashbox/operation/stats

Сводка выбранных продажных касс за сегодня, раздельно наличные (cash) и безнал (non_cash) по валютам: доход, расход, остаток на начало дня (opening, только наличные) и текущий остаток (balance), плюс детальные остатки balances. Без фильтров — по всем продажным кассам пользователя.

Заголовки ​

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

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

ПолеТипОбязательноОписание
filterarrayНет
filter.company_idintegerНетФилиал (компания), по кассам которого считать
filter.cashbox_idintegerНетОдна продажная касса

Ответ · 200 ​

Поля ответа
ПолеТипОписание
incomeobjectДоход
income.cashobject
income.cash.uzsinteger
income.cash.usdinteger
income.non_cashobject
income.non_cash.uzsinteger
income.non_cash.usdinteger
outcomeobject
outcome.cashobject
outcome.cash.uzsinteger
outcome.cash.usdinteger
outcome.non_cashobject
outcome.non_cash.uzsinteger
outcome.non_cash.usdinteger
openingobject
opening.cashobject
opening.cash.uzsinteger
opening.cash.usdinteger
balanceobjectБаланс
balance.cashobject
balance.cash.uzsinteger
balance.cash.usdinteger
balance.non_cashobject
balance.non_cash.uzsinteger
balance.non_cash.usdinteger
balancesobject[]
balances[].payment_typestringТип оплаты
balances[].currencystringВалюта
balances[].amountintegerСумма
json
{
    "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
        }
    ]
}

Категории операции ​

GET/company/cashbox/operation/reasons

Категории, доступные для дохода или расхода (type): вложенные статьи и группы без вложенных статей, по алфавиту, с группой-родителем (parent).

Заголовки ​

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

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

ПолеТипОбязательноОписание
typestringДаТип. Допустимые значения: income, outcome

Ответ · 200 ​

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].idintegerID
data[].namestringНазвание
data[].parentobject
data[].parent.idintegerID
data[].parent.namestringНазвание
json
{
    "data": [
        {
            "id": 2,
            "name": "Transaction reason 1-1",
            "parent": {
                "id": 1,
                "name": "Transaction reason 1"
            }
        }
    ]
}

Инкассировать кассу ​

POST/company/cashbox/operation/collection

Инкассация продажной кассы в основную: по строке на пару «тип оплаты + валюта» (без повторов), каждая сумма не больше остатка кассы. Запрещена, пока на кассе открыта кассовая смена или если у компании нет основной кассы. Деньги сразу списываются, инкассация ждёт подтверждения (on_hold); возвращается созданная инкассация.

Заголовки ​

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

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

ПолеТипОбязательноОписание
cashbox_idintegerДаКасса. ID существующей записи, доступной пользователю
creator_idintegerНетСотрудник, передавший деньги; по умолчанию текущий пользователь. ID существующей записи, доступной пользователю
commentstringНетКомментарий. Макс. 1000 символов
itemsobject[]ДаИнкассируемые суммы по типу оплаты и валюте. Мин. 1 элементов. Макс. 20 элементов
items[].payment_typestringДаТип оплаты. Допустимые значения: cash, card, bank
items[].currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
items[].amountnumberДаFSM бонус. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
json
{
    "cashbox_id": 2,
    "creator_id": 4,
    "comment": "Сдал старшему",
    "items": [
        {
            "payment_type": "cash",
            "currency": "uzs",
            "amount": 400
        }
    ]
}
bash
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_idintegerКасса
creator_idintegerСоздатель
statusstringСтатус
commentstringКомментарий
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
idintegerID
transactions_dataobject[]
transactions_data[].additionalobject
transactions_data[].additional.balances_afterobject
transactions_data[].additional.balances_after.cashobject
transactions_data[].additional.balances_after.cash.uzsstring
transactions_data[].additional.balances_after.cardobject
transactions_data[].additional.balances_after.card.uzsstring
transactions_data[].additional.on_hold_afterobject
transactions_data[].additional.on_hold_after.outcomeobject
transactions_data[].additional.on_hold_after.outcome.cashobject
transactions_data[].source_dataobject
transactions_data[].source_data.collection_idinteger
transactions_data[].source_data.codestringКод
transactions_data[].cashbox_idintegerКасса
transactions_data[].creator_idintegerСоздатель
transactions_data[].commentstringКомментарий
transactions_data[].typestringТип
transactions_data[].payment_typestringТип оплаты
transactions_data[].currencystringВалюта
transactions_data[].amountintegerСумма
transactions_data[].statusstringСтатус
transactions_data[].source_typestringИсточник
transactions_data[].source_idintegerИсточник
transactions_data[].updated_atstringОбновлено
transactions_data[].created_atstringСоздано
transactions_data[].company_idintegerКомпания
transactions_data[].idintegerID
additionalobject
additional.balances_afterobject
additional.balances_after.cashobject
additional.balances_after.cash.uzsstring
additional.balances_after.cardobject
additional.balances_after.card.uzsstring
additional.on_hold_afterobject
additional.on_hold_after.outcomeobject
additional.on_hold_after.outcome.cashobject
additional.on_hold_after.outcome.cash.uzsstring
cashboxobject
cashbox.idintegerID
cashbox.creator_idintegerСоздатель
cashbox.company_idintegerКомпания
cashbox.namestringНазвание
cashbox.typestringТип
cashbox.created_atstringСоздано
cashbox.updated_atstringОбновлено
cashbox.is_deletedboolean
json
{
    "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
    }
}

Вернуть операцию ​

PATCH/company/cashbox/operation/{model}/return

«Вернуть»: создаёт обратную проводку к завершённому ручному доходу/расходу (та же сумма, противоположный тип); исходная запись остаётся в истории как возвращённая. Нельзя вернуть уже возвращённую операцию, саму обратную проводку, не ручную операцию или расход закрытой кассовой смены — 400.

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

Заголовки ​

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

Параметры пути ​

ПараметрОписание
modelID записи

Ответ · 200 ​

Поля ответа
ПолеТипОписание
additionalobject
additional.balances_afterobject
additional.balances_after.cashobject
additional.balances_after.cash.uzsstring
additional.balances_after.cardobject
additional.balances_after.card.uzsstring
additional.on_hold_afterarray
source_dataarray
cashbox_idintegerКасса
typestringТип
payment_typestringТип оплаты
currencystringВалюта
amountintegerСумма
statusstringСтатус
source_typestringИсточник
source_idintegerИсточник
reversal_of_idinteger
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
creator_idintegerСоздатель
idintegerID
cashboxobject
cashbox.idintegerID
cashbox.creator_idintegerСоздатель
cashbox.company_idintegerКомпания
cashbox.namestringНазвание
cashbox.typestringТип
cashbox.created_atstringСоздано
cashbox.updated_atstringОбновлено
cashbox.is_deletedboolean
sourcenull
contract_numbernullНомер контракта
json
{
    "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
}

Удалить операцию ​

PATCH/company/cashbox/operation/{model}/cancel

«Удалить» с обязательной причиной: деньги возвращаются на кассу, запись остаётся в истории со статусом canceled и cancel_comment. Инкассация удаляется целиком и только пока ждёт подтверждения (on_hold); для прочих — только ручные доходы/расходы, не возвращённые и не из закрытой смены, иначе 400.

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

Заголовки ​

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

Параметры пути ​

ПараметрОписание
modelID записи

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

ПолеТипОбязательноОписание
cancel_commentstringДаПричина удаления. Макс. 1000 символов
json
{
    "cancel_comment": "Внесено дважды"
}
bash
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 ​

Поля ответа
ПолеТипОписание
messagestringСообщение
json
{
    "message": "Success"
}

Список операций ​

GET/company/cashbox/operation

Ручные движения продажных касс пользователя (доходы, расходы, оплаты поставщикам, инкассации, переводы, конвертации); инкассация показывается одной строкой с составом в collection_items. Вкладка — filter[operation] (income, outcome, collection, transfer, pending), поиск по номеру, категории или сотруднику — filter[search], категория — filter[reason_id]; counts — число строк каждой вкладки. ?format=excel выгружает отчёт.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: 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
http
GET /company/cashbox/operation?with[0]=creator.profile&with[1]=cashbox.company&with[2]=source&filter[operation]=income

Ответ · 200 ​

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

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].idintegerID
data[].company_idintegerКомпания
data[].creator_idintegerСоздатель
data[].cashbox_idintegerКасса
data[].typestringТип
data[].payment_typestringТип оплаты
data[].currencystringВалюта
data[].amountintegerСумма
data[].commentstringКомментарий
data[].statusstringСтатус
data[].source_typestringИсточник
data[].source_idintegerИсточник
data[].source_dataarray
data[].related_to_idnull
data[].reversal_of_idnull
data[].cancel_commentnullПричина удаления
data[].additionalobject
data[].additional.on_hold_afterarray
data[].additional.balances_afterarray
data[].created_atstringСоздано
data[].updated_atstringОбновлено
data[].collection_itemsnull
data[].is_reversedboolean
data[].creatorobject
data[].creator.idintegerID
data[].creator.typestringТип
data[].creator.role_idintegerРоль
data[].creator.company_idintegerКомпания
data[].creator.partner_idnullПартнёр
data[].creator.usernamestringЛогин
data[].creator.pinflnullПИНФЛ
data[].creator.phonestringТелефон
data[].creator.sipuni_sip_numberstringVoIP - Sipuni (SIP-номер)
data[].creator.is_confirmedboolean
data[].creator.are_all_companies_availableboolean
data[].creator.last_login_atnull
data[].creator.created_atstringСоздано
data[].creator.updated_atstringОбновлено
data[].creator.is_deletedboolean
data[].creator.profileobject
data[].creator.profile.first_namenullИмя
data[].creator.profile.last_namenullФамилия
data[].creator.profile.positionnullДолжность
data[].creator.profile.birth_datenullДата рождения
data[].creator.profile.gendernullПол
data[].creator.profile.full_namestringФИО
data[].cashboxobject
data[].cashbox.idintegerID
data[].cashbox.creator_idintegerСоздатель
data[].cashbox.company_idintegerКомпания
data[].cashbox.namestringНазвание
data[].cashbox.typestringТип
data[].cashbox.created_atstringСоздано
data[].cashbox.updated_atstringОбновлено
data[].cashbox.is_deletedboolean
data[].cashbox.companyobjectКомпания
data[].cashbox.company.idintegerID
data[].cashbox.company.parent_idnullРодитель
data[].cashbox.company.partner_idintegerПартнёр
data[].cashbox.company.district_idintegerРайон
data[].cashbox.company.industry_idintegerСфера деятельности
data[].cashbox.company.namestringНазвание
data[].cashbox.company.company_namestringКомпания
data[].cashbox.company.logoobjectЛоготип
data[].cashbox.company.logo.originalobject
data[].cashbox.company.logo.widen_25object
data[].cashbox.company.logo.widen_100object
data[].cashbox.company.logo.widen_500object
data[].cashbox.company.innstringИНН
data[].cashbox.company.mfostringМФО
data[].cashbox.company.addressstringАдрес
data[].cashbox.company.latitudenullШирота
data[].cashbox.company.longitudenullДолгота
data[].cashbox.company.commentstringКомментарий
data[].cashbox.company.telegram_phonestringТелефон в Telegram
data[].cashbox.company.director_full_namestringФИО директора
data[].cashbox.company.bankstringБанк
data[].cashbox.company.payment_accountstringРасчётный счёт
data[].cashbox.company.agreement_numberstringНомер договора
data[].cashbox.company.agreement_datenull
data[].cashbox.company.atmos_terminal_idintegerID терминала в Atmos
data[].cashbox.company.uniaccess_auto_payment_credit_overdue_daysinteger
data[].cashbox.company.uniaccess_branch_idintegerBranch ID в Uniaccess
data[].cashbox.company.field_of_activitystringНаправление
data[].cashbox.company.vat_percentstringНДС (%)
data[].cashbox.company.is_using_new_my_uzcard_auto_payment_by_pinflbooleanИспользует новый метод MyUzcard для автосписания по ПИНФЛ
data[].cashbox.company.bonus_entry_periodintegerПериод учёта бонусов (в месяцах)
data[].cashbox.company.abc_segment_ainteger
data[].cashbox.company.abc_segment_binteger
data[].cashbox.company.abc_segment_cinteger
data[].cashbox.company.is_pos_window_enabledboolean
data[].cashbox.company.cashbox_shift_settingsobject
data[].cashbox.company.cashbox_shift_settings.is_enabledbooleanВключено
data[].cashbox.company.has_bank_payment_typeboolean
data[].cashbox.company.is_ican_turned_onbooleanICAN включён
data[].cashbox.company.is_partner_turned_onbooleanПартнёр включён
data[].cashbox.company.created_atstringСоздано
data[].cashbox.company.updated_atstringОбновлено
data[].cashbox.company.is_deletedboolean
data[].sourceobject
data[].source.idintegerID
data[].source.parent_idnullРодитель
data[].source.creator_idintegerСоздатель
data[].source.company_idintegerКомпания
data[].source.namestringНазвание
data[].source.typestringТип
data[].source.descriptionstringОписание
data[].source.created_atstringСоздано
data[].source.updated_atstringОбновлено
data[].source.is_deletedboolean
data[].source.parentnull
data[].contract_numbernullНомер контракта
json
{
    "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
    }
}

Добавить доход или расход ​

POST/company/cashbox/operation

Вносит вручную доход (income) или расход (outcome) продажной кассы; запись сразу completed и меняет остаток. Категория необязательна; расход не может превышать остаток кассы в этом типе оплаты и валюте.

Заголовки ​

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

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

ПолеТипОбязательноОписание
typestringДаТип. Допустимые значения: income, outcome
cashbox_idintegerДаКасса. ID существующей записи, доступной пользователю
payment_typestringДаТип оплаты. Допустимые значения: cash, card, bank
currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
amountnumberДаСумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
transaction_reason_idintegerНетКатегория (статья) операции. ID существующей записи, доступной пользователю
creator_idintegerНетСотрудник, проводивший деньги; по умолчанию текущий пользователь. ID существующей записи, доступной пользователю
commentstringНетКомментарий. Макс. 1000 символов
json
{
    "cashbox_id": 2,
    "payment_type": "cash",
    "currency": "uzs",
    "amount": 500,
    "comment": "Аренда",
    "type": "income",
    "transaction_reason_id": 2,
    "creator_id": 4
}
bash
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 ​

Поля ответа
ПолеТипОписание
additionalobject
additional.balances_afterobject
additional.balances_after.cashobject
additional.balances_after.cash.uzsstring
additional.balances_after.cardobject
additional.balances_after.card.uzsstring
additional.on_hold_afterarray
source_dataarray
cashbox_idintegerКасса
creator_idintegerСоздатель
typestringТип
payment_typestringТип оплаты
currencystringВалюта
amountintegerСумма
commentstringКомментарий
statusstringСтатус
source_typestringИсточник
source_idintegerИсточник
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
idintegerID
sourcenull
contract_numbernullНомер контракта
json
{
    "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
}