upt_xxxxxxxxxxxxxxxx.| Rule | Description |
|---|---|
| Key type | Must be a Micropayment (facilitator) project key |
| Query name | Fixed as apiKey; used for gateway auth only |
apiKey.x-api-key = {{apiKey}}.apiKey = {{apiKey}} as a query parameter on each request.UTF-8POST / PUT bodies are typically application/json (Webhook and other cases follow Facilitator requirements)X-Request-ID for tracing (forwarded upstream)| Type | Description |
|---|---|
| Business success | HTTP status and JSON body from Facilitator |
| Gateway error | HTTP 4xx/5xx with UPTICK gateway JSON (see Error Codes) |
| Header | Purpose |
|---|---|
Accept | Content negotiation |
Content-Type | Request body type |
X-Request-ID | Request trace ID |
X-Webhook-Signature | Webhook signature verification |
| Endpoint | Condition | Price (UPTICK/call) |
|---|---|---|
POST /verify | Standard verify | 0.00002 |
POST /verify | paymentPayload.payload.type = voucher | 0.0008 |
POST /settle | — | 0.002 |
| Other endpoints | health, supported, webhook, payer-quota, orders | No per-call fee |
type is resolved in this order:paymentPayload.payload.type (x402 v2 standard, recommended)type (legacy compatibility)voucher (case-insensitive), the 0.0008 rate applies.| Endpoint type | Minimum balance |
|---|---|
verify / settle | ≥ fee for that call |
| Other endpoints | ≥ 0.1 UPTICK (platform minimum) |
| HTTP | error | Description | Action |
|---|---|---|---|
| 401 | UNAUTHORIZED | Missing/invalid API Key, or non-micropayment project key | Check key and project type |
| 402 | INSUFFICIENT_GAS_BALANCE | Insufficient Gas balance | Top up and retry |
| 404 | NOT_FOUND | Unknown gateway path | Check URL |
| 429 | RATE_LIMITED | Exceeded per-minute limit | Reduce rate or request higher quota |
| 503 | FACILITATOR_UNAVAILABLE | Micropayment service unavailable | Retry later |
| 502 | — | Upstream timeout or connection failure | Retry later |
{
"error": "INSUFFICIENT_GAS_BALANCE",
"message": "Insufficient gas balance for x402 call",
"requiredFee": 0.0008,
"currentBalance": 0.05
}{
"error": "UNAUTHORIZED",
"message": "Invalid API key or wrong project type (requires type=facilitator)"
}| Group | Gateway Path | Method | Billable |
|---|---|---|---|
| Basics | /health | GET | No |
| Basics | /supported | GET | No |
| x402 Core | /verify | POST | Yes |
| x402 Core | /settle | POST | Yes |
| Webhook | /webhook/config | POST | No |
| Webhook | /webhook/config | GET | No |
| Webhook | /webhook/config/{merchantId} | GET | No |
| Webhook | /webhook/events | GET | No |
| Webhook | /webhook/test | POST | No |
| Webhook | /webhook/receive | POST | No |
| Payer Quota | /payer-quota/signing-domain | GET | No |
| Payer Quota | /payer-quota | POST | No |
| Payer Quota | /payer-quota | GET | No |
| Payer Quota | /payer-quota/history | GET | No |
| Payer Quota | /payer-quota | DELETE | No |
| Orders | /orders | GET | No |
| Orders | /orders/{orderId} | GET | No |
/health response (typically 200)./supported response.| Condition | Price |
|---|---|
paymentPayload.payload.type = voucher | 0.0008 UPTICK |
| Other | 0.00002 UPTICK |
{
"x402Version": 2,
"paymentPayload": {
"x402Version": 2,
"accepted": {
"scheme": "batch-settlement",
"network": "eip155:1170"
},
"payload": {
"type": "voucher",
"channelConfig": {
"payer": "0x20fa255492c0c5fe5b6e9513ad4dc565d72ed885",
"payerAuthorizer": "0x20fa255492c0c5fe5b6e9513ad4dc565d72ed885",
"receiver": "0x5a08f46b5c6c5c25a58cd12f51ebe3ffadb67f56",
"receiverAuthorizer": "0xd7df9727cac53059832607a6ad4b25feb6fd04ff",
"token": "0x5b7cdc0de74e158eac21d1d054bc25d0ad56b773",
"withdrawDelay": 900,
"salt": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
"voucher": {
"channelId": "0x28e7764ab6408119c3e086e98a7a6582564d151d4334962c9b51c5b15695dd0b",
"maxClaimableAmount": "1100",
"signature": "0x4ce01ae20e04dcb525e333b28211a22e38f92e345223fa22a9d5887f786f6dee13d0e819d9b8887281304e5254de5494ebdbbea26da6fdc89c01b9c79583db491b"
}
}
},
"paymentRequirements": {
"scheme": "batch-settlement",
"network": "eip155:1170",
"asset": "0x5b7cdc0de74e158eac21d1d054bc25d0ad56b773",
"amount": "10",
"payTo": "0x5a08f46b5c6c5c25a58cd12f51ebe3ffadb67f56",
"maxTimeoutSeconds": 3600,
"extra": {
"withdrawDelay": 900,
"receiverAuthorizer": "0xd7df9727cac53059832607a6ad4b25feb6fd04ff"
}
}
}| Gateway | Method | Upstream | Description |
|---|---|---|---|
/webhook/config | POST | /api/v1/webhook/config | Configure Webhook |
/webhook/config | GET | /api/v1/webhook/config | List all configs |
/webhook/config/{merchantId} | GET | /api/v1/webhook/config/{merchantId} | Get config by merchant |
/webhook/events | GET | /api/v1/webhook/events | List supported event types |
/webhook/test | POST | /api/v1/webhook/test | Send test notification |
/webhook/receive | POST | /api/v1/webhook/receive | Debug receive endpoint |
| Gateway | Method | Upstream | Description |
|---|---|---|---|
/payer-quota/signing-domain | GET | /api/v1/payer-quota/signing-domain | Query: network |
/payer-quota | POST | /api/v1/payer-quota | Register/update quota |
/payer-quota | GET | /api/v1/payer-quota | Query: payer, network |
/payer-quota/history | GET | /api/v1/payer-quota/history | Query: payer, network? |
/payer-quota | DELETE | /api/v1/payer-quota | Query: payer, network |
| Gateway | Method | Upstream | Description |
|---|---|---|---|
/orders | GET | /api/v1/micropayment/orders | Paginated list; Query: payer/payTo (at least one), recordType, network, status, page, pageSize |
/orders/{orderId} | GET | /api/v1/micropayment/orders/{orderId} | Order detail |
The Facilitator orders module provides read-only APIs; there is no create-order POST.
paymentPayload.payload.type in your JSON is "voucher".| File | Purpose |
|---|---|
micropayment-api-external.en.md | Copy into Apifox Docs, or use as team reference |
micropayment-openapi.en.yaml | Apifox → Import → OpenAPI to generate APIs and mocks |
baseUrl: e.g. https://developapi.testweb.uptick.network/v1/x402apiKey: your Micropayment project keyx-api-key: {{apiKey}}.| Version | Date | Notes |
|---|---|---|
| v1.0 | 2026-05 | Initial release: auth, billing, errors, x402 / Webhook / Payer Quota / Orders |