Authorize an x402 payment using a signed mandate
Authorize an x402 payment by debiting a pre-authorized, signed mandate budget automatically, without per-transaction user approval.
Authorizations
Agent registration JWT. Send as Authorization: Bearer <agent-jwt>.
Request Body
Body for authorizing an x402 payment against a signed mandate. Same fields as V1 plus a required mandateId.
ID of the signed mandate to debit.
x402 payment scheme.
Blockchain network the payment settles on.
Payment amount in the asset's base (atomic) units.
Currency symbol of the payment asset.
On-chain contract address of the payment asset.
Recipient wallet address the payment is directed to.
Host of the resource being paid for.
Full URL of the resource being paid for.
Human-readable description of the payment.
Name of the payment token (used for EIP-712 domain).
Version of the payment token (used for EIP-712 domain).
How long the resulting payment signature remains valid, in seconds.
Responses
Payment authorized against the mandate. Response contains xPaymentB64 to attach as the X-Payment header when retrying the original call.
Successful payment authorization. Attach xPaymentB64 as the X-Payment header when retrying the original resource call.
Result status of the authorization.
Base64-encoded X-Payment authorization to attach as the X-Payment header on the retried request.
Decoded X-Payment authorization payload.
Identifier of the recorded payment.
Unix timestamp (seconds) at which the payment authorization expires.
LLM guidance / remediation context for agents.
{
"status": "<string>",
"xPaymentB64": "<string>",
"xPayment": {
"x402Version": "<integer>",
"scheme": "<string>",
"network": "<string>",
"payload": {
"signature": "<string>",
"authorization": {
"from": "<string>",
"to": "<string>",
"value": "<string>",
"validAfter": "<integer>",
"validBefore": "<integer>",
"nonce": "<string>"
}
}
},
"paymentRecordId": "<string>",
"expiresAt": "<integer>",
"payment_model_context": {}
}