Все разделы
Webhook
Уведомляйте свой бэкенд о событиях: платёж прошёл, возврат оформлен, ссылка приостановлена.
События
Webhook отправляется на URL из настроек кабинета после каждого события.
| Событие | Описание |
|---|---|
payment.succeeded | Платёж успешно завершён, средства зачислены, чек отправлен в «Мой Налог». |
payment.failed | Платёж отклонён или не прошёл после попыток. |
payment.refunded | Оформлен возврат по успешному платежу. |
link.created | Создана новая ссылка на оплату. |
link.paused | Ссылка приостановлена и больше не принимает платежи. |
link.resumed | Ссылка возобновлена. |
Подпись запросов
Каждый запрос содержит заголовок x-mypay-signature - HMAC-SHA256 от тела запроса, вычисленный с секретом из кабинета.
Проверка без SDK
const crypto = require('node:crypto');
const sig = crypto
.createHmac('sha256', process.env.MYPAY_WEBHOOK_SECRET)
.update(req.rawBody)
.digest('hex');
if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(req.headers['x-mypay-signature']))) {
throw new Error('Неверная подпись');
}Доставка и retry
- Отправка с таймаутом 10 секунд; ответ 200 подтверждает приём.
- При ошибке или таймауте событие уходит повторно с экспоненциальной задержкой: 1 мин, 5 мин, 30 мин.
- После последней попытки событие попадает в DLQ - очередь недоставленных сообщений, видимую в кабинете.
- Идемпотентность: событие содержит
event_id- обрабатывайте его один раз.