Структура Payload
Каждое событие содержит объектdata с данными о транзакции на момент события. Структура payload одинакова для всех типов событий, но значения полей различаются в зависимости от типа транзакции и этапа её жизненного цикла.
Пояснение полей сумм
Есть четыре поля, связанных с суммами, и они имеют разное назначение в зависимости от типа транзакции.Вывод (Buy)
Если интегратор передаёт
includeFeeInAmount: true, расчёт меняется на обратный: expectedAmount = исходная сумма, requestedAmount = исходная сумма - networkFee. Соотношение всегда: expectedAmount = requestedAmount + networkFee.
usdtTotal рассчитывается так: конвертированный expectedAmount в USDT по предварительному курсу, затем добавленный буфер удержания 1.25%. Это общая сумма USDT, списываемая с баланса мерчанта. После конвертации излишек удержания возвращается.
Пример:
Пополнение (Sale)
Для пополнения
requestedAmount и expectedAmount всегда одинаковы. Поле amount показывает фактическую общую полученную сумму. Сравнивая amount с expectedAmount, система определяет статус транзакции: Paid (ровная сумма), Overpaid (сумма больше), Underpaid (сумма меньше).
Пример:
Значения статусов
Логика валют
Полеcurrency отображает то, что ожидалось, а не то, что было фактически получено:
- Вывод: целевая криптовалюта, которая покупается (например,
"TRX","BTC") - Пополнение: ожидаемая криптовалюта для депозита из конфигурации заказа (например,
"BTC")
receivedCurrency (см. ниже).
Поля получения (receivedCurrency, receivedNetwork, receivedAmount)
Эти три поля отображают то, что фактически было внесено в блокчейн для конкретного депозита. Они заполняются только для события deposit_received и всегда null для всех остальных событий.
receivedAmountфактически зачисленная сумма, а НЕ кумулятивный итог (используйтеamountдля кумулятивного)receivedCurrency— фактически зачисленная криптовалютаreceivedNetwork— сеть фактически зачисленной криптовалюты
Детали полей по событиям
События вывода
События пополнения
Примечания:
deposit_receivedвсегда отправляется вместе с одним из:completed,overpaid,underpaidилиcurrency_mismatchdeclinedможет содержать или не содержать данные депозита, в зависимости от того, были ли получены депозиты до отклонения- Суммы пополнения являются кумулятивными по нескольким депозитам (каждый вебхук
was_final_exchangeдобавляется к общей сумме) - Для
currency_mismatchполеcurrencyпоказывает, что ожидалось, аreceivedCurrency— что было фактически отправлено