====== API :: Inflow. Получение/изменение документов Поступления ======
В системе реализован программный интерфейс для получения, добавления, изменения и удаления данных о документах "Поступление". Данные выгружаются по HTTP протоколу. Формат на выбор - XML или JSON.
===== Пример запроса на получение данных =====
Глубина запроса по умолчанию - последние 30 дней. Для изменения глубины необходимо использовать параметр **days**.
Пример запроса на получение данных о документах "Поступление":
http://mycompany.virtpos.ru/api/inflow?apikey=MySecret&format=xml
==== Параметры запроса на получение данных ====
Все параметры кроме format могут быть переданы как get- или post-параметры. Поле format передается только как get.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **date** - получение Поступлений на определенную дату. Формат: ГГГГММДД. Необязательный параметр.
* **datefrom** - получение Поступлений начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр.
* **dateto** - получение Поступлений начиная до определенной даты. Формат: ГГГГММДД. Необязательный параметр.
* **cdatefrom** - получение Поступлений, созданных начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр.
* **cdateto** - получение Поступлений, созданных до определенной даты. Формат: ГГГГММДД. Необязательный параметр.
* **last_update_date** - получение Поступлений, обновленных начиная с определенной даты. Формат: ГГГГММДД. Необязательный параметр.
* **warehouse_id** - код магазина. для которого надо вернуть поступления. Если не указан, то возвращаются Поступления для всех магазинов. Необязательный параметр.
* **ext_warehouse_id** - код магазина во внешней системе (например, в 1С). Параметр игнорируется, если передан warehouse_id. Необязательный параметр.
* **id** - ID документа Поступления. Необязательный параметр. Если не указан, возвращаются все документы.
* **external_id** - код Поступления во внешней системе (например, в 1С). Если указан, возвращается только документ с указанным кодом.
* **last_id** - Необязательный параметр. Используется для получения новых документов с момента последнего обмена. Если параметр указан, то передаются все более новые поступления (с бОльшим ID)
* **days** - задает глубину поиска. Определяет, за какое количество дней от текущей даты надо вернуть документы Поступления. Необязательный параметр.
* **withitems** - принимает значение "1" или "0". Если "1", то возвращает строки поступления, иначе только "шапки" поступлений.
* **withadjustment** - принимает значение "1" или "0". Если "1", то возвращает документ "Корректировка поступления"
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info
==== Пример ответа сервера ====
Ниже приведен пример ответа сервера в формате XML
1
inflow
30
1
12
1
2016-10-25 00:00:00
118
1
212
Мой поставщик
1234567890123
111
1
111
4545.00
accept
2016-11-18 15:37:55
4
2016-11-18 15:39:16
4
321
803ad8b6-688c-11e7-849d-74d435ee6043
-
100
431
Открытка с шоколадом
68.000
68.000
65.0000
4420.00
803ad8b6-688c-11e7-849d-74d435ee6043
-
101
668
Шоколад "Большой набор"
1.000
1.000
125.0000
125.00
803ad8b6-688c-11e7-849d-74d435ee6043
5
Корректировка поступления к товарной накладной №1
2017-07-03 16:18:55
11
5
eacf7608-892c-11e4-ab28-005056a7771f
Аджика по-абхазски SUNFEEL 250 г.
5.000
1.000
12
9
7c3cbdc3-8d0f-11e4-ab28-005056a7771f
Адреналин Раш, 0.5 л. ж/б
2.000
1.000
==== Структура ответа сервера ====
**Шапка документа**
* **id** - ID документа поступления
* **warehouse_id** - ID магазина, на который оформлено поступление
* **docdate** - дата документа поступления
* **waybill** - номер документа поступления
* **supplier_id** - ID Поставщика
* **supplier_name** - название Поставщика
* **supplier_type** - код типа Поставщика
* **supplier_external_id** - код Поставщика во внешней системе учета (например, в 1С)
* **warehouse_external_id** - код Магазина во внешней системе учета (например, в 1С)
* **amount** - сумма поставки
* **status** - статус документа поставки (accept – принят, drаft – черновик)
* **created_date** - дата создания документа поступления (может не совпадать с датой документа Поступления)
* **created_by** - ID пользователя, создавшего поступление
* **last_update_date** - дата и время последнего изменения в поступлении
* **last_update_by** - ID пользователя, сделавшего последние изменения
* **external_id** - код Поступления во внешней системе (например, в 1С)
* **accept_date** - дата принятия товара на склад
* **factura_invoice_num** - номер счёта-фактуры
* **factura_invoice_date** - дата счёта-фактуры
* **UPD_num** - номер документа УПД
* **UPD_date** - дата документа УПД
* **correction_num** - номер исправления
* **guid** - GUID документа
Содержание документа (зависит от настройки загружаемых полей и гибких полей на товарный остаток)
* **line_id** - сквозной ID строки в транзакциях поступлений
* **item_id** - ID товарной позиции по номенклатурному справочнику
* **item_ext_id** - идентификатор товара во внешней системе
* **item_name** - наименование позиции
* **quantity** - количество
* **quantity_expected** - ожидаемое количество
* **barcode** - штрих-код по накладной поступления
* **price** - цена поступления
* **amount** - сумма по строке
* **manuf_date** - дата изготовления
* **expir_date** - годен до
* **lot_number** - характеристика (серия, партия и пр) позиции в накладной поступления
* **external_id** - идентификатор строки товара в Поступлении во внешней системе
* **vat_rate** - ставка НДС
* **vat_sum** - сумма НДС
* **sum_minus_vat** - сумма по строке товарной позиции без НДС
* **guid** - GUID строки
*
* **onhand_id** - ID товарного остатка
=== Данные о корректировке поступления (adjustment): ===
* - ID корректировки поступления
* - наименование корректировки поступления
* - дата создания корректировки поступления
* - товары корректировки поступления
* 11 - id товара в корректировке поступления
* 5 - id товара в VirtualPos
* eacf7608-892c-11e4-ab28-005056a7771f - уникальный id товара
* Аджика по-абхазски SUNFEEL 250 г. - название товара
* 5.000 - фактическое количество товара в корректировке
* 1.000 - ожидаемое количество товара в корректировке
===== Пример запроса на добавление/изменение данных Поступления =====
Пример запроса на обновление данных о поступлении:
http://mycompany.virtpos.ru/api/inflow/update/?apikey=MySecret&format=xml&id=1&comment=NewComment
==== Параметры запроса ====
Если параметр не помечен как "get only", то он может быть передан как get- или как post-параметр.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **id** (get only) - идентификатор поступления, данные которого нужно обновить
* **external_id** (get only) - код поступления во внешней системе учета (например, в 1С)
* **create_if_not_exist** (get only) - Если истина, то при неудачном поиске поступление будет добавлен в систему.
* **supplier_external_id** - код Поставщика во внешней системе. Необязательный параметр; если указан, то будет осуществлен поиск Поставщика по указанному коду и добавление ссылки на него в документ Поступления
* **warehouse_external_id** - код Магазина во внешней системе. Необязательный параметр; если указан, то будет осуществлен поиск Магазина по указанному коду и добавление ссылки на него в документ Поступления.
* Также в качестве параметров могут быть переданы все поля для поступления
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была обновлена или добавлена.
* Флаг **isnew** равен "1", если запись была создана, и "0" если обновлена.
==== Пример ответа сервера ====
1
1
0
==== Массовое обновление поступления ===
Возможно через http://virtualpos.ru/api/inflow/batchUpdate/?apikey=MySecret&format=xml&id=1&batch=batch
Пример batch:
12
1
2016-10-25 00:00:00
118
1
212
Мой поставщик
1234567890123
111
1
111
4545.00
accept
2016-11-18 15:37:55
4
2016-11-18 15:39:16
4
321
-
100
431
Открытка с шоколадом
68.000
68.000
65.0000
4420.00
-
101
668
Шоколад "Большой набор"
1.000
1.000
125.0000
125.00
===== Пример запроса на удаление данных Поступления =====
Пример запроса на удаление поступления:
http://mycompany.virtpos.ru/api/inflow/delete/?apikey=MySecret&format=xml&id=1
==== Параметры запроса ====
параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **id** (get only) - идентификатор поступления, которое будет удалено
* **external_id** (get only) - код поступления во внешней системе учета (например, в 1С)
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была удалена.
==== Пример ответа сервера ====
1
1
===== Пример запроса на принятие накладной по Поступлению =====
Пример запроса на принятие накладной на поступление:
http://mycompany.virtpos.ru/api/inflow/accepting/?apikey=MySecret&format=xml&id=1
==== Параметры запроса ====
параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **id** (get only) - идентификатор поступления
* **external_id** (get only) - код поступления во внешней системе учета (например, в 1С)
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи.
==== Пример ответа сервера ====
1
1
===== Пример запроса на откат принятия накладной по Поступлению =====
Пример запроса на откат принятия накладной на поступление (накладная откатывается в состояние "Черновик"):
http://mycompany.virtpos.ru/api/inflow/rollback/?apikey=MySecret&format=xml&id=1
==== Параметры запроса ====
параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **id** (get only) - идентификатор поступления
* **external_id** (get only) - код поступления во внешней системе учета (например, в 1С)
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи.
==== Пример ответа сервера ====
1
1
===== Пример запроса на добавление/изменение данных строки товарной позиции Поступления =====
Пример запроса на обновление данных о товарной позиции в поступлении:
http://mycompany.virtpos.ru/api/inflow/updateItems/?apikey=MySecret&format=xml&id=1&quantity=2
==== Параметры запроса ====
параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **id** (get only) - идентификатор товарной строки в поступлении, данные которой нужно обновить
* **external_id** (get only) - код товарной строки в поступлении во внешней системе учета (например, в 1С)
* **create_if_not_exist** (get only) - Если истина, то при неудачном поиске товарная строка будет добавлена в систему.
* Также в качестве параметров могут быть переданы все поля для строки товарной позиции в поступлении
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была обновлена или добавлена.
* Флаг **isnew** равен "1", если запись была создана, и "0" если обновлена.
==== Пример ответа сервера ====
1
1
0
===== Пример запроса на удаление данных строки товарной позиции в Поступлении =====
Пример запроса на удаление товарной строки из документа поступления:
http://mycompany.virtpos.ru/api/inflow/deleteItems/?apikey=MySecret&format=xml&id=1
==== Параметры запроса ====
параметры, которые не отмечены как **get only**, могут быть переданы как get- или как post-параметры.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **id** (get only) - идентификатор строки товарной позиции Поступления, которая будет удалена
* **external_id** (get only) - код строки товарной позиции Поступления во внешней системе учета (например, в 1С)
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается id записи, которая была удалена.
==== Пример ответа сервера ====
1
1
===== Пример запроса для загрузки файла Поступления =====
Пример запроса для загрузки поступления:
http://mycompany.myvirtualpos.ru/api/inflow/upload?apikey=MySecret&format=xml&encoding=utf8&waybill=123123123&warehouse_id=6&supplier_id=8&unique=false
==== Параметры запроса ====
Если параметр не помечен как **get only**, то он может быть передан как get- или как post-параметр.
* **apikey** - Секретный ключ для доступа к данным. Обязательный параметр.
* **format** (get only) - формат, в котором сервер отдаст данные. Может принимать значения "xml" или "json". Необязательный параметр.
* **waybill** - товарная накладная. Обязательный параметр.
* **docdate** - дата документа в формате YYYYMMDD. Необязательный параметр. По умолчанию используется текущая дата.
* **encoding** - кодировка файла. Необязательный параметр. Может принимать значения "cp1251" и "utf8". По умолчанию "cp1251".
* **supplier_id** - ID Поставщика. Обязательный параметр.
* **supplier_external_id** - ID Поставщика во внешней системе. Может быть использован вместо **supplier_id**.
* **warehouse_id** - ID Магазина. Обязательный параметр.
* **warehouse_external_id** - ID Магазина во внешней системе. Может быть использован вместо **warehouse_id**.
* **phone** - телефон клиента. Необязательный параметр. Необходим, если из Поступления планируется создать заказ.
* **order** - номер заказа. Необязательный параметр. Необходим, если из Поступления планируется создать заказ.
* **unique** - Если равен true, то будет проверено, что такое Поступление еще не загружалось в систему. Если false - проверки не будет. Необязательный параметр. По умолчанию равен true.
==== Ответ сервера ====
В ответ получаем XML или JSON. В ответе обязательно присутствует поле success. Если success=1, то операция выполнена успешно. Если success=0, то произошла ошибка. Дополнительная информация об ошибке содержится в поле info.
Также возвращается имя временного файла, в который было сохранено загруженное поступление. В дальнейшем из него будет создано поступление в системе.
==== Пример ответа сервера ====
1
<0>74e474f98c55579e5f0bc72123da2b68.csv0>