Requests And Response Types

Decimal

Fixed-point monetary amount: unscaled * 10^exponent, so 123.45 is unscaled=12345, exponent=-2.

FieldTypeLabelDescription
unscaledint64no validation: sign and magnitude are constrained per field by the predicate on the enclosing amount.
exponentint32

OnChainSettlementDetails

One on-chain USDt settlement transfer, as reported by the Issuer on SettlementSent and relayed to the Acquirer on SettlementCompleted.

FieldTypeLabelDescription
on_chain_tx_hashstringHash of the settlement transaction.
chainBlockchainChain the settlement moved over.
destination_addressstringRegistered settlement wallet on chain — the Acquirer’s (USDt mode) or the LP’s (fiat mode).

UsdtOnChainPayment

One on-chain USDt transfer made by the customer. The only payment-method variant in the MVP.

FieldTypeLabelDescription
chainBlockchainChain the customer’s USDt transfer moved over.
on_chain_tx_hashstringHash of the customer’s USDt transfer.
sender_addressstringCustomer’s source wallet address, for receipt and audit.

Blockchain

On-chain network a USDt transfer moves over. Live: ETH, BSC, Polygon, Arbitrum and Plasma. TRON carries a value but is not accepted.

NameNumberDescription
BLOCKCHAIN_UNSPECIFIED0
BLOCKCHAIN_TRON10
BLOCKCHAIN_ETH20
BLOCKCHAIN_BSC30
BLOCKCHAIN_POLYGON40Polygon PoS.
BLOCKCHAIN_ARBITRUM50Arbitrum One.
BLOCKCHAIN_PLASMA60

FundsDisposition

Where a deposit’s funds end up when the payment will not settle. Final when reported: whether a retained deposit is later released is decided out of band and is not part of this contract.

NameNumberDescription
FUNDS_DISPOSITION_UNSPECIFIED0
FUNDS_DISPOSITION_RETURNED_TO_SENDER10The Issuer returns the deposit to the customer’s sender_address.
FUNDS_DISPOSITION_RETAINED_BY_ISSUER20The Issuer keeps the deposit; the customer resolves it with the Issuer out of band.

PaymentFailureReason

Why the Issuer will not process a deposit, reported by the Issuer and relayed to the Acquirer so the merchant can tell the customer what went wrong.

NameNumberDescription
PAYMENT_FAILURE_REASON_UNSPECIFIED0
PAYMENT_FAILURE_REASON_AMOUNT_MISMATCH10The deposit’s amount differs from the intent’s settlement_amount.
PAYMENT_FAILURE_REASON_ISSUER_DECLINED20The Issuer declined the deposit for any other reason, screening included; no detail is disclosed.