Skip to main content
Tranzor API поддерживает два способа аутентификации: Bearer Token и HMAC-подпись.

Bearer Token

Самый простой способ — передайте API ключ в заголовке Authorization:
curl -H "Authorization: Bearer trz_your_api_key" \
  https://sand.tranzor.io/api/v1/invoices
Подходит для быстрой интеграции и тестирования. Для продакшена рекомендуется HMAC-подпись.

HMAC-подпись

Более безопасный способ аутентификации, который защищает от перехвата и подмены запросов.

Необходимые заголовки

ЗаголовокОписание
X-API-KeyВаш API ключ
X-TimestampТекущий Unix timestamp в секундах
X-SignatureHMAC-SHA256 подпись

Формирование подписи

Строка для подписи формируется по шаблону:
{timestamp}{METHOD}{path}{body}
  • timestamp — значение из X-Timestamp
  • METHOD — HTTP метод заглавными буквами (POST, GET, DELETE)
  • path — путь запроса (например /api/v1/invoices)
  • body — тело запроса (пустая строка для GET/DELETE)
Подпись вычисляется как HMAC-SHA256(secretKey, signatureString).

Примеры

import crypto from 'crypto';

function signRequest(method, path, body, apiKey, secretKey) {
  const timestamp = Math.floor(Date.now() / 1000).toString();
  const bodyString = body ? JSON.stringify(body) : '';
  const signatureString = `${timestamp}${method}${path}${bodyString}`;

  const signature = crypto
    .createHmac('sha256', secretKey)
    .update(signatureString)
    .digest('hex');

  return {
    'X-API-Key': apiKey,
    'X-Timestamp': timestamp,
    'X-Signature': signature,
    'Content-Type': 'application/json',
  };
}

Валидация timestamp

Сервер принимает запросы с timestamp, отличающимся от текущего времени не более чем на 5 минут. Убедитесь, что время на вашем сервере синхронизировано (NTP).

Ошибки аутентификации

КодОписание
401Невалидный API ключ или подпись
401Истёкший timestamp (разница > 5 минут)
{
  "success": false,
  "error": "Invalid API key"
}