Bitrefill
activeBuy gift cards, eSIMs, mobile top-ups and prepaid cards with USDC via x402. 10,000+ brands across 180+ countries. No API keys or Bitrefill account required — wallet payment and optional SIWX sign-in only.
Settled via Coinbase.
- Transactions · 30d
- 827
- Volume · 30d
- $802.40
- Unique buyers · 30d
- 88
- Uptime · 30d
- 100.0%
- Latency p50
- 290ms
- Reported calls · 30d
- 372
Endpoints (11 live)
GET/x402/invoice/status— Check an invoice status and, with SIWX from the paying wallet, retrieve redemption codes. (0.001 USDC on Base)GET/x402/topups/search— Search mobile top-ups & prepaid airtime for carriers in 180+ countries. Pay in USDC via x402, no account. (0.002 USDC on Base)GET/x402/esims/search— Search prepaid eSIM data plans for 180+ countries and regions. Pay in USDC via x402, no account. (0.002 USDC on Base)POST/x402/invoice/pay— Pay a Bitrefill invoice in USDC via x402 to buy gift cards, eSIMs & mobile top-ups across 180+ countries. (1000 USDC on Base)GET/x402/checkout/info— Discover the Bitrefill x402 storefront: supported networks, the full route flow, and wallet persistence rules. (0.001 USDC on Base)GET/x402/products/detail— Get a product's packages, pricing, and recipient requirements before creating an invoice. (0.001 USDC on Base)POST/x402/invoice/create— Create a price-locked USDC invoice for one or more gift cards, eSIMs, or mobile top-ups. (0.002 USDC on Base)GET/x402/gift-cards/search— Search 10,000+ gift card & voucher brands across 180+ countries by name and country. Pay in USDC via x402, no account. (0.002 USDC on Solana)GET/x402/my/orders— Authenticate by signing the sign-in-with-x challenge with the SAME wallet that paid the invoice. Steps: (1) read the challenge fields from this 402 response's extensions["sign-in-with-x"].info (domain, uri, version, chainId, nonce, issuedAt, expirationTime, statement); (2) build the CAIP-122/EIP-4361 (SIWE) message from them and sign it with your wallet (eip191 personal_sign; smart wallets / EIP-1271 + EIP-6492 are supported); (3) base64-encode a JSON object of the DECOMPOSED fields { domain, address, uri, version, chainId, type: "eip191", nonce, issuedAt, signature } (NOT { message, signature }) and send it in the SIGN-IN-WITH-X request header, then retry. The @x402/extensions sign-in-with-x client (createSIWxClientHook) builds this header for you; pin it to the version the challenge advertises to avoid header-shape drift. Tip: sign this same challenge once at POST /x402/connect to mint a reusable access token; send it as the X-Access-Token: <token> request header to skip both the fee and re-signing on every route until it expires. The one exception is invoice/pay: the token does nothing there — it settles the invoice's real USDC, and the wallet that sends that payment is the payer. (free)GET/x402/my/esims— Authenticate by signing the sign-in-with-x challenge with the SAME wallet that paid the invoice. Steps: (1) read the challenge fields from this 402 response's extensions["sign-in-with-x"].info (domain, uri, version, chainId, nonce, issuedAt, expirationTime, statement); (2) build the CAIP-122/EIP-4361 (SIWE) message from them and sign it with your wallet (eip191 personal_sign; smart wallets / EIP-1271 + EIP-6492 are supported); (3) base64-encode a JSON object of the DECOMPOSED fields { domain, address, uri, version, chainId, type: "eip191", nonce, issuedAt, signature } (NOT { message, signature }) and send it in the SIGN-IN-WITH-X request header, then retry. The @x402/extensions sign-in-with-x client (createSIWxClientHook) builds this header for you; pin it to the version the challenge advertises to avoid header-shape drift. Tip: sign this same challenge once at POST /x402/connect to mint a reusable access token; send it as the X-Access-Token: <token> request header to skip both the fee and re-signing on every route until it expires. The one exception is invoice/pay: the token does nothing there — it settles the invoice's real USDC, and the wallet that sends that payment is the payer. (free)POST/x402/connect— Authenticate by signing the sign-in-with-x challenge with the SAME wallet that paid the invoice. Steps: (1) read the challenge fields from this 402 response's extensions["sign-in-with-x"].info (domain, uri, version, chainId, nonce, issuedAt, expirationTime, statement); (2) build the CAIP-122/EIP-4361 (SIWE) message from them and sign it with your wallet (eip191 personal_sign; smart wallets / EIP-1271 + EIP-6492 are supported); (3) base64-encode a JSON object of the DECOMPOSED fields { domain, address, uri, version, chainId, type: "eip191", nonce, issuedAt, signature } (NOT { message, signature }) and send it in the SIGN-IN-WITH-X request header, then retry. The @x402/extensions sign-in-with-x client (createSIWxClientHook) builds this header for you; pin it to the version the challenge advertises to avoid header-shape drift. Tip: sign this same challenge once at POST /x402/connect to mint a reusable access token; send it as the X-Access-Token: <token> request header to skip both the fee and re-signing on every route until it expires. The one exception is invoice/pay: the token does nothing there — it settles the invoice's real USDC, and the wallet that sends that payment is the payer. (free)
First seen · last seen · last active