Протокол API

 

 

ВНИМАНИЕ: Схема бизнес процесса по отправке заказов через PickPoint:

 

Ниже описаны основные необходимые команды для осуществления отправок через PickPoint:

1

Зарегистрировать отправления

2

Формирование этикеток

3

Формирование реестра

4

Вызов курьера

 

Структура API реализована по архитектуре REST. Коммуникация осуществляется посредством сообщений JSON, сервис доступен по адресам:

Тестовая версия                    https://e-solution.pickpoint.ru/apitest/

                                               Логин:             apitest

                                               Пароль:          apitest

                                               ИКН:                9990003041

 

Рабочая версия                      https://e-solution.pickpoint.ru/api/

                                               Логин:             2LzNqu

                                               Пароль:          G5kvdGZjUrV1

                                               ИКН:                9990003041

 

 

Для корректной работы необходимо:

 

 


ОглавлениеСКАЧАТЬ

Таблица изменений.. 3

Начало сессии (Login). 4

Регистрация отправлений.. 4

Формирование этикеток в pdf 8

Формирование этикеток pdf для принтера Zebra.. 9

Формирование реестра (по списку отправлений). 10

Удаление отправления из реестра. 12

Получение номера реестра по номеру отправления. 12

Вызов курьера.. 13

Отмена вызова курьера.. 14

Обновление полей созданного отправления. 14

Удаление отправления. 16

Отмена заказа.. 17

Удаление вложимого.. 18

Получение справочника статусов отправления. 18

Получение списка вложимых отправлений за заданный период со всеми прошедшими статусами.. 21

Получение акта возврата денег. 22

Получение акта возврата товара.. 23

Получение списка городов. 24

Получение списка терминалов по номеру контракта.. 24

Получение списка терминалов по номеру контракта с опцией "Возврат разрешен"  26

Получение информации по зонам.. 28

Расчет тарифа.. 28

Получение версии API 30

Коды ошибок. 31


Таблица изменений

Версия

Дата

Изменения

1.8.0.0

19.02.2019

·         В метод UpdateInvoice добавлена возможность обновлять товарную часть

·         Добавлен метод Enclosedelete

1.8.7.0

23/05/2019

·         Добавлен метод «Отмена заказа»

1.8.12.0

24/07/2019

·         В метод "CreateShipment" на уровне SubEncloses добавить новое поле "upi" - код товара

·         В метод UpdateInvoice добавить новые параметры: operator_id и operator_ownerid

1.8.13.0

05/08/2019

·         В метод "CreateShipment" добавлены новые параметры: "ClientName", "TitleRus", "TitleEng"

1.8.14.2

03/09/2019

·         Добавлен метод получения списка точек по ИКН с опцией "Возврат разрешен"

 


Начало сессии (Login)

URL: /login

Метод: POST

Описание

Команда предназначена для начала сеанса работы. В запросе отправляется логин и пароль, в случае правильности, возвращается уникальный номер сессии, который действителен 24 часа, если по ней небыло Logout. Вся дальнейшая работа ведется на основании номера сессии (одну сессию можно использовать для любого запроса, пока она валидна).

Структура запроса

{

                Login”:”<логин (50 символов)>”,>”,

                Password”:”<пароль (20 символов)>”

}

 

Структура ответа

{

                SessionId”:”<уникальный идентификатор сессии  (GUID 16 байт)>”,

                ErrorMessage”:”<текстовое сообщение об ошибке (200 символов)>”

}

 

Регистрация отправлений

URL: /CreateShipment

Метод: POST

Описание

Команда предназначена для регистрации отправлений. На вход принимается структура, содержащая номер сессии и список описаний отправлений, которые требуется зарегистрировать.

 

Структура запроса

{

                SessionId”:”<уникальный идентификатор сессии (GUID 16 байт)>”,

                Sendings”:

            [

                        {

                                               “EDTN“:                 “<Идентификатор запроса, используемый для ответа. Указывайте уникальное число (50 символов)>”,

                                               “IKN“:                     “<ИКН – номер договора (10 символов)>”,

                                                “ClientNumber“:     “<Номер клиента в системе агрегатора (отражается в возвратных накладных от PickPoint), обязательное поле, если у ИКН проставлен флаг в CRM "Является агрегатором">”,

                                               “ClientName”:         ”<Наименование клиента в системе агрегатора, необязательное поле. Следует заполнять только при регистрации КО переданный в запросе ИКН принадлежит клиенту-агрегатору>”,

                                                “TittleRus”:              ”<Наименование на русском для отображения на сайте в мониторинге PickPoint, необязательное поле>”,

                                                “TittleEng”:               ”<Наименование на английском для отображения на сайте в мониторинге PickPoint, необязательное поле>”,                                 

                                                Invoice”:

                                               {

                                                               SenderCode“:    “<Номер заказа магазина (50 символов)>”,

‘Description“:       “<Описание отправления, обязательное поле (200 символов)>”,

                                                               “RecipientName“:              “<Имя получателя (150 символов)>”,

                                                               PostamatNumber“:           “<Номер постамата, обязательное поле (8 символов)>”,

                                                               MobilePhone“:   “<один номер телефона получателя, обязательное поле(100 символов)>”,

                                                               Email“:                 “<Адрес электронной почты получателя (256 символов)>”,

                                                               ConsultantNumber” “<Номер консультанта>”,

PostageType“:    <Тип услуги, (см. таблицу ниже) обязательное поле >,

                                                               GettingType“:     <Тип сдачи отправления, (см. таблицу ниже) обязательное поле >,

                                                               PayType“:            <Тип оплаты, (см. таблицу ниже) обязательное поле >,

                                                               Sum“:                   <Сумма, обязательное поле (число, два знака после запятой)>,

                                                               "PrepaymentSum":              < Сумма предоплаты >,

                                                               "DeliveryVat":                        < Ставка НДС по сервисному сбору >,

                                                               "DeliveryFee":                        < Сумма сервисного сбора с НДС >,

                                                               InsuareValue“:   <Страховка (число, два знака после запятой)>,

                                                               "DeliveryMode":    "<Режим доставки (значения : 1, если Standard и 2, если Priority)> ",

                                                               "SenderCity":         ”<Город сдачи>”

{

                                                                               CityName”:         ”<Название города сдачи отправления>”,

                                                                               RegionName”:   ”<Название региона сдачи отправления>”

},

                                                               ClientReturnAddress”:       ”<Адрес клиентского возврата>” Данный блок можно не передавать. Если передаете, то необходимо заполнение всех полей блока.

{

                                                                               CityName”:         ”<Название города (50 символов)>”,

                                                                               RegionName”:   ”<Название региона (50 символов)>”,

                                                                               Address”:            ”<Текстовое описание адреса (150 символов)>”,

                                                                               FIO”:                     ”<ФИО контактного лица (150 символов)>”,

                                                                               PostCode”:         ”<Почтовый индекс (20 символов)>”,

                                                                               Organisation”:    ”<Наименование организации (100 символов)>”,

                                                                               PhoneNumber”: ”<Контактный телефон, обязательное поле (допускаются круглые скобки и тире)>”,

                                                                               Comment”:         ”<Комментарий (255 символов)>”

},

                                                               UnclaimedReturnAddress”:              ”<Адрес возврата невостребованного >” Данный блок можно не передавать. Если передаете, то необходимо заполнение всех полей блока.

{

                                                                               CityName”:         ”<Название города (50 символов)>”,

                                                                               RegionName”:   ”<Название региона (50 символов)>”,

                                                                               Address”:            ”<Текстовое описание адреса (150 символов)>”,

                                                                               FIO”:                     ”<ФИО контактного лица (150 символов)>”,

                                                                               PostCode”:         ”<Почтовый индекс (20 символов)>”,

                                                                               Organisation”:    ”<Наименование организации (100 символов)>”,

                                                                               PhoneNumber”: ”<Контактный телефон, обязательное поле (допускаются круглые скобки и тире)>”,

                                                                               Comment”:         ”<Комментарий  (255 символов)>”

},

                                                               Places”:

[

{

“BarCode“:           “<Штрих код от PickPoint. Отправляйте поле пустым, в ответ будет ШК (50 символов)>”,

GCBarCode”:     “<Клиентский штрих-код. Поле не обязательное. Можно не отправлять (255 символов)>”,

"CellStorageType":   <тип ячейки, при отсутствии данного поля,

значение по умолчанию = 0 (стандарт)

0 – стандарт,

1 – ,холодильник,

2 – морозильная камера>

Width“:                 <Ширина (число, два знака после запятой)>,

Height“:                               <Высота (число, два знака после запятой)>,

Depth“:                               <Глубина(число, два знака после запятой)>>,

“Weight“                               <Вес (число, два знака после запятой)>,

 

                                                                                              "SubEncloses":       <Субвложимые>

[

{

"ProductCode":    "<Артикул товара(50 символов)>"1,

"GoodsCode":      "<ШК товара(50 символов)>"1,

"Name":                 "<Наименование товара(200 символов)>"1,

"Price":                    <Стоимость ед. товара с НДС>1

"Quantity":            < Кол-во ед. товара одного арт.>,

"Vat":                      < Ставка НДС по товару >,

"Description":         <" Описание товара ">

"Upi":                        <код товара>

}

                                                                                              ]

}

]

                                               }

}

]

}

 

(1)Длина полей: (len(Line) + len(ProductCode) + len(GoodsCode) + len(Name) + 3) <= 255

Внимание! В случае если вид отправления (наложенное, с  PostageType 10003/предоплаченное, с  PostageType 10001) не соответствует значению в поле Sum, приоритет отдается значению в Sum. То есть, если указана не нулевая положительная сумма, отправление будет зарегистрировано как наложенный платеж и наоборот.

 

Описание полей:

SenderCode

Номер заказа магазина. строка 50 символов

BarCode

Значение Штрих Кода. Если вам не выделили диапазон ШК, отправляйте поле пустым

Description

Описание типа вложимого, Пример: «Одежда и Обувь». строка 200 символов, обязательное поле

RecipientName

Имя получателя, строка 150 символов, обязательное поле

PostamatNumber

Номер постамата, вида XXXX-XXX, обязательное поле

MobilePhone

Один номер Мобильного телефона получателя для SMS
Формат номера телефона

  • Для России + 7 (далее 10 цифр без пробелов, скоробок, тире) пример: +79151234352
  • Для Белоруссии +375 (далее 9 цифр без пробелов, скобок, тире) пример: +375786142536


 обязательное поле

Email

Email, строка 256 символов

ConsultantNumber

Номер консультанта, строка 50 символов

PostageType

Вид отправления, обязательное поле

10001

Стандарт. Оплаченный заказ. При этом нужно передавать поле «Sum=0»

10003

Стандарт НП Отправление с наложенным платежом. При этом нужно передавать поле «Sum>0»

GettingType

Тип сдачи отправления, обязательное поле

101

«вызов курьера» -Наш курьер приедет к вам за отправлениями.

102

«в окне приема СЦ» - Вы привезете отправления в филиал PickPoint

103

«в окне приема ПТ валом» - НЕ ИСПОЛЬЗУЕТСЯ

104

«в окне приема ПТ» (самостоятельный развоз в нужный ПТ + при создании отправления у ПТ - С2С) - НЕ ИСПОЛЬЗУЕТСЯ

PayType

Всегда 1

Sum

Сумма к оплате. обязательное поле См.п. «PostageType» 

InsuareValue

Сумма страховки - НЕ ИСПОЛЬЗУЕТСЯ

PrepaymentSum

Сумма предоплаты, если платеж уже был внесен частично

DeliveryFee

Сумма сервисного сбора с НДС, если берется с физ. лица

DeliveryVat

Ставка НДС по сервисному сбору, возможные значения:
"
DeliveryVat": 20 (НДС 20%)

"DeliveryVat": 10 (НДС 10%)

"DeliveryVat": 0 (НДС 0%)

"DeliveryVat": null (без НДС)

 

DeliveryMode*

Режим доставки- допустимые значения : 1, если Standard и 2, если Priority

SenderCity*

Город сдачи отправлений в PickPoint

Width

Ширина, в см. Если не знаете точных габаритов, данное поле можно не передавать

Height

Высота, в см. Если не знаете точных габаритов, данное поле можно не передавать

Depth

Глубина в см. Если не знаете точных габаритов, данное поле можно не передавать

Weight

Вес в кг. Если не знаете точных габаритов, данное поле можно не передавать

 

 

Vat

Ставка НДС по товару:
"Vat": 20 (НДС 20%)

"Vat": 10 (НДС 10%)

"Vat": 0 (НДС 0%)

"Vat": null (без НДС)

 

*в случае если вы используете несколько режимов доставки согласно договору, поле «DeliveryMode» является обязательным для заполнения. Если вы используете несколько режимов доставки из разных городов сдачи, то поле «SenderCity» так же является обязательным для заполнения. В случае если, вы указали режим доставки не предусмотренный вашим договором, то режим будет изменен автоматически нашей системой при сохранении. Например: если отправка из МСК в СПБ предусматривает только режим доставки «стандарт», но при регистрации вы в поле «DeliveryMode» указали режим доставки 2 («Priority») при сохранении наша система сделает проверку и мы сохраним режим доставки согласно договору, т.е «Стандарт». В случае если вы используете несколько режимов доставки согласно договору и оставили поле  «DeliveryMode» пустым или указали другое значение отличное от допустимых, такой заказ будет сохранен в нашей системе с режимом доставки «стандарт»

**в случае, если у клиента несколько ИКН, допускается регистрация отправлений с одним и тем же номером присвойки на каждый из ИКН.

Структура ответа

{

                “CreatedSendings”:

                [

                               {

                                               “EDTN”:                  ”< Значение идентификатора запроса (50 символов)>”,

                                               InvoiceNumber”: ”<Номер отправления присвоенный PickPoint (20 символов)>”,

SenderCode“:    “<Номер заказа магазина (50 символов)>”,

                                               Places”:

                                               [

                                                               {

                                                               GCBarCode”:    “<Клиентский номер ШК (255 символов, если есть во входящем запросе)>”,

Barcode”:           ”< Штрих код от PickPoint (50 символов, генерируется, если не было во входящем запросе)>”

"CellStorageType": < тип ячейки >

}

                                               ]

}

]

 

                RejectedSendings”:

                [

                               {

                                               “EDTN”:                  ”< Значение идентификатора запроса (50 символов)>”,

SenderCode“:    “<Номер заказа магазина (50 символов)>”,

                                               “ErrorCode”:         <Код ошибки, цифра >,

                                               “ErrorMessage”:    ”<Описание ошибки, (200 символов)>”

}

]

}

 

 

Формирование этикеток в pdf

URL: /makelabel

Метод: POST

Описание

Команда предназначена для получения этикеток в формате pdf размещаемые на отправлениях. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений. На выходе массив байт.

Этикетки можно создавать на отправления в статусах: 101-104.

 

Вид этикетки:

 

 

 

 

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии  (GUID 16 байт)>”,

“Invoices”:

                 [

                ”<номер отправления1>”,

                        

                “<номер отправленияN>”

]

}

 

Структура ответа

В случае ошибки ответ содержит поток с текстом ошибки (начинается с ключевого слова «Error»), в случае успеха ответ содержит поток с pdf файлом в виде массива байт (начинается с «%PDF»).

 

Формирование этикеток pdf для принтера Zebra

URL: /makeZLabel

Метод: POST

Описание

Команда предназначена для получения этикеток отправлений в формате pdf для печати на принтере самоклеящихся этикеток типа Zebra размерами 57х60мм. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений. На выходе массив байт.

Этикетки можно создавать на отправления в статусах: 101-104.

Вид этикетки:

 

 

 

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии  (GUID 16 байт)>”,

“Invoices”:

                 [

                ”<номер отправления1>”,

                        

                “<номер отправленияN>”

]

}

 

Структура ответа

В случае ошибки ответ содержит поток с текстом ошибки (начинается с ключевого слова «Error»), в случае успеха ответ содержит поток с pdf файлом в виде массива байт (начинается с «%PDF»).

 

Формирование реестра (по списку отправлений)

URL: /makereestrnumber

Метод: POST

Описание

Команда предназначена для создания реестра и получения номера данного реестра. На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений (или/и ШК вложимых, или/и номера присвоек). На выход выдается список номеров созданных реестров или сообщение об ошибке. Если все отправления создаются с одним типом передачи отправлений в PickPoint и из одного города, то реестр будет 1.

 

Структура запроса

{

“SessionId”:           ”<уникальный идентификатор сессии  (GUID 16 байт)>”,

                CityName”:         ”<Название города передачи отправления в PickPoint>”,

                RegionName”:    ”<Название региона передачи отправления в PickPoint >”,

 "DeliveryPoint":      "<Пункт сдачи, номер постамата>",

“ReestrNumber”:      ”<Номер документа Клиента>”,

“Invoices”:

 [

                ”<номер отправления1>”,

                        

                “<номер отправленияN>”

],

Encloses”:

<номер ШК 1>

        

“<номер ШК N>”

],

“SenderCodes“:   “<Номер заказа магазина (50 символов)>”,

[

”<номер присвойки>”,

                        

“<номер присвойки N>”

]

}

 

}

 

Структура ответа

{

“Numbers”:

 [

                ”<номер реестр1>”,

                        

                “<номер реестрN>”

]

ErrorMessage”:    ”<Сообщение ошибки>”

}

 

Внимание! Если вам вернулась ошибка “Не все отправления находятся в статусе «Зарегистрирован» № отправления: 159….» - это означает что вы пытаетесь создать реестр на отправление которое не зарегистрировано или на которое уже был сделан реестр. В таком случае вам необходимо зарегистрировать отправление заново и создать этикетку, а после добавить в реестр.

Установлен следующий приоритет обработки полей:

  1. 1.SenderCodes
  2. 2.Encloses
  3. 3.Invoices

Если поле 1 не заполнено – обработка запроса производится по полю 2 и т.д.

Для добавления отправлений в реестр все переданные в запросе отправления должны пренадлежать одному ИКН, в том числе в случае, если у клиента несколько ИКН.

 

 

Удаление отправления из реестра

URL: /removeinvoicefromreestr

Метод: POST

Описание

Команда предназначена для удаления отправлений из реестра передачи клиента (отправление возвращается в статус «Зарегистрирован» ("State":101)). Реестр при этом не должен быть в статусе «Принят». Для успешного удаления отправления его вложимые должны быть в статусах: «Сформирован для передачи Логисту», «Развоз до ПТ самостоятельно», «Сформирован для отправки». В случае, если эти условия не выполнены, то будет выведено соответствующее сообщение.

 

Структура запроса

{

“SessionId”:            ”<уникальный идентификатор сессии  (GUID 16 байт), обязательное поле >”,

IKN”:                      ”< ИКН – номер договора (10 символов) (10 символов), обязательное поле >”,

InvoiceNumber”:   ”<номер отправления>”,

SenderCode“:       “<номер заказа в магазине (50 символов)>”

 }

 

 

 

Структура ответа

{

                “ErrorCode”:           <Код ошибки, цифра >,

                “ErrorMessage”:     ”<Описание ошибки, (200 символов), (200 символов)>”

}

 

Поля «InvoiceNumber» и «SenderCode» взаимоисключающие. Если заполнены поля «InvoiceNumber» и «SenderCode», то будет обработан инвойс с указанным InvoiceNumber, если InvoiceNumber не указан, то будет обработан инвойс с указанным SenderCode.

 

Получение номера реестра по номеру отправления

URL: /getreestrnumber

Метод: POST

Описание

Если вам необходимо найти реестр по которому ранее передавалось отправление в PickPoint. На вход принимается структура, содержащая идентификатор сессии и номер отправления. Если указанное отправление не содержится ни в одном реестре или нет реестра с указанным номером, вернется соответствующее сообщение.

 

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

“InvoiceNumber”: ”<номер отправления>”

}

 

Структура ответа

{

“Number”:             ”<номер реестр>”,

ErrorMessage”:    ”<Сообщение ошибки>”

}

 

Вызов курьера

URL: /courier

Метод: POST

Описание

Команда предназначена для создания вызова курьера. На вход принимается структура, содержащая номер сессии и описания адреса забора, времени забора, количества мест и общий вес.

Внимание! Вызов курьера должен быть в интервале с 9 до 18. Для Московской области вызов курьера на текущий день должен создаваться до 10:30 (диапазон вызова с 9-18 или 10-30 до 18). Для остальных регионов вызов на текущий день должен быть создан до 14:00. Интервал вызова должен быть не менее 4 часов. Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,        

                “IKN“:                     “< ИКН – номер договора (10 символов)>”,

                “SenderCode“:    “<Код вызова курьера отправителя, НЕ обязательное поле>”,

                “City“:                    “<Название города>”,

                “City_id“:                              <id города>,

                “City_owner_id“:  <owner_id город>,

                Address“:            “<Адрес>”,

                FIO“:                     “<Контактное лицо>”, обязательное поле,

                Phone“:                               “<Контактный телфон>”, обязательное поле,

                Date“:                  “<Дата сбора>”, обязательное поле,//формат гггг.мм.дд

                “TimeStart“:           <Ожидаемое время сбора с>,//количество минут от 00:00

                “TimeEnd“:            < Ожидаемое время сбора по>,//количество минут от 00:00

                “Number“:             <Количество мест  – примерное значение >,

                “Weight”:                               <Общий вес, кг. – примерное значение>,  

“Comment“:         “<Комментарий>”

}

 

Поля City и City_id/City_owner_id являются взаимоисключающими, при наличии обоих приоритет отдается City_id/City_owner_id

Значение «TimeStart» для времени 9:00 соответствует 540.

Значение «TimeEnd» для времени 18:00 соответствует 1080.

 

Структура ответа

{

                CourierRequestRegistred”:       <Признак успешности регистрации вызова курьера >,//<true/false>

OrderNumber”:                                             <Номер заказа >,

                ErrorMessage”:                                              ”<Описание ошибки>”

}

 

Отмена вызова курьера

URL: /couriercancel

Метод: POST

Описание

Команда предназначена для отмены вызова курьера. На вход принимается структура, содержащая номер сессии и номер вызова курьера.

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,        

                “OrderNumber“:  “<Номер заказа>”

}

 

Структура ответа

{             

                OrderNumber“:  “<Номер заказа>”,

                Canceled”:         ”<Результат запроса>”//<true/false>

}

 

Обновление полей созданного отправления

URL: /updateInvoice

Метод: POST

Описание

Команда предназначена для изменения полей созданного отправления. Обновлять возможно следующие поля: номер постамата для доставки, номер телефона получателя, имя получателя, почтовый ящик получателя, сумму к оплате, артикул товара, ШК товара, наименование товара, стоимость ед. товара, кол-во ед. товара, ставка НДС по товару, описание товара. Для того, чтобы поле было корректно обновлено, отправление должно находиться в статусе, при котором редактирование данного поля разрешено:

text

Status

“PostamatNumber“

“MobilePhone“

“RecipientName“:

“Email“:

“Sum“:

Зарегистрирован

101

ок

ок

ок

ок

ок

Сформирован для передачи Логисту

102

ок

ок

ок

ок

ок

Развоз до ПТ самостоятельно

103

ок

ок

ок

ок

ок

Сформирован для отправки

104

ок

ок

ок

ок

ок

Принят Логистом

105

no

ок

ок

ок

ок

На кладовке Логиста

106

ок (in region)

ок

ок

ок

ок

Выдан на маршрут

107

ок (in region)

ок

ок

ок

ок

Выдано курьеру

108

ок (APT only; in region;)

ок

ок

ок

ок

Доставлено в ПТ

109

no

ок

ок

ок

ок

Получен

111

no

no

ок

ок

no

Невостребованное

112

no

no

no

no

no

Возвращено Клиенту

113

no

no

no

no

no

Отказ

114

no

no

no

no

no

Сформирован возврат

115

no

no

no

no

no

Передано на возврат

116

no

no

no

no

no

Передано в логистическую компанию

117

no

no

no

no

no

Сконсолидировано

123

no

ок *

ок *

ок *

ок *

 

 

 

 

 

 

 

*Изменения возможно только в том случае, если для связанных с ними КО PostageType =  5004(Консолидированная пересылка), в остальном случае – невозможно.

Обновление полей массива SubEncloses допускается для вложимых отправлений, находящихся в статусах 101, 102, 103, 104.

Если необязательное поле не должно быть изменено, не следует заполнять его в запросе или передавайте в качестве его значения null.

При обновлении параметров SubEncloses будут обновлены значения тех полей, которые в запросе переданы и заполнены.

Структура запроса

{

“SessionId”:    ”<уникальный идентификатор сессии>”,

“InvoiceNumber”:    ”<Номер КО>”,

“GCInvoiceNumber”:  ”<Номер отправления клиента>”,

“PostamatNumber”:    ”<Номер постамата для редактирования (необязательное поле)>”,

“Phone”:                    ”<Номер телефона для редактирования (необязательное поле)>”,

“RecipientName”:                  ”<Номер получателя для радактирования (необязательное поле)>”,

“Email”:                    ”<Электронный ящик получателя (необязательное поле)>”,

“Sum”:      <Сумма к оплате (необязательное поле) >,

"BarCode":    "<Штрих-код вложимого PickPoint (обязательное поле для обновление потоварки, если не передается GCBarCode)>",

"GCBarCode":     "<Номер вложимого клиента (обязательное поле для обновление потоварки, если не передается BarCode)> "

"operator_id":       "<id оператора (необязательное поле)> "

"operator_ownerid":                "< ownerid оператора (необязательное поле)> "

"SubEncloses": <Субвложимые>

  [{

    "ProductCode:     "<артикул товара(50 символов) (обязательное для обновления потоварки) >",

    "GoodsCode":      "<ШК товара (50 символов) для редактирования >",

    "Name":        "<Наименование товара(200 символов) для редактирования >",

    "Price":      <Стоимость ед. товара с НДС для редактирования >,

    "Quantity":      < Кол-во ед. товара одного арт. для редактирования >,

    "Vat":         < Ставка НДС по товару для редактирования, обязательное поле >,

    "Description":     "<Описание товара для редактирования >",

    "Upi": "<Код товара >"

    }]

}

В случае, если поле Vat не было передано, значение ставки НДС по товару переданного в запросе вложимого обнулится.

Если в запросе переданы operator_id и operator_ownerid существующего оператора, в историю обновления полей созданного отправления запишутся сделанные изменения от имени данного оператора.

 

Структура ответа

 

{

“InvoiceNumber”:                ”<Номер КО>”,

“GCInvoiceNumber”:         ”<Номер отправления клиента>”,

Results” :                               ”<Результаты обновления полей отправления>”

[

                {

                                FieldName” :        ”<Имя поля для обновления>”,

                                 Updated” :            ”<true/false>”,

                                 Comment” :            ”<Текст ошибки>”

}

]

}

 

Удаление отправления

URL: /cancelInvoice

Метод: POST

Описание

Команда предназначена для удаления ранее созданного отправления. Отправление возможно удалить только в случае, если все его вложимые находятся в состоянии 101 (зарегистрирован), 102 (сформирован для передачи логисту), 103 (развоз до ПТ самостоятельно) или 104 (сформирован для отправки). В случае, если в запросе передается ИКН, возможно удалить только отправления, принадлежащие данному ИКН. Если в запросе не передается ИКН, возможно удалить только отправления, принадлежащие ИКН оператора текущей сессии.

Структура запроса

{

“SessionId”:                           ”<уникальный идентификатор сессии>”,

“IKN“:                                     “<ИКН – номер договора (10 символов)>”,

“InvoiceNumber”:                ”<Номер КО>”,

GCInvoiceNumber”:        ”<Номер отправления клиента>”

 

}

 

 

 

Структура ответа

 

{

                Result”: <true/false>,

                Error”:    <Описание ошибки>

                “ErrorCode”:         <Код ошибки: 0 – нет ошибки, -1 - ошибка>,

}

 

Отмена заказа

URL: /rejectInvoice

Метод: POST

Описание: Метод предназначен для информирования PickPoint об отмене заказа

Структура запроса

{

"SessionId":"<уникальный идентификатор сессии>",

"invoiceNumber":    "<Номер КО>",

"GCInvoiceNumber":  "<Номер отправления клиента>"

}

Структура ответа

 

{

"invoiceNumber":    "<Номер КО>",

"GCInvoiceNumber":  "<Номер отправления клиента>",

"Result": <true/false>,

"Error":   <Описание ошибки>,

"ErrorCode":        <Код ошибки: 0 – нет ошибки, -1 - ошибка>

}

 

 

 

Удаление вложимого

URL: /enclosedelete

Метод: DELETE

Описание

Команда предназначена для удаления вложимого от зарегистрированного отправления.

В запросе должно передаваться одно из значений – штрихкод PickPoint / Номер места клиента

{

”SessionId”: ”<уникальный идентификатор сессии>”,

"Barcode”: "<Штрих-код вложимого PickPoint (обязательное поле, если не заполнено GCBarCode)>",

”GcBarcode”: “<Номер вложимого клиента (обязательное поле, если не заполнено BarCode)>”

}

 

 

Структура ответа

 

{

                Result”: <true/false>,

                Error”:    <Описание ошибки>

                “ErrorCode”:         <Код ошибки: 0 – нет ошибки, -1 - ошибка>,

}

 

Возможные ошибки:

 

Получение справочника статусов отправления

URL: /getstates

Метод: GET

 

Описание

Команда предназначена для получения списка возможных статусов отправлений.

Структура ответа

[

{             

                               State“:                 “<номер статута>”,

                               StateText”:           ”<текстовое описание статуса>”

}

]


Статусы PickPoint

"State"
Статус

"StateText"
Описание статуса

101

Зарегистрирован

102

Сформирован для передачи Логисту

103

Развоз до ПТ самостоятельно

104

Сформирован для отправки

105

Принят Логистом

106

На кладовке Логиста

107

Выдан на маршрут

108

Выдано курьеру

109

Доставлено в ПТ

110

Принято в ПТ

111

Получен

112

Невостребованное

113

Возвращено Клиенту

114

Отказ

115

Сформирован возврат

116

Передано на возврат

117

Передано в логистическую компанию

118

Передано на ИНО

119

Принято на ИНО

120

Затюковано на ИНО

121

Назначен курьер

122

Передано в отдел доставки

123

Сконсолидировано

 

Толкование статусов для заказов до ПТ (зависит от типа сдачи отправления)

 

"State"
Статус

GettingType (тип сдачи отправления)

101/102 (вызов курьера /в окне приема СЦ)

103 (в окне приема ПТ валом)

104 (в окне приема ПТ)

101

Отправитель зарегистрировал заказ

Отправитель зарегистрировал заказ

Отправитель зарегистрировал заказ

102

Заказ в стадии комплектации и отгрузки

-

 

103

-

-

Заказ в стадии комплектации и отгрузки

104

-

Заказ в стадии комплектации и отгрузки

-

105

Заказ передан на сортировочный центр для возврата отправителю

1.Заказ передан на сортировочный центр для доставки – при условии, что не было доставлено в ПТ

2. Заказ передан на сортировочный центр для возврата отправителю

-

106

PickPoint принял заказ для отправки

PickPoint принял заказ для отправки

-

107

Заказ отправлен в город доставки

Заказ отправлен в город доставки

-

108

Заказ выдан курьеру для доставки

Заказ выдан курьеру для доставки

Заказ выдан курьеру для доставки

109

Заказ в постамате/пункте выдачи

Заказ в постамате/пункте выдачи

Заказ в постамате/пункте выдачи

110

Заказ принят для возврата отправителю

PickPoint принял заказ – при условии, что не было доставлено в ПТ

Заказ принят для возврата отправителю

 Заказ передан на сортировочный центр для возврата отправителю

111

Заказ получен

Заказ получен

Заказ получен

112

Срок хранения заказа истек

Срок хранения заказа истек

Срок хранения заказа истек

113

Заказ возвращен отправителю

Заказ возвращен отправителю

Заказ возвращен отправителю

114

Получатель отказался от заказа

Получатель отказался от заказа

Получатель отказался от заказа

115

Заказ принят на сортировочный центр для возврата отправителю

Заказ принят на сортировочный центр для возврата отправителю

-

116

Заказ передан на сортировочный центр для возврата отправителю

Заказ передан на сортировочный центр для возврата отправителю

-

117

Передано в логистическую компанию

Передано в логистическую компанию

-

118

Заказ подготовлен для отправки

Заказ подготовлен для отправки

-

122

Передано в логистическую компанию

Передано в логистическую компанию

-

123

Сконсолидировано для пересылки

Сконсолидировано для пересылки

-

*Если в таблице содержится «-», - статус для данного типа сдачи не присваивается.

Толкование статусов для возвратных заказов, полученных не через Pickpoint

"State"
Статус

Возврат заказа, полученного не через PickPoint

101

Отправитель зарегистрировал заказ

102

-

103

-

104

-

105

Заказ передан на сортировочный центр для возврата отправителю

106

Заказ передан на сортировочный центр для возврата отправителю

107

Возврат отправлен в город доставки

108

Возврат выдан курьеру для доставки

109

-

110

Заказ принят для возврата отправителю

111

Заказ возвращен отправителю

112

-

113

Заказ возвращен отправителю

114

-

115

-

116

Заказ передан на сортировочный центр для возврата отправителю

123

Сконсолидировано для пересылки

 

Получение списка вложимых отправлений за заданный период со всеми прошедшими статусами

URL: / getInvoicesChangeState

Метод: POST

Описание

Команда предназначена для получения списка вложимых отправлений за заданный период со всеми прошедшими статусами. В запросе отправляется идентификатор сессии, интервал дат и необходимый статус. Список возможных статусов можно получить с помощью метода getstates. В ответ возвращается массив номеров отправлений c дополнительной информацией. Информация выдается за интервал не больше 31 дня. Если указанный интервал превышает 31 день, то в выборке будет результат за DateTo-31день.

Структура запроса

{

                "SessionId"             ”<уникальный идентификатор сессии (GUID 16 байт)>”,

"DateFrom"            “<дата с (дд.ММ.гг ЧЧ:мм)>”,

"DateTo":                “<дата по (дд.ММ.гг ЧЧ:мм)>”,

"State"                     "<статус, если не указан, то возвращается по всем статусам>",

"PostageType":       "<вид отправления>"

}

 

Структура ответа

 [

                {

                "BarCode":                             "<Штрих-код вложимого>",

ChangeDT”:                       ”<дата изменения статуса>”,

"Comment":                           <комментарий>,

State”:                                 “<код статуса вложимого>”,

StateMessage”:                  ”<описание статуса>”,

InvoiceNumber”:                ”<Номер отправления PickPoint>”,

"PostageType":                      "<вид отправления>",

SenderInvoiceNumber”:   ”<Номер отправления магазина>”

“SubState”                            “Тип кладовки (1- СЦ Приема, 2 - Транзитный СЦ, 3 - СЦ доставки”

}

]

 

Получение акта возврата денег

URL: /getmoneyreturnorder

Метод: POST

Описание

Команда предназначена для получения акта возврата денег.

Структура запроса

{

                “SessionId”:                           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

“IKN”:                                     “< ИКН клиента, обязательное поле>”,

“DocumentNumber”:          “<Номер акта>”

“DateFrom”:                          “<дата с, текстовая строка>”,

“DateEnd”:                           “<дата по, текстовая строка >”,

 

}

 

Структура ответа

[

                “DocumentNumber”:          ”<Номер акта>”,

“Date”:                                  “<Дата акта>”,

“PayOrderNumber”:                           “<Номер платежного поручения>” ,

Invoices”:

                [

                               {

                                               InvoiceNumber”:                               “<Номер отправления>”,

                                               GCInvoiceNumber”:         “<Номер отправления клиента>”,

                                               NPSum”:                                            <Сумма наложенного платежа>,

                                               RetSum”:                            <Сумма возврата>            ,

                                               Encloses

                                               [

                                                               {

                                                                               Barcode”:            “<Номер вложимого (штрих-код)>”,

                                                                               GCBarCode”:     “<Номер вложимого клиента (штрих-код магазина)>”

                                                               }

                                               ]

                               }

],

                TotalNPSum”:                     <Общая сумма наложенного платежа>,

TotalRetSum”:                    <Общая сумма возврата>

“Error”:                                   “<Описание ошибки>”

]

 

Возможные ошибки:

 

Получение акта возврата товара

URL: /getproductreturnorder

Метод: POST

Описание

Команда предназначена для получения акта возврата товара.

Структура запроса

{

                “SessionId”:                           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

“IKN”:                                     “< ИКН клиента, обязательное поле>”,

“DocumentNumber”:          “<Номер акта>”

"ActType":                              “<Тип акта. Необязательное поле>”,

“DateFrom”:                          “<дата с, текстовая строка>”,

“DateEnd”:                           “<дата по, текстовая строка >”,

 

}

Возможные значения поля "ActType":

Client - возвращаются только акты с типом  "Акт передачи клиентских возвратов"

Post - возвращаются только акты с типом "Акт передачи клиентских возвратов (другие каналы доставки)" (возврат почта)

Unclaimed - возвращаются только акты с типом "Акт возврата коммерческих отправлений"

Mixed - возвращаются только акты с типом "Смешанный акт возврата коммерческих отправлений"

Если поле не заполнено возвращается список всех актов

 

Структура ответа

[

                “DocumentNumber”:          ”<Номер акта>”,

“Date”:                                  “<Дата акта>”,

Invoices”:

                [

                               {

                                               InvoiceNumber”:                               “<Номер отправления>”,

                                               GCInvoiceNumber”:         “<Номер отправления магазина>”,

                                               NPSum”:                                            <Сумма наложенного платежа>,

                                               Encloses

                                               [

                                                               {

                                                                               Barcode”:            “<Номер вложимого (штрих-код)>”,

                                                                               GCBarCode”:     “<Номер вложимого клиента>”

                                                               }

                                               ]

                               }

],

                TotalNPSum”:                     <Общая сумма наложенного платежа>,

“Error”:                                   “<Описание ошибки>”

]

 

 

Возможные ошибки:

 

Получение списка городов

URL: /citylist

Метод: GET

 

Описание

Команда предназначена для получения списка городов только для функции «Вызов курьера».

Структура ответа

[

{             

                               “Name”:                ”<название города>”,

                               “RegionName”:    ”<название региона города>”

}

]

 

Получение списка терминалов по номеру контракта

URL: /clientpostamatlist

Метод: POST

 

Описание

Команда предназначена для получения списка постаматов в режиме «рабочий» по номеру контракта. Если постамат не может принять отправления или закрывается, он пропадает из данного списка. Если вам необходимо  список точек PickPoint для своего сайта, то рекомендуется актуализировать список не реже 1-2 раза в сутки.

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

“IKN“:                     “<ИКН клиента>”

}

 

Структура ответа

[

{             

                               Id“:                       “<Id постамата (целое число)>”,

                               OwnerId”:         ”<Owner_id постамата (целое число)>”,

                               CitiId”:                  “<Id города (целое число)>”,

                               CitiOwnerId”:      “<Owner_id города (целое число)>”,

                               CitiName”:          “<Название города (50 символов)>”,

                               “Region”:                              “<Название региона (50 символов)>”,

                               “CountryName”:  “<Название страны (50 символов)>”,

"ClientPTnumber": “<номера постамата в системе клиента>”,

"ClosingComment":                             “<комментарий о закрытии>”,

"ClosingDateFrom":                              “<Дата закрытия “c”>”,

"ClosingDateTo":                                   “<Дата закрытия “по”>”,

"MovingComment":                             “<Комментарий о переезде”>”,

"MovingDateFrom":                             “<Дата переезда “c”>”,

"MovingDateTo":                                  “<Дата переезда “по”>”,

"FileI0":                                                    "<Фотография постамата>",

"FileI1":                                                    "<Фотография постамата>",

"FileI2":                                                    "<Фотография постамата>",

                               Number”:             ”<номер постамат, (PTNumber) текст (8 символов)>”,

                               “Metro”:                 ”<название ближайшей станция метро  (100 символов)>”,

                               “MetroArray”:       ”<список ближайших станций метро в виде массива>”,

[

                               “метро 1 (50 символов)”,

                              

                               “метро n (50 символов)”

],

 

                               “IndoorPlace”:     ”<описание входа к постамату (255 символов)>”,

                               Address”:             ”<адрес расположения постамата (150 символов)>”,

                               House”:                ”<номер дома (150 символов)>”,

                               PostCode”:         ”<почтовый индекс (20 символов)>”,

                               Name”:                ”<название (80 символов)>”,

                               WorkTime”:          ”<интервалы рабочего времени постамата >”,//чч.мм-чч.мм,чч.мм-чч.мм,NODAY, …

//по всем дням недели

                               "WorkTimeSMS": ”<время работы>”,

                                Latitude”:            “<Широта>”,

                               Longitude”:         “<Долгота>”,

                               Status”:                “<Статус постамата: 1 – новый, 2 – рабочий, 3 – закрытый, 5 - перегружен>”,

 

                               TypeTitle”:            “<Тип терминала: АПТ/ПВЗ>”,

                               Cash”:                  “<Возможность оплаты наличными: 0 – нет, 1 – да>”,

                                Card”:                    “<Возможность оплаты пластиковой картой: 0 – нет, 1 –да, 2 – только онлайн оплата>”,

                               InDescription”:    “<Полное описание местонахождения терминала внутри (8000 символов)>”,

                               OutDescription”: “<Полное описание местонахождения терминала снаружи (8000 символов)>”,

                               MaxSize”:             “<текстовое описание максимального размера одного из видов:

- 36х36х60,

- max сумма 3х измерений - 180 см>”,

                               MaxBoxSize”:       “<максимальный размер коробки >”,

                               MaxWeight”:       “<текстовое описание максимального веса отправления вида: 5 кг>”,

                               “WorkHourly”:       ”<true/false – работает круглосуточно>”,

                               “Opening”:           ”<true/false – разрешено вскрытие>”,

                               “Returning”:          ”<true/false – возможен возврат>”,

                               “Fitting”:                 ”<true/false – возможна примерка>”,

                               “LocationType”:   ”<тип размещения – 1 – в помещении, 2 – на улице>”

OwnerName”:        ”<название сети постаматов (100 символов)>”,

Comment”:            ”<комментарий>”,

MapAllowed”:        “<отображение точки на карте>”,

WidgetAllowed”:        “<отображение точки на виджете>”,

 "StorageTypes": [

            {

                "Name": ”<тип хранения – Standart (Стандарт), Refrigerator (Холодильник), Freezer (Морозилка)>”,

                "Available": “<true/false – показатель доступности типа ячеек для закладки>”,

                "Owners": [

                    {

                        "Name": “<Название клиента>”,

                        "Number": “<Номер клиента>”

                    }

                ]

            }

] - Массив с владельцами шкафов  и принадлежащим шкафам типами хранения в постамате

"PayPassAvailable":       ”<true/false – возможность бесконтактной оплаты>”

}

]

 

Получение списка терминалов по номеру контракта с опцией "Возврат разрешен"

URL: /clientpostamatreturnlist

Метод: POST

Описание

Команда предназначена для получения списка точек с доступной услугой возврата.

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

IKN”:                     “<Номер контракта, обязательное поле>”

}

 

Структура ответа

[

{             

                               Id“:                       “<Id постамата (целое число)>”,

                               OwnerId”:         ”<Owner_id постамата (целое число)>”,

                               CitiId”:                  “<Id города (целое число)>”,

                               CitiOwnerId”:      “<Owner_id города (целое число)>”,

                               CitiName”:          “<Название города (50 символов)>”,

                               “Region”:                              “<Название региона (50 символов)>”,

                               “CountryName”:  “<Название страны (50 символов)>”,

"ClientPTnumber": “<номера постамата в системе клиента>”,

"ClosingComment":                             “<комментарий о закрытии>”,

"ClosingDateFrom":                              “<Дата закрытия “c”>”,

"ClosingDateTo":                                   “<Дата закрытия “по”>”,

"MovingComment":                             “<Комментарий о переезде”>”,

"MovingDateFrom":                             “<Дата переезда “c”>”,

"MovingDateTo":                                  “<Дата переезда “по”>”,

"FileI0":                                                    "<Фотография постамата>",

"FileI1":                                                    "<Фотография постамата>",

"FileI2":                                                    "<Фотография постамата>",

                               Number”:             ”<номер постамат, (PTNumber) текст (8 символов)>”,

                               “Metro”:                 ”<название ближайшей станция метро  (100 символов)>”,

                               “MetroArray”:       ”<список ближайших станций метро в виде массива>”,

[

                               “метро 1 (50 символов)”,

                              

                               “метро n (50 символов)”

],

 

                               “IndoorPlace”:     ”<описание входа к постамату (255 символов)>”,

                               Address”:             ”<адрес расположения постамата (150 символов)>”,

                               House”:                ”<номер дома (150 символов)>”,

                               PostCode”:         ”<почтовый индекс (20 символов)>”,

                               Name”:                ”<название (80 символов)>”,

                               WorkTime”:          ”<интервалы рабочего времени постамата >”,//чч.мм-чч.мм,чч.мм-чч.мм,NODAY, …

//по всем дням недели

                               "WorkTimeSMS": ”<время работы>”,

                                Latitude”:            “<Широта>”,

                               Longitude”:         “<Долгота>”,

                               Status”:                “<Статус постамата: 1 – новый, 2 – рабочий, 3 – закрытый, 5 - перегружен>”,

 

                               TypeTitle”:            “<Тип терминала: АПТ/ПВЗ>”,

                               Cash”:                  “<Возможность оплаты наличными: 0 – нет, 1 – да>”,

                                Card”:                    “<Возможность оплаты пластиковой картой: 0 – нет, 1 –да, 2 – только онлайн оплата>”,

                               InDescription”:    “<Полное описание местонахождения терминала внутри (8000 символов)>”,

                               OutDescription”: “<Полное описание местонахождения терминала снаружи (8000 символов)>”,

                               MaxSize”:             “<текстовое описание максимального размера одного из видов:

- 36х36х60,

- max сумма 3х измерений - 180 см>”,

                               MaxBoxSize”:       “<максимальный размер коробки >”,

                               MaxWeight”:       “<текстовое описание максимального веса отправления вида: 5 кг>”,

                               “WorkHourly”:       ”<true/false – работает круглосуточно>”,

                               “Opening”:           ”<true/false – разрешено вскрытие>”,

                               “Returning”:          ”<true/false – возможен возврат>”,

                               “Fitting”:                 ”<true/false – возможна примерка>”,

                               “LocationType”:   ”<тип размещения – 1 – в помещении, 2 – на улице>”

OwnerName”:        ”<название сети постаматов (100 символов)>”,

Comment”:            ”<комментарий>”,

MapAllowed”:        “<отображение точки на карте>”,

WidgetAllowed”:        “<отображение точки на виджете>”,

 "StorageTypes": [

            {

                "Name": ”<тип хранения – Standart (Стандарт), Refrigerator (Холодильник), Freezer (Морозилка)>”,

                "Available": “<true/false – показатель доступности типа ячеек для закладки>”,

                "Owners": [

                    {

                        "Name": “<Название клиента>”,

                        "Number": “<Номер клиента>”

                    }

                ]

            }

] - Массив с владельцами шкафов  и принадлежащим шкафам типами хранения в постамате

"PayPassAvailable":       ”<true/false – возможность бесконтактной оплаты>”

}

]

 

 

Получение информации по зонам

URL: /getzone

Метод: POST

Описание

Команда предназначена для получения списка зон или значения тарифной зоны в выбранную точку.

Структура запроса

{

                “SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

FromCity”:            “<город отправитель груза, обязательное поле>”,

ToPT”:                   “<Номер пункта выдачи>” ,

IKN”:                     “<Номер контракта, обязательное поле>”

}

Если поле ToPT не указано, возвращается список зон по всем пунктам выдачи.

Структура ответа

{

                Zones”:

                [

                               {

                                               FromCity”:            “<Город отправления>”,

                                               ToCity”:                “<Город доставки>”,

                                               ToPT”:                   “<Номер пункта выдачи>”,

                                               Zone”:                  “<Номер зоны>”,

                                               DeliveryMin”:       “<Минимальное время доставки, дни>”,

                                               DeliveryMax”:     “<Максимальное время доставки, дни>”,

                                               “DeliveryMode”:  “<Наименование режима доставки >”,

                                               Koeff”:                  “<Коэффицент магистральной доставки>”

 

                               }

],

Error”:    “<Описание ошибки>”

}

Возможные ошибки:

Ошибка сервера. Попробуйте повторить запрос.

 

Расчет тарифа

URL: /calctariff

Метод: POST

Описание

Команда предназначена для получения стоимости доставки. При расчете учитываются следующие ограничения:

·         габариты указываются общие на все места,

·         вес по умолчанию считается 1 кг,

·         рассчитывается только тариф за логистику.

ВНИМАНИЕ!

·        Данная функция работает только на Рабочей версии сервиса

https://e-solution.pickpoint.ru/api/

Структура запроса

{

“SessionId”:           ”<уникальный идентификатор сессии (GUID 16 байт)>”,

“IKN”:                     <Номер контракта>,

“InvoiceNumber”: <Номер отправления, не обязательное поле>,

“FromCity”:            <Город сдачи отправления>,

“FromRegion”:      <Регион города сдачи отправления>,

“ToCity“:                <Город назначения>,

“ToRegion“:          <Регион назначения>,

“PTNumber”:         <Пункт выдачи (назначения) отправления>,

GettingType”:     <Вид приема, не обязательное поле >,

“EncloseCount”:  <Количество мест, по умолчанию одно, не обязательное поле>,

“Length”:                              <Длина отправления, см>,

“Depth”:                <Глубина отправления, см>,

“Width”:                 <Ширина отправления, см>,

“Weight”:                              <Вес отправления, не обязательное поле, по умолчанию 1кг>

}

Поля «PTNumber» и «ToCity» взаимоисключающие. Если заполнены поля «PTNumber» и «ToCity», то будет обработан «PTNumber» если «PTNumber» не указан, то будет обработан «ToCity». При заполненном параметре «ToCity», параметр «ToRegion» обязателен к заполнению.

Структура ответа

{

“SessionId”:           ”<уникальный идентификатор сессии  (GUID 16 байт)>”,

“Services”:

 [

                               {

                                               "DeliveryMode": <Наименование режима доставки>”,

                                                Name”: ”<Наименование тарифа>”,

                                               Tariff    :”<Стоимость доставки по тарифу>”,

                NDS”:    ”<НДС>”

}

],

InvoiceNumber”: <Номер накладной>,

DPMin”:                <Минимальный срок доставки>, согласно режиму “Стандарт”

 "DPMinPriority":      <Минимальный срок доставки>, согласно режиму “Приоритет”

DPMax” :              <Максимальный срок доставки>, согласно режиму “Стандарт”

 "DPMaxPriority":   <Максимальный срок доставки>, согласно режиму “Приоритет”

Zone”:                  <Зона>,

                “ErrorCode”:         <Код ошибки: 0 – нет ошибки, -1 - ошибка>,

“ErrorMessage”:    ”<Описание ошибки, (200 символов)>”

}

 

Описание ошибки и код ошибки возвращаются только в случае наличия ошибок при обработке запроса.

 

Получение версии API

URL: /version

Метод: GET

Описание

Команда предназначена для получения информации о текущей версии API и дате обновления версии API. Для выполнения метода нет необходимости в авторизации, необходимо отправляться пустой запрос. В ответ возвращается строка содержащая номер версии и дату обновления до этой версии.

Структура запроса

 

Структура ответа

 

{
    "Date": "26.06.2017 16:58:05",
    "Version": "1.7.7.35914"
}

 

Метод получения информации о чеке

URL: / chequeInfo

Метод: POST

Описание

Команда предназначена для получения информации и передачи ссылки на чек об оплате.

ВАЖНО! Метод вызывать при условии, что методом getInvoicesChangeState получен статус «Получен» ("State"=111) по отправлению наложенного платежа ("PostageType"=10003).

В запросе отправляется идентификатор сессии и номер отправления по системе PickPoint либо номер присвойки (номер заказа клиента). Одно из полей InvoiceNumber или GCInvoiceNumber обязательны к заполнению.

Структура запроса

{

SessionId”:                           "<уникальный идентификатор сессии (GUID 16 байт)> ",

InvoiceNumber”:                "<Номер КО>",

GCInvoiceNumber”:         "<Номер присвойки>"

}

Структура ответа

 

{

                "Error":                                     "<Описание ошибки>",

                "ErrorCode":                           <Код ошибки>”,

                 "Cheques": [

        {

                                "Amount":                              "<сумма по чеку>",

                                "CreatedOn":                        "<Дата создания чека>",

                                "FN":                                        "<номер фискального документа>",

                                "FP":                                        "<фискальный признак документа>",

                                "Number":                              "<номер фискального документа>",

                                "Url":                                        <ссылка на чек в системе ОФД>"

        }

    ]

}

 


Коды ошибок

Описание ошибки и код ошибки возвращаются только в случае наличия ошибок при обработке запроса.

Код

Сообщение

-2001

Ошибка сервера. Попробуйте повторить запрос.

-2002

Отправление не может быть зарегестрировано для данного постамата.

-2003

Прием отправлений в постамат в данный момент приостановлен.

-2004

Для данного типа отправления сумма не может быть нулевой.

-2005

Для данного типа отправления сумма должна быть нулевой.

-2006

Ошибка генерации штрихкода.

-2007

Некорректный штрихкод.

-2008

Место с таким штрихкодом уже существует.

-2009

Неверный номер договора или договор заблокирован.

-2010

Заказ на вызов курьера на указаный день уже существует, обратитесь к менеджерам.

-2011

В постамате нет подходящей ячейки.

-2012

Для данного типа отправления должны быть указаны размеры.

-2013

Пароль или логин не верный.

-2014

Нет действительной сессии с таким номером.

-2015

Нет инвойса с таким номером для данного клиента.

-2016

Нет отправлений с указанными номерами для данного клиента.

-2017

Нет информации для авторизованного клиента по указанным параметрам.

-2018

Курьер не может быть вызван на указанную дату.

-2019

Курьер не может быть вызван на указанную дату/время для данного региона.

-2020

Курьер не может быть вызван на указанное время.

-2021

Нет вызова курьера с данным номером.

-2022

Нет указаного города или город указан неверно.

-2023

Возможно неверный формат email.

-2024

Возможно неверный формат телефона.

-2025

Неверный формат даты.

-2026

При абонентском обслуживании тип сдачи отправления только "Вызов курьера".

-2027

При абонентском обслуживании тип оплаты только "Предоплата".

-2028

Тип оплаты только "Предоплата".

-2029

Все отправления в реестре должны быть одного типа.

-2030

Не все отправления находятся в статусе "Зарегистрировано"

-2031

Контракты нескольких отправлений не совпадают.

-2032

Контракты указанных отправлений не соответствуют оператору текущей сессии.

-2033

Указанный контракт не соответствует оператору текущей сессии.

-2034

Нет пункта выдачи с указанным номером.

-2035

Не заполнено значение контактного лица.

-2036

Неверный формат запроса.

-2037

Превышена допустимая длинна поля.

-2038

Попробуйте повторить запрос еще раз.

-2039

Телефон является обязательным полем в данном запросе.

-2040

Описание вложимого является обязательным полем.

-2041

Нет реестра по указанному запросу.

-2042

Нет отправления по указанному запросу.

-2043

Не указан тип отправления.

-2044

Не указан тип сдачи отправления.

-2045

Имя получателя обязательное поле.

-2046

Отправление с указанным номером присвойки уже существует.

-2047

Запрос содержит дублирующие номера присвоек вложимого или отправление с указанным номером присвойки

-2048

Не указан ИКН.

-2049

Отправление находится в статусе отличном от "Получено".

-2050

Функция регистрация возвратной накладной данному оператору не доступна.

-2051

Не найден адрес возврата.

-2052

Данному оператору не доступны функции агрегатора.

-2053

Не все поля заполнены.

-2054

Субклиента с указанным номером не зарегистрировано.

-2055

Для данного клиента субклиенты не найдены.

-2056

Клиент с указанным номером уже зарегистрирован.

-2057

Должно быть указано хотя бы одно вложимое.

-2058

Для данного оператора отсутствует соответствующая ему клиентская информация.

-2059

Отправление не найдено.

-2060

Неверное значение PostageType.

-2061

Неверное значение GettingType.

-2062

Не указан номер телефона получателя.

-2063

Настройки контракта не разрешают передачу номера отправления.

-2064

Отправление с указанным номером уже существует.

-2065

Запрос содержит дублирующие штрихкоды вложимых.

-2066

Длина штрихкода не соответствует требованию. Необходимо 12 символов.

-2067

Адрес возврата указан не полностью.

-2068

Сумма за отправление не может быть отрицательной.

-2069

Неверный формат телефона.

-2070

Добавление собственного кода доступа запрещено.

-2071

Непредвиденная ошибка.

-2072

Настройки контракта не разрешают данную операцию.

-2073

По указанным параметрам информации не найдено.

-2074

Отправление не соответствует номеру телефона.

-2075

Ошибка продления хранения.

-2076

Ошибка при расчете тарифа. Попробуйте повторить запрос позже.

-2077

Отправление не принадлежит учетной записи.

-2078

Статус отправления не позволяет переадресацию.

-2079

Переадресация возможна в рамках одной области/края/республики!

-2080

Переадресация в статусе "Выдано курьеру" возможна только, если отправление идет на АПТ!

-2081

Баннеры не найдены.

-2082

Не указан город, либо указан неверно или города нет в списке обслуживаемых, свяжитесь с менеджером.

-2090

  Зона обслуживания указана неверно.

 


Старая таблица кодов. (Не используется)

Код

Описание

0

Операция выполнена успешно

-1

Непредвиденная ошибка

1

Неверная сессия или сессия истекла

10

Неверный логин или пароль

20

Неверные параметры запроса

21

Данные не найдены

25

Отправление не найдено

30

Неверный номер контракта

35

Субклиент не найден

100

Временная ошибка