# Movegood. Перемещения

> Источник: https://wiki.virtualpos.ru/hc/api/movegoods  
> Обновлено: 2026-09-26

Метод возвращает документы «Перемещение» — передачу товара между точками продаж — вместе со строками. Документы можно только читать: создание и изменение через API не поддерживаются.

> **Примечание:**
> Как получить ключ, как формируются запросы и какие бывают ответы и ошибки — в статье [Общие сведения](https://wiki.virtualpos.ru/hc/api/overview). Здесь описаны только особенности метода `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** — Строка. Дата изготовления и срок годности

## Пример ответа

```json
{
  "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
<?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` |

## Ошибки

Ошибка авторизации и общие ошибки описаны в статье [Общие сведения](https://wiki.virtualpos.ru/hc/api/overview).

| Сообщение | Причина | Что делать |
| --- | --- | --- |
| Incorrect date format '…'. Valid format is: YYYYMMDD | Дата в параметре не в формате `ГГГГММДД` | Передайте дату как `20260902` |

Если по условиям ничего не найдено, метод возвращает успешный ответ с `count` равным `0` и пустым списком `movegoods`.

## Связанные разделы

- [Общие сведения](https://wiki.virtualpos.ru/hc/api/overview) — Ключ доступа, вызов методов, форматы ответов и ошибки
- [Перемещение товара](https://wiki.virtualpos.ru/hc/stock/movement) — Работа с перемещениями в панели управления
- [Warehouse. Точки продаж](https://wiki.virtualpos.ru/hc/api/warehouse) — Справочник точек продаж
