amnt docs
x402 facilitator

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.

Request
{ "paymentPayload": { "x402Version": 2, "...": "..." }, "paymentRequirements": { "scheme": "exact", "network": "hedera:mainnet", "...": "..." } }
Response
{ "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.

Response
{ "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

StatusMeaning
400Your request is malformed. The body says which field. Don't retry it.
503The facilitator can't start (misconfigured) or a fee payer is low. Retry later.

On this page