A REST API for stablecoin payments on Arc. Query payments, poll invoice status, and read on-chain settlement data — backed by live event tracking via Circle's Smart Contract Platform.
The ArcFX API lets you read payment and settlement data from the ArcFX protocol on Arc. All responses are JSON. The API has two surfaces:
/api/v1) — requires an API key. This is the developer surface for building integrations./v1) — no key required. Serves public on-chain protocol data (the same endpoints the ArcFX dashboard uses).Testnet-only / unavailable on Mainnet. Agent Evidence is not enabled for the current Arc Mainnet workspace. Its separate mandate and sealed-bundle flow remains available only on deliberate Testnet surfaces.
Testnet-only / unavailable on Mainnet. x402 is deliberately disabled under the active Arc Mainnet profile. Do not use these endpoints for a Mainnet integration.
GET /v1/x402/discovery — scheme, network, asset and the EIP-712 domain to sign againstGET /v1/x402/invoice/:number — returns 402 unpaid; returns the receipt once paidPOST /v1/x402/verify and POST /v1/x402/settle — facilitator-shaped endpointsAuthenticated endpoints require an API key, sent as a Bearer token in the Authorization header:
Authorization: Bearer arcfx_sk_...
Keep your key secret — treat it like a password, and never embed it in client-side code you ship to users.
Generate an integration key with your email (so we can reach you about your integration). It is shown once — copy it immediately. The historical test segment in a key format does not select the active network.
| Parameter | Type | Description |
|---|---|---|
| payer | string | Optional. Filter to payments from a specific wallet address (0x…). |
| limit | integer | Optional. Max results, 1–100. Default 20. |
{
"count": 1,
"payments": [
{
"txHash": "0x4ec3…d6bb",
"payer": "0x63c3…c897",
"recipient": "0x50E6…9c4F",
"token": "USDC",
"gross": "1.000000",
"fee": "0.001500",
"net": "0.998500",
"blockNumber": 45944963,
"blockTime": "2026-06-07T09:15:19.000Z",
"explorer": "https://explorer.arc.io/tx/0x4ec3…"
}
]
}
| Parameter | Type | Description |
|---|---|---|
| number | string | Required. The invoice number you generated (e.g. INV-001). |
| recipient | string | Required. The recipient wallet address (0x…). |
{
"paid": true,
"invoiceNumber": "INV-001",
"recipient": "0x50E6…9c4F",
"payment": {
"txHash": "0x4ec3…d6bb",
"token": "USDC",
"gross": "1.000000",
"blockTime": "2026-06-07T09:15:19.000Z"
}
}
{
"settlements": 8,
"volume": "10.00",
"fees": "0.01",
"uniquePayers": 2
}
| Parameter | Type | Description |
|---|---|---|
| payer | string | Required. Wallet address to break down (0x…). |
| limit | integer | Optional. Max recipients returned. |
| Parameter | Type | Description |
|---|---|---|
| limit | integer | Optional. Max results. Default 20. |
Authenticated endpoints return 401 when the key is missing, malformed, or invalid:
{
"error": "missing_api_key",
"message": "Provide your key as:Authorization: Bearer <key>"
}
Other error codes: invalid_api_key (bad or revoked key), 400 for missing required parameters.