← Все статьи инструкции

API справочников для 1С

Контракт POST ingest: водители и ТС в ДокТранс по API-ключу — для программиста 1С или интегратора.

Эта страница — для 1С-программиста / интегратора. Конечному пользователю обычно достаточно аддона и справочников или CSV в кабинете.

ДокТранс не ходит в 1С и не ходит в API Контура из расширения. Ваша обработка (или регламентное задание) пушит справочники к нам; Chrome-аддон читает уже наши данные и заполняет веб-Логистику.

Fresh vs коробка

Контур 1СКак обычно грузить справочники
1С FreshИз коробки HTTP-сервис клиенту недоступен. Нужен партнёр Fresh/Рарус или регулярный CSV/Excel в Справочники.
Коробка / своя доработкаРегламентное задание → POST ниже с API-ключом из кабинета.

Не обещайте клиенту на Fresh «подключили API — само подтянулось» без их интегратора.

Доступ

  1. В кабинете: Настройки → Создать API-ключ (показывается один раз).
  2. Базовый URL: https://app.doctrans.ru
  3. Заголовок (один из двух):
    • X-Api-Key: <ключ>
    • Authorization: Bearer <ключ>
  4. Content-Type: application/json

Проверка ключа:

GET /api/v1/ping

Ответ 200: {"ok":true,"email":"...","drivers":N,"vehicles":N,"trips":N}. Без ключа или с неверным — 401.

Водитель

POST /api/v1/directories/drivers
ПолеОбяз.Комментарий
fioдаФИО как в ВУ / как ищут в Логистике
external_idнетID из 1С; при повторе — обновление той же записи
phoneнет
license_seriesнетсерия ВУ
license_numberнетномер ВУ
license_dateнетдата выдачи, строка как у вас принято
labelнеткороткая метка в кабинете

Пример:

{
  "external_id": "1c-driver-42",
  "fio": "Иванов Иван Иванович",
  "phone": "79001112233",
  "license_series": "16 01",
  "license_number": "123456",
  "license_date": "01.01.2020",
  "label": "Основной"
}

Ответ 200: {"ok":true,"created":true|false,"driver":{...}}.
Без fio — 400. Без external_id каждый POST создаёт новую запись (удобно для разовых тестов, плохо для синка).

ТС

POST /api/v1/directories/vehicles
ПолеОбяз.Комментарий
numberдагосномер
external_idнетID из 1С; upsert
modelнетмарка/модель
typeнеттип ТС (как в списках Логистики, напр. «бортовой»)
max_weightнетгрузоподъёмность
capacityнетвместимость
ownershipнеттип владения
trailer_numberнетприцеп; в Контуре часто нет в справочнике — аддон не блокирует рейс
labelнет

Пример:

{
  "external_id": "1c-veh-7",
  "number": "А123АА116",
  "model": "ГАЗель Next",
  "type": "бортовой",
  "max_weight": "3500",
  "capacity": "16",
  "ownership": "собственность"
}

Ответ 200: {"ok":true,"created":true|false,"vehicle":{...}}. Без number — 400.

Upsert

  • Один и тот же external_id у пользователя → одна запись: поля из тела перезаписываются (пустое необязательное поле в JSON не затирает уже сохранённое значение, кроме обязательных fio / number).
  • Сменился госномер в 1С — пришлите тот же external_id с новым number.
  • Удаление через API пока не делаем: отзовите запись вручную в кабинете или перестаньте слать её в аддонный профиль.

Чтение (для отладки)

Те же пути GET с тем же ключом (их использует Chrome-аддон):

  • GET /api/v1/directories/drivers
  • GET /api/v1/directories/vehicles

Чеклист сдачи интегратору

  1. Ключ выдан, GET /ping = OK.
  2. Две тестовые записи водитель + ТС с external_id.
  3. Повторный POST меняет ФИО/телефон / модель — created: false, id тот же.
  4. В кабинете записи видны в Справочниках.
  5. В аддоне «Обновить справочники» → водитель/ТС появляются в списках → fill на черновике титула 1.

Дальше по процессу: аддон Логистики. Подпись и отправка документа остаются в Контуре.

Открыть кабинет

Подключите Диадок и отправьте первые документы — 10 штук бесплатно.

Попробовать бесплатно