← Accept your first crypto payment

Assets and treasury

Supported registry, valuation and commission top-ups.

Enabled registry

GET /assets returns an array of supported enabled assets: id, chain, symbol, contractAddress, decimals, createdAt. There is no isEnabled field. Internal asset UUIDs are used for dashboard and service-balance top-ups. Normal POST /v1/invoices uses asset and network symbols. Empty means no supported option; do not invent one.

Amount and valuation

Only configured USDT/USDC with 6 or 18 decimals are supported; TRON USDC and USDC.e are excluded. Amounts are token units. USD accounting uses an explicit fixed 1:1 par convention, not a market quote or redemption guarantee. No cache/external FX fallback exists. Reject signs, exponent notation, zero, excessive scale and values reaching 10^18. Reservation increments one asset unit; fees/rewards quantize down to 18 decimals. Registry contracts/decimals require operator verification.

Create deposit

POST /treasury/deposits accepts assetId, amount (decimal string), and optional owner-scoped idempotencyKey. The response includes id, assetId, expectedAmount, address, status, expiresAt, createdAt. Poll GET /treasury/deposits/:id for the asset and authoritative state. Send the returned expectedAmount only on the displayed network. CREDITED/CANCELLED/EXPIRED instructions are closed.

{ "assetId": "uuid", "amount": "50", "idempotencyKey": "topup-1024" }

Lists

page is 1–1000000 and limit is 1–100. Invoice/deposit lists return invoices/deposits, total, totalPages. Billing ledger returns entries and pagination.totalPages. Webhook deliveries return data and pagination.pages; delivery fields include attempt and statusCode. Wallet/key/endpoint lists keep array responses, default limit 100, with optional page/limit. Other lists default to 20.