Merchant API (v1)

Server-to-server surface for merchants. Authenticate every call with Authorization: Bearer <api-key>. API keys are stored hashed — treat the issued UUID as a password.

Endpoints

MethodPathPurpose
POST/api/v1/walletsBind a wallet as a sponsorship target
POST/api/v1/intentsCreate a checkout intent (unique USDT address per order)
GET/api/v1/intents?merchantOrderId=Read intent status and bridge fee
POST/api/v1/intents/:id/settleSweep merchant net to treasury after paid
intent.webhookUrlSigned POST on status change (ship on paid)
Webhooks dashboardManage endpoints, event subscriptions, and deliveries
POST/api/v1/sponsorQueue (optionally execute) a chain sponsorship
GET/api/v1/executions?idempotencyKey=Poll execution status
GET/api/v1/balanceYour sponsorship ledger (integrator-scoped)
GET/api/v1/pricingPublic rate card

POST /api/v1/sponsor

FieldTypeNotes
idempotencyKeystringYour unique key; divergent replays → 409
walletAddressstringMust be bound first
chainKeybsc | tron | ton
targetAddressstringThe wallet receiving gas/Energy
requestedAmountinteger stringBSC wei / TON nanoton / Tron Energy ≥ 60,000
executeNowbooleantrue = execute synchronously
json
{
  "execution": { "id": "…", "status": "confirmed", "txHash": "0x…" },
  "readiness": { "chainKey": "tron", "configured": true },
  "billing":   { "platformFeeUsd": "50000", "provisioningFeeUsd": "110000", "quoteId": "…" }
}
Machine endpoints bypass the human login gate — the API key itself identifies your tenant.