An x402 client requests a resource, reads the payment terms returned with HTTP 402, and sends a signed payment payload. In a common x402 v2 flow, the server verifies and settles payment before returning the resource. Verification alone does not guarantee delivery.
The steps below explain the HTTP headers and payment setup, then show Dutiful's Company Report order flow. Sellers may have their own access requirements. For background, see What is x402?
The specification README describes a typical exchange between a client, a resource server and an optional facilitator, while noting that servers have flexibility and that the first two steps are unnecessary when the client already knows the payment details. In the typical flow:
Scheme and network. A scheme is a logical way of moving money. The spec README names exact (a fixed amount per request), upto (authorize a maximum, settle actual usage) and batch-settlement (EVM: escrow and off-chain vouchers redeemed onchain in batches). A scheme is implemented per network, so clients and facilitators must explicitly support the same (scheme, network) pair; exact on Ethereum works differently from exact on Solana.
Facilitator. A server that verifies and executes payments for one or more networks. The design goals state that a scheme must not let the facilitator or the resource server move funds other than as the client intended, and that gas and RPC details should be abstracted away from client and server. For production mainnet routes the README advises choosing a facilitator model explicitly - a production provider for your network, your own facilitator, or self-facilitation inside the resource server - rather than assuming the public x402.org facilitator is the default production path.
Client libraries. Reference SDKs exist for TypeScript (the @x402 package family, including a minimal fetch client), Python (pip install x402) and Go. SDK support varies by language, scheme and network. A suitable client integration can handle the payment challenge and signing flow, but still needs a funded wallet or signer, spending authority and service-specific request handling.
Dutiful sells Company Reports over x402 and documents its flow publicly in its developer documentation. The order flow itself is specific to this API; the payment mechanics are standard x402 v2.
Dutiful's developer documentation states the implementation details: the signature's validBefore must sit inside the maxTimeoutSeconds window given in the requirements (30 minutes); sign a fresh payload per order; send uint256 values as decimal strings, not JSON numbers; the buyer pays no gas because the facilitator broadcasts and settles. MCP exposes check_coverage (free), create_order (returns payment requirements; does not pay) and get_report. Payment still requires the separate HTTP payment flow or an MCP client with x402 wallet support.
Before connecting a client, check that it has compatible payment-challenge handling, a funded signer with an approved spending scope, and the service's order and retrieval logic. HTTP access alone is not enough. Wallet or library support must match the offered scheme, network and asset; service-specific access requirements can also apply.
Reference implementation README