Документация
Всё для работы с CourierFlow — от первой доставки до глубоких интеграций.
На этой странице
Быстрый старт
Запустите управление доставками за 5 минут:
Зарегистрируйтесь
Настройте зоны доставки
Добавьте курьеров
Создайте первую доставку
Отслеживайте на карте
Создание первой доставки
Каждая доставка содержит:
- Адрес получателя — с автокомплитом (DaData / Photon)
- Контактные данные — имя, телефон получателя
- Адрес забора (опционально) — если курьер забирает со склада
- Временное окно — дата и интервал доставки
- Вес, описание, теги — для фильтрации и аналитики
При создании доставка получает статус created и уникальный трекинг-токен для клиента.
curl -X POST https://courierflow.ru/api/v1/deliveries \
-H "Authorization: Bearer cf_live_XXXXXXXX..." \
-H "Content-Type: application/json" \
-d '{
"deliveryAddress": "ул. Ленина, 42, кв. 7",
"deliveryContact": "Иван Петров",
"deliveryPhone": "+79001234567",
"scheduledDate": "2026-02-10",
"weight": 2.5,
"tags": ["fragile", "food"]
}'Подключение курьеров
Профиль курьера включает:
- ФИО, телефон, email
- Тип транспорта — пешком, велосипед, мотоцикл, автомобиль, грузовой
- Марка и номер ТС — с быстрым выбором популярных марок
- Паспортные данные — серия/номер, дата выдачи, кем выдан
- Статус — онлайн, оффлайн, на маршруте, на перерыве
Курьерам доступно мобильное приложение по адресу /courier/* с маршрутом, списком доставок, подтверждением доставки (фото, подпись).
Статусы доставок (State Machine)
Каждая доставка проходит через конечный автомат статусов:
Допустимые переходы контролируются сервером — нельзя перевести из delivered обратно.
created → planned, assigned, canceled
planned → assigned, canceled
assigned → en_route, canceled
en_route → arrived, failed
arrived → delivered, failed
failed → created, assigned (повторная попытка)
canceled → created (переоткрытие)Импорт из CSV
Массовое создание доставок через CSV-файл:
Подготовьте файл
address, contact, phone, date, time_from, time_to, weight, description.Загрузите в систему
Проверьте и подтвердите
address,contact,phone,date,weight,description
"ул. Ленина, 42",Иван Петров,+79001234567,2026-02-10,2.5,Хрупкий груз
"пр. Мира, 15/2",Анна Сидорова,+79007654321,2026-02-10,0.3,ДокументыКарта и зоны доставки
CourierFlow использует OpenStreetMap + Leaflet для отображения карты. Не требует API-ключей Google Maps.
Живая карта
- Отображение всех курьеров в реальном времени
- Маркеры доставок с цветовой индикацией статуса
- Кластеризация при большом количестве точек
Зоны доставки
- Рисование полигонов на карте для зон
- Привязка тарифов и курьеров к зонам
- Автоматическое определение зоны по адресу
Оптимизация маршрутов
Модуль оптимизации использует OSRM (self-hosted) для построения оптимальных маршрутов:
- VRP-solver — распределяет доставки между курьерами с учётом загрузки и зон
- Временные окна — учитывает requested time windows
- Drag-and-drop — ручная корректировка порядка
- Пересчёт в реальном времени — при добавлении новых заказов
Доступен на тарифе Pro и выше.
Роли и права доступа
В системе 5 ролей с разным уровнем доступа:
| Роль | Доставки | Курьеры | Настройки | Биллинг |
|---|---|---|---|---|
| owner | ✅ всё | ✅ всё | ✅ всё | ✅ |
| admin | ✅ всё | ✅ всё | ✅ всё | ❌ |
| dispatcher | ✅ CRUD | ✅ назначение | ❌ | ❌ |
| courier | 📦 свои | 📍 своя позиция | ❌ | ❌ |
| viewer | 👁 чтение | 👁 чтение | ❌ | ❌ |
Первый зарегистрированный пользователь автоматически получает роль owner.
Генерация API-ключей
API-ключи нужны для интеграции через REST API v1.
Откройте настройки
Скопируйте ключ
cf_live_XXXXXXXX... показывается только один раз. Сохраните его в безопасном месте.Используйте в заголовке
curl -H "Authorization: Bearer cf_live_UIBujy5g..." \
https://courierflow.ru/api/v1/deliveriesБезопасность ключей
- Хранятся как SHA-256 хеш — даже при утечке БД ключ не восстановить
- Управлять ключами могут только
ownerиadmin - Каждый ключ имеет настраиваемый rate limit (по умолчанию 60 req/min)
- Можно отозвать ключ мгновенно без удаления
REST API v1 — Обзор
Полный REST API для управления доставками и курьерами программно.
GET/api/v1/deliveriesPOST/api/v1/deliveriesGET/api/v1/deliveries/:idPATCH/api/v1/deliveries/:idGET/api/v1/couriersPOST/api/v1/couriersGET/api/v1/couriers/:idPATCH/api/v1/couriers/:idПодробная документация с примерами request/response: API Reference →
Настройка Webhook-ов
Webhook-и позволяют получать уведомления о событиях в реальном времени.
Создайте endpoint
Выберите события
delivery.created, delivery.completed, delivery.failed, courier.location, delivery.* (все).Проверьте подпись
const crypto = require('crypto');
function verifyWebhook(body, signature, secret) {
const expected = crypto
.createHmac('sha256', secret)
.update(JSON.stringify(body))
.digest('hex');
return signature === expected;
}
// В Express:
app.post('/webhook', (req, res) => {
const sig = req.headers['x-webhook-signature'];
if (!verifyWebhook(req.body.payload, sig, SECRET)) {
return res.status(401).send('Invalid signature');
}
console.log('Event:', req.body.event);
res.sendStatus(200);
});Retry-политика
- 3 попытки с экспоненциальной задержкой: 1с → 5с → 15с
- Таймаут ответа — 10 секунд
- Логи всех доставок доступны в панели Webhooks
Аналитика
Раздел Аналитика содержит:
- Доставки по месяцам — визуальный bar chart с трендом
- SLA (% вовремя) — метрика качества доставок
- Среднее время доставки — с разбивкой по курьерам
- Топ курьеров — рейтинг по количеству и качеству
- Причины отказов — для анализа проблем
Зарплата курьеров
Модуль автоматического расчёта выплат (доступен на тарифе Pro+):
- Ставка за доставку — фиксированная + бонус за скорость
- Почасовая оплата — по данным смен
- Бонусы/штрафы — ручные корректировки
- Период расчёта — неделя, 2 недели, месяц
- Экспорт ведомости — PDF и CSV для бухгалтерии
Настройте правила в Зарплата → «Правила расчёта».
Уведомления
Типы уведомлений в системе:
- Email — сводки, алерты о проблемах, приглашения
- SMS — трекинг-ссылки клиентам (через SMS.ru или SMSAero)
- Push (браузер) — мгновенные уведомления диспетчерам
- Webhook — для автоматизации через внешние системы
Настройка уведомлений доступна в Настройки → «Уведомления».
Двухфакторная аутентификация (2FA)
CourierFlow поддерживает 2FA через приложения-аутентификаторы (Google Authenticator, Authy):
Включите 2FA
Сканируйте QR-код
Подтвердите
Дополнительная безопасность
- HSTS — принудительный HTTPS
- HMAC-SHA256 — подпись webhook-ов
- SHA-256 — хеширование API-ключей
- Rate limiting — защита от DDoS (200 req/min per IP)
- RBAC — ролевая модель доступа
SDK и интеграции
Для быстрой интеграции используйте готовые инструменты:
JavaScript / TypeScript
import { CourierFlow } from 'courierflow';
const cf = new CourierFlow({ apiKey: 'cf_live_...' });
// Создать доставку
const delivery = await cf.deliveries.create({
deliveryAddress: 'ул. Ленина, 42',
deliveryContact: 'Иван Петров',
});
// Получить список
const list = await cf.deliveries.list({ page: 1, limit: 20 });Python
from courierflow import CourierFlow
cf = CourierFlow(api_key="cf_live_...")
# Создать доставку
delivery = cf.deliveries.create(
delivery_address="ул. Ленина, 42",
delivery_contact="Иван Петров",
)
# Получить список
deliveries = cf.deliveries.list(page=1, limit=20)Интеграция с 1С / Bitrix24
Готовые модули обмена данными для 1С:Управление торговлей и Bitrix24 CRM доступны по запросу. Напишите нам.