Интеграция партнёра
Интеграция партнёра: определение партнёра по адресу сайта, зеркалирование его компаний в wasyt и чтение их данных. Авторизация — External-System-Secret-Key и Company-Partner-Uuid или Company-Wasyt-Uuid.
| Метод | Адрес | Назначение |
|---|---|---|
| POST | /external/partner/find-by-url | Найти партнёра по адресу |
| POST | /external/partner/company | Создать или обновить компанию |
| GET | /external/partner/records/{type} | Справочник партнёра по типу |
Найти партнёра по адресу
/external/partner/find-by-urlВозвращает партнёра (и его оформление), обслуживающего сайт url; ключ не нужен. Слеш в конце не учитывается, при нескольких партнёрах с одним адресом побеждает заведённый раньше, kassa.<домен> получает партнёра домена. Незарегистрированный адрес в production — 404, вне production для него создаётся партнёр-заглушка.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
url | string | Да | Адрес сайта (http или https). Макс. 255 символов. URL-адрес |
{
"url": "https://partner-1.com"
}curl -X POST "https://api.wasyt.uz/external/partner/find-by-url" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Content-Type: application/json" \
-d '{"url":"https://partner-1.com"}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
name | string | Название |
company_name | string | Компания |
inn | string | ИНН |
mfo | string | МФО |
address | string | Адрес |
call_center_phone | string | Телефон колл-центра |
comment | string | Комментарий |
director_full_name | string | ФИО директора |
bank | string | Банк |
payment_account | string | Расчётный счёт |
created_at | string | Создано |
updated_at | string | Обновлено |
is_deleted | boolean | |
theme | object | |
theme.title | string | |
theme.logo_light | string | |
theme.logo_light_thumbs | object | |
theme.logo_light_thumbs.widen_100 | object | |
theme.logo_light_thumbs.widen_100.raw | string | |
theme.logo_light_thumbs.widen_100.webp | string | |
theme.logo_light_thumbs.widen_500 | object | |
theme.logo_light_thumbs.widen_500.raw | string | |
theme.logo_light_thumbs.widen_500.webp | string | |
theme.logo_light_thumbs.original | object | |
theme.logo_light_thumbs.original.raw | string | |
theme.logo_light_thumbs.original.webp | string | |
theme.logo_dark | string | |
theme.logo_dark_thumbs | object | |
theme.logo_dark_thumbs.widen_100 | object | |
theme.logo_dark_thumbs.widen_100.raw | string | |
theme.logo_dark_thumbs.widen_100.webp | string | |
theme.logo_dark_thumbs.widen_500 | object | |
theme.logo_dark_thumbs.widen_500.raw | string | |
theme.logo_dark_thumbs.widen_500.webp | string | |
theme.logo_dark_thumbs.original | object | |
theme.logo_dark_thumbs.original.raw | string | |
theme.logo_dark_thumbs.original.webp | string | |
theme.favicon | string | |
theme.favicon_thumbs | object | |
theme.favicon_thumbs.widen_192 | object | |
theme.favicon_thumbs.widen_192.raw | string | |
theme.favicon_thumbs.widen_192.webp | string | |
theme.favicon_thumbs.widen_256 | object | |
theme.favicon_thumbs.widen_256.raw | string | |
theme.favicon_thumbs.widen_256.webp | string | |
theme.favicon_thumbs.widen_300 | object | |
theme.favicon_thumbs.widen_300.raw | string | |
theme.favicon_thumbs.widen_300.webp | string | |
theme.favicon_thumbs.original | object | |
theme.favicon_thumbs.original.raw | string | |
theme.favicon_thumbs.original.webp | string | |
theme.color_primary_light | string | |
theme.color_primary_dark | string | |
urls | object[] | |
urls[].id | integer | ID |
urls[].url | string | URL |
{
"id": 1,
"name": "Partner 1",
"company_name": "Company 1",
"inn": "000000001",
"mfo": "00001",
"address": "Address 1",
"call_center_phone": "998000000001",
"comment": "Comment 1",
"director_full_name": "Director 1",
"bank": "Bank 1",
"payment_account": "00000000000000000001",
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"is_deleted": false,
"theme": {
"title": "Partner 1",
"logo_light": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"logo_light_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"
}
},
"logo_dark": "https://api-minio.icangroup.uz/wasyt/test_data/images/2.png",
"logo_dark_thumbs": {
"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"
}
},
"favicon": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png",
"favicon_thumbs": {
"widen_192": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png"
},
"widen_256": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png"
},
"widen_300": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/3.png"
}
},
"color_primary_light": "#ff002b",
"color_primary_dark": "#00f7ff"
},
"urls": [
{
"id": 1,
"url": "https://partner-1.com"
}
]
}Создать или обновить компанию
/external/partner/companyБез wasyt_uuid создаёт компанию партнёра с директором, с известным wasyt_uuid — обновляет её; компанию ICAN или созданную в wasyt обновить нельзя (422). Головная компания получает бессрочную бесплатную подписку, филиал (parent_wasyt_uuid, вложенность не больше 2) — нет; is_partner_turned_on всегда true, is_ican_turned_on партнёр не меняет, в ICAN компания не отправляется. wasyt_uuid из ответа — значение заголовка Company-Wasyt-Uuid.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
External-System-Secret-Key | {external_system_secret_key} | Секретный ключ внешней системы |
Company-Partner-Uuid | {company_partner_uuid} | Компания по UUID партнёра (или Company-Wasyt-Uuid) |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
wasyt_uuid | string | Нет | UUID компании в wasyt: пусто — новая компания, известный — обновление. Макс. 255 символов |
parent_wasyt_uuid | string | Нет | Головная компания (UUID в wasyt) — для филиала. Макс. 255 символов |
name | string | Да | Название. Макс. 255 символов |
company_name | string | Да | Компания. Макс. 255 символов |
inn | string | Да | ИНН. Макс. 255 символов |
mfo | string | Да | МФО. Макс. 255 символов |
address | string | Да | Адрес. Макс. 255 символов |
comment | string | Нет | Комментарий. Макс. 1000 символов |
telegram_phone | string | Нет | Телефон в Telegram. Макс. 255 символов |
director_full_name | string | Нет | ФИО директора. Макс. 255 символов |
bank | string | Да | Банк. Макс. 255 символов |
payment_account | string | Да | Расчётный счёт. Макс. 255 символов |
agreement_number | string | Да | Номер договора. Макс. 255 символов |
district_wasyt_uuid | string | Да | Район (UUID в wasyt из records/region_district). Макс. 255 символов |
field_of_activity | string | Да | Направление. Допустимые значения: trading, study, finance, service |
is_ican_turned_on | boolean | Да | Игнорируется: для новой компании false, у существующей не меняется |
is_partner_turned_on | boolean | Да | Игнорируется: всегда true |
director.username | string (email) | Да | Логин (email) директора; при обновлении не меняется. Макс. 255 символов. Уникальное значение |
director.phone | string | Да | Телефон. Формат 998xxyyyzzzz |
director.password | string | Да | Пароль. Макс. 255 символов |
{
"name": "Partner company",
"company_name": "Partner company",
"inn": "000000009",
"mfo": "00009",
"address": "Address 9",
"comment": "Comment 9",
"telegram_phone": "998000000029",
"director_full_name": "Director 9",
"bank": "Bank 9",
"payment_account": "00000000000000000009",
"agreement_number": "009/2026",
"district_wasyt_uuid": "wasyt-district-1",
"field_of_activity": "trading",
"director": {
"username": "director_9@local.host",
"phone": "998020000009",
"password": "***"
},
"is_last_step": 1
}curl -X POST "https://api.wasyt.uz/external/partner/company" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "External-System-Secret-Key: {external_system_secret_key}" \
-H "Content-Type: application/json" \
-d '{"name":"Partner company","company_name":"Partner company","inn":"000000009","mfo":"00009","address":"Address 9","comment":"Comment 9","telegram_phone":"998000000029","director_full_name":"Director 9","bank":"Bank 9","payment_account":"00000000000000000009","agreement_number":"009/2026","district_wasyt_uuid":"wasyt-district-1","field_of_activity":"trading","director":{"username":"director_9@local.host","phone":"998020000009","password":"***"},"is_last_step":1}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
name | string | Название |
company_name | string | Компания |
inn | string | ИНН |
mfo | string | МФО |
address | string | Адрес |
comment | string | Комментарий |
telegram_phone | string | Телефон в Telegram |
director_full_name | string | ФИО директора |
bank | string | Банк |
payment_account | string | Расчётный счёт |
agreement_number | string | Номер договора |
field_of_activity | string | Направление |
is_ican_turned_on | boolean | ICAN включён |
is_partner_turned_on | boolean | Партнёр включён |
district_id | integer | Район |
updated_at | string | Обновлено |
created_at | string | Создано |
wasyt_uuid | string | UUID в Wasyt |
id | integer | ID |
is_deleted | boolean |
{
"name": "Partner company",
"company_name": "Partner company",
"inn": "000000009",
"mfo": "00009",
"address": "Address 9",
"comment": "Comment 9",
"telegram_phone": "998000000029",
"director_full_name": "Director 9",
"bank": "Bank 9",
"payment_account": "00000000000000000009",
"agreement_number": "009/2026",
"field_of_activity": "trading",
"is_ican_turned_on": false,
"is_partner_turned_on": true,
"district_id": 1,
"updated_at": "2026-09-30 12:56:44",
"created_at": "2026-09-30 12:56:44",
"wasyt_uuid": "6abcc0bc0a8b7-a8da8773-e97d-4b7a-aeb3-beb613967791",
"id": 13,
"is_deleted": false
}Справочник партнёра по типу
/external/partner/records/{type}Постраничный справочник (id, value и поля типа). Адресные region, region_district, region_mfy доступны по одному ключу, отдают wasyt_uuid и до 1000 записей на странице. Данные компании из заголовка — filial, cashbox, cashbox_balance, stock, stock_product, product, product_category, product_brand (до 20 записей); без распознанной компании — 404, неизвестный тип — 400.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
External-System-Secret-Key | {external_system_secret_key} | Секретный ключ внешней системы |
Company-Partner-Uuid | {company_partner_uuid} | Компания по UUID партнёра (или Company-Wasyt-Uuid) |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
type | Тип (см. описание метода) |
Параметры запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
filter[id] | integer|array | Нет | Только записи с этими ID (любой тип) |
filter[value] | string | Нет | Поиск по части value (любой тип) |
filter[region_id] | integer|array | Нет | region_district: районы этих областей |
filter[district_id] | integer|array | Нет | region_mfy: махалли этих районов |
filter[level] | integer | Нет | filial: 1 — только головная компания, другое значение — только филиалы |
filter[company_id] | integer|array | Нет | cashbox, stock: только этих компаний |
filter[type] | string|array | Нет | cashbox: тип кассы |
filter[cashbox_id] | integer|array | Нет | cashbox_balance: остатки этих касс |
filter[currency] | string|array | Нет | cashbox_balance: валюта остатка |
filter[payment_type] | string|array | Нет | cashbox_balance: тип оплаты остатка |
filter[is_available] | boolean | Нет | stock: доступность склада |
filter[stock_id] | integer|array | Нет | stock_product: остатки этих складов; product: товары, которые есть на этих складах |
filter[product_id] | integer|array | Нет | stock_product: остатки этих товаров |
filter[quantity_from] | number | Нет | stock_product: остаток не меньше этого значения |
filter[name_or_barcode] | string | Нет | product: поиск по части названия или штрихкода |
filter[category_id] | integer|array | Нет | product: товары этих категорий |
filter[brand_id] | integer|array | Нет | product: товары этих брендов |
filter[parent_id] | integer|array | Нет | product_category: дочерние категории этих категорий |
show[] | string | Нет | with-deleted — вместе с удалёнными, only-deleted — только удалённые (для моделей с мягким удалением) |
page | integer | Нет | Номер страницы, с 1 |
page-size | integer | Нет | Записей на странице: по умолчанию 20; для region, region_district, region_mfy — до 1000, для остальных — не больше 20 |
Ответ · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].value | string | Значение |
data[].parent_id | integer | Родитель |
data[].company_name | string | Компания |
data[].inn | string | ИНН |
data[].address | string | Адрес |
data[].latitude | null | Широта |
data[].longitude | null | Долгота |
data[].is_deleted | boolean |
{
"data": [
{
"id": 2,
"value": "Company 1-1",
"parent_id": 1,
"company_name": "Company 1-1",
"inn": "000000002",
"address": "Address 2",
"latitude": null,
"longitude": null,
"is_deleted": false
},
{
"id": 1,
"value": "Company 1",
"parent_id": null,
"company_name": "Company 1",
"inn": "000000001",
"address": "Address 1",
"latitude": null,
"longitude": null,
"is_deleted": false
}
],
"links": {
"first": "https://api.wasyt.uz/external/partner/records/filial?page=1",
"last": "https://api.wasyt.uz/external/partner/records/filial?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/external/partner/records/filial",
"per_page": 20,
"to": 2,
"total": 2
}
}
