Short answer: If you buy LLM API credits for a company, you need three things on paper: a tax invoice for every top-up, a ledger that ties wallet debits to projects, and a rule for who can spend what. AICredits has a GST profile in the billing dashboard, issues invoices for top-ups where GST is enabled, and offers per-key budgets for allocation. This is not tax advice: confirm everything with your CA.
Disclosure: the aicredits.in links are affiliate links and I use the service. Everything about the dashboard below is read from AICredits' frontend code and docs on 16 Oct 2026. I am not a CA, and nothing here is tax, legal or accounting advice.
The awkward moment arrives at month end. Someone on the team paid ₹2,000 for API credits from a personal UPI app, the bookkeeper asks for the invoice, and the answer is a screenshot of a payment success page. A screenshot is not a tax invoice. Finance teams hate this, and they are right to.
Below is the checklist I'd hand a startup founder before the first top-up, plus what the AICredits dashboard actually gives you to work with. For payments in general, start with the UPI top-up guide.
What does the AICredits billing dashboard give you?
From the billing page code I read, these are the finance-relevant pieces:
- A GST profile card. You choose a state (required) and may add a GSTIN (optional). If you enter a 15-character GSTIN, the state is derived from its first two digits, and the legal or business name, address, city and postal code become required. The card says the GSTIN is needed only for a B2B claim.
- A tax invoice per top-up. Generated at the moment payment succeeds. The invoice detail shows invoice number, issue time, seller GSTIN, buyer GSTIN if you gave one, place of supply, SAC code, taxable amount, CGST and SGST (or IGST) at the stated rate, and the gross amount. A PDF download is available from the transaction row.
- A warning before you pay. The page tells you the invoice cannot be edited afterwards and asks you to check your tax details first.
- A transaction history with the invoice number and tax split on each top-up row. Older transactions from before GST invoicing simply show without an invoice.
Two qualifiers matter. The GST card only appears when GST is enabled on your account (gst_enabled in the code), so you may not see it on day one. And I have not seen a generated invoice for my own account while writing this, so I can't tell you how a particular one is worded. Open your Billing page, look for the GST profile, and top up the minimum to see a real one before you commit a bigger amount.
What should a startup finance team verify, in order?
Treat this as a checklist, not a guarantee. Every line is something to confirm, not something I'm confirming for you.
- Who is the buyer on the invoice? The company, not the founder's personal account. Sign up with a company email and enter the company's legal name.
- GSTIN and state. Enter them before the first payment. Remember the invoice is immutable.
- Which invoice for which payment. Match each wallet top-up to an invoice number and a bank or UPI debit entry.
- What the invoice covers. A top-up invoice covers the purchase of credits, not individual API calls. Ask your CA how prepaid credit should be recognised, as that affects when the expense lands.
- Tax split. Check that CGST/SGST versus IGST matches the place of supply you expect from your state and the seller's state.
- Gateway fee. The documented Razorpay charge is about 2.36% (2% plus 18% GST), and it affects how much credit a rupee buys. The dashboard computes a quote server-side; keep a copy of it with the invoice.
- Expiry. Credits expire one year after purchase, first-in, first-out. Ask whether unused expiring credit needs any treatment at year end.
- Input credit. Whether your startup can claim input tax credit on these invoices is a question for your CA. I'm deliberately not answering it, and neither does the AICredits dashboard.
How do you keep an INR ledger of LLM spend?
Three sources, from least to most granular:
- Top-up transactions: the billing page shows them; the beta management API exposes
GET /api/v1/mgmt/transactionswith scopetransactions:read, paginated up to 100 per page. - Usage totals:
GET /api/v1/mgmt/usage/statsfor requests, cost and tokens, andusage/dailyfor cost per day over 30 days. - Per-request log:
GET /api/v1/mgmt/usage/exportreturns the log as CSV, up to 10,000 rows, withusage/cost-per-modelfor the model split.
The management API is in beta, so the surface may change. Details and a script are in the management API post.
Here is a month-end export script that writes the transactions to a CSV your bookkeeper can open. It is untested: I haven't run it against the live API, and the response field names come from the documented example, so adjust if yours differ.
import csv
import os
import requests
BASE = "https://api.aicredits.in/api/v1/mgmt"
HEADERS = {"Authorization": f"Bearer {os.environ['AICREDITS_MGMT_KEY']}"} # akm- key, scope transactions:read
def fetch_all_transactions():
page, rows = 1, []
while True:
r = requests.get(f"{BASE}/transactions", headers=HEADERS,
params={"page": page, "limit": 100}, timeout=30)
r.raise_for_status()
data = r.json()
rows.extend(data["transactions"])
if page >= data["total_pages"]:
return rows
page += 1
rows = fetch_all_transactions()
with open("aicredits_transactions.csv", "w", newline="") as f:
w = csv.DictWriter(f, fieldnames=["id", "created_at", "type", "status", "amount", "description"])
w.writeheader()
for t in rows:
w.writerow({k: t.get(k, "") for k in w.fieldnames})
print(f"{len(rows)} transactions written")
Note that this gives the transaction list, not the tax invoice. Download the invoice PDFs from the billing page and file them next to the CSV.
How do you allocate cost to projects and people?
Finance teams want "which product burned this?" without reading logs. The AICredits primitives that help:
| Need | Mechanism | Detail |
|---|---|---|
| Cost per project | One inference key per project | Name keys after the cost centre, for example search-prod |
| Spend ceiling per project | Per-key INR budget | At the cap, requests are refused with HTTP 402 |
| Contractor or intern spend | Team with member allocation | Member usage is billed to your wallet up to their ₹ cap |
| Per-key cost report | Usage dashboard, API key breakdown | Costs per key for multi-key setups |
| Cost per model | usage/cost-per-model (beta API) | Group by model for vendor-style reporting |
The mechanics of budgets and rate limits are covered in the per-key budgets post. If you want a ready-made usage logger that tags every call with a feature name and computes INR cost, use the one in the cost-per-feature script post.
A practical naming convention helps your bookkeeper more than any script: {team}-{product}-{env}, for example growth-chatbot-prod. Keep a sheet that maps each key name to a cost centre and an owner.
What belongs in a one-page internal policy?
Copy and adapt. This is a template, not legal advice:
LLM API spend policy (draft for review by finance)
1. Account: one company account, owned by finance@yourcompany.example.
2. Funding: top-ups by company UPI/net banking only; monthly cap INR ____.
3. Invoices: GST profile completed before the first top-up; PDFs filed in
the accounting folder with the matching bank entry.
4. Keys: one key per project and environment; every key has an INR budget.
5. Owners: each key has a named owner; keys are revoked when owners leave.
6. Review: finance reviews usage by key monthly; anomalies investigated.
7. Tax treatment: confirmed with our CA on ____ (date). Not decided by engineering.
What should you not assume?
- Not every account sees GST invoicing. Look for the GST profile card on your Billing page.
- Invoices are for top-ups. Per-request line items live in the usage log, not on the tax invoice.
- Don't assume claimability. Whether you can claim credit depends on your registration and supplies. Ask your CA.
- Don't assume the sandbox equals production. If you rely on invoice details for filing, verify one real top-up first.
- Wallet ceiling. The billing page enforces a wallet limit, defaulting to ₹5,000 in the code I read, which constrains how much you can prepay in one go.
If your accounting workflow also touches AI prompts for month-end tasks, the accountant prompts post and the CA prompts for GST and ITR are separate reading. They are about using AI in finance work, which is a different problem from buying API credits.
Bottom line
For a startup, the question is not whether you can pay by UPI, but whether the paper trail survives an audit conversation. Set up the GST profile first, top up the minimum, inspect the real invoice with your CA, then scale spend with keys, budgets and a monthly export. Create an account and check your Billing page to see what is enabled for you. Anything about credit eligibility or filing is a question for your CA, not for this post. For a broader picture of the service, see the AICredits review.



