Webhook уведомления
После изменения статуса платежа, на указанный вами Webhook URL будет отправлен POST запрос со следующими данными:
Заголовки
Content-Type: application/json
signature: 5a91a3a25da58608edba2ee1fe127f67
Тело запроса
{
"id": "97048cb2-f36f-410a-8e5e-574e0f20905e",
"merchant": {
"name": "Лавка Админа",
"resource": "tg://resolve?domain=your_shop_bot",
"description": "описание магазина"
},
"bill": {
"amount": "10.00",
"method": {
"name": "USDT",
"network": "TRC20",
"params": [],
"symbol": "USDT"
},
"status": [
{
"id": "WAIT_USER_PAY",
"received_at": "2024-02-29T17:21:11.872098+03:00",
"name": "Ожидание",
"description": "Ожидание оплаты от пользователя"
},
{
"id": "PROCESSING_PAY",
"received_at": "2024-02-29T17:22:06.152611+03:00",
"name": "Найден в сети",
"description": "Платеж был найден, ожидание подтверждения сети"
},
{
"id": "PAY_SUCCESS",
"received_at": "2024-02-29T17:23:06.173868+03:00",
"name": "Подтвержден",
"description": "Платеж был найден и подтвержден сетью"
}
],
"details": {
"amount": "0.110162",
"address": {
"type": "crypto",
"address": "TLaXSugeQqtjz3DWWZUzp1K1qeT4U2xpB9"
},
"transaction_id": "a9a456dc5880fbc7e13ab536310d95db256dc4c2e0c47244baf1a7c3ac4da143"
},
"last_status": {
"id": "PAY_SUCCESS",
"received_at": "2024-02-29T17:23:06.173868+03:00",
"name": "Подтвержден",
"description": "Платеж был найден и подтвержден сетью"
}
},
"status": {
"id": "SUCCESS",
"name": "Оплачен",
"description": "Счет успешно оплачен"
},
"amount": "10.00",
"detail": "Комментарий к платежу",
"created": "2024-02-29T17:21:02.305914+03:00",
"expiration_at": "2024-02-29T18:21:02+03:00",
"return_url": "http://google.com"
}
Важно: Webhook запросы будут отправляться с IP-адреса 172.233.49.76. Рекомендуется настроить фильтрацию запросов по этому IP для дополнительной безопасности.
Обработка платежей
При получении webhook-уведомления, необходимо проверить статус платежа в
поле status.id
:
-
Если
status.id
равен "SUCCESS", платеж успешно завершен. -
Если
status.id
равен "ERROR", произошла ошибка при обработке платежа.
В случае ошибки, дополнительную информацию можно найти в поле
bill.details
. Например, если сумма платежа отличается от
ожидаемой, в bill.details.received_amount
будет указана
фактически полученная сумма.
Пример успешного платежа
{
"status": {
"id": "SUCCESS",
"name": "Оплачен",
"description": "Счет успешно оплачен"
},
"amount": "10.00",
"detail": "Комментарий к платежу"
}
Пример платежа с ошибкой
{
"status": {
"id": "ERROR",
"name": "Ошибка",
"description": "Счет завершен с ошибкой"
},
"amount": "10.00",
"detail": "Комментарий к платежу",
"bill": {
"details": {
"received_amount": "9.75",
"error": "Ожидаемая сумма пополнения 10.00 RUB, полученная сумма 9.75 RUB"
}
}
}