Протокол 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

 

 

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

 

 


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

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

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

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

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

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

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

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

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

Получение созданного реестра в pdf 15

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

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

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

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

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

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

Мониторинг отправления. 21

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

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

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

Получение информации по отправлению... 27

Получение информации по вложимому. 29

Получение информации по возвратной накладной.. 29

Регистрация возврата.. 30

Получение списка возвратных отправлений.. 32

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

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

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

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

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

Получение списка точек по почтовому индексу/телефону. 38

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

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

Изменения по отправлению в заданный период.. 42

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

Регистрация курьера бизнес-клиента.. 44

Редактирование курьера бизнес-клиента.. 44

Отключение курьера бизнес-клиента.. 45

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

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


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

Версия

Дата

Изменения

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”:         ”<Наименование клиента, отображаемое на этикетке (буквы и/или цифры), необязательное поле>”,

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

                                                “TitleEng”:               ”<Наименование на английском для отображения на сайте в мониторинге 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»).

 

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

URL: /makereestr

Метод: POST

Описание

Команда предназначена для получения реестра приема передачи отправлений от магазина в доставку PickPoint. Формат файла: pdf. Реестр создается на все отправления, находящиеся в статусе «Зарегистрирован» ("State": 101) или «Отказ». На отправления должны быть размещены этикетки с штрих-кодом PickPoint.

На вход принимается структура, содержащая идентификатор сессии и список номеров отправлений (или/и ШК вложимых, или/и номера присвоек). На выходе массив байт.

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

{

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

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

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

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

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

“Invoices”:

 [

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

                        

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

],

“Encloses”:

<номер ШК 1>

        

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

],

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

[

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

                        

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

]

}

 

}

 

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

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

 

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

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

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

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

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

 

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

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

Описание

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

 

 

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

{

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

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

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

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

 }

 

 

 

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

{

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

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

}

 

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

 

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

URL: /getreestr

Метод: POST

Описание

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

 

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

{

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

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

ReestrNumber”:  ”<номер реестра>”

}

 

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

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

 

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

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: /rejectedorder

Метод: 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: /tracksending

Метод: POST

Описание

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

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

{

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

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

“SenderInvoiceNumber”:   ”<Номер заказа магазина>”

}

 

Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими

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

[

{

                “State”:                 “<код статуса>”,

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

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

}

]

 

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

 

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

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: /tracksendings

Метод: POST

Описание

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

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

{

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

“Invoices”:            <массив номеров отправлений>

[

                “<номер отправления PickPoint или номер заказа Магазина>”,

                “<номер отправления PickPoint или номер заказа Магазина >”

 

]

}

 

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

{

                “Invoices”:

[

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

SenderInvoiceNumber”:   ”<Номер заказа магазина>”,

“ChequeNumber”:                             “<номер чека, если несколько, то перечислены через запятую>”,

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

                               RefundInfo”:                       <Информация по возврату денег>

{

                                               RefundDate”:     ”<Дата создания акта возврата денег>”,

                                               RefundNumber”: ”<Номер акта возврата>”,

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

                                               Sum”:                   ”<Сумма перечисления>”,

                                               AgencyFee”:      ”<Сумма агентского вознаграждения>”

},

                               ReturnInfo”:         <Информация по возврату товара>

{

                                               ReturnDocumentDate”:   ”<Дата создания реестра возврата денег>”,

                                               ReturnDocumentNumber”:              ”<Номер реестра возврата>”,

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

                                               ReturnDeliveryDate”:        ”<Дата доставки возврата>”,

                                               ReturnFromCity”:                ”<Город отправки возврата>”,

                                               ReturnAddress”:                 ”<Адрес доставки возврата>”

},

                States

[

                                “State”:                 “<код статуса>”,

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

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

]

]

}

 

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

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: /sendinginfo

Метод: POST

Описание

Команда предназначена для получения информации по отправлению отправления. В запросе отправляется идентификатор сессии и номер отправления. В ответ возвращается признак успешности выполнения.

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

{

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

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

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

}

 

Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими.

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

[

{

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

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

“Sum”:                                   “<сумма за отправление>”

“CreateDate”:                     ”<дата создания отправления>”,

FIO”:                                     ”<ФИО получателя>”,

StorageDate”:                    ”<Срок хранения, если отправление еще не заложено, то пустое поле>”,

Prolonged”:                        ”<true/false – было или нет продление>”,

Barcodes”:

[

                               “<штрих-код отправления>”

                              

                               “<штрих-код отправления>”

],

                               RefundInfo”:        <Информация по возврату денег>

{

                                               RefundDate”:     ”<Дата создания акта возврата денег>”,

                                               RefundNumber”: ”<Номер акта возврата>”,

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

                                               Sum”:                   ”<Сумма перечисления>”,

                                               AgencyFee”:      ”<Сумма агентского вознаграждения>”

},

                               ReturnInfo”:         <Информация по возврату товара>

{

                                               ReturnDocumentDate”:   ”<Дата создания реестра возврата денег>”,

                                               ReturnDocumentNumber”:              ”<Номер реестра возврата>”,

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

                                               ReturnDeliveryDate”:        ”<Дата доставки возврата>”,

                                               ReturnFromCity”:                ”<Город отправки возврата>”,

                                               ReturnAddress”:                 ”<Адрес доставки возврата>”,

SubEncloses”:                     “<Информация о субвложимых>”

                                               [

                                                               {

"Line":                      "<Номер>",

"ProductCode":    "<Код продукта>",

"GoodsCode":      "<Код товара>",

"Name":                  "<Наименование>",

"Price":                    <Стоимость>,

"Return date":       <Дата возврата (физ. лицом)>,

"Reason":               <Причина>

}

]

 

},

                               ClientReturnAddress”:       ”<Адрес клиентского возврата>”

{

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

                                               RegionName”:   ”<Название региона>”,

                                               Address”:            ”<Текстовое описание адреса>”,

                                               FIO”:                     ”<ФИО контактного лица>”,

                                               PostCode”:         ”<Почтовый индекс>”,

                                               Organisation”:    ”<Наименование организации>”,

                                               PhoneNumber”: ”<Контактный телефон>”,

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

},

                               UnclaimedReturnAddress”:              ”<Адрес возврата невостребованного>”

{

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

                                               RegionName”:   ”<Название региона>”,

                                               Address”:            ”<Текстовое описание адреса>”,

                                               FIO”:                     ”<ФИО контактного лица>”,

                                               PostCode”:         ”<Почтовый индекс>”,

                                               Organisation”:    ”<Наименование организации>”,

                                               PhoneNumber”: ”<Контактный телефон>”,

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

},

“ChequeNumber”:              “<номер чека, если несколько, то перечислены через запятую>”,

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

 

}

]

 

Замечание: в случае, если под одним SenderInvoiceNumber было зарегистрировано несколько отправлений, ответ будет содержать информацию по всем этим отправлениям.

 

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

URL: /encloseinfo

Метод: POST

Описание

Команда предназначена для получения информации по вложимому.

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

{

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

Barcode”:            “<Штрих-код вложимого>”

}

 

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

{

                Enclose”:

                {

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

                               Height”:                “<Высота отправления>”,

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

                               Weight”:                               “<Вес отправления>”

                },

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

}

 

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

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

 

Получение информации по возвратной накладной

URL:  /getreturn

Метод: POST

Описание

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

 

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

{

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

“Invoices”:

 [

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

                                  

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

]

}

 

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

{

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

“ReturnInvoices”:

 [

                               {

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

                                               ReturnInvoiceNumber     :”<номер отправления магазина (присвойка)>”,

                ReturnDocumentNumber”:              ”<номер акта возврата товара>”,

ReturnBarcodes”:

[

                “<штрих-код отправления>”

               

                “<штрих-код отправления>”

]

}

],

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

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

}

 

 

Регистрация возврата

URL: /createreturn

Метод: POST

Описание

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

 Если InvoiceNumber указан, то возврат создается на указное отправление. Иначе создается почтовый возврат.

 

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

{

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

                Sendings”:

                [

                               {

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

                                               IKN“:                     “<ИКН – номер договора>”,

                                               Invoice”:

                                               {

                                                               SenderCode“:    “<Номер заказа магазина>”,

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

                                                               “RecipientName“:              “<Имя получателя>”,

InvoiceNumber“:               “<Номер КО в систем PickPoint (20 символов)>”,

                                                               MobilePhone“:   “<Номер телефона получателя, обязательное поле >”,

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

                                                               ClientReturnAddress”:       ”<Адрес клиентского возврата, если не указано, берется из котракта>”

{

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

                                                                               RegionName”:   ”<Название региона>”,

                                                                               Address”:            ”<Текстовое описание адреса, обязательное поле >”,

                                                                               FIO”:                     ”<ФИО контактного лица>”,

                                                                               PostCode”:         ”<Почтовый индекс>”,

                                                                               Organisation”:    ”<Наименование организации>”,

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

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

},

                                                               Places”:

[

{

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

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

Width“:                 <Ширина>,

Height“:                               <Высота>,

Depth“:                               <Глубина>,

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

[

{

"Line":                     "<Номер>",

"ProductCode":    "<Код продукта>",

"GoodsCode":      "<Код товара>",

"Name":                 "<Наименование>",

"Price":                    <Стоимость>

}

                                                                                              ]

}

]

                                               }

}

]

}

 

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

SenderCode

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

BarCode

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

Description

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

RecipientName

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

MobilePhone

Номер Мобильного телефона получателя для SMS, формат номера: 7/8хххХХХххХХ  обязательное поле

Email

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

Width

Ширина, в см, обязательное поле Если не знаете точных габаритов указывайте примерные значения или =0. (при типе сдаче в окне приема ПТ (валом или по ячейкам).

Height

Высота, в см, обязательное поле Если не знаете точных габаритов указывайте примерные значения или =0

Depth

Глубина в см, обязательное поле Если не знаете точных габаритов указывайте примерные значения или =0

 

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

{

                “CreatedSendings”:

                [

                               {

                                               “EDTN”:                  ”< Значение идентификатора запроса >”,

                                               ReturnCode”:     ”<Код для возврата отправления на постамате>”,

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

                                               Places”:

                                               [

                                                               {

                                                               GCBarCode”:    “<Клиентский номер ШК>”,

Barcode”:           ”< Штрих код от PickPoint >”

}

                                               ]

}

]

 

                RejectedSendings”:

                [

                               {

                                               “EDTN”:                  ”< Значение идентификатора запроса >”,

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

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

}

]

}

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

URL: /getreturninvoiceslist

Метод: POST

Описание

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

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

{

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

DateFrom”:          ”<дата, с которой необходимо получить список >”,

DateTo”:              ”<дата, до которой необходимо получить список>”

}

 

Поля InvoiceNumber и SenderInvoiceNumber являются взаимоисключающими

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

{

                SendingsInfo

[

{

 

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

SenderInvoiceNumber”:  ”<номер отправления, введенный получателем>”,

                                Barcode”:                          “<штрих-код PickPoint>”,

                                ConsultantNumber”:        ”<номер консультанта, если был указан>”,

DateOfCreate”:                ”<дата создания отправления>”,

PhoneNumber”:                ”<номер телефона, введенный покупателем (отправителем)>”,

                                ReturnReason”:                ”<указанная причина возврата>”

}

]

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

}

 

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

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”:          “<Номер акта>”

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

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

 

}

 

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

[

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

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

Invoices”:

                [

                               {

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

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

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

                                               Encloses

                                               [

                                                               {

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

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

                                                               }

                                               ]

                               }

],

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

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

]

 

 

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

 

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

URL: /citylist

Метод: GET

 

Описание

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

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

[

{             

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

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

}

]

 

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

URL: /postamatlist

Метод: GET

Описание

Команда предназначена для получения списка ПТ - точек (АПТ и ПВЗ) в режиме «рабочий» и «перегружен». Если ПТ не может принять отправления или закрывается, он пропадает из данного списка. Список точек необходимо актуализировать 1 раз в сутки.

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

[

{             

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

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

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

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

BuildingType”:        ”<название типа строения, в котором расположена точка>”,

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

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

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

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

}

]

 

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

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

"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: /postindexpostamatlist

Метод: POST

Описание

Команда предназначена для получения списка точек, ближайших к почтовому индексу, указанному в запросе. Либо списка точек, находящихся в переданном городе и регионе. Либо информацию о точке, в которой получатель делал предыдущий заказ (в этом случае передавать номер телефона в запросе). Следовательно, в случае, если необходимо получить ближайшие для почтового индекса точки, следует в запросе передавать только почтовый индекс(PostIndex). Если необходимо получить список всех точек в городе, следует передавать только наименование города(CityName) и наименование области(RegionName). Если необходимо получить информацию о точке, в которой получатель делал заказ, передавать только номер телефона(PhoneNumber). Параметр ReturnOnly необязателен и в случае, если он не указан (или false), возвращаются все точки, иначе – только те точки, в которых возможен возврат.

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

{

                “PostIndex”:          ”<почтовый индекс>”,

PhoneNumber”:            ”<номер телефона (без кода, 10 цифр)>”