Skip to main content

Download handshake

1

Request content

The client requests GET /api/paywalls/:id/download without a payment proof.
2

Read the payment requirement

The server returns HTTP 402 with the exact network, currency, amount, recipient, and resource requirement.
3

Submit the transfer

The buyer wallet sends the exact native or configured ERC-20 transfer on the required chain.
4

Encode the proof

The client base64-encodes a JSON proof containing the scheme, transaction hash, and payer.
5

Retry the download

The client sends the proof in the PAYMENT-SIGNATURE header. After verification, the server returns the content and a PAYMENT-RESPONSE receipt.
Proof shape

Idempotent recovery

The confirmed transaction hash and payer identify the proof. A valid proof may be reused for the same resource, recipient, token, and amount to recover an interrupted delivery. It cannot settle a different payment requirement.
Demo exact and sandbox proofs are available only when explicit demo mode is enabled outside production. They move no funds and never fabricate transaction hashes.