For the complete documentation index, see llms.txt. This page is also available as Markdown.

Как проверить подпись webhook

Каждый webhook delivery подписывается. Receiver должен проверить подпись до обработки события.

Headers webhook-запроса

Content-Type: application/json
X-Webhook-Event-Id: evt_01J...
X-Webhook-Event-Type: order.status_changed
X-Webhook-Timestamp: 1782190000
X-Webhook-Nonce: wh_20260623_001
X-Webhook-Signature: sha256=...
X-Request-Id: req_01J...
X-Correlation-Id: cor_01J...

Строка для проверки

v1
event_id
event_type
timestamp
nonce
sha256(json_body)

Используйте raw body, то есть исходные bytes запроса. Не собирайте JSON заново перед проверкой.

PHP пример проверки

Защита от повторов

Сохраняйте:

Если такое событие уже обработано, верните 2xx и не выполняйте бизнес-действие повторно.

Частые ошибки

Ошибка
Как исправить

Проверяется parsed JSON, а не raw body

Сохраняйте raw body до парсинга.

Используется API HMAC secret

Для webhook нужен webhook secret.

Receiver возвращает 2xx до сохранения события

Сначала сохраните событие, потом отвечайте.

Дубликат события считается ошибкой

Дубликаты нормальны при retry, отвечайте 2xx.

Последнее обновление

Это было полезно?