API reference
Every endpoint, what it takes and what it returns.
Base URLs: https://facilitator.amnt.io (mainnet) and https://testnet.facilitator.amnt.io (testnet). No auth.
POST /verify
Checks a payment without moving money.
{ "paymentPayload": { "x402Version": 2, "...": "..." }, "paymentRequirements": { "scheme": "exact", "network": "hedera:mainnet", "...": "..." } }{ "isValid": true, "payer": "0.0.12345" }When it's refused, isValid is false with invalidReason and invalidMessage. A payment that already settled is refused as already_settled.
POST /settle
Same body as /verify. Signs as fee payer, sends the transaction, waits for confirmation.
{ "success": true, "transaction": "0.0.10774954@1789388081.467032996", "network": "hedera:mainnet", "payer": "0.0.12345" }On failure success is false with errorReason and errorMessage. Sending the same payment twice returns already_settled and the first transaction id.
GET /supported
The networks this instance settles, with each fee payer.
{ "kinds": [{ "x402Version": 2, "scheme": "exact", "network": "hedera:mainnet", "extra": { "feePayer": "0.0.10774954" } }], "extensions": ["bazaar"], "signers": { "hedera:*": ["0.0.10774954"] } }GET /health
200 when every fee payer can pay, 503 when one is low.
{ "status": "ok", "env": "mainnet", "chains": [{ "network": "hedera:mainnet", "feePayer": "0.0.10774954", "balance": 10.4, "unit": "HBAR", "lowBalance": false }] }GET /stats
Query: env (mainnet or testnet), network (optional CAIP-2 id), days (1 to 365, default 14).
Returns settlements, failed, volumeAtomic, successRate, avgAtomic, medianSettleMs, payers, a daily series, byNetwork and byStatus. Amounts are atomic USDC: divide by 1,000,000.
GET /transactions
Query: env, network, status (settled, failed, rejected), limit (1 to 100), cursor (from the last page).
Each row has network, status, payer, pay_to, amount_atomic, resource_url, tx_id, error_reason, total_ms, created_at and an explorer link.
GET /discovery/resources
The Hedera Bazaar. Same shape as Coinbase's /discovery/resources. Query: limit, offset. Entries drop off after 30 days with no settled payment.
Errors
| Status | Meaning |
|---|---|
400 | Your request is malformed. The body says which field. Don't retry it. |
503 | The facilitator can't start (misconfigured) or a fee payer is low. Retry later. |