# Xanax > Xanax is agent checkout: independent merchants list products here, and AI agents buy them over x402 (HTTP 402) with USDC on Base. Payment goes straight to the merchant's wallet. Works with PayBox. ## How to buy (for agents) 1. Search, free: GET https://xanax-production.up.railway.app/api/products?q= Each product has: id, merchant, name, description, price_usd, in_stock, and buy.{url, required_buyer_fields, body_schema, body_example}. 2. Buy: POST https://xanax-production.up.railway.app/buy/?qty=<1-10> - Body (JSON): {"buyer": {"name": "...", "email": "...", "phone": "...", "shipping_address": "...", "note": "..."}}. Include every field listed in required_buyer_fields. - Price = price_usd x qty. It depends only on the URL, never the body. - The first, unpaid request returns 402 with the requirements in the PAYMENT-REQUIRED header (x402 v2, scheme "exact", network eip155:8453). Pay and retry with the PAYMENT-SIGNATURE header. - If a required buyer field is missing, the paid request fails with 400 BEFORE settlement: you are not charged. - Sold-out products return 409 instead of 402. 3. With PayBox: call use_service with { credential_id, url: "", method: "POST", body: {"buyer": {...}} }. PayBox probes, asks the user to approve if needed, pays and returns our receipt in output.value.response.body. If use_service comes back pending (approval or signature), the payment finishes in PayBox's window: after the user approves, call get_request with that request_id until status is success, then read output.value.response.body. ## Receipt (200 response) { "status": "paid", "order_id": "xnx_7k2m9q4w8e3r5t", "merchant": "Ada's Roastery", "item": "Single-origin coffee, 250g", "quantity": 1, "amount_usd": "12.00", "currency": "USDC", "network": "base", "tx_hash": "0xabc123", "explorer_url": "https://basescan.org/tx/0xabc123", "merchant_notified": true, "next_steps": "Ada's Roastery has your order and will contact you at the email you provided.", "receipt_url": "https://example.com/r/xnx_7k2m9q4w8e3r5t" } Digital products also include "delivery": {"type": "download", "download_url": "...", "expires_at": "..."}. Relay the "message" field to the user verbatim: it has the order ID, the download link (digital) and the PDF receipt link. Lost it? The buyer can recover the download and receipt at https://xanax-production.up.railway.app/find with the order ID plus their checkout email or paying wallet. ## Live products - beat making course from song making: $0.10 USDC. POST https://xanax-production.up.railway.app/buy/p_66pucttw5q (requires: name) - Singlet from Vice: $0.02 USDC. POST https://xanax-production.up.railway.app/buy/p_hhe8ecqvfr (requires: name) - Cloth from Clot: $0.10 USDC. POST https://xanax-production.up.railway.app/buy/p_3zq98br78j (requires: name) - Shoe from Storey: $0.10 USDC. POST https://xanax-production.up.railway.app/buy/p_kjj8i4mrxk (requires: nothing) - Photos from Tee: $0.10 USDC. POST https://xanax-production.up.railway.app/buy/p_mfwudn4en6 (requires: name, email, phone, shipping_address) - teevincs from Hey yo: $1.00 USDC. POST https://xanax-production.up.railway.app/buy/p_p9e8at25ri (requires: name, email) - Lagos street-food guide (PDF-style field guide) from Ada's Roastery, Lagos: $0.10 USDC. POST https://xanax-production.up.railway.app/buy/p_lagosguide (requires: nothing) - Single-origin coffee, 250g from Ada's Roastery, Lagos: $0.50 USDC. POST https://xanax-production.up.railway.app/buy/p_zv3jmda8cz (requires: name, email, shipping_address) ## Merchants Sell to agents in 2 minutes: https://xanax-production.up.railway.app/sell