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, і порівняйте його з отриманим.