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

Інтеграція біржі SAMO-TRANS у вашу TMS або CRM

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

Аутентифікація

Ключі samo_live_, області доступу, обмеження за IP та поведінка при зміні тарифу.

Кожен запит до API авторизується ключем компанії у заголовку Authorization:

Authorization: Bearer samo_live_XXXXXXXXXXXXXXXXXXXXXXXX

Ключ представляє одну компанію. Усе, що ви створюєте цим ключем, належить їй, і бачити ви можете лише її заявки — навіть якщо користувач, який випустив ключ, має доступ і до інших компаній.

Випуск і відкликання

Ключі створює власник компанії в кабінеті: Налаштування → API.

  • Повний ключ показується один раз — одразу після створення. Далі в списку видно лише префікс, за яким ключ можна впізнати.
  • Ключів може бути кілька: зручно мати окремий для кожної інтеграції, щоб відкликати їх незалежно.
  • Відкликаний ключ перестає працювати негайно: подальші запити отримають 401 unauthorized.

Зберігайте ключ так само, як пароль до бази: у змінних оточення або сховищі секретів, ніколи — у репозиторії, у браузері чи в мобільному застосунку. Ключ дає право створювати й видаляти заявки компанії.

Області доступу (scopes)

При створенні ключа обираються області. Це принцип найменших привілеїв: інтеграції, яка лише читає біржу, не потрібне право видаляти ваші заявки.

ОбластьЩо відкриває
reference:readДовідники, пошук населених пунктів, картки компаній та відгуки
proposals:readПошук по біржі, картка заявки, список власних заявок
proposals:writeСтворення, редагування, підняття, архівація, відновлення й видалення власних заявок
employees:readПерелік працівників компанії та кількість заявок на кожному
employees:writeУвімкнення/вимкнення працівника та зміна його ролі

Області employees:* не видаються за замовчуванням — їх треба явно відмітити при створенні ключа. Ключі, випущені раніше, цих прав не мають: щоб керувати працівниками через API, створіть новий ключ.

Якщо ключу бракує потрібної області, запит завершиться 403 forbidden з поясненням у полі message.

Обмеження за IP

Для ключа можна задати перелік дозволених IP-адрес. Тоді запит із будь-якої іншої адреси відхиляється з 403 forbidden, навіть якщо ключ правильний. Це корисно, коли інтеграція працює з відомого статичного сервера.

Порожній перелік означає «будь-яка адреса».

Що відбувається при зміні тарифу

Доступ до API прив'язаний до тарифу компанії:

  • при переході на тариф без API ключі перестають авторизуватися, а активні вебхуки компанії вимикаються;
  • при поверненні на PREMIUM ключі й вебхуки знову працюють — перевипускати нічого не потрібно.

Зміна набирає чинності майже миттєво: кеш прав скидається подією, а не за таймером.

Типові помилки

СимптомПричина
401 unauthorized на першому ж запитінемає заголовка, забуте слово Bearer, обрізаний ключ
401 після тривалої роботиключ відкликано, або тариф компанії більше не містить API
403 forbidden на конкретному ендпоінтіключу не вистачає області доступу
403 forbidden на всіх ендпоінтахзапит іде з IP, якого немає в переліку дозволених
404 not_found на чужій заявцізаявка належить іншій компанії — API навмисно не розрізняє «немає» і «не ваша»