Skip to content

Отложки (бронь) ​

Отложенные для покупателя товары: остаток резервируется со склада в момент создания и возвращается при отмене. Отложка закрывается продажей с hold_id.

МетодАдресНазначение
PATCH/company/trade/hold/{model}/cancelОтменить отложку
PATCH/company/trade/hold/{model}/add-productsДобавить товары в отложку
PATCH/company/trade/hold/{model}/update-productsИзменить состав отложки
GET/company/trade/holdСписок отложек
GET/company/trade/hold/{model}Детали отложки
POST/company/trade/holdСоздать отложку

Отменить отложку ​

PATCH/company/trade/hold/{model}/cancel

Переводит отложку в canceled и возвращает зарезервированные товары на склад. Доступно только для отложки в статусе in_progress.

Из формы (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/trade/hold/{model}/add-products

«Добавить к текущим»: товары и комплекты из чека кассы резервируются в открытой отложке, черновик чека cheque на кассе очищается. Товар, уже лежащий в отложке, добавляется по цене, по которой он был зарезервирован. Только для статуса in_progress.

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

Заголовки ​

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

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

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

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

ПолеТипОбязательноОписание
cashbox_idintegerДаКасса. ID существующей записи, доступной пользователю
chequeintegerДаЧек. Не меньше 1. Не больше 3
productsobject[]НетПродукты. Макс. 100 элементов
products[].product_idintegerДаПродукт. Без повторов
products[].quantitynumberДаКоличество. До 8 знаков после запятой. Не меньше 0.00000001
bundlesobject[]НетКомплекты. Макс. 100 элементов
bundles[].bundle_idintegerДаКомплект
bundles[].quantityintegerНетКоличество. Не меньше 1. Не больше 1000
bundles[].pricenumberНетЦена. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
json
{
    "cashbox_id": 2,
    "cheque": 1,
    "products": [
        {
            "product_id": 2,
            "quantity": 1
        }
    ]
}
bash
curl -X PATCH "https://api.wasyt.uz/company/trade/hold/1/add-products" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"cashbox_id":2,"cheque":1,"products":[{"product_id":2,"quantity":1}]}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
creator_idintegerСоздатель
updater_idintegerОбновитель
company_idintegerКомпания
stock_idintegerСклад
sale_idnullПродажа
full_namestringФИО
datestringДата
commentstringКомментарий
currencystringВалюта
amountintegerСумма
statusstringСтатус
created_atstringСоздано
updated_atstringОбновлено
json
{
    "id": 1,
    "creator_id": 2,
    "updater_id": 2,
    "company_id": 1,
    "stock_id": 1,
    "sale_id": null,
    "full_name": "Full name 1",
    "date": "2026-09-30",
    "comment": "Comment 1",
    "currency": "uzs",
    "amount": 7000,
    "status": "in_progress",
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:54:04"
}

Пример ошибки · 422 ​

json
{
    "message": "Значение поля Количество не может быть больше 2.",
    "errors": {
        "products.0.quantity": "Значение поля Количество не может быть больше 2."
    }
}

Изменить состав отложки ​

PATCH/company/trade/hold/{model}/update-products

Приводит отложку к переданному составу: увеличение количества резервирует разницу со склада, уменьшение возвращает её, товары и комплекты (bundle_keys), не попавшие в запрос, удаляются из отложки с возвратом остатка. Количество ограничено уже отложенным плюс остатком склада.

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

Заголовки ​

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

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

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

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

ПолеТипОбязательноОписание
productsobject[]НетПродукты. Макс. 100 элементов
products[].product_idintegerДаПродукт. Без повторов
products[].quantitynumberДаКоличество. До 8 знаков после запятой. Не меньше 0.00000001
bundle_keysarrayНетМакс. 1000 элементов
bundle_keys[]stringДаБез повторов
json
{
    "products": [
        {
            "product_id": 1,
            "quantity": 1
        },
        {
            "product_id": 2,
            "quantity": 1
        }
    ]
}
bash
curl -X PATCH "https://api.wasyt.uz/company/trade/hold/1/update-products" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"products":[{"product_id":1,"quantity":1},{"product_id":2,"quantity":1}]}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
creator_idintegerСоздатель
updater_idintegerОбновитель
company_idintegerКомпания
stock_idintegerСклад
sale_idnullПродажа
full_namestringФИО
datestringДата
commentstringКомментарий
currencystringВалюта
amountintegerСумма
statusstringСтатус
created_atstringСоздано
updated_atstringОбновлено
json
{
    "id": 1,
    "creator_id": 2,
    "updater_id": 2,
    "company_id": 1,
    "stock_id": 1,
    "sale_id": null,
    "full_name": "Full name 1",
    "date": "2026-09-30",
    "comment": "Comment 1",
    "currency": "uzs",
    "amount": 3000,
    "status": "in_progress",
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:54:10"
}

Пример ошибки · 422 ​

json
{
    "message": "Данного товара нет в отложке",
    "errors": {
        "products.0.product_id": "Данного товара нет в отложке"
    }
}

Список отложек ​

GET/company/trade/hold

Отложки компании с пагинацией, фильтрами и суммой amount в валюте продажи.

Заголовки ​

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

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

ПараметрОписание
filter[id]ID — точное значение
filter[creator_id]Создатель — точное значение
filter[updater_id]Обновитель — точное значение
filter[company_id]Компания — точное значение
filter[stock_id]Склад — точное значение
filter[full_name]ФИО — поиск по части строки
filter[date]Дата — период: [0] — с, [1] — по (Y-m-d)
filter[currency]Валюта — точное значение
filter[status]Статус — точное значение
filter[created_at]Создано — период: [0] — с, [1] — по (Y-m-d)
sort[]Сортировка, - — по убыванию: id, -id
with[]Подгрузить связи: creator.profile, updater.profile, company, stock
pageНомер страницы, с 1
page-sizeЗаписей на странице, не больше 20
http
GET /company/trade/hold?sort[0]=id&sort[1]=-id

Ответ · 200 ​

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

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].idintegerID
data[].creator_idintegerСоздатель
data[].updater_idintegerОбновитель
data[].company_idintegerКомпания
data[].stock_idintegerСклад
data[].sale_idnullПродажа
data[].full_namestringФИО
data[].datestringДата
data[].commentstringКомментарий
data[].currencystringВалюта
data[].amountintegerСумма
data[].statusstringСтатус
data[].created_atstringСоздано
data[].updated_atstringОбновлено
json
{
    "data": [
        {
            "id": 1,
            "creator_id": 2,
            "updater_id": 2,
            "company_id": 1,
            "stock_id": 1,
            "sale_id": null,
            "full_name": "Full name 1",
            "date": "2026-09-30",
            "comment": "Comment 1",
            "currency": "uzs",
            "amount": 5000,
            "status": "in_progress",
            "created_at": "2026-09-30 12:47:59",
            "updated_at": "2026-09-30 12:47:59"
        }
    ],
    "links": {
        "first": "https://api.wasyt.uz/company/trade/hold?page=1",
        "last": "https://api.wasyt.uz/company/trade/hold?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/trade/hold",
        "per_page": 20,
        "to": 1,
        "total": 1
    }
}

Детали отложки ​

GET/company/trade/hold/{model}

Одна отложка: покупатель, касса, склад, дата, статус и сумма.

Заголовки ​

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

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

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

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
creator_idintegerСоздатель
updater_idintegerОбновитель
company_idintegerКомпания
stock_idintegerСклад
sale_idnullПродажа
full_namestringФИО
datestringДата
commentstringКомментарий
currencystringВалюта
amountintegerСумма
statusstringСтатус
created_atstringСоздано
updated_atstringОбновлено
json
{
    "id": 1,
    "creator_id": 2,
    "updater_id": 2,
    "company_id": 1,
    "stock_id": 1,
    "sale_id": null,
    "full_name": "Full name 1",
    "date": "2026-09-30",
    "comment": "Comment 1",
    "currency": "uzs",
    "amount": 5000,
    "status": "in_progress",
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:47:59"
}

Создать отложку ​

POST/company/trade/hold

Резервирует товары и комплекты под покупателя full_name в валюте продажи компании: остаток сразу уменьшается на складе, черновик чека cheque на кассе очищается. Нужна хотя бы одна строка; товар, продаваемый только в комплекте, отдельно отложить нельзя.

Заголовки ​

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

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

ПолеТипОбязательноОписание
cashbox_idintegerДаКасса. ID существующей записи, доступной пользователю
stock_idintegerДаСклад. ID существующей записи, доступной пользователю
full_namestringДаФИО. Макс. 100 символов
datestring (date)НетДата. Формат Y-m-d. Не раньше текущей даты
commentstringНетКомментарий. Макс. 1000 символов
chequeintegerДаЧек. Не меньше 1. Не больше 3
productsobject[]НетПродукты. Макс. 100 элементов
products[].product_idintegerДаПродукт. Без повторов
products[].quantitynumberДаКоличество. До 8 знаков после запятой. Не меньше 0.00000001
bundlesobject[]НетКомплекты. Макс. 100 элементов
bundles[].bundle_idintegerДаКомплект
bundles[].quantityintegerНетКоличество. Не меньше 1. Не больше 1000
bundles[].pricenumberНетЦена. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
json
{
    "cashbox_id": 2,
    "stock_id": 1,
    "full_name": "Full name 3",
    "date": "2026-09-30",
    "comment": "Comment 3",
    "cheque": 1,
    "products": [
        {
            "product_id": 1,
            "quantity": 1
        },
        {
            "product_id": 2,
            "quantity": 2
        }
    ]
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/hold" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"cashbox_id":2,"stock_id":1,"full_name":"Full name 3","date":"2026-09-30","comment":"Comment 3","cheque":1,"products":[{"product_id":1,"quantity":1},{"product_id":2,"quantity":2}]}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
stock_idintegerСклад
full_namestringФИО
datestringДата
commentstringКомментарий
currencystringВалюта
updated_atstringОбновлено
created_atstringСоздано
updater_idintegerОбновитель
creator_idintegerСоздатель
company_idintegerКомпания
idintegerID
amountintegerСумма
json
{
    "stock_id": 1,
    "full_name": "Full name 3",
    "date": "2026-09-30",
    "comment": "Comment 3",
    "currency": "uzs",
    "updated_at": "2026-09-30 12:54:08",
    "created_at": "2026-09-30 12:54:08",
    "updater_id": 2,
    "creator_id": 2,
    "company_id": 1,
    "id": 2,
    "amount": 4801100
}