← В кабинет: выдать ключ

Подключение программ: 1С, ERP, TMS

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

Как подключить за три шага

  1. В кабинете: Компания → Программы компании → Ключи доступа. Отметьте права и нажмите «Выдать ключ». Ключ показывается один раз — сразу вставьте его в настройки программы.
  2. Программа добавляет ключ в каждый запрос: заголовок Authorization: Bearer gzk_…. Адрес — https://www.gigzakaz.ru/api/v1/….
  3. Чтобы программа узнавала о событиях без опроса, там же добавьте адрес уведомлений (https). Площадка выдаст секрет подписи — им программа проверяет, что уведомление от GIGZAKAZ.

Ключ действует от имени сотрудника, который его выдал, и с его правами. Уволился сотрудник или ключ мог попасть к посторонним — отзовите ключ в кабинете, он перестанет работать сразу.

Права ключа

ПравоЧто даёт
orders:readСвои заказы и архив, лента рынка, карточка груза (все публикации одного груза), отклики на ваши заказы, ваши отклики
orders:writeСоздать, изменить, снять заказ; откликнуться на чужой; выбрать исполнителя (принять отклик); вывести заказ из общей карточки груза
deals:readСделки, состав исполнения, ход исполнения, закрывающие документы, документы сделки
deals:writeСтатус сделки, отправка и согласование состава, принятие документов, контрольные точки, отчёт, закрытие и отметки об оплате
messagesЧитать и писать сообщения в сделках
company:readПрофиль компании, техника, персонал и их документы

Через ключ закрыты: реквизиты для оплаты, сотрудники и их права, управление ключами и уведомлениями, вход через банк, административные функции.

Основные запросы

ЗапросЧто делаетПраво
GET /api/v1/meПроверка ключа: чья учётная запись
GET /api/v1/orders?grouped=1Лента рынка, один груз — одна карточкаorders:read
GET /api/v1/orders/{id}/groupВсе публикации одного груза: кто разместил, источник, ставкиorders:read
POST /api/v1/ordersРазместить заказorders:write
GET /api/v1/orders/{id}/offersОтклики на ваш заказorders:read
POST /api/v1/orders/{id}/offersОткликнуться на заказorders:write
POST /api/v1/orders/{id}/offers/{offerId}/acceptВыбрать исполнителя — создаётся сделкаorders:write
GET /api/v1/dealsВаши сделкиdeals:read
GET /api/v1/deals/{id}/documentsДокументы сделкиdeals:read
GET /api/v1/deals/{id}/trackingГде техника по сделке: машина и последняя отметка мониторинга (пока сделка в работе)deals:read
POST /api/v1/deals/{id}/trackingИсполнитель привязывает машину из своего мониторинга: {"provider":"omnicomm","unitId":"…"}deals:write
GET/POST /api/v1/deals/{id}/messagesПереписка по сделкеmessages
GET /api/v1/notificationsУведомления (если не используете адрес уведомлений)

Разместить заказ

POST https://www.gigzakaz.ru/api/v1/orders
Authorization: Bearer gzk_ВАШ_КЛЮЧ
Content-Type: application/json

{
  "dir": "freight",               // направление: freight, passenger, rental, resources,
                                  // containers, construction, sea, air, multi
  "publisherRole": "owner",       // кто вы в заказе: owner — грузовладелец,
                                  // forwarder — экспедитор (нужен номер ГосЛог), broker — посредник
  "from": "Уфа", "to": "Сургут",
  "name": "Труба 720 мм",
  "mass": "40", "unit": "т",
  "date": "2026-10-01",
  "rate": "90000", "rateUnit": "руб./рейс", "vat": "с НДС 22%"
}

Пример для 1С (встроенный язык)

Соединение = Новый HTTPСоединение("www.gigzakaz.ru", 443, , , , 30, Новый ЗащищенноеСоединениеOpenSSL);
Запрос = Новый HTTPЗапрос("/api/v1/orders?grouped=1");
Запрос.Заголовки.Вставить("Authorization", "Bearer " + КлючДоступа); // ключ храните в защищённых настройках
Ответ = Соединение.Получить(Запрос);
Если Ответ.КодСостояния = 200 Тогда
    Чтение = Новый ЧтениеJSON;
    Чтение.УстановитьСтроку(Ответ.ПолучитьТелоКакСтроку("UTF-8"));
    Заказы = ПрочитатьJSON(Чтение);
КонецЕсли;

Уведомления о событиях

На ваш адрес приходит POST с телом JSON:

{
  "id": "ntf_1052",               // уникален: повторная доставка приходит с тем же id
  "event": "offer",               // offer, deal, document, message, market, company
  "createdAt": "2026-09-23T14:05:11.000Z",
  "text": "Новый отклик на заказ №22",
  "entity": { "type": "order", "id": 22 },
  "url": "https://www.gigzakaz.ru/cabinet.html#/orders"
}

Заголовки: X-GZ-Event, X-GZ-Timestamp (секунды), X-GZ-Signature: sha256=…. Подпись — HMAC-SHA256 от строки Timestamp + "." + тело секретом, который площадка показала при добавлении адреса. Отвечайте кодом 200–299; при ошибке площадка повторит доставку до 8 раз (через 1, 5, 15, 60 минут и дальше до суток). Подробности события забирайте запросом по entity.

Проверяйте подпись и отбрасывайте уведомления старше 5 минут по X-GZ-Timestamp — так чужой не сможет подсунуть программе поддельное событие.

Проверка подписи — Node.js

const crypto = require("crypto");
function valid(req, rawBody, secret) {
  const ts = req.headers["x-gz-timestamp"];
  if (Math.abs(Date.now() / 1000 - Number(ts)) > 300) return false;
  const expected = "sha256=" + crypto.createHmac("sha256", secret).update(ts + "." + rawBody).digest("hex");
  return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(String(req.headers["x-gz-signature"] || "")));
}

Проверка подписи — 1С (8.3.14+)

Данные = ПолучитьДвоичныеДанныеИзСтроки(Метка + "." + ТелоСтрокой, КодировкаТекста.UTF8);
Подпись = "sha256=" + НРег(ПолучитьHexСтрокуИзДвоичныхДанных(
    ХешированиеHMAC_SHA256(ПолучитьДвоичныеДанныеИзСтроки(Секрет, КодировкаТекста.UTF8), Данные)));
// ХешированиеHMAC_SHA256 — функция вашей конфигурации (в БСП: ОбщегоНазначения / Криптография).
Верно = (Подпись = ЗаголовокПодписи);

Ответы и ограничения

КодЗначение
401 API_KEY_REQUIRED / API_KEY_INVALIDНет ключа, ключ неверный или отозван
403 API_SCOPEУ ключа нет нужного права — выдайте новый ключ с этим правом
403 API_KEY_IPЗапрос не с адреса офиса, указанного для ключа
404 API_ROUTE_CLOSEDЭтот раздел через ключ недоступен
429Больше 120 запросов в минуту на ключ — сделайте паузу (см. заголовок Retry-After)

Остальные ответы и ошибки — те же, что в кабинете: например, заказ без направления или с неподходящей единицей ставки получит 400 с понятным текстом.

Электронный документооборот

Юридически значимые документы (УПД, акты, электронные перевозочные документы) подписываются вашей электронной подписью у вашего оператора ЭДО — Контур (Диадок, Контур.Логистика), Saby (СБИС), Такском и др. Площадка готовит документы по сделке и передаёт их оператору; подключение оператора — в кабинете: Компания → Подключения сервисов. Для перевозок по Казахстану — электронные ТТН в ЕСУТД.