HTTP 402 — Payment Required
x402 protocol

Gift cards & top-ups, paid with USDC on Solana.

10,001+ brands, 180 countries. One API call. No accounts, no OAuth, no friction.


How it works
STEP 1 — place order, no payment yet
$ curl -s -D - -X POST https://solana.x402.cryptorefills.com/v1/orders \\
    -H "Content-Type: application/json" \\
    -d '{
      "email": "shopper@my-ai-agent.xyz",
      "items": [{
        "product_id": "amazon-us-25",
        "beneficiary_account": "gift@recipient.com",
        "product_value": 25
      }]
    }'

< HTTP/1.1 402 Payment Required
< X-Session-Id:      8f2a91c4-1c38-47bb-abad-7acb93c35089
< PAYMENT-REQUIRED: eyJ4NDAyVmVyc2lvbiI6MiwiYWNjZXB0cyI6W3sic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoic29sYW5hOjVleWt0NFVzRnY4UDhOSmRUUkVwWTF2enFLcVpLdmRwIiwibWF4QW1vdW50UmVxdWlyZWQiOiIyNTU1OTk5MSIsImFzc2V0IjoiRVBqRldkZDVBdWZxU1NxZU0ycU4xeHp5YmFwQzhHNHdFR0drWnd5VER0MXYiLCJleHRyYSI6eyJmZWVQYXllciI6IkJGSzlUTEMzZWRiMTNLNnY0WXlIM0R3UGI1RFNVcGtXdmI3WG5xQ0w5YjRGIn0sInBheVRvIjoiOEp4UXpucWFBZ0RnYXJrZDlNTmh5ckREUkY3enVMS3ZWODZXYkdWNTRGQTcifV19

# decoded:
{
  "x402Version": 2,
  "accepts": [{
    "scheme":            "exact",
    "network":           "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
    "maxAmountRequired": "25559991",  // $25.56 USDC (6 decimals)
    "asset":             "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",  // USDC SPL mint
    "extra":             { "feePayer": "BFK9TLC3edb13K6v4YyH3DwPb5DSUpkWvb7XnqCL9b4F" },
    "payTo":             "8JxQznqaAgDgarkd9MNhyrDDRF7zuLKvV86WbGV54FA7",  // per-order Solana wallet
    "description":      "$25.56 USDC — Amazon.com US (range)"
  }]
}
STEP 2 — partially-sign SPL transfer, retry with signature
# Build an SPL Transfer to ATA(owner=payTo, mint=asset) for maxAmountRequired,
# partially-sign the versioned transaction with your wallet. CDP countersigns
# as feePayer (extra.feePayer above) and broadcasts.

$ curl -s -X POST https://solana.x402.cryptorefills.com/v1/orders \\
    -H "Content-Type: application/json" \\
    -H "X-Session-Id: 8f2a91c4-1c38-47bb-abad-7acb93c35089" \\
    -H "PAYMENT-SIGNATURE: eyJ4NDAyVmVyc2lvbiI6Miwic2NoZW1lIjoiZXhhY3QiLCJuZXR3b3JrIjoic29sYW5hOjVleWt0NFVzRnY4UDhOSmRUUkVwWTF2enFLcVpLdmRwIiwicGF5bG9hZCI6eyJ0cmFuc2FjdGlvbiI6IjxiYXNlNjQtcGFydGlhbGx5LXNpZ25lZC10eD4ifX0" \\
    -d '{ ...same body... }'

< HTTP/1.1 200 OK
{
  "order_id":                    "cr-8f2a91",
  "status":                      "processing",
  "estimated_delivery_seconds":  60,
  "poll_url":                    "/v1/orders/cr-8f2a91"
}