Протокол API

 

 

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

 

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

1

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

2

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

3

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

4

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

 

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

Для доступа к тестовой среде, вам необходимо обратиться на support@pickpoint.ru, с указанием вашего ИКН.

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

 


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Список точек выдачи в сети Pickpoint 27

Список точек возврата в сети Pickpoint 28

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

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

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

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

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


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

Версия

Дата

Изменения

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

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

1.8.14.3

02/07/2020

·         Метод CreateShipment:

o    добавлено новое поле Номер ПТ клиента, необязательное поле.

o    в блок SubEncloses, добавлены новые поля для передачи:

§  ИНН принципала

§  Наименование юр.лица принципала

§  Номера телефона принципала

1.8.14.4

15/07/2020

·         Метод getInvoicesChangeState, в структуру ответа добавлен новый параметр «VisualState», в котором будет передаваться текстовый визуальный статус по вложимому.

1.8.14.5

06/10/2020

·         В структуру ответа метода /getinvoiceschangestate добавлен вывод кода внешнего статуса вложимого VisualStateCode.

·         В структуру ответа метода /getstates добавлен блок VisualState с выводом кода и текста внешнего статуса вложимого ID / Text.

1.13.20358.2

23/12/2020

·         Метод GetInvoicesChangeState:

o    В структуру ответа добавлен новый параметр "GCBarCode" в который передаем номер присвой вложимого

1.16.21.056

25/02/2021

·         Метод CreateShipment: в структуру ответа добавлена передача параметра “GCBarCode” (в блоке) ExtendedData

·         В метод Chequeinfo добавлена передача параметра типа чека – фискальный или авансовый

 


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

URL: /login

Метод: POST

Описание

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

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

{

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

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

}

 

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

{

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

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

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

"ExpiresIn": <Дата и время истечении сессии>

}

 

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

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 символов)>”,

                                                               "ClientPostamatNumber":   "<Номер ПТ клиента>",

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

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

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

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

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

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

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

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

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

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

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

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

"ClientDeliveryPeriod": <Клиентский срок доставки>

{

"From": "Дата С",

"To": "Дата ПО"

},

"ClientDeliveryDate":"Клиентская дата доставки ",

                                                               "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 символов)>”,

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

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

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

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

 

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

[

{

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

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

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

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

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

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

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

"Upi":                       <код маркировки>,

"PrincipalINN":       <ИНН принципала>,

"PrincipalName": <Наименование юр.лица принципала>,

"PrincipalPhoneNumber":   <Номер телефона принципала>

}

                                                                                              ]

}

]

                                               }

}

]

}

 

(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, обязательное поле

ClientPostamatNumber

Номер ПТ клиента, необязательное поле

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 (без НДС)

UPI

Код маркировки. Обязательный формат кода товара для передачи в ОФД:

Формат данных:

[01+XXXXXXXXXXXXXX+21+XXXXXXXXXXXXX+240+XXXX]                              

1 - идентификационный номер товара (GTIN),

которому предшествует идентификатор применения (01). Количество

цифровых символов составляет 14.

2 - индивидуальный серийный номер товара,

которому предшествует идентификатор применения (21) и который

генерируется Оператором Системы или участником оборота товара.

Количество символов в цифровой или буквенно-цифровой

последовательности (латинского алфавита) составляет 13 (тринадцать).

Завершающим символом для данной группы данных необходимо

использовать разделитель, имеющий код 29 в таблице символов ASCII.

3 - код ТН ВЭД ЕАЭС, которому предшествует

идентификатор применения (240). Количество цифровых символов в

коде ТН ВЭД ЕАЭС составляет 4 (указываются первые 4 символа 10-

значного кода ТН ВЭД ЕАЭС).

PrincipalINN

ИНН принципала – необязательное поле.

Допустимые символы - цифры, максимальная длина поля - 12 символов.

PrincipalName

Наименование юр.лица принципала - необязательное поле

PrincipalPhoneNumber

Номер телефона принципала - необязательное поле.

Допускаются круглые скобки и тире.

 

*в случае если вы используете несколько режимов доставки согласно договору, поле «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 символов)>”,

                                               ExtendedData":  ”<Список заказов с дублирующим номером присвойки, которые не были созданы>”

{

                                                               "Places": [

{

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

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

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

}

                                                               ],

                                                               "InvoiceNumber": "< Номер отправления присвоенный PickPoint>"

“BarCode”: "<Штрих код  PickPoint> "

}

],

"Warnings":

[

 "Вы отправляете на регистрацию слишком много отправлений за один запрос. Рекомендуемое количество отправлений: не более 50."
                 ]

}

 

 

Формирование этикеток в 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”:    ”<Сообщение ошибки>”,

"SenderCodes":     ”<Список номеров присвоек, которые не были добавлены в реестр>”,

[

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

]

}

 

Внимание! Если вам вернулась ошибка “Не все отправления находятся в статусе «Зарегистрирован» № отправления: 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. Для Московской области вызов курьера на текущий день должен создаваться до 11:00 (диапазон вызова с 9-18 или 10-30 до 18). Для остальных регионов вызов на текущий день должен быть создан до 15: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

Описание

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

Поля, доступные для изменения, в состояниях, указанных в таблице ниже:

"deliveryfee": (сервисный сбор),

"DeliveryVat":  (ставка ндс сервисного сбора),

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

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

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

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

Значение

Поле 1

изменять данные по КО:

100

Принят по реестру

+

101

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

+

102

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

+

103

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

+

104

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

+

105

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

+

106

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

+

107

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

+

108

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

+

109

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

+

110

Принято в ПТ

+

116

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

+

123

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

+

124

Отмена

+

125

До востребования

+

128

Аннулирован

+

137

В розыске

+

141

В розыске (безопасность)

+

142

Возврат выдан курьеру

+

143

Считан в маршрутный лист

+

144

Считан в конс. накладную

+

145

Считан в накладную передачи Ф11

+

146

Передано фиктивно

+

147

Выдано на маршрут_внутрирегиональный

+

148

Розыск возврата

+

 

 

 

Таблица допустимости переадресации – изменения поля «PostamatNumber»:

100 (Принят по реестру)

Да

101 (Зарегистрирован)

Да

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

Да

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

Да

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

Да

105 (Принят Логистом)

Да - при условии, что НЕТ состояния «Получен»

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

Да

107 (Выдан на маршрут)

Да

108 (Выдано курьеру)

Да, при условии, что по текущему ПТ получения ЕСТЬ флаг "Поломка", "временное закрытие" или текущий ПТ получения 0001-001

110 (Принято в ПТ)

Да - при условии, что НЕТ состояния «Получен»

116 (Передано на возврат)

Да - при условии, что НЕТ состояния «Получен»

118 (Передано на ИНО)

Да

119 (Принято на ИНО)

Да

120 (Затюковано на ИНО)

Да

121 (Назначен курьер)

Да

123 (Сконсолидировано)

Да – при условии, что содержится в накладной консолидированной пересылки

144 Считан в конс. Накладную

Да

145 Считан в накладную передачи Ф11

Да

 146 Передано фиктивно

Да

 147 Выдан на маршрут_внутрирегиональный

Да

 

*Изменения возможно только в том случае, если для связанных с ними КО 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": "<Код маркировки (1024 символа), не обязательное поле   >"

    }]

}

В случае, если поле 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":"6ab62815-b21a-43d5-9764-64b2404ebbaa",

"InvoiceNumber": "15982546833",

"GCInvoiceNumber": 1,

"Reason": "41421",

"Source":1

}

{

    "Error": "",

    "ErrorCode": 0,

    "Result": true

}

}

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

 

{

"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":                   “<номер внутреннего статуса PickPoint>”,

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

"VisualStates": [

 {

"ID":         “<номер внешнего статуса>”,

"Text":      ”<текстовое описание внешнего статуса>”

},

{

"ID":         “<номер внешнего статуса>”,

"Text":      ”<текстовое описание внешнего статуса>”

}

}

Расшифровка статусов

id статуса

Текстовое значение статуса

id  внешнего статуса

Текстовое значение внешнего статуса

100

Принят по реестру

10001

-

101

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

10101

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

102

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

10201

Ожидает отгрузки отправителем

102

10202

Отправитель задерживает отгрузку

103

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

10301

Ожидает отгрузки отправителем

103

10302

Отправитель задерживает отгрузку

104

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

10401

Ожидает отгрузки отправителем

104

10402

Отправитель задерживает отгрузку

105

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

10501

Передан курьеру для доставки на сортировочный центр

105

10502

Передан курьеру для возврата на сортировочный центр

106

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

10601

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

106

10602

Поступил на транзитный сортировочный центр

106

10603

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

106

10604

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

107

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

10701

Отправлен по маршруту доставки

108

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

10801

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

109

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

10901

Доставлен в постамат

109

10902

Доставлен в пункт выдачи

110

Принято в ПТ

11001

Принят в постамате для возврата отправителю

110

11002

Принят в пункте выдачи для возврата отправителю

110

11003

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

110

11004

Принят в пункте выдачи

111

Получен

11101

Получен

112

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

11201

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

113

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

11301

Доставлен получателю

113

11302

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

114

Отказ

11401

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

114

11402

Отменен отправителем

115

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

11501

Оформлен возврат

116

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

11601

Передан курьеру для доставки на сортировочный центр

116

11602

Передан курьеру для возврата на сортировочный центр

118

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

11801

Отправлен по маршруту доставки

129

Возврат доставлен в ПТ

12901

Возврат доставлен в постамат

129

12902

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

130

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

13001

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

131

Извлекли для хранения на СЦ

13101

Передан курьеру для возврата на сортировочный центр

132

Хранение на СЦ

13201

Принят на сортировочный центр на хранение

137

В розыске

13701

Находится в розыске

139

Возмещено клиенту

13901

Заказ утерян. Стоимость компенсирована

142

Возврат выдан курьеру

14201

Возврат выдан курьеру

147

Выдано на маршрут_внутрирегиональный

14701

Отправлен на сортировочный центр доставки

148

Розыск возврата

14801

Находится в розыске

150

Утерян возврат

15001

Заказ утерян. Стоимость компенсирована

153

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

15301

Возврат выдан курьеру

 

 

 

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

URL: / getInvoicesChangeState

Метод: POST

Описание

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

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

{

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

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

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

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

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

}

 

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

 [

                {

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

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

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

"GCBarCode":       "<номер присвойки вложимого>",

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

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

"VisualState":                         "<текстовый внешний статус вложимого>",

"VisualStateCode":               "<код внешнего статуса вложимого>",

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

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

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

]

 

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

URL: /getmoneyreturnorder

Метод: POST

Описание

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

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

{

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

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

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

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

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

 

}

 

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

[

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

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

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

Invoices”:

                [

                               {

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

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

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

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

                                               "RetRate":                            “<Ставка агентского вознаграждения>”,

                                                "PayType":                           “<Тип оплаты отправления “cash”\”card”>”,

                                               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”:    ”<название региона города>”,

"FiasId": "id ФИАС",

"KladrId": "id КЛАДР"

 

}

]

Список точек выдачи в сети Pickpoint

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 символов)>”,

                                 "AmountTo": “<максимальная сумма выдачи>”,                      

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

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

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

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

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

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

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

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

                               Status”:                “<Статус постамата:  2 – рабочий, 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 – возможен возврат>”,

                                "SelfDelivery":        ”<true/false – возможен самопривоз клиентом>”,

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

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

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

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

 "CountryIso":         "<буквенный код страны>",

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

“TemporarilyClosed”:        “<Признак временного закрытия постамата>” 0 – рабочий, 1 – временно закрыт,

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

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

"HubProcessing":     <№ ПТ склада/станции  обслуживания (Хаб)>,,

"HubCity":    <"Город" для хаба обработки>,

"HubRegion":     <"Регион" для хаба обработки>,

"HubAddress":    <"Адрес" для хаба обработки>,

"FiasId": " ФИАС id города",

"KladrId": "КЛАДР id города"

 

}

]

 

Список точек возврата в сети Pickpoint

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 символов)>”,

                                "AmountTo": “<максимальная сумма выдачи>”,                       

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

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

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

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

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

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

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

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

                               Status”:                “<Статус постамата:  2 – рабочий, 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 – возможен возврат>”,

                               "SelfDelivery":        ”<true/false – возможен самопривоз клиентом>”,

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

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

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

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

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

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

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

"FiasId": "ФИАС id города",

"KladrId": "КЛАДР id города"

 

}

]

 

 

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

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": <Наименование режима доставки>”,

                                               “Discount”: <% скидки, если имеется>”,

                                                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

Описание

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

Рекомендуется вызывать метод через 24 часа после перехода заказа в статус «Получен» т.к. некоторые агенты передают данные об оплате с задержкой

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

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

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

{

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

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

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

}

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

 

{

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

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

                 "Cheques": [

        {

“ChequeType”:                   <тип чека>,                          

                                "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

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

-2099

Недопустимое состояние ИКН

 


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

Код

Описание

0

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

-1

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

1

Неверная сессия или сессия истекла

10

Неверный логин или пароль

20

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

21

Данные не найдены

25

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

30

Неверный номер контракта

35

Субклиент не найден

100

Временная ошибка