Returns. Возвраты поставщику
Метод возвращает документы «Возврат поставщику» вместе со строками. Документы можно только читать: создание и изменение через API не поддерживаются.
Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье Общие сведения. Здесь описаны только особенности метода returns.
Запрос
Все параметры, кроме ключа apikey и формата format, принимаются и в адресной строке, и в теле POST.
GET https://[компания].myvirtualpos.ru/api/returns?apikey=MySecret&days=90&warehouse_id=6&withitems=1
Параметры запроса
| id | Число. Ид документа. Если указан, ищется только этот документ |
| external_id | Строка. Код документа во внешней системе (например, в 1С). Действует, если не указан id |
| last_id | Число. Вернуть документы с ид больше указанного: для получения новых документов с прошлого обмена. Действует, если не указаны id и external_id |
| warehouse_id | Число. Ид точки продаж, с которой оформлен возврат. Если не указан, возвращаются документы всех точек |
| ext_warehouse_id | Строка. Код точки продаж во внешней системе. Действует, если не указан warehouse_id. Если точки с таким кодом нет, возвращается пустой список |
| date | Дата ГГГГММДД. Документы с этой датой документа |
| datefrom, dateto | Дата ГГГГММДД. Документы с датой документа с указанной даты и по указанную включительно |
| cdatefrom, cdateto | Дата ГГГГММДД. То же по дате создания документа в системе |
| last_update_date | Дата ГГГГММДД. Документы, изменённые начиная с этой даты. Если указан, ограничение days не применяется |
| days | Число. Глубина поиска в днях от текущей даты по дате документа. По умолчанию 30 |
| withitems | 1 — добавить строки документов. По умолчанию возвращаются только шапки |
| format | json (по умолчанию) или xml |
Условия объединяются по «и». Даты передаются строго в формате ГГГГММДД, иначе метод вернёт ошибку Incorrect date format. Документы возвращаются по убыванию id: новые первыми.
Ограничение days действует почти всегда. Если не указан last_update_date, отбираются только документы за последние 30 дней (или за days) по дате документа, и это ограничение накладывается вместе со всеми остальными условиями, в том числе id, external_id, date и datefrom. Чтобы получить старые документы, добавьте days с достаточным значением, например days=3650. Значение в ответе days_limit показывает выбранную глубину, даже если при заданном last_update_date она не применялась.
При days=0 ограничение снимается, и метод собирает в одном ответе все документы; на больших базах это может закончиться ошибкой сервера по памяти.
Статусы документа
| Значение | Название | Что означает |
|---|---|---|
draft | Черновик | Документ наполняется, остатки не менялись |
accept | Принят | Возврат проведён, товар списан со склада |
Структура ответа
| success | 1 — данные получены |
| type | Тип данных, всегда returns |
| days_limit | Число дней глубины поиска: 30 по умолчанию или значение days |
| count | Количество документов в ответе |
| returns | Список документов. Каждый обёрнут в объект return |
Поля документа
Пустые значения в JSON приходят как null, в XML — как пустой элемент.
| id | Число. Ид документа |
| external_id | Строка. Код документа во внешней системе |
| guid | Строка. Уникальный идентификатор документа (GUID) |
| docnum | Строка. Номер документа |
| docdate | Строка. Дата документа, формат гггг-мм-дд чч:мм:сс |
| status | Строка. Статус документа, см. раздел «Статусы документа» |
| status_name | Строка. Название статуса на русском |
| comment | Строка. Комментарий |
| amount | Строка. Сумма возврата |
| warehouse_id | Число. Ид точки продаж |
| warehouse_external_id | Строка. Код точки продаж во внешней системе |
| supplier_id | Число. Ид поставщика |
| supplier_external_id | Строка. Код поставщика во внешней системе |
| supplier_name, supplier_inn, supplier_kpp | Строка. Название, ИНН и КПП поставщика |
| supplier_type, supplier_type_name | Ид и название типа поставщика |
| supplier_readonly_inflow | Число. 1 — внутренний поставщик, поступления от которого создаются автоматически |
| created_date, last_update_date | Строка. Дата и время создания и последнего изменения |
| created_by, last_update_by | Число. Ид пользователя, создавшего и изменившего документ |
| items | Список строк; при withitems=0 пустой. Каждая строка обёрнута в объект item |
Поля строки
| line_id | Число. Ид строки |
| guid | Строка. Уникальный идентификатор строки (GUID) |
| item_id | Число. Ид товара |
| item_ext_id | Строка. Код товара во внешней системе |
| item_name | Строка. Название товара |
| quantity | Строка. Количество |
| barcode | Строка. Штрихкод |
| price | Строка. Закупочная цена единицы |
| amount | Строка. Сумма по строке |
| lot_number | Строка. Серия (партия) |
| manuf_date, expir_date | Строка. Дата изготовления и срок годности. Если не заданы, приходит 0000-00-00 |
Пример ответа
{
"success": 1,
"type": "returns",
"days_limit": 90,
"count": 1,
"returns": [
{
"return": {
"id": 224,
"external_id": "RET-224",
"guid": "4DDE87A3-8AC7-DD60-2E7D-1DA863679BF7",
"warehouse_id": 7,
"docnum": "28.08.26",
"docdate": "2026-08-28 00:00:00",
"supplier_id": 2,
"supplier_name": "Мой поставщик",
"supplier_inn": "7805492189",
"supplier_kpp": "780501001",
"supplier_type": 2,
"supplier_type_name": "Внешний поставщик",
"supplier_readonly_inflow": 0,
"amount": "3500.00",
"status": "accept",
"status_name": "Принят",
"comment": "Брак",
"supplier_external_id": "S-2",
"warehouse_external_id": "WH-7",
"created_date": "2026-08-28 13:58:22",
"created_by": 23,
"last_update_date": "2026-08-28 14:21:27",
"last_update_by": 23,
"items": [
{
"item": {
"line_id": 4927,
"guid": "5AEEE85D-A100-D900-6A0E-D7BD519F60AE",
"item_id": 34622,
"item_ext_id": "SKU-34622",
"item_name": "Шампунь для глубокого очищения 1000 мл",
"quantity": "1.000",
"barcode": null,
"price": "1250.0000",
"amount": "1250.00",
"manuf_date": "0000-00-00",
"expir_date": "0000-00-00",
"lot_number": ""
}
}
]
}
}
]
}
Тот же ответ при format=xml (сокращённо):
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <type>returns</type> <days_limit>90</days_limit> <count>1</count> <returns> <return> <id>224</id> <status>accept</status> <!-- остальные поля шапки --> <items> <item> <line_id>4927</line_id> <item_id>34622</item_id> <quantity>1.000</quantity> <!-- остальные поля строки --> </item> </items> </return> </returns> </root>
Примеры запросов
| Задача | Запрос |
|---|---|
| Возвраты за последние 30 дней (шапки) | /api/returns?apikey=MySecret |
| Возвраты точки за квартал со строками | /api/returns?apikey=MySecret&days=90&warehouse_id=6&withitems=1 |
| Один документ по ид | /api/returns?apikey=MySecret&id=224&days=3650&withitems=1 |
| Новые документы после последнего полученного | /api/returns?apikey=MySecret&last_id=220&days=90 |
| Документы, изменённые с указанной даты | /api/returns?apikey=MySecret&last_update_date=20260901 |
| Документы точки по её коду в 1С | /api/returns?apikey=MySecret&ext_warehouse_id=WH-7&days=90 |
Ошибки
Ошибка авторизации и общие ошибки описаны в статье Общие сведения.
| Сообщение | Причина | Что делать |
|---|---|---|
| Incorrect date format '…'. Valid format is: YYYYMMDD | Дата в параметре не в формате ГГГГММДД | Передайте дату как 20260901 |
Если по условиям ничего не найдено, метод возвращает успешный ответ с count равным 0 и пустым списком returns.