Fiat Webhooks
Примечание: все числовые значения, суммы и идентификаторы в примерах являются иллюстративными и приведены только для демонстрации.
Обзор
Fiat Module использует webhook-и Crypto-Cash, которые отправляются мерчанту после изменения статуса транзакции. Они работают только если на Fiat API key настроен параметрwebhookUrl. Если webhookUrl не задан, webhook-и не отправляются.
URL для уведомлений у платёжного провайдера иwebhookUrlна Fiat API key — это разные вещи.webhookUrlна Fiat API key — это адрес, на который Crypto-Cash отправляет свои события мерчанту.
Ключевые параметры
| Параметр | Значение |
|---|---|
| Цель webhook Crypto-Cash | webhookUrl, настроенный на Fiat API key |
| HTTP-метод | POST |
| Доставка | Асинхронная |
| Формат данных | application/json |
Как работают webhook-и
Webhook-и Crypto-Cash
Webhook-и Crypto-Cash отправляются после payment-событий. Они работают только если на Fiat API key настроенwebhookUrl.
При изменении статуса транзакции система формирует payment-событие и асинхронно отправляет webhook на настроенный webhookUrl. Если webhookUrl не настроен, webhook не отправляется.
HTTP-формат:
signature в теле payload. Мерчант использует Fiat API key, чтобы убедиться, что webhook отправлен Crypto-Cash и не был изменён.
Webhook payload и подпись сохраняются для аудита и истории.
Типы событий
| Событие | Когда отправляется | Тип |
|---|---|---|
payment::created | Транзакция создана | Промежуточное |
payment::waiting | Статус сменился на Waiting | Промежуточное |
payment::paid | Статус сменился на Paid | Финальное |
payment::failed | Статус сменился на Fail | Финальное |
payment::canceled | Статус сменился на Canceled | Финальное |
payment::created, payment::waiting) означают, что транзакция в работе и возможны дальнейшие изменения статуса.
Финальные события (payment::paid, payment::failed, payment::canceled) означают, что транзакция достигла терминального состояния:
| Финальное событие | Значение |
|---|---|
payment::paid | Криптовалюта успешно отправлена на адрес кошелька |
payment::failed | Платёж не был завершён |
payment::canceled | Платёж отменён |
Что должен проверить мерчант
При получении webhook Crypto-Cash:- Проверить поле
signatureс помощью Fiat API key (см. раздел «Подпись webhook»). - Прочитать
event.event_type, чтобы определить событие. - Прочитать
event.data— там полное состояние транзакции. - Обработать событие исходя из того, промежуточное оно или финальное.
Поле id уникально для каждой доставки webhook. Используйте его для дедупликации обработки на своей стороне.
Подпись webhook Crypto-Cash
Каждый webhook Crypto-Cash содержит полеsignature в теле payload.
Подпись формируется по идентификатору и содержимому webhook:
signature, и проверяет его с помощью Fiat API key.
Способ проверки зависит от типа Fiat API key:
ED25519— проверьте полученноеsignature, используяpublicKeyFiat API.LEGACY— пересоберите ожидаемое значение signature, используяprivateKeyFiat API, и сравните его с полученным.