Movegood. Перемещения
Метод возвращает документы «Перемещение» — передачу товара между точками продаж — вместе со строками. Документы можно только читать: создание и изменение через API не поддерживаются.
Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье Общие сведения. Здесь описаны только особенности метода movegood.
Запрос
Все параметры, кроме ключа apikey и формата format, принимаются и в адресной строке, и в теле POST.
GET https://[компания].myvirtualpos.ru/api/movegood?apikey=MySecret&days=60&warehouse_id=2&withitems=1
Параметры запроса
| id | Число. Ид документа. Если указан, ищется только этот документ |
| last_id | Число. Вернуть документы с ид больше указанного: для получения новых документов с прошлого обмена. Действует, если не указан id |
| warehouse_id | Число. Ид точки продаж. Возвращаются документы, где она отправитель или получатель. Если не указан, возвращаются документы всех точек |
| ext_warehouse_id | Строка. Код точки продаж во внешней системе. Действует, если не указан warehouse_id. Если точки с таким кодом нет, возвращается пустой список |
| cdate | Дата ГГГГММДД. Документы, созданные в этот день |
| cdatefrom, cdateto | Дата ГГГГММДД. Документы, созданные с указанной даты и по указанную включительно |
| last_update_date | Дата ГГГГММДД. Документы, изменённые начиная с этой даты. Если указан, ограничение days не применяется |
| days | Число. Глубина поиска в днях от текущей даты по дате создания. По умолчанию 30 |
| withitems | 1 — добавить строки документов. По умолчанию возвращаются только шапки |
| withattributes | 1 — добавить значения гибких полей документа (attribute1…attribute15) |
| format | json (по умолчанию) или xml |
Условия объединяются по «и». Даты передаются строго в формате ГГГГММДД, иначе метод вернёт ошибку Incorrect date format. Документы возвращаются по убыванию id: новые первыми.
Ограничение days действует почти всегда. Если не указан last_update_date, отбираются только документы, созданные за последние 30 дней (или за days). Это относится и к запросам с id, last_id и датами cdate, cdatefrom, cdateto: чтобы получить старые документы, добавьте days с достаточным значением. Значение в ответе days_limit показывает выбранную глубину, даже если при заданном last_update_date она не применялась.
При days=0 ограничение снимается, и метод пытается собрать в один ответ все документы. На больших базах это заканчивается ошибкой сервера по памяти: выбирайте конкретную глубину или точку продаж.
Статусы документа
| Значение | Название | Что означает |
|---|---|---|
draft | Черновик | Документ наполняется |
send | В пути | Товар отправлен и списан с точки-отправителя |
accept | Принят | Товар принят на точке-получателе |
Кроме этих, в данных могут встречаться значения cansel, deny и return (отмена и возврат перемещения). В поле status_name приходит название статуса на русском.
Структура ответа
| success | 1 — данные получены |
| type | Тип данных, всегда movegood |
| days_limit | Число дней глубины поиска: 30 по умолчанию или значение days |
| count | Количество документов в ответе |
| movegoods | Список документов. Каждый обёрнут в объект movegood |
Поля документа
Пустые значения в JSON приходят как null, в XML — как пустой элемент.
| id | Число. Ид документа |
| status | Строка. Код статуса, см. раздел «Статусы документа» |
| status_name | Строка. Название статуса |
| comment | Строка. Комментарий |
| amount | Число. Сумма перемещения по строкам |
| src_warehouse_id | Число. Ид точки-отправителя |
| src_warehouse_ext_id | Строка. Код отправителя во внешней системе |
| dst_warehouse_id | Число. Ид точки-получателя |
| dst_warehouse_ext_id | Строка. Код получателя во внешней системе |
| created_date, last_update_date | Строка. Дата и время создания и последнего изменения, формат гггг-мм-дд чч:мм:сс |
| created_by, last_update_by | Число. Ид пользователя, создавшего и изменившего документ |
| attribute1 … attribute15 | Строка. Значения гибких полей документа (только при withattributes=1) |
| items | Список строк; при withitems=0 пустой. Каждая строка обёрнута в объект item |
Поля строки
| line_id | Число. Ид строки |
| item_id | Число. Ид товара |
| item_ext_id | Строка. Код товара во внешней системе |
| item_name | Строка. Название товара |
| quantity | Строка. Количество |
| barcode | Строка. Штрихкод по накладной |
| price | Строка. Себестоимость единицы |
| amount | Число. Сумма по строке (себестоимость на количество, округлена до копеек) |
| lot_number | Строка. Серия (партия) |
| manuf_date, expir_date | Строка. Дата изготовления и срок годности |
Пример ответа
{
"success": 1,
"type": "movegood",
"days_limit": 30,
"count": 1,
"movegoods": [
{
"movegood": {
"id": 91755,
"src_warehouse_id": 10,
"src_warehouse_ext_id": "WH-10",
"dst_warehouse_id": 2,
"dst_warehouse_ext_id": "WH-2",
"amount": 1250.5,
"status": "send",
"status_name": "В пути",
"comment": "Пополнение запаса",
"created_date": "2026-09-02 08:00:22",
"created_by": 151,
"last_update_date": "2026-09-02 09:11:03",
"last_update_by": 151,
"items": [
{
"item": {
"line_id": 1301,
"item_id": 431,
"item_ext_id": "ITEM-431",
"item_name": "Открытка с шоколадом",
"quantity": "10.000",
"barcode": null,
"price": "125.0500",
"amount": 1250.5,
"manuf_date": null,
"expir_date": null,
"lot_number": null
}
}
]
}
}
]
}
Тот же ответ при format=xml (сокращённо):
<?xml version="1.0" encoding="UTF-8"?> <root> <success>1</success> <type>movegood</type> <days_limit>30</days_limit> <count>1</count> <movegoods> <movegood> <id>91755</id> <src_warehouse_id>10</src_warehouse_id> <status>send</status> <!-- остальные поля шапки --> <items> <item> <line_id>1301</line_id> <item_id>431</item_id> <quantity>10.000</quantity> <!-- остальные поля строки --> </item> </items> </movegood> </movegoods> </root>
Примеры запросов
| Задача | Запрос |
|---|---|
| Перемещения за последние 30 дней (шапки) | /api/movegood?apikey=MySecret |
| Перемещения точки за квартал со строками | /api/movegood?apikey=MySecret&days=90&warehouse_id=2&withitems=1 |
| Один документ по ид | /api/movegood?apikey=MySecret&id=91755&days=3650&withitems=1 |
| Новые документы после последнего полученного | /api/movegood?apikey=MySecret&last_id=91750&days=90 |
| Перемещения за конкретный день | /api/movegood?apikey=MySecret&cdate=20260902&days=90 |
| Документы, изменённые с указанной даты | /api/movegood?apikey=MySecret&last_update_date=20260901 |
| Перемещения точки по её коду в 1С | /api/movegood?apikey=MySecret&ext_warehouse_id=WH-2&days=90 |
Ошибки
Ошибка авторизации и общие ошибки описаны в статье Общие сведения.
| Сообщение | Причина | Что делать |
|---|---|---|
| Incorrect date format '…'. Valid format is: YYYYMMDD | Дата в параметре не в формате ГГГГММДД | Передайте дату как 20260902 |
Если по условиям ничего не найдено, метод возвращает успешный ответ с count равным 0 и пустым списком movegoods.