🔔 Callback уведомления
При изменении статуса заявки система отправляет HTTP POST запрос на указанный webhook_url.
- Формат тела: JSON
- Метод: POST
- Возможны повторные отправки
- Поддерживается Static (Bearer) и Dynamic (HMAC) проверка подлинности
- Bearer-токен и HMAC-заголовки могут приходить одновременно
Важно: КБ токен обновляется только в личном кабинете в разделе токены, выводится только один раз вместе с шаблоном шифрования. Тоже самое касается статичных токенов для апи, они обновляются в личном кабинете и выводятся один раз, поэтому обязательно нужно сохранять к себе
🔐 Проверка подлинности
Поддерживаются два способа верификации запроса.
1️⃣ Static (Bearer-токен)
В заголовке запроса передаётся токен:
Мерчанту необходимо сравнить значение Authorization с токеном,
полученном в личном кабинете
2️⃣ Dynamic (HMAC-подпись)
Используется HMAC SHA256 подпись.
Заголовки (Dynamic)
| Text Only | |
|---|---|
Дополнительно могут присутствовать служебные заголовки:
Шаблон подписи (signature_string)
Шаблон строки для подписи выводится при обновлении Кб токена
ВАЖНО: КБ токен обновляется только в личном кабинете в разделе токены, выводится только один раз вместе с шаблоном шифрования.
Пример шаблона:
| Text Only | |
|---|---|
На основе шаблона формируется строка для подписи (signature_string).
⚠️ Фактическая строка может отличаться — всегда используйте шаблон, указанный в ЛК.
Пример текущей строки для подписи
| Text Only | |
|---|---|
Пример
| Text Only | |
|---|---|
Формирование подписи
| Text Only | |
|---|---|
Где:
- secret_key — секретный ключ из личного кабинета
- signature_string — строка, собранная по шаблону
Полученное значение необходимо сравнить с заголовком X-Signature.
📦 Пример Callback запроса (Dynamic)
Headers (реальный пример)
Body
📘 Поля в теле Callback
| Поле | Тип | Описание |
|---|---|---|
id |
integer | ID заявки в системе |
status |
string | Статус заявки (success, failed) |
amount |
number | Сумма заявки |
sum |
number | Сумма заявки |
method |
string | Способ перевода |
outter_id |
string / null | Внешний ID заявки |
form_outter_id |
string / null | Внешний ID формы |
reject_reason |
string / null | Причина отказа |
geo |
string | Гео |
merchant |
string | Имя мерчанта |
merchant_detail |
object | Детализация (курс / комиссия) |
created_at |
string | Дата создания заявки |
updated_at |
string | Дата последнего изменения |
X-Request-Id |
string | Уникальный ID запроса |
callback_attempt_id |
string | ID попытки отправки коллбека |
🧾 Что должен делать мерчант
-
Проверить подлинность запроса
-
Static — сверить Bearer-токен
-
Dynamic — пересчитать HMAC по шаблону из ЛК и сверить
X-Signature -
Обработать статус заявки
-
По
idи/илиoutter_id -
Сделать обработку идемпотентной
-
Повторные коллбеки возможны
✅ Ответ на Callback
Если обработка прошла успешно — верните:
| Text Only | |
|---|---|
или любой другой 2xx статус.
Любой ответ 4xx / 5xx считается ошибкой — коллбек будет отправлен повторно.
🔁 Повторные отправки
В случае ошибки система выполняет повторные попытки с задержкой.
Рекомендуется:
- обрабатывать запросы идемпотентно
- использовать
idилиcallback_attempt_idдля защиты от дублей