Skip to main content
The Bill Payments service is live in Mexico (MXN). You pre-fund Chipi credits in USDC; on each purchase Chipi debits your credits, fulfills with the provider in MXN, and lets you charge your own users however you want (card, transfer, in-app balance — that side is outside Chipi). You earn a configurable markup on every transaction.

At a glance

700+ services

Live SKUs across all 4 categories

170+ brands

Direct integrations with major Mexican carriers and providers

4 categories

Phone, Gift Cards, Bills, Phone Bundles

Earn a markup

Set your own per-transaction markup; we settle in USDC

What’s in the catalog

35 carriers · 379 servicesTop up prepaid phone balance for any major Mexican carrier. Your users pay in USDC, the carrier sees a normal recharge.

Telcel

Telcel

AT&T

AT&T (Iusacell - Nextel)

Movistar

Movistar

BAIT

BAIT

Mimovil

Mimovil

ULTRACEL

ULTRACEL

Axios Mobile

Axios Mobile

VALOR TELECOM

VALOR TELECOM
…and 27 more carriers (FlashMobile, OUI, RediCoppel, FRC Mobile, ABIB, Beneleit, Megamovil, and others).
curl -G "https://api.chipipay.com/v1/skus" \
  --data-urlencode "chipiCategory=RECARGAS" \
  --data-urlencode "carrierName=Telcel" \
  --data-urlencode "limit=20" \
  -H "x-api-key: $CHIPI_PUBLIC_KEY" \
  -H "Authorization: Bearer $CHIPI_CUSTOMER_JWT"
Response is a paginated { data, total, page, limit, totalPages } where each entry in data is an SKU ({ id, name, chipiName, fixedAmount, currency, carrierName, ... }). Pass an id to POST /v1/sku-purchases to charge — see the Node guide.
Logos are hot-linked from the production catalog — when admin updates a logo, this page reflects it on the next docs build with no code change. Carrier and SKU counts are a static snapshot taken on 2026-05-19; the live catalog continues to grow.

Prerequisites

Before your first bill purchase you need three things in place:
  1. A Chipi org with an API key. Get yours from dashboard.chipipay.com → API Keys. Use pk_dev_... while integrating (sandboxed, see below) and pk_prod_... for live traffic.
  2. A pre-funded credits balance. Deposit USDC to your org’s Chipi credits address (visible in the dashboard’s Billing tab). Each PROD purchase debits this balance, not an end-user wallet. DEV purchases never touch it.
  3. A JWKS rule registered for your API key. Every endpoint on this page (catalog reads, purchase POST, status polling) is guarded by Chipi’s BearerTokenGuard and requires both an x-api-key header and a customer JWT in the Authorization: Bearer header. The JWT is issued by your auth provider; Chipi validates it against the JWKS URL you register (typically your auth provider’s .well-known/jwks.json, e.g. https://clerk.yourdomain.com/.well-known/jwks.json).

How it works

  1. Browse the catalog with GET /v1/skus — filter by category + carrierName to find what you need.
  2. Buy with POST /v1/sku-purchases — pass skuId, skuReference (phone number, account, etc.), currencyAmount, and any non-empty string as transactionHash (it’s used as the idempotency key, not as an on-chain hash). Chipi debits your credits balance, returns a PENDING transaction immediately.
  3. Track with GET /v1/sku-purchases/:id — poll until status is SUCCESS or FAILED. Most settle in under 5 seconds.
Full code (auth + the three endpoints + polling) is on the Node guide.

DEV sandbox

Every API key has a DEV (pk_dev_...) and PROD (pk_prod_...) variant. DEV is a true sandbox: every purchase succeeds deterministically, no real credits are debited, and the carrier is never called. Synthetic markers identify sandbox calls:
FieldDEV valuePROD value
ledgerEntryIdstarts with le-dev-real LedgerEntry row id
skuFileNumberstarts with dev-sandbox-the carrier’s actual fulfillment receipt
statusalways SUCCESSPENDINGSUCCESS or FAILED
OrgBalancenever mutateddebited by currencyAmount (converted to USD)
Integrate against DEV freely — your credits balance is untouched and your test phone numbers will never receive an actual recharge. When you’re ready to go live, swap the key prefix to pk_prod_... and the same code path runs against the real carrier.

What you charge your users

How and how much you charge end users is up to you — Chipi never sees the end-user’s payment. We settle the provider in MXN and debit your Chipi credits in USDC (FX rate captured at the time of the call). The optional orgMarkup field on the purchase body lets you record the markup you charged this end-user, which Chipi surfaces in your dashboard analytics.
✅ Verified against the live API on 2026-05-19 with a real production purchase: Virgin $20 MXN recharge to a live phone, settled SUCCESS with TET file number returned in under 5 seconds.