Supplier. Поставщики
Методы для работы со справочником контрагентов (поставщиков, покупателей, банков): получение списка с фильтрами, создание и изменение записей.
Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье Общие сведения. Здесь описаны только особенности методов раздела supplier.
Методы
| Метод | Адрес | Что делает |
|---|---|---|
| Получить поставщиков | /api/supplier | Возвращает одного или всех поставщиков |
| Создать или изменить | /api/supplier/update | Обновляет поставщика или создаёт нового |
Удаления поставщиков через API нет.
Где передавать параметры. Ключ apikey и формат format принимаются и в адресной строке, и в теле POST-запроса. Параметры id, external_id и create_if_not_exist в методе update читаются только из адресной строки (GET). Остальные параметры можно передавать и в адресной строке, и в теле POST. Значения с кириллицей и пробелами кодируйте.
Получение поставщиков
GET https://[компания].myvirtualpos.ru/api/supplier?apikey=MySecret&type_id=2
Параметры запроса
| id | Число. Ид поставщика |
| external_id | Строка. Код поставщика во внешней системе (например, в 1С) |
| type_id | Число. Ид типа: вернутся только поставщики этого типа |
| format | json (по умолчанию) или xml |
Условия объединяются по «и». Без параметров возвращаются все поставщики одним ответом; постраничной выдачи нет.
Структура ответа
| success | 1 — данные получены |
| type | Тип данных, всегда supplier |
| count | Количество поставщиков в ответе |
| suppliers | Список поставщиков. Каждый обёрнут в объект supplier |
Поля поставщика
Пустые значения в JSON приходят как null, в XML — как пустой элемент.
Основное
| id | Число. Ид поставщика |
| external_id | Строка. Код во внешней системе |
| name | Строка. Название |
| legal_name | Строка. Юридическое название |
| type_id | Число. Ид типа поставщика |
| type_name | Строка. Название типа, например «Внешний поставщик» или «Банк» |
| status | Строка. Статус |
| code | Строка. Код |
| is_supplier, is_buyer, is_bank, is_individual | Число. Признаки роли: 1 — поставщик, покупатель, банк, физическое лицо |
| created_date, last_update_date | Строка. Дата и время создания и последнего изменения |
| created_by, last_update_by | Число. Ид пользователя, создавшего и изменившего запись |
Реквизиты и контакты
| inn, kpp | Строка. ИНН и КПП |
| OKPO, OKONH | Строка. Коды ОКПО и ОКОНХ |
| address, delivaddress | Строка. Юридический адрес и адрес доставки |
| phone, email, www | Строка. Телефон, электронная почта и сайт |
| chief_first_name, chief_last_name | Строка. Имя и фамилия руководителя |
| corraccount, bankaccount | Строка. Корреспондентский и расчётный счета |
| BIK, bank_name | Строка. БИК (9 цифр) и название банка |
Настройки
| price_coef | Строка. Коэффициент поставщика для сводного прайс-листа |
| pricelist_life_length | Число. Срок жизни прайс-листа поставщика в часах |
| znak_sys_id, znak_branch_id | Строка. Идентификаторы в системе маркировки |
| organisation_id | Число. Ид юридического лица, если поставщик — внутренний |
| customer_id | Число. Ид клиента, если поставщик — физическое лицо |
| attribute1 … attribute15 | Строка. Значения гибких полей |
Пример ответа
{
"success": 1,
"type": "supplier",
"count": 1,
"suppliers": [
{
"supplier": {
"id": 151,
"name": "Мой поставщик",
"legal_name": "ООО «Мой поставщик»",
"inn": "7700000000",
"kpp": "770001001",
"address": null,
"phone": "+7 900 000-00-01",
"email": "info@example.com",
"www": null,
"created_date": "2026-09-26 10:45:53",
"created_by": null,
"last_update_date": "2026-09-26 10:45:54",
"last_update_by": null,
"type_id": 2,
"code": null,
"OKPO": null,
"OKONH": null,
"corraccount": null,
"bankaccount": null,
"BIK": null,
"bank_name": null,
"status": null,
"delivaddress": null,
"external_id": "S-151",
"price_coef": "1.200",
"pricelist_life_length": 0,
"znak_sys_id": null,
"znak_branch_id": null,
"chief_first_name": "Иван",
"chief_last_name": null,
"is_supplier": 1,
"is_bank": 0,
"is_buyer": 0,
"is_individual": 0,
"organisation_id": null,
"customer_id": null,
"type_name": "Внешний поставщик"
}
}
]
}
В примере опущены пустые гибкие поля attribute1…attribute15. Тот же ответ при format=xml (сокращённо):
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <type>supplier</type> <count>1</count> <suppliers> <supplier> <id>151</id> <name>Мой поставщик</name> <inn>7700000000</inn> <!-- остальные поля поставщика --> <type_name>Внешний поставщик</type_name> </supplier> </suppliers> </root>
Если ничего не найдено, метод возвращает успешный ответ с count равным 0 и пустым списком suppliers.
Создание и изменение
POST https://[компания].myvirtualpos.ru/api/supplier/update?apikey=MySecret&external_id=S-151&create_if_not_exist=1 name=Мой поставщик&inn=7700000000&kpp=770001001&is_supplier=1
Поставщик ищется по id, а если он не указан — по external_id. Если поставщик не найден, а передан create_if_not_exist=1, создаётся новый. Изменяются только переданные параметры.
Параметры
| id | Число. Ид изменяемого поставщика. Только GET |
| external_id | Строка. Код поставщика во внешней системе. Если id не указан, по нему ищется поставщик; одновременно это поле поставщика: при создании код сохраняется. Только GET |
| create_if_not_exist | 1 — создать поставщика, если он не найден. Только GET |
| name | Строка. Название. Обязательно при создании |
| legal_name, inn, kpp, address, delivaddress | Строка. Юридическое название, ИНН, КПП, адреса |
| phone, email, www | Строка. Контакты; email должен быть корректным адресом |
| type_id | Число. Ид типа поставщика; тип должен существовать. По умолчанию для нового поставщика — 2 (внешний поставщик) |
| code, OKPO, OKONH, status | Строка. Код, ОКПО, ОКОНХ, статус |
| corraccount, bankaccount, bank_name | Строка. Счета и название банка |
| BIK | Строка, 9 цифр. БИК |
| chief_first_name, chief_last_name | Строка. Имя и фамилия руководителя |
| is_supplier, is_buyer, is_bank, is_individual | 1 или 0. Признаки роли |
| price_coef | Число. Коэффициент поставщика |
| pricelist_life_length | Число. Срок жизни прайс-листа в часах |
| organisation_id, customer_id | Число. Ид юридического лица и клиента, с которыми связан поставщик |
| attribute1 … attribute15 | Значения гибких полей |
Ответ
{"success":1,"id":"151","isnew":"1"}
| success | 1 — поставщик сохранён |
| id | Ид поставщика. При создании приходит строкой, при изменении — числом |
| isnew | «1» — создан, «0» — изменён существующий |
Примеры запросов
| Задача | Запрос |
|---|---|
| Все поставщики | /api/supplier?apikey=MySecret |
| Поставщик по коду из 1С | /api/supplier?apikey=MySecret&external_id=S-151 |
| Только банки | /api/supplier?apikey=MySecret&type_id=3 |
| Создать поставщика | /api/supplier/update?apikey=MySecret&create_if_not_exist=1&external_id=S-151&name=Supplier&is_supplier=1 |
| Изменить телефон | /api/supplier/update?apikey=MySecret&id=151&phone=%2B79000000001 |
Ошибки
Ошибка авторизации и общие ошибки описаны в статье Общие сведения. Ошибки приходят с кодом HTTP 200 и success равным 0:
| Сообщение | Причина | Что делать |
|---|---|---|
| You have to specify [id] or [external_id] to update record | Нет id, external_id и create_if_not_exist | Передайте идентификатор или create_if_not_exist=1 |
| Record not found | Поставщик не найден, а create_if_not_exist не указан | Проверьте идентификатор или передайте create_if_not_exist=1 |
| Data validation failed. … | Не заполнено название, некорректные email или BIK, нецелые значения там, где нужны целые | Исправьте поля, перечисленные в сообщении |
| Cannot save data. … | Ошибка сохранения; например, type_id указывает на несуществующий тип | Проверьте ссылки на другие записи |