🎬 New — watch the 2-minute guide videos →

Credits & billing

BharatRouter is prepaid, in rupees. You top up a credit balance; each request debits it at the per-token rates shown on the model catalog (₹ per million tokens, no FX surprises). There is no card on file and nothing to cancel — when credits run out, standard keys stop with insufficient_credits until you top up again.

₹100 to start

Every new org gets ₹100 of credit at signup — enough to evaluate seriously before paying anything. It appears in the ledger as a promo entry and is spendable immediately.

Topping up

Top-ups go through Razorpay (UPI, cards, netbanking) from the dashboard. During beta a single top-up is ₹100–₹1,000 (whole rupees). Before the first top-up you'll be asked for a billing address — GST place-of-supply requires it; the PIN-code field auto-fills city and state.

Credit is applied when Razorpay confirms capture, through two idempotent paths (checkout callback and webhook), so a flaky redirect can't double-credit or lose a payment.

Promo codes

A promo code adds bonus credit on top of a top-up. Enter it at checkout — it is validated before you pay (POST /me/billing/promo/check) and consumed when the payment captures. One redemption per org per code; invalid or already-used codes fail with promo_invalid / promo_redeemed before any money moves.

How requests are debited

Ledger & usage

GET /me/billing (the dashboard's Billing tab) shows the money-event ledger — top-ups, promo credits, signup credit — kept deliberately separate from per-request noise. Request-level detail lives in usage analytics (GET /me/usage, GET /me/usage/daily): requests and tokens per key and per model, today (IST) and over 30 days.

Low-balance alerts

Set a threshold (₹) on the dashboard and you'll get an email when the balance drops below it — at most one per 24 hours. Clear the threshold to disable.

Receipts & GST

Every captured payment has a printable receipt at GET /me/billing/receipts/:paymentId — payment ID, order ID, amount, payer, billing address, method, and paid-at time (IST). These are payment receipts, not GST tax invoices; GST invoicing arrives once our GSTIN registration completes.

Billing-related errors

CodeHTTPMeaning
insufficient_credits402Standard key with zero/negative balance — top up to resume.
budget_exceeded429The key's monthly ₹ budget is spent — raise it or wait for the new month (IST).
address_required400Add a billing address before creating an order.
promo_invalid / promo_redeemed400Bad, expired, or already-redeemed promo code.

Full error envelope and the complete code table: Errors.