GET запросом, укажите ссылку для
уведомлений (callback_url) в настройках проекта в личном кабинете. Когда платёж меняет
статус, мы сами отправим на неё POST запрос с телом уведомления.
Каждое уведомление снабжено цифровой подписью в поле signature.
События
Уведомления отправляются только по платежам и только при переходе в финальный статус:Событие (event) | Объект | Когда |
|---|---|---|
payment.paid | Объект платежа | Платёж перешёл в статус paid. |
payment.failed | Объект платежа | Платёж перешёл в статус failed или expired. |
Формат уведомления
Всегда
"webhook"."payment.paid" или "payment.failed".Цифровая подпись уведомления,
HMAC-SHA256 в hex (см. «Проверка подписи»).Снимок платежа.
object
Идентификатор платежа.
Статус платежа.
"paid", "failed" или "expired".Сумма платежа в формате
"D.DD".Валюта платежа.
Описание. Поле отсутствует, если описание не задано.
Произвольные данные мерчанта, которые вы передали при создании платежа. Если данных не было,
возвращается пустой объект
{}.Время создания платежа (ISO 8601, UTC).
Ответ на уведомление
Чтобы подтвердить, что вы получили уведомление, ответьте HTTP-кодом 2xx (например,200).
Всё, что находится в теле и заголовках ответа, игнорируется.
Ответы с любыми другими кодами считаются неуспехом, и доставка будет повторяться (см.
«Повторные доставки»):
- Повторяются:
5xx,408,425,429, таймаут и сетевые ошибки. - Не повторяются: прочие
4xx(400,401,403,404,410,422, …) — считаются окончательным отказом.
Retry-After игнорируется.
Проверка подписи
Подпись в полеsignature — это HMAC-SHA256 в нижнем регистре (hex, без префикса). Ключ —
ваш API-ключ мерчанта (тот же, что и для запросов к API). Отдельного секрета для
уведомлений нет.
Подписывается не всё тело, а каноническая строка из четырёх значений,
соединённых запятыми в фиксированном порядке: