Skip to content

Транзакции кассы ​

Все движения денег по кассам: доходы и расходы по статьям, оплаты поставщикам, переводы между кассами, конвертации, инкассации, а также проводки продаж и долгов. Каждая транзакция меняет остаток кассы по своему типу оплаты и валюте.

МетодАдресНазначение
POST/company/cashbox/transaction/cashboxПеревод между кассами
POST/company/cashbox/transaction/conversionКонвертация внутри кассы
PATCH/company/cashbox/transaction/{model}/completeПодтвердить транзакцию
PATCH/company/cashbox/transaction/{model}/cancelОтменить транзакцию
GET/company/cashbox/transactionСписок транзакций
GET/company/cashbox/transaction/{model}Транзакция
POST/company/cashbox/transactionСоздать транзакцию

Перевод между кассами ​

POST/company/cashbox/transaction/cashbox

Переводит сумму из кассы cashbox_id в кассу source_id; допускается только между основной и продажной кассой. Из основной перевод проходит сразу (completed), из продажной — ждёт подтверждения получателем (on_hold), при этом деньги уже списаны.

Заголовки ​

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

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

ПолеТипОбязательноОписание
cashbox_idintegerДаКасса-отправитель. ID существующей записи, доступной пользователю
payment_typestringДаТип оплаты. Допустимые значения: bank, card, cash, system
currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
amountnumberДаСумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
commentstringНетКомментарий. Макс. 1000 символов
source_idintegerДаКасса-получатель. ID существующей записи, доступной пользователю
json
{
    "payment_type": "cash",
    "currency": "uzs",
    "amount": 1000,
    "comment": "Comment 3",
    "cashbox_id": 1,
    "source_id": 2
}
bash
curl -X POST "https://api.wasyt.uz/company/cashbox/transaction/cashbox" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"payment_type":"cash","currency":"uzs","amount":1000,"comment":"Comment 3","cashbox_id":1,"source_id":2}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
additionalobject
additional.balances_afterobject
additional.balances_after.cashobject
additional.balances_after.cash.uzsstring
additional.on_hold_afterarray
source_dataarray
cashbox_idintegerКасса
payment_typestringТип оплаты
currencystringВалюта
amountintegerСумма
commentstringКомментарий
source_idintegerИсточник
typestringТип
source_typestringИсточник
statusstringСтатус
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
creator_idintegerСоздатель
idintegerID
sourcenull
contract_numbernullНомер контракта
json
{
    "additional": {
        "balances_after": {
            "cash": {
                "uzs": "0.00"
            }
        },
        "on_hold_after": []
    },
    "source_data": [],
    "cashbox_id": 1,
    "payment_type": "cash",
    "currency": "uzs",
    "amount": 1000,
    "comment": "Comment 3",
    "source_id": 2,
    "type": "outcome",
    "source_type": "cashbox",
    "status": "completed",
    "updated_at": "2026-09-30 12:51:24",
    "created_at": "2026-09-30 12:51:24",
    "company_id": 1,
    "creator_id": 2,
    "id": 34,
    "source": null,
    "contract_number": null
}

Конвертация внутри кассы ​

POST/company/cashbox/transaction/conversion

Переводит деньги со счёта кассы source_id (остаток с другим типом оплаты или валютой) на счёт payment_type + currency той же кассы. Валюта меняется только через UZS; курс currency_rate должен быть в пределах ±20% от курса компании (между счетами UZS курс равен 1). Проводится сразу (completed).

Заголовки ​

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

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

ПолеТипОбязательноОписание
cashbox_idintegerДаКасса. ID существующей записи, доступной пользователю
payment_typestringДаТип оплаты. Допустимые значения: bank, card, cash, system
currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
amountnumberДаСумма в валюте списываемого остатка. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
commentstringНетКомментарий. Макс. 1000 символов
source_idintegerДаID остатка кассы, с которого списываются деньги. ID существующей записи, доступной пользователю
currency_ratenumberДаКурс. До 2 знаков после запятой. Не меньше 1. Не больше 999999999999.99
json
{
    "cashbox_id": 1,
    "payment_type": "card",
    "amount": 1000,
    "comment": "Comment 3",
    "source_id": 1,
    "currency_rate": 1000,
    "currency": "uzs"
}
bash
curl -X POST "https://api.wasyt.uz/company/cashbox/transaction/conversion" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"cashbox_id":1,"payment_type":"card","amount":1000,"comment":"Comment 3","source_id":1,"currency_rate":1000,"currency":"uzs"}'

Ответ · 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_dataobject
source_data.original_amountinteger
source_data.currency_rateintegerКурс
cashbox_idintegerКасса
payment_typestringТип оплаты
currencystringВалюта
amountintegerСумма
commentstringКомментарий
source_idintegerИсточник
typestringТип
statusstringСтатус
source_typestringИсточник
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
creator_idintegerСоздатель
idintegerID
sourcenull
contract_numbernullНомер контракта
json
{
    "additional": {
        "balances_after": {
            "cash": {
                "uzs": "1000.00"
            },
            "card": {
                "uzs": "1000.00"
            }
        },
        "on_hold_after": []
    },
    "source_data": {
        "original_amount": 1000,
        "currency_rate": 1
    },
    "cashbox_id": 1,
    "payment_type": "card",
    "currency": "uzs",
    "amount": 1000,
    "comment": "Comment 3",
    "source_id": 1,
    "type": "income",
    "status": "completed",
    "source_type": "conversion",
    "updated_at": "2026-09-30 12:51:26",
    "created_at": "2026-09-30 12:51:26",
    "company_id": 1,
    "creator_id": 2,
    "id": 41,
    "source": null,
    "contract_number": null
}

Подтвердить транзакцию ​

PATCH/company/cashbox/transaction/{model}/complete

Подтверждает получение перевода в статусе pending или on_hold: транзакция становится completed, деньги зачисляются на кассу-получатель. Инкассации подтверждаются отдельно; сотрудник может подтвердить только перевод на свою кассу, иначе 400.

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

Заголовки ​

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

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

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

Ответ · 200 ​

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

Отменить транзакцию ​

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

Отменяет транзакцию (canceled) и откатывает её влияние на остатки, связанную проводку и оплату поставщику. Нельзя отменить уже отменённую, связанную (ответную) транзакцию, проводки продаж, смен, долгов, кредитов и инкассаций, а также приходную часть конвертации — 400.

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

Заголовки ​

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

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

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

Ответ · 200 ​

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

Список транзакций ​

GET/company/cashbox/transaction

Транзакции по кассам, доступным пользователю; filter[contract_number] ищет по номеру договора ICAN. show[]=total вместе с filter[total_date_from] и filter[total_date_to] (Y-m-d H:i:s) добавляет total — суммы завершённых транзакций по типу, типу оплаты, источнику и валюте. ?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[type]Тип — точное значение
filter[payment_type]Тип оплаты — точное значение
filter[currency]Валюта — точное значение
filter[status]Статус — точное значение
filter[source_type]Источник — одно значение или список filter[source_type][]
filter[source_id]Источник — точное значение
filter[created_at]Создано — период: [0] — с, [1] — по (Y-m-d)
sort[]Сортировка, - — по убыванию: id, -id
with[]Подгрузить связи: creator.profile, cashbox, source
pageНомер страницы, с 1
page-sizeЗаписей на странице, не больше 20
http
GET /company/cashbox/transaction?filter[id]=1&filter[company_id][0]=1&filter[company_id][1]=2&filter[creator_id]=2&filter[cashbox_id]=1&filter[type]=income&filter[payment_type]=cash&filter[currency]=uzs&filter[status]=completed&filter[source_type][0]=cashbox&filter[source_type][1]=reason&filter[source_id]=1&filter[created_at][0]=2026-09-29&filter[created_at][1]=2026-09-30

Ответ · 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[].sourcenull
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",
            "source": null,
            "contract_number": null
        }
    ],
    "links": {
        "first": "https://api.wasyt.uz/company/cashbox/transaction?page=1",
        "last": "https://api.wasyt.uz/company/cashbox/transaction?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/cashbox/transaction",
        "per_page": 20,
        "to": 1,
        "total": 1
    }
}

Транзакция ​

GET/company/cashbox/transaction/{model}

Одна транзакция кассы; with[]=source подгружает её источник (кассу, инкассацию, статью или поставщика).

Заголовки ​

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

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

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

Ответ · 200 ​

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

Создать транзакцию ​

POST/company/cashbox/transaction

Доход или расход кассы по статье (source_type = reason, только вложенная статья того же типа) либо оплата поставщику (source_type = supplier, только расход). Доход вносится только в основную кассу, расход — из любой доступной. Проводится сразу (completed); оплата поставщику уменьшает долг перед ним.

Заголовки ​

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

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

ПолеТипОбязательноОписание
cashbox_idintegerДаКасса. ID существующей записи, доступной пользователю
typestringДаТип. Допустимые значения: income, outcome
payment_typestringДаТип оплаты. Допустимые значения: bank, card, cash, system
currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
amountnumberДаСумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
commentstringДаКомментарий. Макс. 1000 символов
source_typestringДаИсточник. Допустимые значения: reason, supplier
source_idintegerДаID статьи (reason) или поставщика (supplier). ID существующей записи, доступной пользователю
json
{
    "cashbox_id": 1,
    "payment_type": "cash",
    "currency": "uzs",
    "amount": 1000,
    "comment": "Comment 3",
    "type": "income",
    "source_type": "reason",
    "source_id": 2
}
bash
curl -X POST "https://api.wasyt.uz/company/cashbox/transaction" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"cashbox_id":1,"payment_type":"cash","currency":"uzs","amount":1000,"comment":"Comment 3","type":"income","source_type":"reason","source_id":2}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
additionalobject
additional.balances_afterobject
additional.balances_after.cashobject
additional.balances_after.cash.uzsstring
additional.on_hold_afterarray
source_dataarray
cashbox_idintegerКасса
typestringТип
payment_typestringТип оплаты
currencystringВалюта
amountintegerСумма
commentstringКомментарий
source_typestringИсточник
source_idintegerИсточник
statusstringСтатус
updated_atstringОбновлено
created_atstringСоздано
company_idintegerКомпания
creator_idintegerСоздатель
idintegerID
sourcenull
contract_numbernullНомер контракта
json
{
    "additional": {
        "balances_after": {
            "cash": {
                "uzs": "2000.00"
            }
        },
        "on_hold_after": []
    },
    "source_data": [],
    "cashbox_id": 1,
    "type": "income",
    "payment_type": "cash",
    "currency": "uzs",
    "amount": 1000,
    "comment": "Comment 3",
    "source_type": "reason",
    "source_id": 2,
    "status": "completed",
    "updated_at": "2026-09-30 12:51:27",
    "created_at": "2026-09-30 12:51:27",
    "company_id": 1,
    "creator_id": 2,
    "id": 49,
    "source": null,
    "contract_number": null
}