Provision (or rotate) the merchant TRC-20 deposit address
Generates (first call) or rotates (repeated calls) the merchant's TRC-20 deposit address for incoming USDT collateral. The scope is resolved from the authenticated merchant context (canonical path, no `merchant_id` in path). Atomically claims the next BIP44 derivation index, derives the address via tron-wallet-api and persists the address + index to the merchant row. Rotation semantics: the new address immediately replaces the old one on the merchant row, while every previously issued address stays forever in the platform's eternal block-polling set — USDT sent to a superseded address is still detected and credited. Legacy admin-impersonation alias: `POST /api/v1/p2p/merchants/{merchant_id}/deposit-address`.
/api/v1/p2p/merchant/wallet/deposit-addressGenerates (first call) or rotates (repeated calls) the merchant's
TRC-20 deposit address for incoming USDT collateral. The scope is
resolved from the authenticated merchant context (canonical path,
no merchant_id in path). Atomically claims the next BIP44 derivation
index, derives the address via tron-wallet-api and persists the
address + index to the merchant row. Rotation semantics: the new
address immediately replaces the old one on the merchant row, while
every previously issued address stays forever in the platform's
eternal block-polling set — USDT sent to a superseded address is
still detected and credited. Legacy admin-impersonation alias:
POST /api/v1/p2p/merchants/{merchant_id}/deposit-address.
Authorization
MerchantToken MerchantSignature 64-character hex public merchant token assigned during onboarding.
In: header
Stripe-style HMAC-SHA256 signature.
Format: t=<unix_seconds>,v1=<hex_hmac_sha256>
where hex_hmac = HMAC-SHA256(webhook_secret, "<unix_seconds>.<raw_body>").
Replay window: 5 minutes (60s future drift tolerated).
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/p2p/merchant/wallet/deposit-address" \ -H "Content-Type: application/json" \ -d '{}'{ "trc20_address": "TYHCiW3XN5sP9cWJ5T4Dfs9Y18h46t9w1a", "wallet_derivation_index": 17}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "instance": "../dictionary", "errors": [ { "field": "amount", "message": "must be greater than 0", "code": "POSITIVE_REQUIRED" } ]}Get the current merchant TRC-20 deposit address GET
Read-only: returns the merchant's current active TRC-20 deposit address used for incoming USDT collateral (merchant operational balance top-up — payouts, withdrawals and commissions; players pay traders' requisites in PayIn deals, NOT this address). `tenant_id` / `merchant_id` in the request are advisory — with HMAC authentication the scope always resolves from the signed token. Returns `404 Not Found` (problem+json) when no address has been provisioned yet.
Quote the withdrawal fee before submitting GET
Read-only quote of the withdrawal fee that applies to the authenticated merchant BEFORE they submit: the per-counterparty override when set, else the tenant base — resolved through the SAME policy resolver the money path uses, so the quote cannot drift from the charged fee. Optional `amount_usdt_cents` (USDT cents, note — whole-USDT units in the create request) also yields the net amount.