Документация API

Последние изменения: 07.03.2024

ДОКУМЕНТАЦИЯ API v 1.15

Данные передаются в формате JSON

 Список изменений

Версии документации

Версия                          

Дата                                      

Описание изменений

1.15

28.02.2024

При создании поручений добавлены поля is_required_on_cancel для обязательности при отказе и required_min_sum для указания минимальной суммы выкупа

1.14

13.11.2023

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

1.13

04.09.2023

Добавлено поле Order.is_opening_package_allowed и Order.is_is_fitting_allowed для разрешения/запрета возможности вскрытия заводской упаковки, а также проверки/примерки

1.12

29.06.2023

Добавлено поле Shipment.is_excise для возможности передавать признак подакцизного товара для печати в чеке

1.11

06.06.2023

Добавлено поле Order.is_partial_delivering для разрешения/запрета возможности частичной доставки

1.10

29.05.2023

Добавлены поля location.reason при получении ответа в методах получения и поиска заказов Удалён метод Получение всех заказов (запрос GET:https://my.courierist.com/api/v1/order/get-all)

1.9

02.03.2023

Добавлены поля в Shipment для печати данных поставщика в чеке

1.8

02.02.2023

Добавлен метод настройки и проверки вебхука

1.7

29.12.2022

Добавлен метод получения этикеток в PDF

1.6

13.12.2022

Добавлено поле Shipment.barcode для передачи штрихкодов товаров в формате EAN-13

1.5

26.08.2022

Добавлен поиск по массиву order.id в метод Поиск заказов

1.4

15.10.2021

Добавлено поле Добавлено поле Shipment.type_id, и метод получения доступных Типов груза. Добавлено поле Contact.email

1.3.1

22.04.2021

В Создании Заказов и Поиске Заказов в ответе добавлено поле trackingLink

1.3

16.11.2020

В Поиске Заказов в ответе location.history заменен на location.tracking

1.2.7

16.08.2020

Добавлено поле Shipment.legal_vat для добавления товаров, не облагающихся НДС, у компаний на ОСНО.

1.2.6

14.02.2020

Добавлено поле Shipment.marking_code, Shipment.marking_type

1.2.5

29.12.2019

Добавлено поле Assignment.comment

1.2.4

18.12.2019

Метод обновления параметра is_manual_processing в Location по номеру заказа Order.id

1.2.3

03.12.2019

Добавлена возможность указывать в заказе контактное лицо для решения нестандартных ситуаций по заказу.

1.2.2

27.10.2019

Метод обновления параметров Location

1.2.1

23.10.2019

В ответ метода Поиск заказов добавлена информация о назначенных курьерах couriers

1.2

10.09.2019

Добавлена возможность добавлять/заменять грузы в заказе и добавлять/заменять поручения в адресе, если ни один из адресов заказа не имеет финального статуса

1.1.4

11.07.2019

Добавлено поле Assignment.tax_rate для указания ставки НДС

1.1.3

24.06.2019

1. Вес Shipment.weight теперь принимает 3 знака после запятой вместо 2 ранее.

2. Добавлено поле Shipment.tax_unit_type, определяющее формулу расчета наложенного платежа.

3. Изменена проверка корректности Shipment.price и Shipment.tax_item_price в зависимости от Shipment.tax_unit_type

1.1.2

28.02.2019

Добавлены поля Location address_details, address_type_id, address_place и метод получения списка LocationType

В Поиск заказов добавлена возможность искать по массиву “codes”

Добавлена возможность вносить Location.prepayment, предоплаченная сумма наложенного платежа

1.1.1

22.02.2019

Исправлена ошибка в ответ на отмену заказа. Теперь возвращается и массив location (раньше не возвращался).

1.1.0

01.02.2019

Внесена зависимость наложенного платежа от количества в shipment:

наложенный платеж - сумма за всё количество (unit), ₽, 2 знака после запятой, разделитель - точка.

Должно точно соответствовать price = tax_item_price * unit

1.0.0

01.06.2017

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

 

1. Логин

Запрос POST:https://lk.runcrm.ru/api/v1/access/login

Параметр                                                        

Тип                                                                      

Описание                                                          

Формат                                                         

login

string     

Логин

"login":"mylogin"

password

string

Пароль

"password":"mypass"

 

Пример:

curl -H "Content-Type: application/json" -d '{"login":"mylogin","password":"mypassword"}' 

https://lk.runcrm.ru/api/v1/access/login

 

Возвращаемое значение:

{"access_token":string}

 

2. Оценка стоимости заказа

Запрос POST:https://lk.runcrm.ru/api/v1/order/evaluate

Данные запроса Order

Параметр             

Тип

Описание

Формат

locations

array of <Location>

массив из 2 адресов посещения - забор и доставка

"locations":[location_from,

location_to]

shipment

array of

<Shipment>

массив грузов

к заказу

"shipment":[shipment1, shipment2, shipment3, …]

Формат записи данных типа Order:

{"locations":[location_from,location_to], "shipment":[shipment1,shipment2,shipment3, …]}

Данные типа Location

Параметр                                     

Тип                                                          

Описание

Формат                                                                                                                                    

address

string

адрес (обязательно с указанием населенного пункта)

"address":"Москва, Волоколамское ш, 2"

latitude

double

широта (если пусто - определяется по адресу)

"latitude":55.807476

longitude

double

долгота (если пусто - определяется по адресу)

"longitude":37.505292

delivery_date

string as date ‘YYYY-MM-DD’

дата доставки (по-умолчанию сегодняшняя)

"delivery_date":"2016-05-11"

delivery_from

string as time

‘HH:MM’

время доставки “от”

(если не передавать, то по-умолчанию подставляется текущее время, но не ранее 10:00)

"delivery_from":"18:00"

delivery_to

string as time

‘HH:MM’

время доставки “до” (если не передавать, то по-умолчанию подставляется 23:00)

"delivery_to":"20:00"

assignments

array of

<Assignment>

массив поручений

"assignments":[assignment1, assignment2, assignment3, …]

Формат записи данных типа Location:

{"address":"Москва, Волоколамское ш, 2", "latitude":55.807476, "longitude":37.505292, "delivery_date":"2016-05-11", "delivery_from": "18:00","delivery_to":"20:00","assignments":[assignment1,assignment2,assignment3, …]}

Данные типа Shipment

Параметр                                         

Тип                                                               

Описание

Формат                                                                                                                                             

price

double

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

"price":1.55

weight

double

вес в кг, возможно 3 знака после запятой, разделитель - точка

"weight":1.567

length

double

габариты в см (длина + высота + ширина), возможно 2 знака после запятой, разделитель - точка

"length":100.50

value

double

ценность в рублях, возможно 2 знака после запятой, разделитель - точка

"value":1.15

unit

integer

количество упаковок, шт. (по-умолчанию 1)

только целые значения

"unit":1

type_id

integer

id Типа груза

"type_id": 1

Форматы записи данных типа Shipment:

{"price":10,"weight":1.535,"length":0,"value":10,"unit":1,"whereabouts": "Москва"}

Данные типа Assignment

Параметр         

Тип                           

Описание                                                                            

Формат

price

double

наложенный платеж, ₽

"price":10.00

type

integer

тип поручения

"type":N

N=1 - наложенный платеж (по умолчанию)

N=2 - расход

Форматы записи данных типа Assignment:

{"price":10.50}

Ответ сервера на запрос о тарификации заказа.

В ответ на запрос о тарификации в случае успеха вернется order, который будет содержать стоимость price. В случае неудачи сервер вернёт текст ошибки.

Response:

{
   "order":     
      {
         "price": double
       }
}

Пример:

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '{"locations":[{"address":"Новый Арбат 2, Москва","delivery_date":"2016-05-11","delivery_from":"18:00","delivery_to":"20:00","assignments":[{"price":1000},{"type":2,"price":1000}]},{"address":"Красная площадь, Москва", "latitude":55.822470175511, "longitude":37.46910618045,"delivery_date":"2016-05-12","delivery_from":"18:00","delivery_to":"20:00"}],"shipment":[{"weight":1,"length":10},{"price":100,"weight":1,"length":10,"value":100,"unit":2}]}' https://lk.runcrm.ru/api/v1/order/evaluate

Response:

{
   "order":
      {
        "price": 280
       }
}

 

3. Создание заказов

 

3.1. Добавление заказов

 

Запрос POST:https://lk.runcrm.ru/api/v1/order/create

Данные запроса

Параметр                                                                   

Тип                                                                              

Описание                                                                                                                                                                                                                                    

Формат                                                                                                                                                                                              

array of <Order>

Массив заказов

[order1,order2,…,orderN]

 

Данные типа Order

Параметр                                      

Тип                                             

Описание                                                      

Формат                                                                                                                         

comment

string

Комментарий к заказу

(данный комментарий видят логисты, но не видят курьеры)

"comment":"прислать данные курьера для доверенности"

is_partial_delivering

boolean

Если true (или 1), то частичная доставка в заказе допустима.

Если false (или 0), то частичная доставка в заказе недопустима.

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

"is_partial_delivering":false

"is_partial_delivering":1

is_opening_package_allowed

boolean

Если true (или 1), то вскрытие заводской упаковки в заказе допустимо.

Если false (или 0), то вскрытие заводской упаковки в заказе недопустимо.

"is_opening_package_allowed": false

"is_opening_package_allowed":1

is_is_fitting_allowed

boolean

Если true (или 1), то примерка/проверка грузов в заказе допустима.

Если false (или 0), то примерка/проверка грузов в заказе недопустимо.

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

"is_fitting_allowed": false

"is_fitting_allowed":1

contact

<Contact>

Контактное лицо для решения нестандартных ситуаций по заказу

"contact":

locations

array of <Location>

Массив из 2 адресов посещения - забор и доставка

"locations":[location_from,

location_to]

shipment

array of

<Shipment>

Массив грузов

к заказу

"shipment":[, shipment2,..., shipmentN]

debug

string

Тестовая строка, будет возвращена в тексте сообщения о ошибке в виде [DEBUG: test]

"debug": "test"

Формат записи данных типа Order:

{"comment":"test comment","debug": "TEST", "contact":contact,"locations":[location_from,location_to], "shipment":[shipment1,shipment2,shipment3, …]}

Данные типа Location

Параметр                                                            

Тип                                                                     

Описание

Формат                                                                                                                                                                           

address

string

Адрес (обязательно с указанием населенного пункта)

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

"address":"Москва, Волоколамское ш, 2"

address_details

string

Подъезд, домофон, этаж и прочие детали адреса

"address_details":"1 подъезд, 3-й этаж, домофон 36К765"

address_type_id

int

Тип адреса, id записи типа LocationType

"address_type_id": 1

address_place

string

Номер или название

"address_place":"14"или "address_place":"ТЦ Океан"

latitude

double

Широта

"latitude":55.807476

longitude

double

Долгота

"longitude":37.505292

delivery_date

string as date ‘YYYY-MM-DD’

Дата посещения адреса

(если не передавать, то по-умолчанию до окончания рабочего времени службы доставки подставляется текущий день, после – следующий рабочий день)

"delivery_date":"2016-05-11"

delivery_from

string as time

‘HH:MM’

Начало интервала прибытия на адрес - “с”

(если не передавать, то по-умолчанию подставляется текущее время, но не ранее начала рабочего времени службы доставки)

"delivery_from":"18:00"

delivery_to

string as time

‘HH:MM’

Конец интервала прибытия на адрес - “до” (если не предавать, то по-умолчанию подставляется окончание рабочего времени службы доставки )

"delivery_to":"20:00"

comment

string

Комментарий для курьера на адресе (данный комментарий видят курьеры, но не видят логисты)

"comment":"подписать документы и забрать один экземпляр”

external_id

string

Внутренний номер заказа у заказчика

"external_id":"test id"

pin

string

Пин код для курьера на адресе забора, 4-6 символов

"pin":"1234"

otp

string or string[]

Предзаполнение кодов для подтверждения доставки вместо отправки одноразовых, 4-6 цифр

"otp": "12312" или

"otp": ["7777","333111"]

prepayment

double

Сумма предоплаты за наложенный платеж, 2 знака после запятой, разделитель - точка.

"prepayment": 300.78

contact

<Contact>

Контактное лицо на адресе

"contact":contact

assignments

array of

<Assignment>

Массив поручений

"assignments":[assignment1, assignment2, ..., assignmentN]

Формат записи данных типа Location:

{"address":"Москва, Волоколамское шоссе, 2", "latitude":55.8075271, "longitude":37.5045338, "delivery_date":"2016-05-11", "delivery_from": "18:00","delivery_to":"20:00","comment":"test_comment","external_id":"test id", "contact":contact,"assignments":[assignment1,assignment2,assignment3, …]}

Данные типа Contact

Параметр                         

Тип                                  

Описание

Формат                                                                                           

name

string

Имя (обязательное поле)

"name":"test name"

phone

string

Мобильный телефон – только 10 символов, обязательно начинается с “9”

"phone":"9259997777"

email

string

Валидный email адрес

"email":"[email protected]"

note

string

Примечание или телефон в любом формате

"note":"test note"

type

integer

Тип контактного лица

"type":N

N=1 - сотрудник заказчика

N=2 - другое

Обязательно должно быть заполнено либо phone, либо note.

Формат записи данных типа Contact:

{"name":"Сергей Абрамов","phone":"9259997777","note":"доп.телефон: +7 495 1351553 вн. 356","type":2}

Данные типа Assignment

Параметр                                    

Тип                                               

Описание 

Формат                                                                                                                     

name

string

Название
(при фискализации отражается в кассовом чеке)

"name":"Курьерская доставка"

comment

string

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

"comment":"Оплачивается только при выкупе более 2500 руб"

price

double

Наложенный платеж – оплата за выполнение поручения, ₽

"price":10.00

type

integer

Тип поручения; если не указан - используется значение по-умолчанию

"type":N

N=1 - получить деньги (по умолчанию)

N=2 - отдать деньги

required_min_sum

double

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

"required_min_sum": 2500

is_required_on_cancel

boolean

Поручение обязательно, если от всех грузов отказались

"is_required_on_cancel": 1

tax_rate

double

Ставка НДС: 0, 10, 20, не облагается

Указывается только при "type":1 и price > 0

"tax_rate":0

"tax_rate":10

"tax_rate":20

"tax_rate":null

Форматы записи данных типа Assignment:

{"name":"Курьерская доставка","price":300,"type":1,"tax_rate":20}

Данные типа Shipment

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

name

string

Название
(при фискализации отражается в кассовом чеке)

"name":"test name"

article

string

Артикул

"article":"test"

freight

string

Грузоместо

"freight":"test"

barcode

string

Штрихкод товара в формате CODE-128B

“barcode”:9780201379624

marking_code

string

Код маркировки товаров для https://честныйзнак.рф в формате: “01”GTIN”21”SERIAL.  Возможно добавление криптохвоста. Максимальная длина – 255 символов.

“marking_code”:”010461003706597021SqdiqzCEdOtPN”

marking_type

int

Тип кода маркировки для https://честныйзнак.рф/upload/iblock/d04/formirovanie-tega-1162-na-KKT.pdf, на текущий момент поддерживается тип описанный в 6 пункте

“marking_type”:6

is_excise

boolean

Присваивается true (или 1), если товар относится к подакцизным товарам

"is_excise":true

"is_excise":1

price

double

Наложенный платеж - сумма за всё количество (unit), ₽, 2 знака после запятой, разделитель - точка.

В зависимости от tax_unit_type должно точно соответствовать:

tax_item_price = price / unit

или

tax_item_price = price / weight

"price":1.55

weight

double

Вес за всё количество (unit) данной позиции, кг, 3 знака после запятой, разделитель - точка

"weight":1.567

length

double

Суммарные габариты всего количества (unit) данной позиции, см (высота+длина+ширина), 2 знака после запятой, разделитель - точка

"length":178

value

double

Ценность за всё количество (unit) данной позиции, ₽, 2 знака после запятой, разделитель - точка

"value":100.76

unit

integer

Количество единиц груза, шт.
(по умолчанию 1)

type_id

integer

id Типа груза

"type_id":1

tax_item_price

double

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

В зависимости от tax_unit_type должно точно соответствовать:

tax_item_price = price / unit

или

tax_item_price = price / weight

"tax_item_price":1.45

tax_rate

double

Ставка НДС: 0, 10, 20, не облагается

"tax_rate":0

"tax_rate":10

"tax_rate":20

"tax_rate":null

tax_unit_type

int

Тип единиц измерения товара. Если не указан - используется значение по-умолчанию

Значения:

Количество (поле unit) = 1;

Килограммы (поле weight) = 2;

legal_vat

boolean

Если false (или 0), то tax_rate игнорируется. Используется компаниями на ОСНО для товаров, которые не облагаются НДС

"legal_vat":false

"legal_vat":0

legal_vat

boolean

Если false (или 0), то tax_rate игнорируется. Используется компаниями на ОСНО для товаров, которые не облагаются НДС

"legal_vat":false

"legal_vat":0

legal_inn

string

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

“legal_inn”:”7714926745”

legal_name

string

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

string“legal_name”:”ООО Ромашка”

legal_phone

string

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

“legal_phone”:”+7 495 135-15-51”

Форматы записи данных типа Shipment:

{"name":null,"article":"test","freight":"test","marking_code":"123123","price":10,"weight":0,"length":0,"value":0,"unit":1} 

3.2. Получение списка LocationType

Запрос GET:https://lk.runcrm.ru/api/v1/location-type

curl -i -H "Authorization: Bearer {access_token}" https://lk.runcrm.ru/api/v1/location-type

Ответ сервера:

В ответ в случае успеха вернется массив всех доступных типов адреса. В случае неудачи сервер вернёт текст ошибки.

Response:

{
    "types": [{
        "id": 1,
        "name": "Квартира",
        "created_at": 1543848073,
        "updated_at": 1543848073
    }, {
        "id": 2,
        "name": "Офис",
        "created_at": 1536357895,
        "updated_at": 1536357895
    }]
}

3.3. Получение списка ShipmenType

Запрос GET:https://lk.runcrm.ru/api/v1/shipment-type

curl -i -H "Authorization: Bearer {access_token}" https://lk.runcrm.ru/api/v1/shipment-type

Ответ сервера:

В ответ в случае успеха вернется массив всех доступных типов груза. В случае неудачи сервер вернёт текст ошибки.

Response:

{
    "types": [{
        "id": 1,
        "name": "Корреспонденция до 0,3 кг",
        "created_at": 1608875386,
        "updated_at": 1621612977
    }]
}

3.4. Ответ сервера

Ответ сервера на запрос о создании заказа/заказов.

В ответ на запрос о создании груза в случае успеха вернется массив orders, каждый из элементов которого имеет 3 поля: id заказа в базе, status заказа и стоимость price. В случае неудачи сервер вернёт текст ошибки.

Response:

{
    "orders": [{
        "id": 11343,
        "code": "1907251343NEW",
        "price": 609,
        "pod": 0,
        "created_at": "2019-07-25",
        "estimate_at": "2019-07-25",
        "status": 20,
        "status_at": "2019-07-25 13:50:22",
        "locations": [{
            "id": 2565,
            "address": "Арбат, Москва, Россия",
            "external_id": null,
            "status": 20,
            "trackingLink": "https://runcrm.ru/track/2ce715aaee2e37"
        }, {…. }]
    }, {…. }, ...]
}

Пример:

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"comment":"Выполнить быстро!","debug": "test","contact":{"name":"Контакт заказчика","phone":"9995551122","note":"заметка","type":2},"locations":[{"address":"Новый Арбат 2, Москва","delivery_date":"2019-09-11","delivery_from":"18:00","delivery_to":"20:00","comment":"Test","external_id":"MY14124","contact":{"name":"офис 1","phone":"","note":null,"type":1},"assignments":[{"name":"test owners patience","price":1000,"tax_rate":0},{"name":"praise owners humility","type":2,"price":1000}]},{"address":"Красная площадь, Москва", "latitude":55.822470175511, "longitude":37.46910618045, "delivery_date":"2019-09-12","delivery_from":"18:00","delivery_to":"20:00","external_id":"555","contact":{"name":"Клиент 1","phone":"9995551122","note":"злой","type":2}}],"shipment":[{"weight":1,"length":10},{"name":"Кирпичи","article":"а111","freight":"test","marking_code":"123123","weight":1,"length":10,"value":100,"unit":2}]},{"comment":"Hi1","locations":[{"address":"Волоколамское шоссе, 2, Москва,","delivery_date":"2019-09-11","delivery_from":"18:00","delivery_to":"20:00","comment":"Lol1","external_id":null,"contact":{"name":"офис","phone":"","note":null,"type":2}},{"address":"Красная площадь,Москва","delivery_date":"2019-09-11","delivery_from":"18:00","delivery_to":"20:00","comment":null,"external_id":null,"contact":{"name":"офис","phone":"","note":null,"type":2}}],"shipment":[{"name":null,"article":null,"price":0,"weight":1,"length":10,"value":0,"unit":1},{"name":null,"article":null,"price":0,"weight":1,"length":10,"value":0,"unit":1}]}]' https://lk.runcrm.ru/api/v1/order/create

В данном запросе создаются 2 заказа.

1 заказ:

{"comment":"Выполнить быстро!","debug": "test","contact":{"name":"Контакт заказчика","phone":"9995551122","note":"заметка","type":2},"locations":[{"address":"Новый Арбат 2, Москва","delivery_date":"2019-09-11","delivery_from":"18:00","delivery_to":"20:00","comment":"Test","external_id":"MY14124","contact":{"name":"офис 1","phone":"","note":null,"type":1},"assignments":[{"name":"test owners patience","price":1000,"tax_rate":0},{"name":"praise owners humility","type":2,"price":1000}]},{"address":"Красная площадь, Москва", "latitude":55.822470175511, "longitude":37.46910618045, "delivery_date":"2019-09-12","delivery_from":"18:00","delivery_to":"20:00","external_id":"555","contact":{"name":"Клиент 1","phone":"9995551122","note":"злой","type":2}}],"shipment":[{"weight":1,"length":10},{"name":"Кирпичи","article":"а111","freight":"test","weight":1,"length":10,"value":100,"unit":2}]}

2 заказ:

{"comment":"Hi1","locations":[{"address":"Волоколамское шоссе, 2, Москва,","delivery_date":"2019-09-11","delivery_from":"18:00","delivery_to":"20:00","comment":"Lol1","external_id":null,"contact":{"name":"офис","phone":"","note":null,"type":2}},{"address":"Красная площадь,Москва","delivery_date":"2019-09-11","delivery_from":"18:00","delivery_to":"20:00","comment":null,"external_id":null,"contact":{"name":"офис","phone":"","note":null,"type":2}}],"shipment":[{"name":null,"article":null,"price":0,"weight":1,"length":10,"value":0,"unit":1},{"name":null,"article":null,"price":0,"weight":1,"length":10,"value":0,"unit":1}]}

Response:

{
    "orders": [{
        "id": 11355,
        "code": "1907251355NEW",
        "price": 619,
        "pod": 1000,
        "created_at": "2019-07-25",
        "estimate_at": "2019-09-12",
        "status": 20,
        "status_at": "2019-07-25 17:41:23",
        "locations": [{
            "id": 2585,
            "address": "Новый Арбат 2, Москва",
            "external_id": "MY14124",
            "status": 20,
            "income": 0,
            "delivery_date": "2019-09-11"
        }, {
            "id": 2586,
            "address": "Красная площадь,
            Москва ", "
            external_id ": "
            555 ", "
            status ": 20, "
            income ": 0, "
            delivery_date ":
            "2019-09-12"
        }]
    }, {
        "id": 11356,
        "code": "1907251356NEW",
        "price": 600,
        "pod": 0,
        "created_at": "2019-07-25",
        "estimate_at": "2019-09-11",
        "status": 20,
        "status_at": "2019-07-25 17:41:25",
        "locations": [{
            "id": 2587,
            "address": "Волоколамское шоссе, 2, Москва,",
            "external_id": null,
            "status": 20,
            "income": 0,
            "delivery_date": "2019-09-11"
        }, {
            "id": 2588,
            "address": "Красная
            площадь,
            Москва ", "
            external_id ": null, "
            status ": 20, "
            income ": 0,
            "delivery_date": "2019-09-11"
        }]
    }]
}

Response with error

#1 порядковый номер передаваемого заказа

[DEBUG: test] содержимое параметра debug, если передан

{
    "name": "Bad Request",
    "message": "Минимальное время на адресе забора в заказе    #1 [DEBUG: test] уже прошло. Выберите корректное время",
        "code": 0,
        "status":400 
}

4. Обновление заказа

Обновление возможно только, если на всех адресах заказа (location) установлен любой из следующих статусов:

location.status = 10 (адрес создан)

location.status = 20 (адрес принят в работу)

location.status = 25 (на адрес назначен курьер)

4.1. Обновление параметров Заказа

Запрос POST:https://lk.runcrm.ru/api/v1/order/update/{id}

id: идентификатор Заказа (Order) в который нужно внести изменения

Данные запроса

Параметр                                                                                                                

Тип                                                                                                                           

Описание

Формат                                                                                                                                                                                                                                                                                             

is_manual_processing

boolean

Если true (или 1), то выполнение возможно только через диспетчера - т.е. курьер не может самостоятельно отметить забор и доставку груза по заказу. Обновляет одноименные параметры в Location этого заказа.

"is_manual_processing":false

"is_manual_processing":0

Пример

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '{"is_manual_processing":0}'

"order": {
    "id": 1,
    "code": "1910300001NEW",
    "price": 379.94,
    "pod": 3497,
    "created_at": "2019-10-31",
    "estimate_at": "2019-12-19",
    "status": 20,
    "status_at": "2019-10-31 20:16:26",
    "is_manual_processing": false
}

4.2. Добавление грузов в Заказ

Запрос POST:https://lk.runcrm.ru/api/v1/order/add-shipments/{id}

id: идентификатор Заказа (Order) в который добавить грузы

При этом адресом забора автоматически будет первый адрес в заказе, адресом выдачи второй

Данные запроса

Параметр                   

Тип                                

Описание                                                                                                                

Формат                                                                                  

array of <Shipment>

массив грузов

[shipment1,shipment2,…,shipmentN]

Пример

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"name":"test555","weight":1,"length":10},{"name":"test123"}]' https://lk.runcrm.ru/api/v1/order/add-shipments/1

{
    "order": {
        "id": 11118,
        "code": "1901171118NEW",
        "price": 1010,
        "pod": 1000,
        "created_at": "2019-01-17",
        "estimate_at": "2019-01-17",
        "status": 20,
        "status_at": "2019-01-17 20:07:38"
    }
}

При ошибочном id заказа:curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"name":"test555","weight":1,"length":10},{"name":"test123"}]' https://lk.runcrm.ru/api/v1/order/add-shipments/666

{
    "name": "Not Found",
    "message": "Заказ #666 не найден",
    "code": 0,
    "status": 404,
    "type": "yii\\web\\NotFoundHttpException"
}

Response code: 404 (Not Found); Time: 143ms; Content length: 119 bytes

При ошибочных данных:

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{}]' https://lk.runcrm.ru/api/v1/order/add-shipments/1

{
    "name": "Bad Request",
    "message": "Не удалось загрузить товар",
    "code": 0,
    "status": 400,
    "type": "yii\\web\\BadRequestHttpException"
}

Response code: 400 (Bad Request); Time: 647ms; Content length: 126 bytes

4.3. Замена грузов в Заказе

Запрос POST: https://lk.runcrm.ru/api/v1/order/replace-shipments/{id}

id: идентификатор Заказа (Order) в котором заменить грузы.

При этом адресом забора автоматически будет первый адрес в заказе, адресом выдачи второй.

Ранее созданные грузы будут удалены

Данные запроса

Параметр               

Тип  

Описание                                                                                                          

Формат                                                                               

array of <Shipment>

массив грузов

[shipment1,shipment2,…,shipmentN]

Пример

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"name":"test555","weight":1,"length":10},{"name":"test123"}]' https://lk.runcrm.ru/api/v1/order/replace-shipments/1

{
  "order": {
    "id": 11118,
    "code": "1901171118NEW",
    "price": 1010,
    "pod": 1000,
    "created_at": "2019-01-17",
    "estimate_at": "2019-01-17",
    "status": 20,
    "status_at": "2019-01-17 20:07:38"
  }
}

При ошибочном id заказа:curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"name":"test555","weight":1,"length":10},{"name":"test123"}]' https://lk.runcrm.ru/api/v1/order/replace-shipments/666

{
  "name": "Not Found",
  "message": "Заказ #666 не найден",
  "code": 0,
  "status": 404,
  "type": "yii\\web\\NotFoundHttpException"
}

Response code: 404 (Not Found); Time: 143ms; Content length: 119 bytes

При ошибочных данных:

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{}]' https://lk.runcrm.ru/api/v1/order/replace-shipments/1

{
  "name": "Bad Request",
  "message": "Не удалось загрузить товар",
  "code": 0,
  "status": 400,
  "type": "yii\\web\\BadRequestHttpException"
}

Response code: 400 (Bad Request); Time: 647ms; Content length: 126 bytes

5. Обновления адреса

Обновление возможно только, если на всех адресе (location) установлен любой из следующих статусов:

location.status = 10 (адрес создан)

location.status = 20 (адрес принят в работу)

location.status = 25 (на адрес назначен курьер)

5.1. Обновление параметров Адреса

Запрос POST:https://lk.runcrm.ru/api/v1/location/update/{id}

id: идентификатор Адреса (Location) в который нужно внести изменения

Данные запроса

Параметр                           

Тип              

Описание

Формат                                            

is_manual_processing

boolean

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

"is_manual_processing":false

Пример

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '{"is_manual_processing":0}'

"location": {
    "id": 1,
    "address": "Сокольники, Москва, Россия",
    "external_id": "",
    "status": 25,
    "income": 0,
    "delivery_date": "2019-01-17",
    "is_manual_processing": false
}

5.2. Добавление поручений в Адрес

Запрос POST:https://lk.runcrm.ru/api/v1/location/add-assignments/{id}

id: идентификатор Адреса (Location) в который добавить поручения

Данные запроса

Параметр                                     

Тип                                    

Описание                                                                                                                       

Формат

array of <Assignment>

массив заказов

[assignment1,assignment2,assignment3, …]

Пример

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"name":"test owners patience","price":1000,"tax_rate":0},{"name":"praise owners humility","type":2,"price":1000}]' https://lk.runcrm.ru/api/v1/order/add-assignments/1

{
  "order": {
    "id": 11118,
    "code": "1901171118NEW",
    "price": 1010,
    "pod": 1000,
    "created_at": "2019-01-17",
    "estimate_at": "2019-01-17",
    "status": 20,
    "status_at": "2019-01-17 20:07:38"
  }
}

5.3. Замена поручений в Адресе

Запрос POST: https://lk.runcrm.ru/api/v1/location/replace-assignments/{id}

id: идентификатор Адреса (Location) в котором заменить поручения.

При этом ранее созданные поручения будут удалены.

Данные запроса

Параметр

Тип

Описание

Формат

array of <Assignment>

массив заказов

[assignment1,assignment2,assignment3, …]

Пример

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '[{"name":"test owners patience","price":1000,"tax_rate":0},{"name":"praise owners humility","type":2,"price":1000}]' https://lk.runcrm.ru/api/v1/order/replace-assignments/1

{
  "order": {
    "id": 11118,
    "code": "1901171118NEW",
    "price": 1010,
    "pod": 1000,
    "created_at": "2019-01-17",
    "estimate_at": "2019-01-17",
    "status": 20,
    "status_at": "2019-01-17 20:07:38"
  }
}

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

Запрос POST:https://lk.runcrm.ru/api/v1/order/cancel/{id}

Пример запроса:

curl -i -H "Authorization: Bearer {access_token}" -H "Content-Type: application/json" -d '' https://lk.runcrm.ru/api/v1/order/cancel/1152

Ответ сервера на запрос об отмене статуса заказа.

В ответ в случае успеха вернется order. В случае неудачи сервер вернёт текст ошибки.

Пример

"order": {
    "id": 1152,
    "code": "1902221152NEW",
    "price": 12.82,
    "created_at": "2018-10-05",
    "estimate_at": "2018-07-27",
    "status": 80,
    "locations": [
      {
        "id": 1881,
        "address": "Москва, Волоколамское ш., 2",
        "external_id": null,
        "status": 80
      },
      {
        "id": 1882,
        "address": "Москва, Волоколамское шоссе 2",
        "external_id": "37471449",
        "status": 80
      }
    ]
  }

7. Получение одного заказа

Запрос GET:https://lk.runcrm.ru/api/v1/order/{id}

curl -i -H "Authorization: Bearer {access_token}" https://lk.runcrm.ru/api/v1/order/21

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

В ответ в случае успеха вернется order, который имеет поля: id заказа в базе, status заказа и price, а также список адресов locations. Каждый адрес содержит строку адреса address, список начисленных на нем услуг services, списки грузов, которые забираются(pickings)/выдаются(deliveries), поручений (assignments). Таким образом каждый груз будет указан дважды - в соответствующем списке на адресе забора и на адресе выдачи. Груз содержит информацию о id, артикуле article, названии name и текущем статусе.

В случае неудачи сервер вернёт текст ошибки.

Пример

Response:

{
  "order": {
    "id": 1122,
    "code": "1809041122NEW",
    "price": 123.45,
    "created_at": "2018-09-04",
    "estimate_at": "2019-02-05",
    "status": 20,
    "locations": [
      {
        "id": 1813,
        "address": "Сокольники, Москва, Россия",
        "external_id": "",
        "status": 50,
        "trackingLink": "https://runcrm.ru/track/2ce715aaee2e37",
        "reason": "Отменено заказчиком",
        "pickings": [
          {
            "id": 2225,
            "article": "123",
            "name": "fds",
            "status": 50,
            "statusLabel": "Доставлено",
            "value": 1050,
            "weight": 11,
            "length": 150
          }
        ],
        "deliveries": [],
        "assignments": [
          {
            "id": 216,
            "name": "услуги",
            "status": 50,
            "statusLabel": "Завершено"
          },
        ],
        "services": [
          {
            "description": "наложенный платеж",
            "price": "1.22"
          },
        ]
      },
      {
        "id": 1814,
        "address": "Волоколамское ш. 2",
        "external_id": "test2",
        "status": 50,
        "trackingLink": "https://runcrm.ru/track/2ce715aaee2e37",
        "pickings": [],
        "deliveries": [
          {
            "id": 2225,
            "article": "123",
            "name": "fds",
            "status": 50,
            "statusLabel": "Доставлено",
            "value": 1050,
            "weight": 11,
            "length": 150
          }
        ],
        "assignments": [],
        "services": [
          {
            "description": "test",
            "price": "10.00"
          }
        ]
      }
    ]
  }
}

8. Поиск заказов

Запрос

GET:https://lk.runcrm.ru/api/v1/order/search{?param1=value1}{¶m2=value2}

curl -i -H "Authorization: Bearer {access_token}" https://lk.runcrm.ru/api/v1/order/search

Тип запроса GET, параметры передаются в строке адреса

Параметр

Тип                                           

Описание

Формат

ids

int[]

Массив id заказа

ids[]=123&ids[]=444

codes

string[]

Массив номеров заказа

codes[]=1901031387NEW&codes[]=1902281223NEW

external_ids

string[]

Массив клиентских номеров заказа

external_ids[]=qwerty&external_ids[]=qwerty2

statuses

int[]

Массив статусов заказа

statuses[]=15&statuses[]=30

created_from

date yyyy-mm-dd

Дата создания ОТ

created_from=2018-06-08

created_to

date yyyy-mm-dd

Дата создания ДО

created_to=2018-08-08

estimate_from

date yyyy-mm-dd

Ожидаемая дата завершения заказа ОТ

estimate_from=2018-07-30

estimate_to

date yyyy-mm-dd

Ожидаемая дата завершения заказа ДО

estimate_to=2018-07-30

expand=locations.couriers

Параметры для получения разных форматов ответа:

Параметр

Ответ сервера в случае успеха

без параметра                                                                                                                                  

Массив всех доступных клиенту заказов, подходящих под условия фильтра, каждый из элементов которого содержит данные, возвращаемые при запросе конкретного заказа. Каждый адрес содержит строку адреса address, список начисленных на нем услуг services, списки грузов, которые забираются(pickings)/выдаются(deliveries), поручений (assignments), а также список history - история изменения времени доставки. В случае неудачи сервер вернёт текст ошибки.

expand=locations.couriers

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

{

    "id": 1,

    "name": "Иванов Сергей",

    "passport": "Иванов Сергей Николаевич, 46700 256632, 2000-12-05, ОВД р-на Дорогомилово гор. Москвы",

    "phone": "9161112233"

}

Пример

Request (GET):

https://lk.runcrm.ru/api/v1/order/search?created_from=2018-06-08&estimate_to=2018-07-30&external_ids[]=37471449&external_ids[]=qwerty&codes[]=1901031387NEW&codes[]=1902281223NEW

Response:

[
  {
    "id": 1122,
    "code": "1901031387NEW",
    "price": 123.45,
    "created_at": "2018-09-04",
    "estimate_at": "2019-02-05",
    "status": 20,
    "locations": [
      {
        "id": 1813,
        "address": "Сокольники, Москва, Россия",
        "external_id": "",
        "status": 50,
        "trackingLink": "https://runcrm.ru/track/2ce715aaee2e37",
        "reason": "Отменено заказчиком",
        "couriers": [
          {
            "id": 1,
            "name": "Galley",
            "phone": "9259977177"
          }
        ],
        "pickings": [
          {
            "id": 2225,
            "article": "123",
            "name": "fds",
            "status": 50,
            "statusLabel": "Доставлено",
            "value": 0,
            "weight": 0,
            "length": 0
          }
        ],
        "deliveries": [],
        "assignments": [
          {
            "id": 216,
            "name": "услуги",
            "status": 50,
            "statusLabel": "Завершено"
          }
        ],
        "tracking": [
          {
            "id": 9,
            "description": "Создана заявка на забор",
            "created_at": 1605539506
          },
          {
            "id": 12,
            "description": "Назначен курьер",
            "created_at": 1605542225
          },
          {
            "id": 38,
            "description": "Курьер прибыл на адрес",
            "created_at": 1605623753
          },
          {
            "id": 39,
            "description": "Задача завершена со статусом «Выполнен» ",
            "created_at": 1605623763
          }
        ],
        "services": [
          {
            "description": "наложенный платеж",
            "price": "1.22"
          }
        ]
      },
      {
        "id": 1814,
        "address": "Волоколамское ш. 2",
        "external_id": "test2",
        "status": 20,
        "trackingLink": "https://runcrm.ru/track/2ce715aaee2e37",
        "couriers": [
          {
            "id": 1,
            "name": "Galley",
            "phone": "9259977177"
          }
        ],
        "pickings": [],
        "deliveries": [
          {
            "id": 2225,
            "article": "123",
            "name": "fds",
            "status": 50,
            "statusLabel": "Доставлено",
            "value": 0,
            "weight": 0,
            "length": 0
          }
        ],
        "assignments": [
          {
            "id": 217,
            "name": null,
            "status": 50,
            "statusLabel": "Завершено"
          }
        ],
        "tracking": [
          {
            "id": 10,
            "description": "Создана заявка на доставку",
            "created_at": 1605539506
          },
          {
            "id": 14,
            "description": "Назначен курьер",
            "created_at": 1605542226
          },
          {
            "id": 40,
            "description": "Курьер прибыл на адрес",
            "created_at": 1605623778
          }
        ],
        "services": [
          {
            "description": "test",
            "price": "10.00"
          }
        ]
      }
    ]
  }
]

9. Этикетки в PDF

Запрос

GET:https://lk.runcrm.ru/api/v1/order/pdf-label{?param1=value1}{¶m2=value2}

curl -i -H "Authorization: Bearer {access_token}" https://lk.runcrm.ru/api/v1/order/pdf-label

Тип запроса GET, параметры передаются в строке адреса

Параметр

Тип

Описание

Формат

ids

int[]

Массив id заказа

ids[]=123&ids[]=444

codes

string[]

Массив номеров заказа

codes[]=1901031387NEW&codes[]=1902281223NEW

external_ids

string[]

Массив клиентских номеров заказа

external_ids[]=qwerty&external_ids[]=qwerty2

Ограничения

Размер запроса ограничен 100 заказами. Для получения большего количества, необходимо использовать несколько запросов последовательно (не одновременно).

Пример

Request (GET):

https://lk.runcrm.ru/api/v1/order/search?external_ids[]=37471449&external_ids[]=qwerty&codes[]=1901031387NEW&codes[]=1902281223NEW

Response:

Content-Type: application/pdf

Response file saved.

> Этикетки-3.pdf

Response code: 200 (OK); Time: 3953ms (3 s 953 ms); Content length: 145143 bytes (145.14 kB)

10. Статусы

Статусы заказа

10 – Черновик (заказ создается)

15 – Новый (заказ создан)

20 – Подтвержден (заказ принят в работу)

50 – Завершён (посещение всех адресов завершено/отменено)

80 – Отменен (посещение всех адресов отменено) 

Статусы адреса

10 – Новый (адрес создан)

20 – Подтвержден (адрес принят в работу)

25 – Назначен на курьера (на адрес назначен курьер)

30 – Выполнено частично (часть груза не отгружена / не вручена)

50 – Выполнено (весь груз отгружен / вручен)

60 – Отказ (весь груз не отгружен / не вручен)

80 – Отменен (выезд на адрес отменен) 

Статусы груза

10 – Новый (груз находится у отправителя)

15 – Не отгружено (груз был исключен из отгрузки)

20 – Получено (груз был забран курьером)

25 – Отказ (получатель отказался от груза)

40 – К возврату (груз подготовлен к возврату отправителю)

50 – Доставлен (груз вручен получателю)

60 – Возвращен (груз возвращен отправителю) 

Статусы поручения

10 – Новое (поручение создано)

30 – Отказ (поручение выполнить не удалось)

50 – Выполнено (поручение выполнено)

11. Вебхуки

Запрос POST:https://lk.runcrm.ru/api/v1/settings/set-webhook

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

webhook

string

URL для получения вебхука

"login":"mylogin"

webhook_orders

boolean

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

"webhook_orders":true

webhook_addresses

boolean

Получать вебхук при изменении статуса адреса

"webhook_addresses":true

webhook_transfer

boolean

Получать вебхук при изменении времени доставки

"webhook_transfer":true

Пример:

curl -H "Content-Type: application/json" -d {"webhook":"http://your.url.com", "webhook_orders": true, "webhook_addresses": true, "webhook_transfer": true}' https://lk.runcrm.ru/api/v1/access/login

Возвращаемое значение:

{
    "webhook": "http://…",
    "webhook_orders": true,
    "webhook_addresses": true,
    "webhook_transfer": true
}

Данные Webhook

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

event

string

Событие

order_created, order_updated, location_updated

data

<Order> or <Location>

данные в зависимости от события

"data":order

"data":location

Данные типа Order

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

id

integer

Идентификатор заказа в системе

"id":123

code

string

Номер заказа

"code":"1809041122NEW"

price

double

Стоимость заказа

"price":518.62

pod

double

Наложенный платеж

"pod": 712

status

integer

Код статуса

"status":50

statusLabel

string

Статус

"statusLabel":"Завершен"

status_at

integer

Время изменения статуса, timestamp

"status_at":1617138100

estimate_at

integer

Ожидаемое время завершения заказа, timestamp

"estimate_at":1577651400

created_at

integer

Время создания заказа, timestamp

"created_at":1536090105

locations

array of <Location>

Массив из 2 адресов посещения - забор и доставка

"locations":[location_from, location_to]

shipment

array of

<Shipment>

Массив грузов

к заказу

"shipment":[shipment1, shipment2,..., shipmentN]

Данные типа Location

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

id

integer

Идентификатор адреса в системе

"id":123

address

string

Адрес

"address":"Москва, Волоколамское ш, 2"

address_details

string

Детали адреса: подъезд, домофон, этаж и прочее

"address_details":"1 подъезд, 3-й этаж, домофон 36К765"

address_type_id

int

Тип адреса, id записи типа LocationType

"address_type_id":1

address_place

string

Номер или название

"address_place":"14"или "address_place":"ТЦ Океан"

status

integer

Код статуса

"status":50

statusLabel

string

Статус

"statusLabel":"Завершен"

status_at

integer

Время изменения статуса, timestamp

"status_at":1617138100

delivery_date

integer

Дата посещения адреса”, timestamp

"delivery_date":1549486800

delivery_from

integer

Начало интервала прибытия на адрес - “с””, timestamp

"delivery_from":1549519200

delivery_to

integer

Конец интервала прибытия на адрес - “до””, timestamp

"delivery_to":1549569600

comment

string

Комментарий для курьера на адресе

"comment":"подписать документы и забрать один экземпляр”

external_id

string

Внутренний номер заказа у заказчика

"external_id":"test id"

trackingLink

string

Ссылка на трекинг

"trackingLink":"https:\/\/runcrm.ru\/track\/2cf38250b72933"

income

double

Сумма к получению на адресе

""income":518.62

is_pickup

boolean

Признак адреса забора грузаа

"is_pickup":true

is_delivery

boolean

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

"is_delivery":true

order

<Order>

Заказ (идентификаторы)

"order": { "id": 747827, "code": "220930747827" }

courier

string

Курьер (опционально, при назначении курьера)

"courier":{courier}

reason

string

Причина изменения интервала доставки (опционально, при изменении времени)

"reason":"Желание клиента"

shipment

array of

<Shipment>

Массив грузов

к адресу

"shipment":[shipment1, shipment2,..., shipmentN]

assignments

array of

<Assignment>

Массив поручений

"assignments":[assignment1, assignment2, ..., assignmentN]

Данные типа Courier

Параметр

Тип

Описание

Формат

id

integer

Идентификатор курьера в системе

"id":123

name

string

Имя

"name":"Иванов Иван"

phone

string

Телефон

"phone":"9251111111"

Данные типа Assignment

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

id

integer

Идентификатор поручения в системе

"id":123

name

string

Название

"name":"Курьерская доставка"

comment

string

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

"comment":"Оплачивается только при выкупе более 2500 руб"

status

integer

Код статуса

"status":50

statusLabel

string

Статус

"statusLabel":”Выполнено”

Данные типа Shipment

Параметр                                                                                        

Тип                                                                                                   

Описание

Формат                                                                                                                                                                                                                                      

id

integer

Идентификатор груза в системе

"id":123

name

string

Название

"name":"test name"

article

string

Артикул

"article":"test"

marking_code

string

Код маркировки товаров для https://честныйзнак.рф в формате: “01”GTIN”21”SERIAL

“marking_code”:”010461003706597021SqdiqzCEdOtPN”

weight

double

Вес, кг, 3 знака после запятой, разделитель - точка

"weight":1.567

length

double

Габариты, см, 2 знака после запятой, разделитель - точка

"length":120.50

value

double

Ценность, ₽, 2 знака после запятой, разделитель - точка

"value":45.97

unit

integer

Количество единиц груза, шт. (по умолчанию 1)

"unit":1

type_id

integer

id Типа груза

"type_id": 1

status

integer

Код статуса

"status":50

statusLabel

string

Статус

"statusLabel":”Доставлено”

warehouse_at

int

Время принятия на складе, timestamp

"warehouse_at":1536090105

11.1. Заказ

При создании или обновлении статуса заказа, на webhook url отправляется информация: тип события и данные заказа

в ответе возвращаются

  • event - тип события.

  • data объект с данными заказа

Пример

{
    "event": "order_updated",
    "data": {
        "status": 50,
        "id": 1122,
        "code": "1809041122NEW",
        "price": 518.62,
        "pod": 712,
        "status_at": 1617138100,
        "created_at": 1536090105,
        "estimate_at": 1577651400,
        "statusLabel": "Завершен",
        "locations": [{
            "status": 50,
            "id": 1813,
            "contact_id": 189896,
            "address": "Сокольники, Москва, Россия",
            "address_type_id": 1,
            "address_place": "55",
            "delivery_date": 1549486800,
            "delivery_from": 1549519200,
            "delivery_to": 1549569600,
            "external_id": "",
            "income": 58.62,
            "is_pickup": true,
            "is_delivery": false,
            "comment": "",
            "statusLabel": "Выполнен",
            "trackingLink": "https:\/\/runcrm.ru\/\/track\/107d3835b862",
            "assignments": [{
                "id": 260,
                "name": null,
                "comment": null,
                "status": 50,
                "statusLabel": "Завершено"
            }]
        }, {
            "status": 50,
            "id": 1814,
            "contact_id": 9593,
            "address": "проспект Мира, корпус
            9,
            Москва,
            Россия ", "
            address_type_id ": 1, "
            address_place ": null,
            "delivery_date": 1549486800,
            "delivery_from": 1549519200,
            "delivery_to": 1549569600,
            "external_id": "test2",
            "income": 593,
            "is_pickup": false,
            "is_delivery": true,
            "comment": "",
            "statusLabel": "Выполнен",
            "trackingLink": "https:\/\/runcrm.ru\/\/track\/107f8c419c62",
            "assignments": [{
                "id": 217,
                "name": null,
                "comment": null,
                "status": 50,
                "statusLabel": "Завершено"
            }, {
                "id": 219,
                "name": "advance",
                "comment": null,
                "status": 50,
                "statusLabel": "Завершено"
            }, ]
        }, ],
        "shipments": [{
            "status": 50,
            "id": 2225,
            "type_id": null,
            "article": "123",
            "name": "fds",
            "value": 1050,
            "weight": 11,
            "length": 150,
            "unit": 10,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "Доставлено"
        }, {
            "status": 50,
            "id": 2230,
            "type_id": null,
            "article": null,
            "name": "543",
            "value": 0,
            "weight": 0,
            "length": 0,
            "unit": 1,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "Доставлено"
        }, ]
    }
}

11.2. Изменение адреса

Вебхук о изменении статуса адреса или/и изменении даты/времени посещения адреса

  • event - тип события (всегда location_updated).

  • data объект с данными заказа

Дополнительно:

  • при присвоении и нахождении в статусе “Назначен на курьера”, добавляется поле courier

  • при внесении изменений в адресе добавляется поле reason с причиной изменений

  • при присвоении грузам статуса “Возвращено” также формируется вебхук "event": "shipment_updated" с указанием адреса доставки

Пример полного вебхука:

{
    "event": "location_updated",
    "data": {
        "status": 25,
        "id": 1265332,
        "order_id": 747875,
        "contact_id": 772624,
        "address": "Москва, улица Герасима
        Курина,
        4 к1,
        1,
        41 ", "
        address_type_id ": null, "
        address_place ": null,
        "delivery_date": 1665262800,
        "delivery_from": 1665298800,
        "delivery_to": 1665345600,
        "external_id": "6016664884 (дубль)",
        "income": 6872.31,
        "is_pickup": false,
        "is_delivery": true,
        "comment": "ПОЛУЧАТЕЛЬ: Марина Нецко.",
        "statusLabel": "Назначен на курьера",
        "trackingLink": "https:\/\/runcrm.ru\/\/track\/2cf420a3dfb963",
        "order": {
            "id": 747875,
            "code": "221006747875"
        },
        "shipments": [{
            "status": 10,
            "id": 3374376,
            "type_id": null,
            "article": "1000052211",
            "name": "Карабин д\/сумок Babyton коляску МС-002",
            "value": 98.01,
            "weight": 0.02,
            "length": 0,
            "unit": 1,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "У отправителя"
        }, {
            "status": 10,
            "id": 3374377,
            "type_id": null,
            "article": "106072619",
            "name": "Накидка на
            автосидение Витоша защит466\ / 1 ", "
            value ": 119, "
            weight ": 0.057, "
            length ": 0,
            "unit": 1,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "У
            отправителя " }, { "
            status ": 10, "
            id ": 3374378, "
            type_id ": null, "
            article ":
            "1000237649",
            "name": "Набор д\/кормления CB 3предмета Голубой",
            "value": 885,
            "weight": 0.165,
            "length": 0,
            "unit": 1,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "У отправителя"
        }],
        "assignments": [{
            "id": 185547,
            "name": "Курьерская доставка",
            "comment": null,
            "status": 10,
            "statusLabel": "Новое"
        }],
        "courier": {
            "id": 1,
            "name": "Андреев Виталий",
            "phone": "9259977177"
        }
    }
}

12.3. Изменение времени доставки

Вебхук при изменении времени доставки

  • event - тип события (всегда location_updated).

  • data объект с данными заказа

Дополнительно: в этом вебхуке добавляется поле reason с причиной переноса.

{
    "event": "location_updated",
    "data": {
        "status": 20,
        "id": 1265330,
        "order_id": 747874,
        "contact_id": 772624,
        "address": "Москва, улица Герасима
        Курина,
        4 к1,
        1,
        41 ", "
        address_type_id ": null, "
        address_place ": null,
        "delivery_date": 1665262800,
        "delivery_from": 1665298800,
        "delivery_to": 1665324000,
        "external_id": "6016664884 (дубль)",
        "income": 6872.31,
        "is_pickup": false,
        "is_delivery": true,
        "comment": "ПОЛУЧАТЕЛЬ: Марина Нецко.",
        "statusLabel": "Подтвержден",
        "trackingLink": "https:\/\/runcrm.ru\/\/track\/2cf41bfbc7f162",
        "order": {
            "id": 747874,
            "code": "221006747874"
        },
        "reason": "Просьба получателя",
        "shipments": [{
            "status": 10,
            "id": 3374368,
            "type_id": null,
            "article": "1000052211",
            "name": "Карабин
            д\ / сумок Babyton коляску МС - 002 ", "
            value ": 98.01, "
            weight ": 0.02, "
            length ": 0,
            "unit": 1,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "У
            отправителя " }, { "
            status ": 10, "
            id ": 3374369, "
            type_id ": null, "
            article ":
            "106072619",
            "name": "Накидка на автосидение Витоша защит466\/1",
            "value": 119,
            "weight": 0.057,
            "length": 0,
            "unit": 1,
            "warehouse_at": null,
            "marking_code": null,
            "statusLabel": "У отправителя"
        }, ],
        "assignments": [{
            "id": 185546,
            "name": "Курьерская доставка",
            "comment": null,
            "status": 10,
            "statusLabel": "Новое"
        }]
    }
}

Помогла ли вам статья?