Тема
Заказы
Эндпоинты для работы с заказами: создание, получение статуса и отслеживание.
Создание заказа
Создание нового заказа на доставку или забор.
Запрос
http
POST /orders/uploadЗаголовки:
http
X-API-Key: ваш_api_ключ
Content-Type: application/jsonТело запроса:
json
{
"locations": [
{
"depot_number": "14",
"number_order": "ORDER-123",
"type": "delivery",
"title": "Заказ #123",
"date": "16.09.2025",
"time_window": "09:00-15:00",
"pickup_windows": "08:00-11:00",
"name_client": "Иванов Иван Иванович",
"phone": "79998882000",
"address_info": {
"address": "г. Новосибирск ул. Примерная 12 корп 1",
"apartment": 5,
"floor": 2,
"entrance": 1,
"rise": true,
"point": {
"lat": 55.7558,
"lon": 37.6173
}
},
"shipment_size": {
"weight_kg": 10.5,
"volume": {
"width_m": 1.2,
"height_m": 0.8,
"depth_m": 1.5
}
},
"package": 1,
"delivery_location_category": 0
}
]
}Обязательные поля
Важно
Следующие поля обязательны для всех заказов:
depot_number— номер складаnumber_order— уникальный номер заказа (в рамках склада)type— тип доставки:deliveryилиpickuptitle— название заказаdate— дата доставки в форматеd.m.Ytime_window— интервал доставки из/intervalsname_client— ФИО клиентаpackage— количество упаковокaddress_info.address— адрес доставкиshipment_size.weight_kg— вес в килограммахdelivery_location_category— категория пункта доставки
Типы доставки
json
{
"type": "delivery",
"depot_number": "14",
"delivery_point": { "lat": 55.7558, "lon": 37.6173 }
}json
{
"type": "pickup",
"depot_number": "14",
"pickup_point": { "lat": 55.7558, "lon": 37.6173 }
}json
{
"type": "pickup_delivery",
"depot_number": "14",
"pickup_point": { "lat": 55.7558, "lon": 37.6173 },
"delivery_point": { "lat": 55.7558, "lon": 37.6173 }
}Примеры использования
bash
curl -X POST "https://api.razvezu.pro/integration/v2/orders/upload" \
-H "X-API-Key: ваш_api_ключ" \
-H "Content-Type: application/json" \
-d '{
"locations": [{
"depot_number": "14",
"number_order": "ORDER-123",
"type": "delivery",
"title": "Заказ #123",
"date": "16.09.2025",
"time_window": "09:00-15:00",
"name_client": "Иванов Иван Иванович",
"phone": "79998882000",
"address_info": {
"address": "г. Новосибирск ул. Примерная 12"
},
"shipment_size": {
"weight_kg": 10.5
},
"package": 1,
"delivery_location_category": 0
}]
}'javascript
const orderData = {
locations: [{
depot_number: "14",
number_order: "ORDER-123",
type: "delivery",
title: "Заказ #123",
date: "16.09.2025",
time_window: "09:00-15:00",
name_client: "Иванов Иван Иванович",
phone: "79998882000",
address_info: {
address: "г. Новосибирск ул. Примерная 12"
},
shipment_size: {
weight_kg: 10.5
},
package: 1,
delivery_location_category: 0
}]
};
const response = await fetch(
'https://api.razvezu.pro/integration/v2/orders/upload',
{
method: 'POST',
headers: {
'X-API-Key': 'ваш_api_ключ',
'Content-Type': 'application/json'
},
body: JSON.stringify(orderData)
}
);
const data = await response.json();python
import requests
order_data = {
"locations": [{
"depot_number": "14",
"number_order": "ORDER-123",
"type": "delivery",
"title": "Заказ #123",
"date": "16.09.2025",
"time_window": "09:00-15:00",
"name_client": "Иванов Иван Иванович",
"phone": "79998882000",
"address_info": {
"address": "г. Новосибирск ул. Примерная 12"
},
"shipment_size": {
"weight_kg": 10.5
},
"package": 1,
"delivery_location_category": 0
}]
}
headers = {
'X-API-Key': 'ваш_api_ключ',
'Content-Type': 'application/json'
}
response = requests.post(
'https://api.razvezu.pro/integration/v2/orders/upload',
json=order_data,
headers=headers
)
data = response.json()
print(data)Дополнительные поля
Информация о товарах
json
{
"order_info": [
{
"name": "Бумага",
"amount": 4,
"price_for_one_piece": 145.12,
"shipment_size": {
"weight_kg": 2.5,
"volume": {
"width_m": 0.3,
"height_m": 0.2,
"depth_m": 0.4
}
}
}
]
}Дополнительная информация
json
{
"data": {
"comments": "Позвонить у ворот",
"intercom_code": 123456,
"handover_code": "[CDK]32424"
}
}Доверенные лица
json
{
"trusted_people": [
{
"name": "Иван Иванов",
"phone": "79876543210",
"comment": "Отдать только Ивану!"
}
]
}Получение статуса заказа
Получить актуальную информацию о статусе одного или нескольких заказов.
Запрос
http
POST /orders/statusЗаголовки:
http
X-API-Key: ваш_api_ключ
Content-Type: application/jsonТело запроса:
json
{
"orders_number": ["ORDER-123", "ORDER-456"]
}Ответ
json
{
"ok": true,
"result": [
{
"number": "ORDER-123",
"status": "in_progress",
"date": "2025-09-16",
"route_id": "J8nJ",
"queue": 3,
"delivery_time": null,
"reason_cancellation": null,
"message": null,
"courier_info": {
"phone": "79991234567",
"full_name": "Иванов Иван Иванович"
}
}
]
}Статусы заказа
| Статус | Описание |
|---|---|
new | Новый заказ, ожидает обработки |
in_progress | Заказ в работе, назначен курьер |
finished | Заказ успешно завершён |
cancelled | Заказ отменён |
Примеры использования
bash
curl -X POST "https://api.razvezu.pro/integration/v2/orders/status" \
-H "X-API-Key: ваш_api_ключ" \
-H "Content-Type: application/json" \
-d '{
"orders_number": ["ORDER-123"]
}'javascript
const response = await fetch(
'https://api.razvezu.pro/integration/v2/orders/status',
{
method: 'POST',
headers: {
'X-API-Key': 'ваш_api_ключ',
'Content-Type': 'application/json'
},
body: JSON.stringify({
orders_number: ['ORDER-123']
})
}
);
const data = await response.json();
console.log(data.result);python
import requests
status_data = {
"orders_number": ["ORDER-123"]
}
headers = {
'X-API-Key': 'ваш_api_ключ',
'Content-Type': 'application/json'
}
response = requests.post(
'https://api.razvezu.pro/integration/v2/orders/status',
json=status_data,
headers=headers
)
data = response.json()
print(data['result'])Ошибки
400 Bad Request
Заказ не найден:
json
{
"ok": false,
"errors": {
"message": "Заказ: 'number', не найден"
}
}422 Validation Error
Ошибка валидации данных:
json
{
"ok": false,
"errors": {
"orders_number": [
"Поле 'orders_number' должно быть массивом"
]
}
}Важные замечания
Внимание
number_orderдолжен быть уникальным в рамках одного склада- Адрес указывайте в формате: город, населённый пункт, улица, дом (без квартиры)
- Рекомендуется указывать координаты для точного определения адреса
- Используйте только интервалы, полученные из
/intervals - Телефон в формате
7[0-9]{10}(например,79998882000)
Совет
Для получения доступных интервалов доставки используйте эндпоинт /intervals перед созданием заказа.