Skip to content

Подпись запросов

Для авторизации запроса в API необходимо доказать его валидность. Для этого сервер проверяет подпись запроса. Мерчант должен добавить подпись к каждому запросу, где это требуется.

Подпись - это с строка в заголовке X-Auth в которой мерчант зашифровал свои данные с помощью приватного токена.

Рассмотрим создание подписи на примере запроса POST /api/v1/trades/deposit/create:

{
    "merchant":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "order":"ext-123",
    "amount_cents":1000,
    "amount_currency":"USD",
    "type":"nspk",
    "cusotmer":"cust-1"
 }

Чтобы зашифровать данные запроса Мерчант должен сформировать строку из аттрибутов на основе алфавитного порядка ключей, конкатенировать их с разделителем :: и вычислить HMAC с помощью секретного кода

  1. Сортируем по алфавитному порядку ключей:
[
    "amount_cents":1000,
    "amount_currency":"USD",
    "cusotmer":"cust-1",
    "merchant":"3fa85f64-5717-4562-b3fc-2c963f66afa6",
    "order":"ext-123",
    "type":"nspk"
]
  1. Конкатенируем значения
1000::USD::cust-1::3fa85f64-5717-4562-b3fc-2c963f66afa6::ext-123::nspk
  1. Генерируем подпись c помощью кода pass и алгоритма sha-256
2aa0d2adf41a08f164312aafd4925e274e5b75bf4a7bcb66e6d520ffdfdd5255

Сервисы для онлайн генерации подписи: