/api/v1/p2p/merchant/wallet/withdrawalsСтейджThe merchant's withdrawal history: the manual approval queue merged with executed ledger debits, deduplicated by the on-chain transaction hash. Statuses: PENDING (awaiting approval), APPROVED (approved, not yet in broadcast), COMPLETED (broadcast, tx hash present), CANCELLED (rejected by the operator). The same keyset pagination as deposits.
Authorization
MerchantToken MerchantSignature MerchantTimestamp The merchant's public token (64 hex characters), issued at onboarding.
In: header
HMAC-SHA256 signature (a single scheme for all endpoints).
Format: t=<unix_seconds>,v1=<hex_hmac_sha256>
where hex_hmac = HMAC-SHA256(webhook_secret, "<unix_seconds>.<raw_body>").
Replay window: 5 minutes (a 60-second drift into the future is allowed).
In: header
Unix time of the request in seconds. Signature window: 5 minutes back / 60 seconds forward.
In: header
Query Parameters
The maximum number of results returned (20 by default, 100 at most).
int321 <= value <= 10020An opaque pagination token returned by the previous page.
Response Body
application/json
application/problem+json
application/problem+json
curl -X GET "https://example.com/api/v1/p2p/merchant/wallet/withdrawals" \ -H "X-Merchant-Token: <MERCHANT_TOKEN>" \ -H "X-Timestamp: <UNIX_TIMESTAMP>" \ -H "X-Signature: t=<UNIX_TIMESTAMP>,v1=<HEX_HMAC_SHA256>"{ "data": [ { "created_at": "2019-08-24T14:15:22Z", "amount_usdt_cents": 0, "fee_usdt_cents": 0, "net_usdt_cents": 0, "tx_hash": "string", "status": "PENDING", "tron_address": "string" } ], "next_page_token": "string"}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "instance": "../dictionary", "errors": [ { "field": "amount", "message": "must be greater than 0", "code": "POSITIVE_REQUIRED" } ]}{ "type": "../dictionary", "title": "string", "status": 0, "detail": "string", "instance": "../dictionary", "errors": [ { "field": "amount", "message": "must be greater than 0", "code": "POSITIVE_REQUIRED" } ]}Incoming TRC-20 deposits with custody statuses GET GET
The merchant's incoming TRC-20 deposits: ledger credit plus the receiving address lifecycle from DepositSweepWorker (CREDITED / SWEEP_PENDING / SWEEP_FAILED / SWEEP_STUCK / SWEPT). Keyset pagination (AIP-158): page_size 1–100 (default 20), page_token/next_page_token.
Queue a webhook delivery retry (manual retry) POST POST
Queues an immediate re-delivery of ONE of the caller's own webhook deliveries. Only records with a terminal failure qualify (status ERROR or RETRY); PENDING/SUCCESS are rejected with 400 FAILED_PRECONDITION. Rate limit: at most one manual retry per record per 60 seconds (otherwise 429 RESOURCE_EXHAUSTED). Another merchant's callback_id — 403; unknown — 404. The rewritten row is returned with status PENDING, cleared response fields, and the PRESERVED retry_count (unlike the admin retry, which resets the attempt counter). Dual authentication: HMAC pair or cabinet JWT. The body is an empty JSON object.