Shared Types
Requests And Response Types
Decimal
Fixed-point monetary amount: unscaled * 10^exponent, so 123.45 is unscaled=12345, exponent=-2.
| Field | Type | Label | Description |
|---|---|---|---|
| unscaled | int64 | no validation: sign and magnitude are constrained per field by the predicate on the enclosing amount. | |
| exponent | int32 |
OnChainSettlementDetails
One on-chain USDt settlement transfer, as reported by the Issuer on SettlementSent and relayed to the Acquirer on SettlementCompleted.
| Field | Type | Label | Description |
|---|---|---|---|
| on_chain_tx_hash | string | Hash of the settlement transaction. | |
| chain | Blockchain | Chain the settlement moved over. | |
| destination_address | string | Registered 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.
| Field | Type | Label | Description |
|---|---|---|---|
| chain | Blockchain | Chain the customer’s USDt transfer moved over. | |
| on_chain_tx_hash | string | Hash of the customer’s USDt transfer. | |
| sender_address | string | Customer’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.
| Name | Number | Description |
|---|---|---|
| BLOCKCHAIN_UNSPECIFIED | 0 | |
| BLOCKCHAIN_TRON | 10 | |
| BLOCKCHAIN_ETH | 20 | |
| BLOCKCHAIN_BSC | 30 | |
| BLOCKCHAIN_POLYGON | 40 | Polygon PoS. |
| BLOCKCHAIN_ARBITRUM | 50 | Arbitrum One. |
| BLOCKCHAIN_PLASMA | 60 |
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.
| Name | Number | Description |
|---|---|---|
| FUNDS_DISPOSITION_UNSPECIFIED | 0 | |
| FUNDS_DISPOSITION_RETURNED_TO_SENDER | 10 | The Issuer returns the deposit to the customer’s sender_address. |
| FUNDS_DISPOSITION_RETAINED_BY_ISSUER | 20 | The 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.
| Name | Number | Description |
|---|---|---|
| PAYMENT_FAILURE_REASON_UNSPECIFIED | 0 | |
| PAYMENT_FAILURE_REASON_AMOUNT_MISMATCH | 10 | The deposit’s amount differs from the intent’s settlement_amount. |
| PAYMENT_FAILURE_REASON_ISSUER_DECLINED | 20 | The Issuer declined the deposit for any other reason, screening included; no detail is disclosed. |