Протокол API Структура API реализована по архитектуре REST. Коммуникация осуществляется посредством сообщений JSON, по адресам: Тестирования http://e-solution.pickpoint.ru/apitest/ Логин: Пароль: ИКН: Продуктив apitest apitest 9990003041 http://e-solution.pickpoint.ru/api/ Для корректной работы необходимо: в запросе указывать Content type равным “application/json”, таймаут ожидания выполнения запроса 60 секунд. Команды сервиса: Начало сессии (Login) Завершение сессии (Logout) Регистрация отправлений (одноместных)_ОБЯЗАТЕЛЬНЫЙ ШАГ! Регистрация отправлений (многоместных) Создание отправления клиентского возврата Получение списка возвратных отправлений Мониторинг отправления Получение информации по отправлению Получение стоимости доставки Вызов курьера_ОБЯЗАТЕЛЬНЫЙ ШАГ! Отмена вызова курьера Формирование реестра (по списку отправлений) в pdf_ОБЯЗАТЕЛЬНЫЙ ШАГ! Формирование реестра (по списку отправлений) Получение созданного реестра в pdf 1 Получение номера реестра по номеру отправления Формирование этикеток в pdf_ОБЯЗАТЕЛЬНЫЙ ШАГ! Формирование этикеток pdf для принтера Zebra Получение списка городов Получение списка терминалов Получение информации по зонам Получение информации по возвратной накладной Получение акта возврата денег Получение акта возврата товара Получение информации по вложимому Получение истории по списку отправлений Получение справочника статусов отправления Получение списка отправлений, прошедших этап (статус) 2 Начало сессии (Login) URL: /login Метод: POST Описание Команда предназначена для начала сеанса работы. В запросе отправляемся логин и пароль, в случае правильности, возвращается уникальный номер сессии, который действителен в течении установленного времени. Вся дальнейшая работа ведется на основании номера сессии. Структура запроса { “Login”:”<логин>”, “Password”:”<пароль>” } Структура ответа { “SessionId”:”<уникальный идентификатор сессии>”, “ErrorMessage”:”<текстовое сообщение об ошибке>” } Завершение сессии (Logout) URL: /logout Метод: POST Описание Команда предназначена для завершения сеанса работы. В запросе отправляется идентификатор сессии. В ответ возвращается признак успешности выполнения. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>” } Структура ответа { “Success”: <true/false> } 3 Регистрация отправлений (одноместных)_ОБЯЗАТЕЛЬНЫЙ ШАГ! URL: /createsending Метод: POST Описание Команда предназначена для регистрации отправлений. На вход принимается структура, содержащая номер сессии и список описаний отправлений, которые требуется зарегистрировать. Структура запроса { “SessionId”:”<уникальный идентификатор сессии>”, “Sendings”: [ { “EDTN“: “IKN“: “Invoice”: { “<Идентификатор отправления, используемый для ответа>”, “<ИКН – номер договора>”, “SenderCode“: “<Номер КО клиента>”, “BarCode“: “<Штрих код>”, “GCBarCode“: “<Клиентский штрих-код>”, “Description“: “<Описание отправления, обязательное поле>”, “RecipientName“: “<Имя получателя>”, “PostamatNumber“: “<Номер постамата>”, “MobilePhone“: “<Номер телефона получателя>”, “Email“: “<Адрес электронной почты получателя>”, “PostageType“: <Тип услуги>, “GettingType“: <Тип сдачи отправления>, “PayType“: <Тип оплаты>, “Sum“: <Сумма к оплате>, “InsuareValue“: <Страховка>, “Width“: <Ширина>, “Height“: <Высота>, “Depth“: <Глубина>”, “ClientReturnAddress”: ”<Адрес клиентского возврата>” { “CityName”: ”<Название города>”, “RegionName”: ”<Название региона>”, “Address”: ”<Текстовое описание адреса>”, “FIO”: ”<ФИО контактного лица>”, “PostCode”: ”<Почтовый индекс>”, “Organisation”: ”<Наименование организации>”, “PhoneNumber”: ”<Контактный телефон, обязательное поле>”, “Comment”: ”<Комментарий>” }, “UnclaimedReturnAddress”: ”<Адрес возврата невостребованного>” { “CityName”: ”<Название города>”, “RegionName”: ”<Название региона>”, “Address”: ”<Текстовое описание адреса>”, “FIO”: ”<ФИО контактного лица>”, “PostCode”: ”<Почтовый индекс>”, “Organisation”: ”<Наименование организации>”, “PhoneNumber”: ”<Контактный телефон, обязательное поле>”, “Comment”: ”<Комментарий>” 4 }, "SubEncloses": [ { <Субвложимые> "Line": "ProductCode": "GoodsCode": "Name": "Price": "<Номер>", "<Код продукта>", "<Код товара>", "<Наименование>", <Стоимость> } ] } } ] } Внимание! В случае если вид отправления (наложенное/предоплаченное) не соответствует значению в поле Sum, приоритет отдается значению в Sum. То есть, если указана не нулевая положительная сумма, отправление будет зарегистрировано как наложенных платеж и наоборот. Описание полей: SenderCode BarCode Description RecipientName PostamatNumber MobilePhone Email PostageType GettingType PayType Sum InsuareValue Width Height строка 50 символов ШК опционально, в зависимости от клиента Описание вложимого, строка 200 символов, обязательное поле Имя получателя, строка 60 символов, обязательное поле Номер постамата, вида xxxx-xxx, обязательное поле Мобильный телефон для СМС, обязательное поле Email, строка 256 символов Вид отправления, обязательное поле 10001 Стандарт 10002 Приоритет 10003 Стандарт НП 10004 Приоритет НП Тип сдачи отправления, обязательное поле 101 вызов курьера 102 в окне приема СЦ 103 в окне приема ПТ валом в окне приема ПТ (самостоятельный развоз в нужный ПТ + при 104 создании отправления у ПТ - С2С) Всегда 1 Сумма к оплате, обязательное поле Сумма страховки Ширина, в см, обязательное поле при типе сдаче в окне приема ПТ (валом или по ячейкам) Высота, в см, обязательное поле при типе сдаче в окне приема ПТ (валом или по ячейкам) 5 Глубина в см, обязательное поле при типе сдаче в окне приема ПТ (валом или по ячейкам) Depth Структура ответа { “CreatedSendings”: [ { “EDTN”: “InvoiceNumber”: “Barcode”: ”<Идентификатор отправления, используемый для ответа >”, ”<Номер отправления PickPoint>”, ”<Штрихкод отправления>” } ] “RejectedSendings”: [ { “EDTN”: “ErrorCode”: “ErrorMessage”: } ] ”<Идентификатор отправления, используемый для ответа >”, <Код ошибки>, ”<Описание ошибки>” } Регистрация отправлений (многоместных) URL: /CreateShipment Метод: POST Описание Команда предназначена для регистрации отправлений. На вход принимается структура, содержащая номер сессии и список описаний отправлений, которые требуется зарегистрировать. Структура запроса { “SessionId”:”<уникальный идентификатор сессии>”, “Sendings”: [ { “EDTN“: “IKN“: “Invoice”: { “<Идентификатор отправления, используемый для ответа>”, “<ИКН – номер договора>”, “SenderCode“: “<Номер КО клиента>”, ‘Description“: “<Описание отправления, обязательное поле>”, “RecipientName“: “<Имя получателя>”, “PostamatNumber“: “<Номер постамата>”, “MobilePhone“: “<Номер телефона получателя>”, “Email“: “<Адрес электронной почты получателя>”, “PostageType“: <Тип услуги>, “GettingType“: <Тип сдачи отправления>, “PayType“: <Тип оплаты>, 6 “Sum“: <Сумма>, “InsuareValue“: <Страховка>, “ClientReturnAddress”: ”<Адрес клиентского возврата>” { “CityName”: ”<Название города>”, “RegionName”: ”<Название региона>”, “Address”: ”<Текстовое описание адреса>”, “FIO”: ”<ФИО контактного лица>”, “PostCode”: ”<Почтовый индекс>”, “Organisation”: ”<Наименование организации>”, “PhoneNumber”: ”<Контактный телефон, обязательное поле>”, “Comment”: ”<Комментарий>” }, “UnclaimedReturnAddress”: ”<Адрес возврата невостребованного>” { “CityName”: ”<Название города>”, “RegionName”: ”<Название региона>”, “Address”: ”<Текстовое описание адреса>”, “FIO”: ”<ФИО контактного лица>”, “PostCode”: ”<Почтовый индекс>”, “Organisation”: ”<Наименование организации>”, “PhoneNumber”: ”<Контактный телефон, обязательное поле>”, “Comment”: ”<Комментарий>” }, “Places”: [ { “BarCode“: “<Штрих код>”, “gcBarCode”: “<Клиентский номер ШК >”, “Width“: <Ширина>, “Height“: <Высота>, “Depth“: <Глубина>>, "SubEncloses": <Субвложимые> [ { "Line": "<Номер>", "ProductCode": "<Код продукта>", "GoodsCode": "<Код товара>", "Name": "<Наименование>", "Price": <Стоимость> } ] } ] } } ] } Внимание! В случае если вид отправления (наложенное/предоплаченное) не соответствует значению в поле Sum, приоритет отдается значению в Sum. То есть, если указана не нулевая положительная сумма, отправление будет зарегистрировано как наложенных платеж и наоборот. 7 Описание полей: SenderCode BarCode gcBarCode Description RecipientName PostamatNumber MobilePhone Email PostageType GettingType PayType Sum InsuareValue Width Height Depth строка 50 символов ШК опционально, в зависимости от клиента Клиентский номер ШК Описание вложимого, строка 200 символов, обязательное поле Имя получателя, строка 60 символов, обязательное поле Номер постамата, вида xxxx-xxx, обязательное поле Мобильный телефон для СМС, обязательное поле Email, строка 256 символов Вид отправления, обязательное поле 10001 Стандарт 10002 Приоритет 10003 Стандарт НП 10004 Приоритет НП Тип сдачи отправления, обязательное поле 101 вызов курьера 102 в окне приема СЦ 103 в окне приема ПТ валом в окне приема ПТ (самостоятельный развоз в нужный ПТ + при 104 создании отправления у ПТ - С2С) Всегда 1 Сумма к оплате, обязательное поле Сумма страховки Ширина, в см, обязательное поле при типе сдаче в окне приема ПТ (валом или по ячейкам) Высота, в см, обязательное поле при типе сдаче в окне приема ПТ (валом или по ячейкам) Глубина, в см, обязательное поле при типе сдаче в окне приема ПТ (валом или по ячейкам) Структура ответа { “CreatedSendings”: [ { “EDTN”: ”<Идентификатор отправления, используемый для ответа >”, “InvoiceNumber”: ”<Номер отправления PickPoint>”, “Places”: [ { “gcBarCode”: “<Клиентский номер ШК>”, “Barcode”: ”<Штрихкод отправления>” } ] } ] “RejectedSendings”: [ 8 { “EDTN”: “ErrorCode”: “ErrorMessage”: ”<Идентификатор отправления, используемый для ответа >”, <Код ошибки>, ”<Описание ошибки>” } ] } Создание отправления клиентского возврата URL: / makereturn Метод: POST Описание Команда предназначена для создания отправления клиентского возврата на основе обычного отправления. Структура запроса { “SessionId”: “InvoiceNumber”: “ GCInvoiceNumber”: ”<уникальный идентификатор сессии>”, ”<Номер КО>”, ”<Номер отправления клиента>” } Поля InvoiceNumber и GCInvoiceNumber являются взаимоисключающими Структура ответа [ { “Error”: “ ReturnCode”: “<Описание ошибки>”, ”<Код для закладки возвратного отправления в постамат>” } ] Получение списка возвратных отправлений URL: /getreturninvoiceslist Метод: POST Описание Команда предназначена для получения списка возвратных отправлений, которые ранее не проходили через PickPoint. В запросе отправляется идентификатор сессии и интервал дат, за которые необходимо получить список. В ответ возвращается список отправлений с параметрами, либо ошибка. Структура запроса { 9 “SessionId”: “DateFrom”: “DatetTo”: ”<уникальный идентификатор сессии>”, ”<дата, с которой необходимо получить список >”, ”<дата, до которой необходимо получить список>” } Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими Структура ответа { SendingsInfo [ { “ “ “ “ “ “ “ InvoiceNumber”: SenderInvoiceNumber”: Barcode”: ConsultantNumber”: DateOfCreate”: PhoneNumber”: ReturnReason”: ”<номер отправления PickPoint>”, ”<номер отправления, введенный получателем>”, “<штрих-код PickPoint>”, ”<номер консультанта>”, ”<дата создания отправления>”, ”<номер телефона, введенный получателем>”, ”<указанная причина возврата>” } ] “Error”: “<описание ошибки>” } Мониторинг отправления URL: /tracksending Метод: POST Описание Команда предназначена для получения истории изменения статуса отправления. В запросе отправляется идентификатор сессии и номер отправления. В ответ возвращается история статусов отправления. Структура запроса { “SessionId”: “InvoiceNumber”: “SenderInvoiceNumber”: ”<уникальный идентификатор сессии>”, ”<Номер КО>”, ”<Номер отправления клиента>” } Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими Структура ответа [ { “State”: “ChangeDT”: “StateMessage”: “<код статуса>”, ”<дата изменения статуса>”, ”<описание статуса>” } ] 10 Получение информации по отправлению URL: /sendinginfo Метод: POST Описание Команда предназначена для получения информации по отправлению отправления. В запросе отправляется идентификатор сессии и номер отправления. В ответ возвращается признак успешности выполнения. Структура запроса { “SessionId”: “InvoiceNumber”: “SenderInvoiceNumber”: ”<уникальный идентификатор сессии>”, ”<Номер КО>”, ”<Номер отправления клиента>” } Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими. Структура ответа [ { “InvoiceNumber”: “SenderInvoiceNumber”: “Sum”: “CreateDate”: “FIO”: “StorageDate”: “Prolonged”: “Barcodes”: [ ”<Номер КО>”, ”<Номер отправления клиента>”, “<сумма за отправление>” ”<дата создания отправления>”, ”<ФИО получателя>”, ”<Срок хранения, если отправление еще не заложено, то пустое поле>”, ”<true/false – было или нет продление>”, “<штрих-код отправления>” … “<штрих-код отправления>” ], “ClientReturnAddress”: { “CityName”: “RegionName”: “Address”: “FIO”: “PostCode”: “Organisation”: “PhoneNumber”: “Comment”: }, “UnclaimedReturnAddress”: { “CityName”: “RegionName”: “Address”: “FIO”: “PostCode”: ”<Адрес клиентского возврата>” ”<Название города>”, ”<Название региона>”, ”<Текстовое описание адреса>”, ”<ФИО контактного лица>”, ”<Почтовый индекс>”, ”<Наименование организации>”, ”<Контактный телефон>”, ”<Комментарий>” ”<Адрес возврата невостребованного>” ”<Название города>”, ”<Название региона>”, ”<Текстовое описание адреса>”, ”<ФИО контактного лица>”, ”<Почтовый индекс>”, 11 “Organisation”: “PhoneNumber”: “Comment”: ”<Наименование организации>”, ”<Контактный телефон>”, ”<Комментарий>” } } ] Замечание: в случае, если под одним SenderInvoiceNumber было зарегистрировано несколько отправлений, ответ будет содержать информацию по всем этим отправлениям. Получение стоимости доставки URL: / getdeliverycost Метод: POST Описание Команда предназначена для получения стоимости доставки отправления. В запросе отправляется идентификатор сессии и список номеров отправлений. В ответ возвращается список номеров отправлений со стоимостями доставок. Стоимость доставки становится доступна на следующий день после регистрации отправления. Структура запроса { “SessionId”: “Sendings”: [ { ”<уникальный идентификатор сессии>”, ”<список отправлений>”, “InvoiceNumber”: “SenderInvoiceNumber”: ”<Номер КО>”, ”<Номер отправления клиента>” } ] } Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими. Структура ответа [ { “InvoiceNumber”: “SenderInvoiceNumber”: “NDS”: “Tariff”: ”<Номер КО>”, ”<Номер отправления клиента>”, ”<НДС>”, ”<Стоимость по тарифу>” } ] 12 Замечание: в случае, если под одним SenderInvoiceNumber было зарегистрировано несколько отправлений, ответ будет содержать информацию по всем этим отправлениям. Вызов курьера_ОБЯЗАТЕЛЬНЫЙ ШАГ! URL: /courier Метод: POST Описание Команда предназначена для создания вызова курьера. На вход принимается структура, содержащая номер сессии и описания адреса забора, времени забора, количества мест и общий вес. Структура запроса { “SessionId”: “IKN“: “SenderCode“: “City“: “City_id“: “City_owner_id“: “Address“: “FIO“: “Phone“: “Date“: “TimeStart“: “TimeEnd“: “Number“: “Weight”: “Comment“: ”<уникальный идентификатор сессии>”, “<ИКН клиента>”, “<Код вызова курьера отправителя, НЕ обязательное поле>”, “<Название города>”, <id города>, <owner_id город>, “<Адрес>”, “<Контактное лицо>”, обязательное поле, “<Контактный телфон>”, обязательное поле, “<Дата сбора>”, обязательное поле,//формат гггг.мм.дд <Ожидаемое время сбора с>,//количество минут от 00:00 < Ожидаемое время сбора по>,//количество минут от 00:00 <Количество мест>, <Общий вес, кг.>, “<Комментарий>” } Поля City и City_id/City_owner_id являются взаимоисключающими, при наличии обоих приоритет отдается City_id/City_owner_id Структура ответа { “CourierRequestRegistred”: <Признак успешности регистрации вызова курьера >,//<true/false> “OrderNumber”: “ErrorMessage”: <Номер заказа >, ”<Описание ошибки>” } Отмена вызова курьера URL: /couriercancel 13 Метод: POST Описание Команда предназначена для отмены вызова курьера. На вход принимается структура, содержащая номер сессии и номер вызова курьера. Структура запроса { “SessionId”: “OrderNumber“: ”<уникальный идентификатор сессии>”, “<Номер заказа>” } Структура ответа { “OrderNumber“: “Canceled”: “<Номер закза>”, ”<Результат запроса>”//<true/false> } Формирование реестра (по списку отправлений) в pdf_ОБЯЗАТЕЛЬНЫЙ ШАГ! URL: /makereestr Метод: POST Описание Команда предназначена для получения реестра в формате pdf. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, “CityName”: ”<Название города>”, “RegionName”: ”<Название региона>”, “Invoices”: [ ”<номер отправления1>”, … “<номер отправленияN>” ] } Структура ответа 14 В случае ошибки ответ содержит поток с текстом ошибки (начинается с ключевого слова «Error»), в случае успеха ответ содержит поток с pdf файлом в виде массива байт(начинается с «%PDF»). Формирование реестра (по списку отправлений) URL: /makereestrnumber Метод: POST Описание Команда предназначена для создания реестра и получения номера реестра. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений. На выход выдается список номеров созданных реестров или сообщение об ошибке Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, “CityName”: ”<Название города>”, “RegionName”: ”<Название региона>”, “Invoices”: [ ”<номер отправления1>”, … “<номер отправленияN>” ] } Структура ответа { “Numbers”: [ ”<номер реестр1>”, … “<номер реестрN>” ] “ErrorMessage”: ”<Сообщение ошибки>” } Получение созданного реестра в pdf URL: /getreestr Метод: POST Описание 15 Команда предназначена для получения реестра в формате pdf. На вход принимается структура, содержащая идентификатор сессии и номер отправления или номер реестра. Если указанное отправление не содержится ни в одном реестре или нет реестра с указанным номером, вернется соответствующее сообщение. Структура запроса { “SessionId”: “InvoiceNumber”: “ReestrNumber”: ”<уникальный идентификатор сессии>”, ”<номер отправления>”, ”<номер реестра>” } Структура ответа В случае ошибки ответ содержит поток с текстом ошибки (начинается с ключевого слова «Error»), в случае успеха ответ содержит поток с pdf файлом в виде массива байт(начинается с «%PDF»). Получение номера реестра по номеру отправления URL: /getreestrnumber Метод: POST Описание Команда предназначена для получения номера реестра. На вход принимается структура, содержащая идентификатор сессии и номер отправления. Если указанное отправление не содержится ни в одном реестре или нет реестра с указанным номером, вернется соответствующее сообщение. Структура запроса { “SessionId”: “InvoiceNumber”: ”<уникальный идентификатор сессии>”, ”<номер отправления>” } Структура ответа { “Number”: “ErrorMessage”: ”<номер реестр>”, ”<Сообщение ошибки>” } 16 Формирование этикеток в pdf_ОБЯЗАТЕЛЬНЫЙ ШАГ! URL: /makelabel Метод: POST Описание Команда предназначена для получения этикеток отправлений в формате pdf. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, “Invoices”: [ ”<номер отправления1>”, … “<номер отправленияN>” ] } Структура ответа В случае ошибки ответ содержит поток с текстом ошибки (начинается с ключевого слова «Error»), в случае успеха ответ содержит поток с pdf файлом в виде массива байт (начинается с «%PDF»). Формирование этикеток pdf для принтера Zebra URL: /makeZLabel Метод: POST Описание Команда предназначена для получения этикеток отправлений в формате pdf для печати на принтере Zebra. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, “Invoices”: [ ”<номер отправления1>”, … “<номер отправленияN>” ] } Структура ответа 17 В случае ошибки ответ содержит поток с текстом ошибки (начинается с ключевого слова «Error»), в случае успеха ответ содержит поток с pdf файлом в виде массива байт (начинается с «%PDF»). Получение списка городов URL: /citylist Метод: GET Описание Команда предназначена для получения списка городов. Структура ответа [ { “Id“: “Owner_Id”: “Name”: “RegionName”: “<Id города>”, ”<Owner_id города>”, ”<название города>”, ”<название региона города>” } ] Получение списка терминалов URL: /postamatlist Метод: GET Описание Команда предназначена для получения списка постаматов. Структура ответа [ { “Id“: “OwnerId”: “CitiId”: “CitiOwnerId”: “CitiName”: “Region”: “CountryName”: “Number”: “Metro”: “IndoorPlace”: “Address”: “House”: “PostCode”: “Name”: “WorkTime”: “Latitude”: “Longitude”: “<Id постамата>”, ”<Owner_id постамата>”, “<Id города>”, “<Owner_id города>”, “<Название города>”, “<Название региона>”, “<Название страны>”, ”<номер постамат, текст>”, ”<название ближайшей станция метро>”, ”<описание входа к постамату>”, ”<адрес расположения постамата>”, ”<номер дома>”, ”<почтовый индекс>”, ”<название>”, ”<интервалы рабочего времени постамата >”,//чч.мм-чч.мм,чч.мм-чч.мм,NODAY, … //по всем дням недели “<Широта>”, “<Долгота>”, 18 “Status”: “<Статус постамата: 1 – новый, 2 – рабочий, 3 - закрытый>”, “TypeTitle”: “Cash”: “Card”: “InDescription”: “OutDescription”: “MaxSize”: “<Тип терминала: АПТ/ПВЗ>”, “<Возможность оплаты наличными: 0 – нет, 1 – да>”, “<Возможность оплаты пластиковой картой: 0 – нет, 1 –да>”, “<Полное описание местонахождения терминала внутри>”, “<Полное описание местонахождения терминала снаружи>”, “<текстовое описание максимального размера одного из видов: - 36х36х60, - max сумма 3х измерений - 80 см>”, “<текстовое описание максимального веса отправления вида: 5 кг>” “MaxWeight”: } ] Получение информации по зонам URL: /getzone Метод: POST Описание Команда предназначена для получения списка зон. Структура запроса { “SessionId”: “FromCity”: “ToPT”: ”<уникальный идентификатор сессии>”, “<город отправитель груза, обязательное поле>”, “<Номер пункта выдачи>” } Если поле ToPT не указано, возвращается список зон по всем пунктам выдачи. Структура ответа { “Zones”: [ { “FromCity”: “ToCity”: “ToPT”: “Zone”: “DeliveryMin”: “DeliveryMax”: “Koeff”: “<Город отправления>”, “<Город доставки>”, “<Номер пункта выдачи>”, “<Номер зоны>”, “<Минимальное время доставки, дни>”, “<Максимальное время доставки, дни>”, “<Коэффицент>” } ], “Error”: “<Описание ошибки>” } Возможные ошибки: Город отправитель должен быть указан. По указанным параметрам информации не найдено. 19 Ошибка сервера. Попробуйте повторить запрос. В случае повторения ошибки обратитесь к разработчикам. Получение информации по возвратной накладной URL: /getreturn Метод: POST Описание Команда предназначена для получения номера возвратной накладной и, если есть, номера акта возврата. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, “Invoices”: [ ”<номер отправления Pickpoint или номер отправления клиента 1>”, … “<номер отправления Pickpoint или номер отправления клиента N>” ] } Структура ответа { “SessionId”: “ReturnInvoices”: [ { ”<уникальный идентификатор сессии>”, “InvoiceNumber”: “ReturnInvoiceNumber” “ReturnDocumentNumber”: } ], “ErrorCode”: “ErrorMessage”: ”<номер отправления Pickpoint>”, :”<номер отправления клиента (присвойка)>”, ”<номер акта возврата товара>” <Код ошибки: 0 – нет ошибки, -1 - ошибка>, ”<Описание ошибки>” } Получение акта возврата денег URL: /getmoneyreturnorder Метод: POST Описание Команда предназначена для получения акта возврата денег. 20 Структура запроса { “SessionId”: “IKN”: “DocumentNumber”: “DateFrom”: “DateEnd”: ”<уникальный идентификатор сессии>”, “< ИКН клиента, обязательное поле>”, “<Номер акта>” “<дата с, текстовая строка>”, “<дата по, текстовая строка >”, } Структура ответа [ “DocumentNumber”: ”<Номер акта>”, “Date”: “<Дата акта>”, “PayOrderNumber”: “<Номер платежного поручения>” , “Invoices”: [ { “InvoiceNumber”: “<Номер отправления>”, “GCInvoiceNumber”: “<Номер отправления клиента>”, “NPSum”: <Сумма наложенного платежа>, “RetSum”: <Сумма возврата>, Encloses [ { “Barcode”: “<Номер вложимого (штрих-код)>”, “GCBarcode”: “<Номер вложимого клиента>” } ] } ], “TotalNPSum”: <Общая сумма наложенного платежа>, “TotalRetSum”: <Общая сумма возврата> “Error”: “<Описание ошибки>” ] Возможные ошибки: Не указан ИКН. Неверный формат даты. Получение акта возврата товара URL: /getproductreturnorder Метод: POST Описание Команда предназначена для получения акта возврата товара. Структура запроса 21 { “SessionId”: “IKN”: “DocumentNumber”: “DateFrom”: “DateEnd”: ”<уникальный идентификатор сессии>”, “< ИКН клиента, обязательное поле>”, “<Номер акта>” “<дата с, текстовая строка>”, “<дата по, текстовая строка >”, } Структура ответа [ “DocumentNumber”: ”<Номер акта>”, “Date”: “<Дата акта>”, “Invoices”: [ { “InvoiceNumber”: “<Номер отправления>”, “GCInvoiceNumber”: “<Номер отправления клиента>”, “NPSum”: <Сумма наложенного платежа>, Encloses [ { “Barcode”: “<Номер вложимого (штрих-код)>”, “GCBarcode”: “<Номер вложимого клиента>” } ] } ], “TotalNPSum”: <Общая сумма наложенного платежа>, “Error”: “<Описание ошибки>” ] Возможные ошибки: Не указан ИКН. Неверный формат даты. Получение информации по вложимому URL: /encloseinfo Метод: POST Описание Команда предназначена для получения информации по вложимому. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, 22 “Barcode”: “<Штрих-код вложимого>” } Структура ответа { “Enclose”: { “Width”: “<Ширина отправления>”, “Height”: “<Высота отправления>”, “Depth”: “<Глубина отправления>”, “Weight”: “<Вес отправления>” }, “Error”: “<Описание ошибки>” } Возможные ошибки: Нет информации для авторизованного клиента по указанным параметрам. Нет действительной сессии с таким номером. Ошибка сервера. Попробуйте повторить запрос. В случае повторения ошибки обратитесь к разработчикам. Получение истории по списку отправлений URL: /tracksendings Метод: POST Описание Команда предназначена для получения истории изменения статусов по списку отправлений. В запросе отправляется идентификатор сессии и список номеров отправлений. В ответ возвращается массив номеров отправлений с историями изменений статусов. Структура запроса { “SessionId”: ”<уникальный идентификатор сессии>”, “Invoices”: <массив номеров отправлений> [ “<номер отправления PickPoint>” ] } Структура ответа { “Invoices”: [ “InvoiceNumber”: “States” [ “State”: ”<Номер КО>”, “<код статуса>”, 23 “ChangeDT”: “StateMessage”: ”<дата изменения статуса>”, ”<описание статуса>” ] ] } Получение справочника статусов отправления URL: /getstates Метод: GET Описание Команда предназначена для получения списка возможных статусов отправлений. Структура ответа [ { “State“: “StateText”: “<номер статута>”, ”<текстовое описание статуса>” } ] Получение списка отправлений, прошедших этап (статус) URL: /getInvoicesChangeState Метод: POST Описание Команда предназначена для получения списка отправлений, прошедших тот или иной этап (статус). В запросе отправляется идентификатор сессии, интервал дат и необходимый статус. Список возможных статусов можно получить с помощью метода getstates. В ответ возвращается массив номеров отправлений c дополнительной информацией. Структура запроса { “SessionId”: “DateFrom ”: “DateTo”: “State”: ”<уникальный идентификатор сессии>”, <дата с>, <дата по>, <статус, если не указан, то возвращается по всем статусам> } Структура ответа [ { “InvoiceNumber”: “SenderInvoiceNumber”: “State”: ”<Номер КО>”, ”<Номер отправления клиента>”, “<код статуса>”, 24 “ChangeDT”: “StateMessage”: } ”<дата изменения статуса>”, ”<описание статуса>” ] 25