Skip to main content

x402Handlers

Functions

narrowHandlers()

narrowHandlers(handlers, criteria): FacilitatorHandler[]
Defined in: packages/types/src/x402-handlers.ts:39 Returns handlers whose capabilities match the given network and asset. Handlers without capabilities are excluded. Empty networks or assets arrays act as wildcards (match everything). This supports the HTTP handler backward-compat path where the handler delegates all routing to the remote facilitator.

Parameters

handlers
FacilitatorHandler[]
criteria
asset
string
network
string

Returns

FacilitatorHandler[]

resolveX402Requirements()

resolveX402Requirements(handlers, pricing, resource, opts?): Promise<object[]>
Defined in: packages/types/src/x402-handlers.ts:81 Converts ResourcePricing entries into enriched x402PaymentRequirements by routing through handlers. For each handler with capabilities, matches pricing entries by network and asset, constructs skeletal x402 requirements using the handler’s declared schemes, then calls handler.getRequirements() to enrich them with protocol-specific fields (extras, timeouts, etc.). Handlers without capabilities are skipped. If a handler throws, the exception propagates to the caller.

Parameters

handlers
FacilitatorHandler[]
pricing
ResourcePricing[]
resource
string
opts?
ResolveOpts

Returns

Promise<object[]>

settleX402Payment()

settleX402Payment(handlers, requirements, payment): Promise<{ errorReason?: string; extensions?: object; network: string; payer?: string; success: boolean; transaction: string; }>
Defined in: packages/types/src/x402-handlers.ts:126 Routes a settlement request to the appropriate handler. Narrows handlers by capabilities (network + asset), then iterates handleSettle until one returns a non-null result. If a handler throws, the exception propagates immediately.

Parameters

handlers
FacilitatorHandler[]
requirements
amount
string = "string.numeric"
asset
string = "string"
extra?
object = "object"
maxTimeoutSeconds
number = "number.integer"
network
string = "string"
payTo
string = "string"
scheme
string = "string"
payment
accepted
{ amount: string; asset: string; extra?: object; maxTimeoutSeconds: number; network: string; payTo: string; scheme: string; } = x402PaymentRequirements
accepted.amount
string = "string.numeric"
accepted.asset
string = "string"
accepted.extra?
object = "object"
accepted.maxTimeoutSeconds
number = "number.integer"
accepted.network
string = "string"
accepted.payTo
string = "string"
accepted.scheme
string = "string"
extensions?
object = "object"
payload
object = "object"
resource?
{ description?: string; mimeType?: string; url: string; } = x402ResourceInfo
resource.description?
string = "string"
resource.mimeType?
string = "string"
resource.url
string = "string"
x402Version
2 = "2"

Returns

Promise<{ errorReason?: string; extensions?: object; network: string; payer?: string; success: boolean; transaction: string; }>

verifyX402Payment()

verifyX402Payment(handlers, requirements, payment): Promise<{ invalidReason?: string; isValid: boolean; payer?: string; }>
Defined in: packages/types/src/x402-handlers.ts:149 Routes a verification request to the appropriate handler. Same pattern as settleX402Payment but calls handleVerify. Handlers without handleVerify are skipped.

Parameters

handlers
FacilitatorHandler[]
requirements
amount
string = "string.numeric"
asset
string = "string"
extra?
object = "object"
maxTimeoutSeconds
number = "number.integer"
network
string = "string"
payTo
string = "string"
scheme
string = "string"
payment
accepted
{ amount: string; asset: string; extra?: object; maxTimeoutSeconds: number; network: string; payTo: string; scheme: string; } = x402PaymentRequirements
accepted.amount
string = "string.numeric"
accepted.asset
string = "string"
accepted.extra?
object = "object"
accepted.maxTimeoutSeconds
number = "number.integer"
accepted.network
string = "string"
accepted.payTo
string = "string"
accepted.scheme
string = "string"
extensions?
object = "object"
payload
object = "object"
resource?
{ description?: string; mimeType?: string; url: string; } = x402ResourceInfo
resource.description?
string = "string"
resource.mimeType?
string = "string"
resource.url
string = "string"
x402Version
2 = "2"

Returns

Promise<{ invalidReason?: string; isValid: boolean; payer?: string; }>