Skip to content

Приходы ​

Документы поступления товара на склад от поставщика. Приход создаётся в статусе waiting_for_confirmation и двигает остатки, цены и баланс поставщика только после завершения.

МетодАдресНазначение
PATCH/company/trade/purchase/{model}/completeЗавершить приход
PATCH/company/trade/purchase/{model}/cancelОтменить приход
GET/company/trade/purchase/{model}/productsТовары прихода
GET/company/trade/purchaseСписок приходов
GET/company/trade/purchase/{model}Детали прихода
POST/company/trade/purchaseСоздать приход
PUT/company/trade/purchase/{model}Изменить приход

Завершить приход ​

PATCH/company/trade/purchase/{model}/complete

Переводит приход из waiting_for_confirmation в completed: товар поступает на склад, цены продажи товаров обновляются, при указанном поставщике создаётся операция по его балансу. Для валюты, отличной от UZS, у компании должен быть установлен курс.

Из формы (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/purchase/{model}/cancel

Переводит приход в canceled. Только для прихода в статусе waiting_for_confirmation; остатки не меняются.

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

Простой список строк прихода без пагинации: название, штрихкод, приходная цена, количество и дата.

Заголовки ​

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

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

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

Ответ · 200 ​

Поля ответа
ПолеТипОписание
[].namestringНазвание
[].full_textstringПолный текст
[].barcodestringШтрих-код
[].purchase_pricestringЦена при покупке
[].quantitystringКоличество
[].created_atstringСоздано
json
[
    {
        "name": "Product 1",
        "full_text": "Product 1",
        "barcode": "0000000000001",
        "purchase_price": "1000.00",
        "quantity": "1.0000",
        "created_at": "2026-09-30 12:47:59"
    },
    {
        "name": "Product 1-1",
        "full_text": "Product 1-1 full text",
        "barcode": "0000000000011",
        "purchase_price": "2000.00",
        "quantity": "2.0000",
        "created_at": "2026-09-30 12:47:59"
    }
]

Список приходов ​

GET/company/trade/purchase

Приходы с пагинацией и фильтрами. Дополнительно total за текущий месяц (month) и день (day): сумма завершённых приходов по валютам и общее количество поступивших единиц.

Заголовки ​

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

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

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

Ответ · 200 ​

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

Поля ответа
ПолеТипОписание
dataobject[]Данные
data[].idintegerID
data[].creator_idintegerСоздатель
data[].company_idintegerКомпания
data[].stock_idintegerСклад
data[].supplier_idintegerПоставщик
data[].inventory_idnullИнвентаризация
data[].namestringНазвание
data[].datetimestringДата и время
data[].currencystringВалюта
data[].statusstringСтатус
data[].purchase_priceintegerЦена при покупке
data[].sale_priceintegerЦена при продаже
data[].created_atstringСоздано
data[].updated_atstringОбновлено
data[].sale_price_uzsinteger
json
{
    "data": [
        {
            "id": 1,
            "creator_id": 2,
            "company_id": 1,
            "stock_id": 1,
            "supplier_id": 1,
            "inventory_id": null,
            "name": "Purchase 1",
            "datetime": "2026-09-30 12:47:59",
            "currency": "uzs",
            "status": "waiting_for_confirmation",
            "purchase_price": 5000,
            "sale_price": 5900,
            "created_at": "2026-09-30 12:47:59",
            "updated_at": "2026-09-30 12:47:59",
            "sale_price_uzs": 5900
        }
    ],
    "links": {
        "first": "https://api.wasyt.uz/company/trade/purchase?page=1",
        "last": "https://api.wasyt.uz/company/trade/purchase?page=1",
        "prev": null,
        "next": null
    },
    "meta": {
        "current_page": 1,
        "from": 1,
        "last_page": 1,
        "links": [],
        "path": "https://api.wasyt.uz/company/trade/purchase",
        "per_page": 20,
        "to": 1,
        "total": 1
    },
    "total": {
        "month": {
            "purchase_price": [],
            "products_quantity": "0"
        },
        "day": {
            "purchase_price": [],
            "products_quantity": "0"
        }
    }
}

Детали прихода ​

GET/company/trade/purchase/{model}

Один приход: склад, поставщик, валюта, статус и суммы по приходным и продажным ценам.

Заголовки ​

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

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

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

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
creator_idintegerСоздатель
company_idintegerКомпания
stock_idintegerСклад
supplier_idintegerПоставщик
inventory_idnullИнвентаризация
namestringНазвание
datetimestringДата и время
currencystringВалюта
statusstringСтатус
purchase_priceintegerЦена при покупке
sale_priceintegerЦена при продаже
created_atstringСоздано
updated_atstringОбновлено
stockobject
stock.idintegerID
stock.creator_idintegerСоздатель
stock.company_idintegerКомпания
stock.namestringНазвание
stock.is_availableboolean
stock.created_atstringСоздано
stock.updated_atstringОбновлено
stock.is_deletedboolean
supplierobject
supplier.idintegerID
supplier.creator_idintegerСоздатель
supplier.company_idintegerКомпания
supplier.namestringНазвание
supplier.full_namestringФИО
supplier.typestringТип
supplier.phonestringТелефон
supplier.additional_phonesarrayДополнительные телефоны
supplier.innstringИНН
supplier.addressstringАдрес
supplier.categorynullКатегория
supplier.currencynullВалюта
supplier.currenciesarrayВалюты
supplier.bank_accountnullРасчётный счёт
supplier.mfonullМФО
supplier.bank_namenullБанк
supplier.photonull
supplier.photo_thumbsarray
supplier.start_balancesobject
supplier.start_balances.eurinteger
supplier.start_balances.rubinteger
supplier.start_balances.usdinteger
supplier.start_balances.uzsinteger
supplier.start_balance_set_atnull
supplier.created_atstringСоздано
supplier.updated_atstringОбновлено
supplier.is_deletedboolean
sale_price_uzsinteger
json
{
    "id": 1,
    "creator_id": 2,
    "company_id": 1,
    "stock_id": 1,
    "supplier_id": 1,
    "inventory_id": null,
    "name": "Purchase 1",
    "datetime": "2026-09-30 12:47:59",
    "currency": "uzs",
    "status": "waiting_for_confirmation",
    "purchase_price": 5000,
    "sale_price": 5900,
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:47:59",
    "stock": {
        "id": 1,
        "creator_id": 2,
        "company_id": 1,
        "name": "Stock 1",
        "is_available": true,
        "created_at": "2026-09-30 12:47:59",
        "updated_at": "2026-09-30 12:47:59",
        "is_deleted": false
    },
    "supplier": {
        "id": 1,
        "creator_id": 2,
        "company_id": 1,
        "name": "Supplier 1",
        "full_name": "Full name 1",
        "type": "person",
        "phone": "998000000001",
        "additional_phones": [
            "998000000011",
            "998000000012"
        ],
        "inn": "000000001",
        "address": "Address 1",
        "category": null,
        "currency": null,
        "currencies": [],
        "bank_account": null,
        "mfo": null,
        "bank_name": null,
        "photo": null,
        "photo_thumbs": [],
        "start_balances": {
            "eur": 0,
            "rub": 0,
            "usd": 0,
            "uzs": 1000
        },
        "start_balance_set_at": null,
        "created_at": "2026-09-30 12:47:58",
        "updated_at": "2026-09-30 12:47:58",
        "is_deleted": false
    },
    "sale_price_uzs": 5900
}

Создать приход ​

POST/company/trade/purchase

Создаёт приход в статусе waiting_for_confirmation со строками товаров; остатки меняются только после завершения. Цена продажи строки не ниже приходной, валюта должна совпадать с валютой расчётов поставщика, дата — не старше месяца и не в будущем. Без name номер присваивается автоматически; is_last_step должен быть true.

Заголовки ​

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

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

ПолеТипОбязательноОписание
company_idintegerДаКомпания. ID существующей записи, доступной пользователю
stock_idintegerДаСклад. ID существующей записи, доступной пользователю
supplier_idintegerНетПоставщик. ID существующей записи, доступной пользователю
namestringНетНазвание. Макс. 255 символов
datetimestring (date)НетДата и время. Формат Y-m-d H:i:s. Не раньше текущей даты. Не позже текущей даты
currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
productsobject[]ДаПродукты. Макс. 5000 элементов
products[].idintegerНетID
products[].product_idintegerДаПродукт. Без повторов
products[].purchase_pricenumberДаЦена при покупке. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
products[].sale_pricenumberДаЦена при продаже. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99. ≥ products[].purchase_price
products[].quantitynumberДаКоличество. До 4 знаков после запятой. Не меньше 0.0001
is_last_stepbooleanНетДолжно быть true
json
{
    "company_id": 1,
    "stock_id": 1,
    "supplier_id": 1,
    "name": "Purchase 3",
    "datetime": "2026-09-30 12:54:27",
    "currency": "uzs",
    "products": [
        {
            "product_id": 1,
            "purchase_price": 3000,
            "sale_price": 3900,
            "quantity": 3
        },
        {
            "product_id": 2,
            "purchase_price": 4000,
            "sale_price": 5600,
            "quantity": 4
        },
        {
            "product_id": 3,
            "purchase_price": 1,
            "sale_price": 2,
            "quantity": 3
        }
    ],
    "is_last_step": 1
}
bash
curl -X POST "https://api.wasyt.uz/company/trade/purchase" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_id":1,"stock_id":1,"supplier_id":1,"name":"Purchase 3","datetime":"2026-09-30 12:54:27","currency":"uzs","products":[{"product_id":1,"purchase_price":3000,"sale_price":3900,"quantity":3},{"product_id":2,"purchase_price":4000,"sale_price":5600,"quantity":4},{"product_id":3,"purchase_price":1,"sale_price":2,"quantity":3}],"is_last_step":1}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
company_idintegerКомпания
stock_idintegerСклад
supplier_idintegerПоставщик
namestringНазвание
datetimestringДата и время
currencystringВалюта
updated_atstringОбновлено
created_atstringСоздано
creator_idintegerСоздатель
idintegerID
purchase_priceintegerЦена при покупке
sale_priceintegerЦена при продаже
sale_price_uzsinteger
json
{
    "company_id": 1,
    "stock_id": 1,
    "supplier_id": 1,
    "name": "Purchase 3",
    "datetime": "2026-09-30 12:54:27",
    "currency": "uzs",
    "updated_at": "2026-09-30 12:54:27",
    "created_at": "2026-09-30 12:54:27",
    "creator_id": 2,
    "id": 130,
    "purchase_price": 25003,
    "sale_price": 34106,
    "sale_price_uzs": 34106
}

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

json
{
    "message": "Допустимые значения для Валюта: uzs, usd, rub.",
    "errors": {
        "currency": [
            "Допустимые значения для Валюта: uzs, usd, rub."
        ]
    }
}

Изменить приход ​

PUT/company/trade/purchase/{model}

Полностью перезаписывает приход и его строки теми же правилами, что при создании. Разрешено только в статусе waiting_for_confirmation; пустое name сохраняет прежний номер.

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

Заголовки ​

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

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

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

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

ПолеТипОбязательноОписание
company_idintegerДаКомпания. ID существующей записи, доступной пользователю
stock_idintegerДаСклад. ID существующей записи, доступной пользователю
supplier_idintegerНетПоставщик. ID существующей записи, доступной пользователю
namestringНетНазвание. Макс. 255 символов
datetimestring (date)НетДата и время. Формат Y-m-d H:i:s. Не раньше текущей даты. Не позже текущей даты
currencystringДаВалюта. Допустимые значения: uzs, usd, eur, rub
productsobject[]ДаПродукты. Макс. 5000 элементов
products[].idintegerНетID
products[].product_idintegerДаПродукт. Без повторов
products[].purchase_pricenumberДаЦена при покупке. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99
products[].sale_pricenumberДаЦена при продаже. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99. ≥ products[].purchase_price
products[].quantitynumberДаКоличество. До 4 знаков после запятой. Не меньше 0.0001
is_last_stepbooleanНетДолжно быть true
json
{
    "company_id": 1,
    "stock_id": 1,
    "supplier_id": 1,
    "name": "Purchase 1",
    "datetime": "2026-09-30 12:54:31",
    "currency": "uzs",
    "products": [
        {
            "id": 1,
            "product_id": 1,
            "purchase_price": 1000,
            "sale_price": 1100,
            "quantity": 1
        },
        {
            "id": 2,
            "product_id": 2,
            "purchase_price": 2000,
            "sale_price": 2400,
            "quantity": 2
        }
    ],
    "is_last_step": 1
}
bash
curl -X PUT "https://api.wasyt.uz/company/trade/purchase/1" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"company_id":1,"stock_id":1,"supplier_id":1,"name":"Purchase 1","datetime":"2026-09-30 12:54:31","currency":"uzs","products":[{"id":1,"product_id":1,"purchase_price":1000,"sale_price":1100,"quantity":1},{"id":2,"product_id":2,"purchase_price":2000,"sale_price":2400,"quantity":2}],"is_last_step":1}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
idintegerID
creator_idintegerСоздатель
company_idintegerКомпания
stock_idintegerСклад
supplier_idintegerПоставщик
inventory_idnullИнвентаризация
namestringНазвание
datetimestringДата и время
currencystringВалюта
statusstringСтатус
purchase_priceintegerЦена при покупке
sale_priceintegerЦена при продаже
created_atstringСоздано
updated_atstringОбновлено
sale_price_uzsinteger
json
{
    "id": 1,
    "creator_id": 2,
    "company_id": 1,
    "stock_id": 1,
    "supplier_id": 1,
    "inventory_id": null,
    "name": "Purchase 1",
    "datetime": "2026-09-30 12:54:31",
    "currency": "uzs",
    "status": "waiting_for_confirmation",
    "purchase_price": 5000,
    "sale_price": 5900,
    "created_at": "2026-09-30 12:47:59",
    "updated_at": "2026-09-30 12:54:31",
    "sale_price_uzs": 5900
}