Описание
Вы можете настроить отправку уведомлений в любую систему, которая принимает входящие вебхуки по протоколу HTTP/HTTPS. Для этого необходимо указать Webhook URL при создании ордера , на который будут отправляться уведомления об ордере.
Если Вы не ответите статусом 200, то мы продолжим слать запрос: первые 6 с интервалом 10 секунд, следующие 5 с интервалом 30 минут, потом 4 с интервалом 2 часа и последние 3 с интервалом 12 часов.
Если Webhook URL был указан через API, то в запросе будут присланы следующие дополнительные заголовки:
x-api-public-key
- публичный ключ, с помощью которого был выполнен запрос с указанием Webhook URL
x-api-signature
- подись, созданная по принципу, описанному в п. "Формирование подписи запроса"
IP-адреса сервера: 188.42.242.220, 188.42.242.228
Webhook статуса ордера
Webhook URL пример
"successWebhook": "https://example.com/success-webhook-url"
"errorWebhook": "https://example.com/error-webhook-url"
Внимание
Обратите внимание, что статусы processed
, expired
, partial
, overpaid
не являются конечными
При обработке вебхука вам стоит отдельно обрабатывать массив полученных транзакций для корректной обработки суммы платежа
Пример ответа сервера
Copy {
id : 'a 020272 e-b 97 a -4 ed 8 -ab 74-696426913627 ' ,
advancedBalanceId : ' 316 a 59 ea-be 39-4 eaa -9392-6 fda 708 f 24 d 8 ' ,
currency : 'USDT' ,
network : 'tron' ,
status : 'processed' ,
order : '# 12345 ' ,
description : null ,
address : 'TCpyHjEF 7 weWw 2284 sy 7 yYX 5 KUo 9 GTs 6 R 6 ' ,
tag : null ,
amount : ' 0.2 ' ,
received : ' 0.20000000 ' ,
transactions : [
{
id : ' 9812 eb 5 f-b 8 b 7-4e33-90e7 -c 8139 d 7 cf 46 d' ,
status : 'processed' ,
currency : 'USDT' ,
network : 'tron' ,
amount : ' 0.1 ' ,
tx : ' 86464 a 34 fbecb 77 d 67 bda 0604 a 883 a 796 ddc 3 ccd 54854637 cd 6 fa 0 b 95 ccf 1 f 3 f' ,
confirmations : ' 10 ' ,
sender : 'TUdtD 3 oXvX 37 NM 5 mH 5 W 561 p 6 GSeDHeUDTD' ,
priceUSD : ' 1 ' ,
amountUSD : ' 0.1 '
} ,
{
id : ' 87 fa 47 d 7-9 d 83-42 d 0-9 dc 9 -aba 52 b 9869 a 3 ' ,
status : 'processed' ,
currency : 'USDT' ,
network : 'tron' ,
amount : ' 0.1 ' ,
tx : 'fbc 94452 bc 9 f 2 a 097 a 73 ade 40 eada 72125224 f 3 a 4 c 39965941 a 431 d 641493399 ' ,
confirmations : ' 10 ' ,
sender : 'TUdtD 3 oXvX 37 NM 5 mH 5 W 561 p 6 GSeDHeUDTD' ,
priceUSD : ' 1 ' ,
amountUSD : ' 0.1 '
}
] ,
link : 'https: //payment.domain/a020272e-b97a-4ed8-ab74-696426913627',
successWebhook: 'https: //merchant.domain/success',
errorWebhook: 'https: //merchant.domain/error',
returnUrl: null ,
expiresAt : ' 2022-07-05 T 15 : 40 : 29.837 Z' ,
createdAt : ' 2022-07-05 T 13 : 39 : 26.006 Z' ,
updatedAt : ' 2022-07-05 T 13 : 42 : 00.588 Z' ,
webhookId : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Webhook статуса счета
Пример ответа сервера
Copy {
"id" : "fd1dbab8-06c2-4e0e-88fb-32f5e97cc0e2" ,
"advancedBalanceId" : "316a59ea-be39-4eaa-9392-6fda708f24d8" ,
"externalId" : "external-merchant-id-1234" ,
"orderId" : "87fa47d7-9d83-42d0-9dc9-aba52b9869a3" ,
"orderLink" : "https://payment.domain/87fa47d7-9d83-42d0-9dc9-aba52b9869a3" ,
"invoiceLink" : "https://invoices.domain/fd1dbab8-06c2-4e0e-88fb-32f5e97cc0e2" ,
"status" : "PROCESSED" ,
"order" : "Payment #1234" ,
"description" : "Payment for ..." ,
"currency" : "USD" ,
"amount" : "100" ,
"receivedNetwork" : "ethereum" ,
"receivedCurrency" : "USDT" ,
"receivedAmount" : "101.12" ,
"receivedAmountInInvoiceCurrency" : "100.92" ,
"rate" : "0.998" ,
"includeFee" : true ,
"additionalFees" : [ "SEPA_WITHDRAWAL" ] ,
"insurancePercent" : "1" ,
"slippagePercent" : "2.5" ,
"transactions" : [
{
"id" : "9812eb5f-b8b7-4e33-90e7-c8139d7cf46d" ,
"status" : "processed" ,
"currency" : "USDT" ,
"network" : "tron" ,
"amount" : "101.12" ,
"tx" : "86464a34fbecb77d67bda0604a883a796ddc3ccd54854637cd6fa0b95ccf1f3f" ,
"confirmations" : "10" ,
"sender" : "TUdtD3oXvX37NM5mH5W561p6GSeDHeUDTD" ,
"priceUSD" : "1" ,
"amountUSD" : "100"
}
] ,
"webhookUrl" : "https://merchant.domain/webhooks/invoice" ,
"returnUrl" : "https://merchant.domain/" ,
"expiresAt" : "2023-09-04T09:00:00.960Z" ,
"createdAt" : "2023-09-04T06:39:01.960Z" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Возможные значения status
:
INIT
- пользователь перешел к оплате
PENDING
- ожидаение полной суммы или ожидание подтверждений транзакции в блокчейне
PARTIAL
- частичная оплата
REJECTED
- инвойс отклонен, свяжитесь с поддержкой для уточнения
ERROR
- ошибка в процессе создания или обработки
EXPIRED
- скрок действия инвойса истек
Webhook статуса вывода
При завершения вывода присылается вебхук со статусом этого платежа на URL адрес webhookUrl
, указанный при создании вывода.
addressId
- персональный адрес, на который пришел депозит
userId
- идентификатор пользователя, владеющего персональным адресом
Пример
Copy {
"id" : "fd1dbab8-06c2-4e0e-88fb-32f5e97cc0e2" ,
"addressId" : "a3018d42-aa59-42f3-a0f9-6d47e461d344" ,
"amount" : "0.32" ,
"currency" : "USDT" ,
"network" : "tron" ,
"status" : "processed" ,
"tx" : "46f4c1bafd9925de3d61d8a86d83851e73e" ,
"createdAt" : "2023-03-21T13:50:48.603Z" ,
"updatedAt" : "2023-03-21T13:51:14.018Z" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Возможные значения status
:
ERROR
- во время вывода произошла ошибка
PROCESSED
- успешный вывод
Webhook статуса платежной связки
При изменении статуса платежной связки высылается вебхук на адрес, указанный при создании этой связки.
Copy {
"id" : "e457d90c-2321-4f9c-9f71-7a16fecc9b66" ,
"merchantId" : "dcb1a9fe-4b8d-40f6-baf6-241dc88436d9" ,
"clientId" : "199933300" ,
"network" : "bsc" ,
"currency" : "USDT" ,
"address" : "0x1d9e9703" ,
"status" : "SUCCESS" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Webhook статуса подписки
При изменении статуса подписки или при проведения платежа высылается вебхук на адрес, указанный при создании подписки.
Пример
Copy {
"id" : "d5743dea-5a78-4096-ae07-95b1f10bc5dd" ,
"merchantId" : "dcb1a9fe-4b8d-40f6-baf6-241dc88436d9" ,
"billingLinkId" : "e7e7a111-2d24-4aa3-afae-540f313c738b" ,
"title" : "Flixnet/monthly" ,
"description" : "Flixnet monthly subscription / HD quality" ,
"currency" : "USDT" ,
"amount" : "2.0000000" ,
"spendInterval" : 120 ,
"message" : null ,
"webhookUrl" : "https://site.com/webhook" ,
"status" : "ACTIVE" ,
"createdAt" : "2023-02-27T11:50:53.710Z" ,
"updatedAt" : "2023-03-01T19:29:04.090Z" ,
"paymentEvent" : {
"id" : "9c06e989-9d19-461b-bd94-e94032012407" ,
"merchantId" : "dcb1a9fe-4b8d-40f6-baf6-241dc88436d9" ,
"billingLinkId" : "e7e7a111-2d24-4aa3-afae-540f313c738b" ,
"amount" : "2" ,
"status" : "PROCESSED" ,
"tx" : "0xdabd91e979122bb78d0a5cf1e5174dff3e10b906a31adbfd625ff80cca14e8c2" ,
"createdAt" : "2023-03-01T13:11:57.662Z" ,
"updatedAt" : "2023-03-01T13:14:32.868Z"
} ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
При изменении статуса подписки высылается вебхук с объектом подписки. При этом paymentEvent
заполняется только если событие вебхука связано с проведением платежа.
Возможные значения status
:
ACTIVE
- подписка активна/возобновлена
ERROR
- неуспешный платеж по подписке
DECLINE
- невозможно выполнить платеж (напр. нехватка денег)
CANCEL
- подписка отменена
Комментарий к статусу может содержаться в поле message
После проведения платежа высылается вебхук с объектом этого платежа в поле paymentEvent
. Возможные значения поля paymentEvent.status
:
PROCESSED
- успешный платеж
ERROR
- неуспешный платеж
Webhook статуса платежа со свободной суммой
При завершения платежа присылается вебхук со статусом этого платежа (тот же объект, что и в поле paymentEvent
вебхука со статусом подписки) на адрес, указанный при запросе на платеж.
Пример
Copy {
"id" : "2fa68ddf-2479-47cb-9e66-ae91139c3063" ,
"merchantId" : "dcb1a9fe-4b8d-40f6-baf6-241dc88436d9" ,
"billingLinkId" : "6196a1f2-b6b5-40a5-a672-f1ffd70fdd7d" ,
"amount" : "0.005" ,
"status" : "PROCESSED" ,
"tx" : "0x5b9b3b55b366266025e" ,
"createdAt" : "2023-03-02T06:58:00.365Z" ,
"updatedAt" : "2023-03-02T07:01:50.693Z" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Возможные значения status
:
PROCESSED
- успешный платеж
ERROR
- неуспешный платеж
Webhook статуса операции кроссчейн моста
При изменении статуса операции присылается вебхук на адрес, указанный при создании операции
Copy {
"id" : "816a19eb-be39-4eaa-9392-6fda708f24d8" ,
"clientId" : "..." ,
"advancedBalanceId" : "316a59ea-be39-4eaa-9392-6fda708f24d8" ,
"currency" : "USDT" ,
"networkFrom" : "bsc" ,
"networkTo" : "tron" ,
"status" : "PENDING" ,
"rejectMessage" : null ,
"addressFromId" : "fa475cfa-15e8-c31d-7469-5f1168052cd6" ,
"addressToId" : "607976c9-0270-59a3-a528-0d92489c3fc8" ,
"amount" : "10000" ,
"amountUSD" : "10000" ,
"blockchainFee" : "1.80" ,
"blockchainFeeUSD" : "1.80" ,
"serviceFeeUSD" : "1.50" ,
"webhookUrl" : "https://my-show.com/..." ,
"createdAt" : "2022-02-02T06:07:34.067Z" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Доступные статусы
Ошибка в процессе исполнения
Webhook статуса кроссчейн обмена
При изменении статуса обмена присылается вебхук на адрес, указанный при создании обмена
Copy {
"id" : "816a19eb-be39-4eaa-9392-6fda708f24d8" ,
"clientId" : "..." ,
"advancedBalanceId" : "316a59ea-be39-4eaa-9392-6fda708f24d8" ,
"currencyFrom" : "TRX" ,
"currencyTo" : "USDT" ,
"networkFrom" : "tron" ,
"networkTo" : "bsc" ,
"status" : "PENDING" ,
"rejectMessage" : null ,
"addressFromId" : "fa475cfa-15e8-c31d-7469-5f1168052cd6" ,
"addressToId" : "607976c9-0270-59a3-a528-0d92489c3fc8" ,
"amountFrom" : "100000" ,
"amountTo" : "10000" ,
"price" : "0.1" ,
"serviceBlockchainFeeSource" : "ADDRESS" ,
"serviceBlockchainFee" : "1.80" ,
"serviceBlockchainFeeUSD" : "1.80" ,
"providerBlockchainFeeSource" : "AMOUNT" ,
"providerBlockchainFee" : "1.80" ,
"providerBlockchainFeeUSD" : "1.80" ,
"serviceFeeSource" : "ADVANCE" ,
"serviceFee" : "1.80" ,
"serviceFeeUSD" : "1.80" ,
"webhookUrl" : "https://my-show.com/..." ,
"createdAt" : "2022-02-02T06:07:34.067Z" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Доступные статусы
Ошибка в процессе исполнения
Webhook статуса депозита на персональный адрес
При завершения платежа присылается вебхук со статусом этого платежа на URL адрес depositWebhookUrl
, указанный при создании пользователя.
addressId
- персональный адрес, на который пришел депозит
userId
- идентификатор пользователя (внутренний), владеющего персональным адресом
clientId
- идентификатор пользователя (внешний, в вашей системе), владеющего персональным адресом
Пример
Copy {
"id" : "2fa68ddf-2479-47cb-9e66-ae91139c3063" ,
"addressId" : "dcb1a9fe-4b8d-40f6-baf6-241dc88436d9" ,
"userId" : "6196a1f2-b6b5-40a5-a672-f1ffd70fdd7d" ,
"clientId" : "133357" ,
"amount" : "0.005" ,
"currency" : "USDT" ,
"network" : "bsc" ,
"addressFrom" : [ "0x...." , "0x...." ] ,
"addressTo" : "0x...." ,
"status" : "PROCESSED" ,
"confirmations" : 10 ,
"tx" : "0x5b9b3b55b366266025e" ,
"risks" : { "level" : "yellow" , "categories" : [{ "level" : "yellow" , "usdAmount" : 41159.8 , "category" : "stolen funds" , "service" : "Reported as stolen funds bc1qlf4vel" , "exposure" : "DIRECT" }] ,
"createdAt" : "2023-03-02T06:58:00.365Z" ,
"updatedAt" : "2023-03-02T07:01:50.693Z" ,
"webhookId" : "b614475d-aa39-49be-b3bf-1622e357a267"
}
Возможные значения status
:
PENDING
- платеж в обработке
PROCESSED
- успешный платеж
Webhook статуса авто-обмена
Пример
Copy {
"id" : "25e2d6ab-44a2-4a7f-9898-a1fc8b27ee19" ,
"organizationId" : "1f07eb01-5fd8-4e05-89b5-bebcd1d1fc39" ,
"userId" : null ,
"status" : "PROCESSED" ,
"currencyFrom" : "USDT" ,
"currencyTo" : "BTC" ,
"networkFrom" : "tron" ,
"networkTo" : "bitcoin" ,
"addressFromId" : "5cb5fefa-7e08-453c-8910-3dc268b16e52" ,
"addressFrom" : "TF4pfwhPsKzHB1bEV6kGt5T3jejLANW2T3" ,
"addressTo" : "bc1q9zqj930c0ehss7rsg9sg3nhcccys068c5s3max" ,
"amountFrom" : "31.56426000" ,
"amountFromUSD" : "31.56" ,
"amountTo" : "0.00044955" ,
"amountToUSD" : "31.59" ,
"amountToReceive" : "0.00020955" ,
"rate" : "70213.01301301" ,
"blockchainFeeFrom" : "2.64000000" ,
"blockchainFeeFromUSD" : "2.64" ,
"blockchainFeeTo" : "0.00024000" ,
"blockchainFeeToUSD" : "16.87" ,
"serviceFee" : "1.5" ,
"webhookUrl" : "https://..." ,
"createdAt" : "2024-03-27T12:12:31.688Z" ,
"updatedAt" : "2024-03-27T12:19:33.768Z" ,
"webhookId" : "2636d60c-a3f5-4938-bbd6-ca15d365279a"
}
Возможные значения status
:
Ожидание отправки на конечный адрес