Skip to main content
POST
Settle an x402 payment

Authorizations

Authorization
string
header
required

Bearer token authentication with a Circle API key. Use this for production settlement after claiming your Facilitator Service seller account.

Body

application/json
x402Version
enum<integer>
required

x402 protocol version. Facilitator Service supports version 2.

Available options:
2
paymentPayload
object
required

x402 v2 payment payload. Includes the payment terms the buyer accepted and the signed EIP-3009 authorization that authorizes the USDC transfer.

paymentRequirements
object
required

Payment terms the seller advertises for an x402 resource. Facilitator Service validates that the buyer's authorization matches these requirements.

Response

Terminal settlement result

success
boolean
required

Whether the transfer settled onchain within the wait window. Check the settlement-status extension to distinguish failed from pending.

Example:

true

payer
string
required

Buyer address recovered from the signed authorization.

Example:

"0x9aE2..."

transaction
string
required

Transaction hash on terminal success. Empty string when settlement is still pending or failed before submission.

Example:

"0x6f9e1d..."

network
string
required

CAIP-2 network identifier for the settled payment.

Example:

"eip155:5042002"

amount
string

Amount in atomic USDC units.

Example:

"1000000"

errorReason
enum<string>

Terminal failure code. Present when success is false and the payment reached a terminal failed state. Omitted on pending responses.

Available options:
invalid_x402_version,
unsupported_scheme,
invalid_network,
invalid_payment_requirements,
invalid_payload,
invalid_exact_evm_payload_recipient_mismatch,
invalid_exact_evm_payload_authorization_value_mismatch,
invalid_exact_evm_payload_authorization_valid_after,
invalid_exact_evm_payload_authorization_valid_before,
invalid_exact_evm_payload_signature,
invalid_transaction_state,
insufficient_funds
Example:

"invalid_exact_evm_payload_signature"

extensions
object

x402 extensions. On pending responses, Facilitator Service returns a settlement-status extension with paymentId, statusUrl, retryAfterMs, and expiresAt.

Example: