Skip to main content
POST
Verify Permission

Authorizations

Authorization
string
header
required

Your Nevermined API Key (starts with 'nvm:'). Get one at nevermined.app under Settings > API Keys.

Body

application/json

Verification request

Body of POST /x402/verify (SettlePermissionsDto). paymentRequired and x402AccessToken are both required and the handler runs a ValidationPipe, so a body missing either is rejected with 400 before verification runs. planId, subscriberAddress, agentId, the endpoint and the HTTP verb are read out of the token — never sent alongside it. The settle-only fields agentRequestId, batch and marginPercent pass validation here but the verify handler does not read them: agentRequestId is generated by this endpoint and returned in the response, for you to pass back on settle.

paymentRequired
object
required

The server's 402 PaymentRequired response. The facilitator validates that the scheme accepted inside the token matches one of accepts.

x402AccessToken
string
required

The x402 payment payload, base64-encoded — the token minted by POST /x402/permissions.

Example:

"eyJ4NDAyVmVyc2lvbiI6MiwicmVzb3VyY2UiOnsidXJsIjoiaHR0cHM6Ly9teWFnZW50LmFpL2FwaS92MS90YXNrcyJ9LCJhY2NlcHRlZCI6eyJzY2hlbWUiOiJudm06ZXJjNDMzNyIsIm5ldHdvcmsiOiJlaXAxNTU6ODQ1MzIiLCJwbGFuSWQiOiI0NDc0Mjc2MzA3NjA0NzQ5NzY0MDA4MDIzMDIzNjc4MTQ3NDEyOTk3MDk5MjcyNzg5NjU5Mzg2MTk5NzM0NzEzNTYxMzEzNTU3MTA3MSIsImV4dHJhIjp7InZlcnNpb24iOiIxIiwiYWdlbnRJZCI6IjgwOTE4NDI3MDIzMTcwNDI4MDI5NTQwMjYxMTE3MTk4MTU0NDY0NDk3ODc5MTQ1MjY3NzIwMjU5NDg4NTI5Njg1MDg5MTA0NTI5MDE1IiwiaHR0cFZlcmIiOiJQT1NUIn19LCJwYXlsb2FkIjp7InNpZ25hdHVyZSI6IjB4MTIzNCIsImF1dGhvcml6YXRpb24iOnsiZnJvbSI6IjB4ZjM5RmQ2ZTUxYWFkODhGNkY0Y2U2YUI4ODI3Mjc5Y2ZmRmI5MjI2NiIsInNlc3Npb25LZXlzUHJvdmlkZXIiOiJ6ZXJvZGV2Iiwic2Vzc2lvbktleXMiOltdfX0sImV4dGVuc2lvbnMiOnt9fQ=="

maxAmount
string

Maximum credits to verify against the payer's balance. Send it as a decimal STRING: the value is parsed with BigInt() and then required to be a bigint, so a JSON number is rejected with 400.

Example:

"2"

Response

201 - application/json

Verification result

x402 facilitator verify response. isValid carries the answer; everything else is contextual. Fields after network are Nevermined extensions to the x402 facilitator spec.

isValid
boolean
required

Whether the payment authorization is valid

Example:

true

invalidReason
string

Reason for invalidity. Only present when isValid is false.

Example:

"Insufficient balance"

payer
string

Address of the payer's wallet

Example:

"0xD4f58B60330bC59cB0A07eE6A1A66ad64244eC8c"

network
string

Network identifier (CAIP-2 chain id, or the payment provider for fiat rails)

Example:

"eip155:84532"

agentRequestId
string

Agent request id for observability tracking (Nevermined extension). Pass it back on POST /x402/settle.

Example:

"arId-123e4567-e89b-12d3-a456-426614174000"

urlMatching
string

URL pattern that matched the endpoint. Only present when endpoint validation is performed.

Example:

"/api/v1/agents/:agentId/tasks"

agentRequest
object

Agent request context for observability (Nevermined extension)

Example: