Кредитные продажи
Продажа по кредитному контракту ICAN: расчёт суммы, создание продажи (source_type = credit) со списанием товара со склада и её отмена. Запросы принимаются и для отключённой компании или филиала.
| Метод | Адрес | Назначение |
|---|---|---|
| POST | /external/credit/trade-sale/products-total-price | Рассчитать сумму товаров |
| POST | /external/credit/trade-sale/create | Создать кредитную продажу |
| POST | /external/credit/trade-sale/cancel | Отменить кредитную продажу |
Рассчитать сумму товаров
/external/credit/trade-sale/products-total-priceПроверяет строки будущей кредитной продажи (цена установлена, товар оприходован, количество не больше остатка, минимальная цена продажи) и ничего не сохраняет. Цена строки — переданная price, без неё — текущая цена каталога в currency. Возвращает принятые данные, products_total_price (сумма товарных строк за вычетом скидок) и products[].effective_min_price (0 — минимума нет).
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
External-System-Secret-Key | {external_system_secret_key} | Секретный ключ внешней системы |
Company-Wasyt-Uuid | {company_wasyt_uuid} | Компания по её wasyt UUID (или Company-Ican-Uuid) |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
company_id | integer | Да | ID компании (из заголовка или её филиала). ID существующей записи, доступной пользователю |
cashbox_id | integer | Да | Касса. ID существующей записи, доступной пользователю |
stock_id | integer | Да | Склад. ID существующей записи, доступной пользователю |
client_id | integer | Нет | Клиент. ID существующей записи, доступной пользователю |
hold_id | integer | Нет | Бронь, товары которой продаются по забронированной цене. ID существующей записи, доступной пользователю |
seller_cart_id | integer | Нет | Подбор продавца. ID существующей записи, доступной пользователю |
currency | string | Да | Валюта. Допустимые значения: uzs |
cheque | integer | Нет | Чек. Не меньше 1. Не больше 3 |
due_date | string (date) | Нет | Срок погашения. Не раньше сегодняшнего дня |
comment | string | Нет | Комментарий. Макс. 1000 символов |
discount | number | Нет | Скидка. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
cashier_ids | array | Нет | Макс. 10 элементов. ID существующей записи, доступной пользователю |
products | object[] | Нет | Продукты. Макс. 100 элементов |
products[].product_id | integer | Да | Продукт. Без повторов |
products[].discount | number | Нет | Скидка на единицу. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
products[].sold_quantity | number | Да | Проданное количество. До 8 знаков после запятой. Не меньше 0.00000001 |
products[].price | number | Нет | Цена за единицу в currency; без неё берётся цена каталога. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
services | object[] | Нет | Услуги. Макс. 100 элементов |
services[].service_id | integer | Да | Услуга. Без повторов |
services[].discount | number | Нет | Скидка. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
services[].price | number | Нет | Цена. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
bundles | object[] | Нет | Комплекты. Макс. 100 элементов |
bundles[].bundle_id | integer | Да | Комплект |
bundles[].quantity | integer | Нет | Количество. Не меньше 1. Не больше 1000 |
bundles[].discount | number | Нет | Скидка. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
bundles[].price | number | Нет | Цена. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
transactions | object[] | Нет | Транзакции. Макс. 10 элементов |
transactions[].payment_type | string | Да | Тип оплаты. Допустимые значения: bank, card, cash, bonus |
transactions[].payment_type_id | integer | Нет | Тип оплаты. ID существующей записи, доступной пользователю |
transactions[].amount | number | Да | Сумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
{
"company_id": 1,
"cashbox_id": 2,
"stock_id": 1,
"currency": "uzs",
"products": [
{
"product_id": 1,
"discount": 300,
"sold_quantity": 1
},
{
"product_id": 2,
"discount": null,
"sold_quantity": 2
}
],
"transactions": [
{
"payment_type": "card",
"amount": 4800000
},
{
"payment_type": "cash",
"amount": 800
}
]
}curl -X POST "https://api.wasyt.uz/external/credit/trade-sale/products-total-price" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "External-System-Secret-Key: {external_system_secret_key}" \
-H "Company-Ican-Uuid: ican-company-1" \
-H "Content-Type: application/json" \
-d '{"company_id":1,"cashbox_id":2,"stock_id":1,"currency":"uzs","products":[{"product_id":1,"discount":300,"sold_quantity":1},{"product_id":2,"discount":null,"sold_quantity":2}],"transactions":[{"payment_type":"card","amount":4800000},{"payment_type":"cash","amount":800}]}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
company_id | integer | Компания |
cashbox_id | integer | Касса |
stock_id | integer | Склад |
currency | string | Валюта |
products | object[] | Продукты |
products[].product_id | integer | Продукт |
products[].discount | integer | Скидка |
products[].sold_quantity | integer | Кол-во в продаже |
products[].price | integer | Цена |
products[].effective_min_price | integer | |
transactions | object[] | Транзакции |
transactions[].payment_type | string | Тип оплаты |
transactions[].amount | integer | Сумма |
transactions[].type | string | Тип |
status | string | Статус |
source_type | string | Источник |
products_total_price | integer |
{
"company_id": 1,
"cashbox_id": 2,
"stock_id": 1,
"currency": "uzs",
"products": [
{
"product_id": 1,
"discount": 300,
"sold_quantity": 1,
"price": 1100,
"effective_min_price": 0
},
{
"product_id": 2,
"discount": null,
"sold_quantity": 2,
"price": 2400000,
"effective_min_price": 0
}
],
"transactions": [
{
"payment_type": "card",
"amount": 4800000,
"type": "income"
},
{
"payment_type": "cash",
"amount": 800,
"type": "income"
}
],
"status": "completed",
"source_type": "wasyt",
"products_total_price": 4800800
}Создать кредитную продажу
/external/credit/trade-sale/createСоздаёт продажу с source_type = credit и status = in_progress в компании company_wasyt_uuid и списывает товар со склада. Цена строк берётся из запроса (обязательна), price − discount не может быть ниже минимальной цены продажи; сумма transactions с итогом не сверяется, типы оплаты ICAN переводятся (terminal, mib, blacklist, auto_payment* → bank; card_* → card; discount → system, без движения кассы), debt запрещён. С seller_cart_id (подбор того же склада в статусе picking или sent) подбор становится completed, продавцом записывается его автор, а cashier_ids игнорируются.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
External-System-Secret-Key | {external_system_secret_key} | Секретный ключ внешней системы |
Company-Wasyt-Uuid | {company_wasyt_uuid} | Компания по её wasyt UUID (или Company-Ican-Uuid) |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
cashbox_id | integer | Да | Касса этой компании. ID существующей записи, доступной пользователю |
stock_id | integer | Да | Склад этой компании, не на инвентаризации; при seller_cart_id — склад подбора |
client_id | integer | Нет | Клиент. ID существующей записи, доступной пользователю |
hold_id | integer | Нет | Бронь, товары которой продаются. ID существующей записи, доступной пользователю |
seller_cart_id | integer | Нет | Подбор продавца-консультанта, который продаётся этим чеком. ID существующей записи, доступной пользователю |
currency | string | Да | Валюта. Допустимые значения: uzs |
cheque | integer | Нет | Чек. Не меньше 1. Не больше 3 |
due_date | string (date) | Нет | Срок погашения. Не раньше сегодняшнего дня |
comment | string | Нет | Комментарий. Макс. 1000 символов |
discount | number | Нет | Скидка. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
cashier_ids | array | Нет | Продавцы продажи (игнорируются при seller_cart_id). Макс. 10 элементов. ID существующей записи, доступной пользователю |
products | object[] | Нет | Продукты. Макс. 100 элементов |
products[].product_id | integer | Да | Продукт. Без повторов |
products[].discount | number | Нет | Скидка на единицу. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
products[].sold_quantity | number | Да | Проданное количество. До 8 знаков после запятой. Не меньше 0.00000001 |
products[].price | number | Да | Цена за единицу, согласованная кредитной системой. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99. ≥ products[].discount |
services | object[] | Нет | Услуги. Макс. 100 элементов |
services[].service_id | integer | Да | Услуга. Без повторов |
services[].discount | number | Нет | Скидка. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
services[].price | number | Нет | Цена. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
bundles | object[] | Нет | Комплекты. Макс. 100 элементов |
bundles[].bundle_id | integer | Да | Комплект |
bundles[].quantity | integer | Нет | Количество. Не меньше 1. Не больше 1000 |
bundles[].discount | number | Нет | Скидка. До 2 знаков после запятой. Не меньше 0. Не больше 999999999999.99 |
bundles[].price | number | Нет | Цена. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
transactions | object[] | Нет | Транзакции. Макс. 10 элементов |
transactions[].payment_type | string | Да | Тип оплаты wasyt или ICAN (переводится в тип wasyt). Допустимые значения: bank, card, cash, bonus, system |
transactions[].payment_type_id | integer | Нет | Тип оплаты. ID существующей записи, доступной пользователю |
transactions[].amount | number | Да | Сумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
company_wasyt_uuid | string | Да | Wasyt UUID компании-продавца (отключённые тоже принимаются). ID существующей записи, доступной пользователю |
client | array | Нет | |
client.full_name | string | Если передано client | ФИО. Макс. 100 символов |
client.main_phone | string | Если передано client | Основной телефон. Формат 998xxyyyzzzz |
client.gender | string | Нет | Пол. Допустимые значения: male, female |
client.birth_date | string (date) | Нет | Дата рождения. Формат Y-m-d. Не позже текущей даты |
source_data | array | Да | Снимок кредитного контракта (id, main_debt, percent_debt, status, …), хранится в продаже как есть |
sold_amount | number | Да | Сумма контракта: продажа становится completed, когда оплаты её покрывают. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
{
"company_wasyt_uuid": "wasyt-company-1",
"cashbox_id": 2,
"stock_id": 1,
"currency": "uzs",
"products": [
{
"product_id": 1,
"discount": null,
"sold_quantity": 1,
"price": 1000
}
],
"transactions": [
{
"payment_type": "terminal",
"amount": 1000
}
],
"source_data": {
"id": 2,
"main_debt": 1000,
"percent_debt": 100,
"status": "active"
},
"sold_amount": 1000
}curl -X POST "https://api.wasyt.uz/external/credit/trade-sale/create" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "External-System-Secret-Key: {external_system_secret_key}" \
-H "Company-Ican-Uuid: ican-company-1" \
-H "Content-Type: application/json" \
-d '{"company_wasyt_uuid":"wasyt-company-1","cashbox_id":2,"stock_id":1,"currency":"uzs","products":[{"product_id":1,"discount":null,"sold_quantity":1,"price":1000}],"transactions":[{"payment_type":"terminal","amount":1000}],"source_data":{"id":2,"main_debt":1000,"percent_debt":100,"status":"active"},"sold_amount":1000}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
creator_id | integer | Создатель |
company_id | integer | Компания |
cashbox_id | integer | Касса |
stock_id | integer | Склад |
client_id | null | Клиент |
exchange_of_sale_id | null | |
currency | string | Валюта |
purchased_amount | integer | |
sold_amount | integer | Сумма в продаже |
returned_amount | integer | Возвращённая сумма |
status | string | Статус |
source_type | string | Источник |
source_data | object | |
source_data.id | integer | ID |
source_data.status | string | Статус |
source_data.main_debt | integer | Основная задолжность |
source_data.percent_debt | integer | Процентная задолжность |
code | string | Код |
created_at | string | Создано |
updated_at | string | Обновлено |
client | null | |
products | object[] | Продукты |
products[].id | integer | ID |
products[].company_id | integer | Компания |
products[].sale_id | integer | Продажа |
products[].product_id | integer | Продукт |
products[].service_id | null | |
products[].bundle_id | null | Комплект |
products[].bundle_key | null | |
products[].purchase_price | integer | Цена при покупке |
products[].price | integer | Цена |
products[].discount | integer | Скидка |
products[].sold_quantity | integer | Кол-во в продаже |
products[].returned_quantity | integer | Возвращённое кол-во |
products[].returned_data | array | |
products[].last_returned_at | null | |
products[].stock_product_source_data | object | |
products[].stock_product_source_data.source_type | string | Источник |
products[].stock_product_source_data.source_id | integer | Источник |
products[].stock_product_source_data.source_product_id | integer | |
products[].stock_product_source_data.quantity | integer | Количество |
products[].stock_product_source_data.purchase_price | integer | Цена при покупке |
products[].stock_product_source_data.purchase_currency | string | Валюта при покупке |
products[].stock_product_source_data.created_at | string | Создано |
products[].created_at | string | Создано |
products[].updated_at | string | Обновлено |
products[].product_snapshot | object | |
products[].product_snapshot.id | integer | ID |
products[].product_snapshot.parent_id | null | Родитель |
products[].product_snapshot.creator_id | integer | Создатель |
products[].product_snapshot.company_id | integer | Компания |
products[].product_snapshot.category_id | integer | Категория |
products[].product_snapshot.brand_id | integer | Бренд |
products[].product_snapshot.unit_id | integer | Единица измерения |
products[].product_snapshot.name | string | Название |
products[].product_snapshot.full_text | string | Полный текст |
products[].product_snapshot.plu | string | Артикул (PLU) |
products[].product_snapshot.description | string | Описание |
products[].product_snapshot.is_free_price | boolean | Продажа по свободной цене |
products[].product_snapshot.is_favorite | boolean | |
products[].product_snapshot.min_quantity | null | |
products[].product_snapshot.barcode | string | Штрих-код |
products[].product_snapshot.images_list | array | Изображения |
products[].product_snapshot.images_list_thumbs | object[] | |
products[].product_snapshot.images_list_thumbs[].widen_100 | object | |
products[].product_snapshot.images_list_thumbs[].widen_100.raw | string | |
products[].product_snapshot.images_list_thumbs[].widen_100.webp | string | |
products[].product_snapshot.images_list_thumbs[].widen_500 | object | |
products[].product_snapshot.images_list_thumbs[].widen_500.raw | string | |
products[].product_snapshot.images_list_thumbs[].widen_500.webp | string | |
products[].product_snapshot.images_list_thumbs[].original | object | |
products[].product_snapshot.images_list_thumbs[].original.raw | string | |
products[].product_snapshot.images_list_thumbs[].original.webp | string | |
products[].product_snapshot.created_at | string | Создано |
products[].product_snapshot.updated_at | string | Обновлено |
products[].product_snapshot.is_deleted | boolean | |
products[].product_snapshot.parent | null | |
products[].product_snapshot.category | object | Категория |
products[].product_snapshot.category.id | integer | ID |
products[].product_snapshot.category.company_id | integer | Компания |
products[].product_snapshot.category.lft | integer | |
products[].product_snapshot.category.rgt | integer | |
products[].product_snapshot.category.parent_id | integer | Родитель |
products[].product_snapshot.category.name | object | Название |
products[].product_snapshot.category.name.oz | string | |
products[].product_snapshot.category.name.ru | string | |
products[].product_snapshot.category.name.uz | string | |
products[].product_snapshot.category.created_at | string | Создано |
products[].product_snapshot.category.updated_at | string | Обновлено |
products[].product_snapshot.category.is_deleted | boolean | |
products[].product_snapshot.category.text | string | Текст |
products[].product_snapshot.category.state | object | |
products[].product_snapshot.category.state.disabled | boolean | |
products[].product_snapshot.category.state.hidden | boolean | |
products[].product_snapshot.category.state.opened | boolean | |
products[].product_snapshot.category.ancestors | object[] | |
products[].product_snapshot.category.ancestors[].id | integer | ID |
products[].product_snapshot.category.ancestors[].company_id | integer | Компания |
products[].product_snapshot.category.ancestors[].lft | integer | |
products[].product_snapshot.category.ancestors[].rgt | integer | |
products[].product_snapshot.category.ancestors[].parent_id | integer | Родитель |
products[].product_snapshot.category.ancestors[].name | object | Название |
products[].product_snapshot.category.ancestors[].created_at | string | Создано |
products[].product_snapshot.category.ancestors[].updated_at | string | Обновлено |
products[].product_snapshot.category.ancestors[].is_deleted | boolean | |
products[].product_snapshot.category.ancestors[].text | string | Текст |
products[].product_snapshot.category.ancestors[].state | object | |
products[].product_snapshot.category.full_text | string | Полный текст |
products[].product_snapshot.brand | object | Бренд |
products[].product_snapshot.brand.id | integer | ID |
products[].product_snapshot.brand.creator_id | integer | Создатель |
products[].product_snapshot.brand.company_id | integer | Компания |
products[].product_snapshot.brand.name | string | Название |
products[].product_snapshot.brand.image | string | Изображение |
products[].product_snapshot.brand.image_thumbs | object | |
products[].product_snapshot.brand.image_thumbs.widen_100 | object | |
products[].product_snapshot.brand.image_thumbs.widen_500 | object | |
products[].product_snapshot.brand.image_thumbs.original | object | |
products[].product_snapshot.brand.created_at | string | Создано |
{
"id": 283,
"creator_id": 2,
"company_id": 1,
"cashbox_id": 2,
"stock_id": 1,
"client_id": null,
"exchange_of_sale_id": null,
"currency": "uzs",
"purchased_amount": 1000,
"sold_amount": 1000,
"returned_amount": 0,
"status": "completed",
"source_type": "credit",
"source_data": {
"id": 2,
"status": "active",
"main_debt": 1000,
"percent_debt": 100
},
"code": "#300926001",
"created_at": "2026-09-30 12:25:51",
"updated_at": "2026-09-30 12:25:51",
"client": null,
"products": [
{
"id": 358,
"company_id": 1,
"sale_id": 283,
"product_id": 1,
"service_id": null,
"bundle_id": null,
"bundle_key": null,
"purchase_price": 1000,
"price": 1000,
"discount": 0,
"sold_quantity": 1,
"returned_quantity": 0,
"returned_data": [],
"last_returned_at": null,
"stock_product_source_data": {
"source_type": "purchase",
"source_id": 1,
"source_product_id": 1,
"quantity": 1,
"purchase_price": 1000,
"purchase_currency": "uzs",
"created_at": "2026-09-30 12:16:43"
},
"created_at": "2026-09-30 12:25:51",
"updated_at": "2026-09-30 12:25:51",
"product_snapshot": {
"id": 1,
"parent_id": null,
"creator_id": 1,
"company_id": 1,
"category_id": 4,
"brand_id": 1,
"unit_id": 1,
"name": "Product 1",
"full_text": "Product 1",
"plu": "0001",
"description": "Description 1",
"is_free_price": false,
"is_favorite": false,
"min_quantity": null,
"barcode": "0000000000001",
"images_list": [
"https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
],
"images_list_thumbs": [
{
"widen_100": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"widen_500": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
}
},
{
"widen_100": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
},
"widen_500": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png"
}
}
],
"created_at": "2026-09-30 12:16:43",
"updated_at": "2026-09-30 12:25:51",
"is_deleted": false,
"parent": null,
"category": {
"id": 4,
"company_id": 1,
"lft": 4,
"rgt": 5,
"parent_id": 3,
"name": {
"oz": "Category 1-1-1 oz",
"ru": "Category 1-1-1 ru",
"uz": "Category 1-1-1 uz"
},
"created_at": "2026-09-30 12:16:43",
"updated_at": "2026-09-30 12:16:43",
"is_deleted": false,
"text": "Category 1-1-1 ru",
"state": {
"disabled": false,
"hidden": false,
"opened": true
},
"ancestors": [
{
"id": 2,
"company_id": 1,
"lft": 2,
"rgt": 13,
"parent_id": 1,
"name": {
"oz": "Category 1 oz",
"ru": "Category 1 ru",
"uz": "Category 1 uz"
},
"created_at": "2026-09-30 12:16:43",
"updated_at": "2026-09-30 12:16:43",
"is_deleted": false,
"text": "Category 1 ru",
"state": {
"disabled": false,
"hidden": false,
"opened": true
}
},
{
"id": 3,
"company_id": 1,
"lft": 3,
"rgt": 8,
"parent_id": 2,
"name": {
"oz": "Category 1-1 oz",
"ru": "Category 1-1 ru",
"uz": "Category 1-1 uz"
},
"created_at": "2026-09-30 12:16:43",
"updated_at": "2026-09-30 12:16:43",
"is_deleted": false,
"text": "Category 1-1 ru",
"state": {
"disabled": false,
"hidden": false,
"opened": true
}
}
],
"full_text": "Category 1 ru => Category 1-1 ru => Category 1-1-1 ru"
},
"brand": {
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Brand 1",
"image": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"image_thumbs": {
"widen_100": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"widen_500": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
}
},
"created_at": "2026-09-30 12:16:43",
"updated_at": "2026-09-30 12:25:51",
"is_deleted": false
},
"unit": {
"id": 1,
"company_id": 1,
"source_id": 3,
"name": {
"oz": "Unit 1 oz",
"ru": "Unit 1 ru",
"uz": "Unit 1 uz"
},
"accuracy": 4,
"created_at": "2026-09-30 12:16:43",
"updated_at": "2026-09-30 12:16:43",
"is_deleted": false
}
}
}
]
}Отменить кредитную продажу
/external/credit/trade-sale/cancelОтменяет кредитную продажу invoice_id в статусе in_progress (иначе 400 («Запись не найдена»)): всё ещё не возвращённое количество по строкам возвращается на склад, а оплаченный остаток (приход − расход) списывается одной расходной транзакцией cash с кассы продажи. Продажа получает status = canceled; если она была из подбора, бонус продавца снимается, а подбор в список продаваемых не возвращается.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
External-System-Secret-Key | {external_system_secret_key} | Секретный ключ внешней системы |
Company-Wasyt-Uuid | {company_wasyt_uuid} | Компания по её wasyt UUID (или Company-Ican-Uuid) |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
invoice_id | integer | Да | ID кредитной продажи в wasyt (id из ответа trade-sale/create) |
{
"invoice_id": 1
}curl -X POST "https://api.wasyt.uz/external/credit/trade-sale/cancel" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "External-System-Secret-Key: {external_system_secret_key}" \
-H "Company-Ican-Uuid: ican-company-1" \
-H "Content-Type: application/json" \
-d '{"invoice_id":1}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
creator_id | integer | Создатель |
company_id | integer | Компания |
cashbox_id | integer | Касса |
stock_id | integer | Склад |
client_id | integer | Клиент |
exchange_of_sale_id | null | |
currency | string | Валюта |
purchased_amount | integer | |
sold_amount | integer | Сумма в продаже |
returned_amount | integer | Возвращённая сумма |
status | string | Статус |
source_type | string | Источник |
source_data | array | |
code | string | Код |
created_at | string | Создано |
updated_at | string | Обновлено |
{
"id": 1,
"creator_id": 2,
"company_id": 1,
"cashbox_id": 1,
"stock_id": 1,
"client_id": 1,
"exchange_of_sale_id": null,
"currency": "uzs",
"purchased_amount": 500,
"sold_amount": 4900,
"returned_amount": 0,
"status": "canceled",
"source_type": "credit",
"source_data": [],
"code": "w-1-1",
"created_at": "2020-01-01 10:00:00",
"updated_at": "2026-09-30 12:25:44"
}
