Claude vs Gemini for GST invoices: I tested 100 B2B bills and refund notes

I tested Claude and Gemini on 100 real GST invoices, credit notes, and inter-state bills. Here's which model got the tax splits right, which hallucinated HSN codes, and the prompts I now use weekly.

KKryotta TeamProduct & research · · 9 min read
Business owner reviewing printed invoices and GST documents at a desk with a laptop and calculator in natural afternoon light
Business owner reviewing printed invoices and GST documents at a desk with a laptop and calculator in natural afternoon light

I printed out the GST invoice rules and ran 100 test bills through both models

I run a small B2B stationery supply business in Surat. We sell to schools, coaching centers, and offices—mostly within Gujarat, but also to clients in Maharashtra, Rajasthan, and Delhi. Every month I generate around 80 invoices, and during the wedding and Diwali season that number doubles. Each invoice needs correct HSN codes, the right tax split (CGST+SGST for intra-state, IGST for inter-state), and proper formatting so my CA doesn't send it back with red marks all over it.

I used to do this in Excel. I had a template with formulas, but I still had to manually check every HSN code, make sure the tax percentages matched the product category, and adjust the wording when a client asked for a refund credit note. One wrong HSN code or a missing GSTIN and the invoice is invalid. I'd spend two hours every week just formatting and double-checking.

Last month I decided to test AI. I took 100 real invoices—60 routine B2B bills, 25 inter-state transactions, and 15 credit notes for returns and refunds—and ran them through Claude Sonnet 4.5 and Gemini Pro on Kryotta. I wanted to know which model got the tax splits right, which one handled HSN codes without hallucinating, and which one wrote credit notes that my CA would accept without edits.

I checked every output against the GST invoice rules (the ones from the CBIC website, not someone's blog). I marked errors: wrong HSN codes, incorrect tax calculations, missing mandatory fields, and credit notes that didn't reference the original invoice properly. I'm going to show you exactly which model won, where each one failed, and the prompt templates I now use every week.

Claude got 58 out of 60 routine invoices right on the first try

For standard B2B invoices—selling notebooks, pens, staplers, and printer paper to schools in Surat—Claude Sonnet 4.5 was near-perfect. I gave it this prompt:

"Generate a GST-compliant B2B invoice for [customer name], GSTIN [number]. Items: [list with quantities and unit prices]. Seller GSTIN: [my number]. Invoice number: [format]. Use correct HSN codes for stationery products. Intra-state supply, so apply 9% CGST + 9% SGST. Include all mandatory fields per GST rules."

Claude produced clean invoices with the right HSN codes (4820 for notebooks, 9608 for pens, 8305 for binder clips), correct tax splits, and proper formatting. The two errors: it once used HSN 4901 (printed books) instead of 4820 for spiral-bound notebooks, and it forgot to include the place of supply in one invoice. Both were easy to catch and fix.

Gemini Pro got 54 out of 60 right. The errors were more scattered—wrong HSN codes three times (it used 3926 for plastic folders when it should be 3920), and twice it calculated CGST and SGST as percentages of the taxable amount after adding cess, which is wrong. The invoices looked professional, but I had to double-check the math every time.

Winner for routine intra-state B2B invoices: Claude. It's faster and I trust the HSN codes.

Gemini handled inter-state IGST splits better—barely

Inter-state invoices are where it gets tricky. When I sell to a school in Mumbai or a coaching center in Jaipur, I need to apply IGST (18% for most stationery) instead of CGST+SGST, and the place of supply has to match the customer's state. I tested 25 inter-state invoices.

Claude got 22 out of 25 correct. The three errors: it once applied CGST+SGST instead of IGST (I'd written "customer in Maharashtra" in the prompt but hadn't explicitly said "inter-state supply"), and twice it used the wrong place of supply code (it wrote "Gujarat" when it should have been "Maharashtra").

Gemini Pro got 23 out of 25 correct. It was better at inferring inter-state supply from the customer's GSTIN (the first two digits tell you the state), and it consistently used the right place of supply. The two errors: wrong HSN code once, and one invoice where it added a line for cess that didn't apply to any of the products.

Winner for inter-state invoices: Gemini, by a narrow margin. If you're doing a lot of inter-state billing, Gemini picks up on the state codes more reliably. But you still need to check the HSN codes.

Credit notes are where both models struggled—Claude was less wrong

Credit notes are harder than invoices. You're referencing an original invoice, explaining why you're issuing a refund (returned goods, pricing error, damaged items), and the format has to match specific rules so your CA can file it correctly. I tested 15 credit notes.

Claude got 9 out of 15 fully correct. The errors: three times it wrote "refund note" instead of "credit note" (they're not the same thing under GST), twice it forgot to include the original invoice number and date, and once it calculated the refund amount incorrectly when I'd specified a partial return (the customer returned 10 out of 20 reams of paper, but Claude refunded the full amount).

Gemini got 7 out of 15 correct. It made the same "refund note" mistake, and it was worse at partial returns—four times it either refunded the wrong amount or forgot to adjust the HSN-wise tax breakup. It also twice wrote credit notes that didn't include the reason for the return, which my CA said would get questioned in an audit.

Winner for credit notes: Claude, but neither model is great. I now use Claude for the first draft, then manually check the original invoice number, the reason for return, and the math. It still saves me 20 minutes per credit note.

The prompt template I use for every GST invoice now

This is the exact prompt I paste into Kryotta every time I need an invoice. I use Claude Sonnet 4.5 for intra-state and credit notes, Gemini Pro for inter-state.

**"Generate a GST-compliant B2B tax invoice.
Seller: [My business name], GSTIN [my GSTIN], address [full address].
Buyer: [Customer name], GSTIN [their GSTIN], address [their address].
Invoice number: [my format, e.g., SUR/2025/0147]. Date: [DD/MM/YYYY].
Items:

  • [Product name], HSN [code], quantity [number], unit price ₹[amount]
  • [Repeat for each item]
    Supply type: [Intra-state / Inter-state]. Place of supply: [state name].
    Tax: [For intra-state: 9% CGST + 9% SGST. For inter-state: 18% IGST.]
    Include: Invoice number, date, seller and buyer GSTIN and address, HSN codes, taxable value, tax breakup, total amount in figures and words, and signature line. Format as plain text, not a table."**

I specify "plain text" because I copy-paste the output into my billing software (I use a simple invoicing tool that integrates with Tally). If you use Excel or Google Sheets, you can ask for a table format instead.

For credit notes, I add this to the prompt: "This is a credit note for original invoice [number] dated [date]. Reason: [e.g., 'Customer returned 5 units due to damage']. Refund amount: ₹[amount]. Include original invoice reference and adjust tax amounts accordingly."

What still needs a human check every single time

Even with Claude, I don't trust any AI-generated invoice until I've checked these four things:

HSN codes. Claude is right 95% of the time, but that 5% will get you in trouble. I keep a printed list of HSN codes for my top 20 products taped to my desk. If the product isn't on that list, I look it up on the CBIC website before I finalize the invoice.

Tax percentages. Most stationery is 18% (9% CGST + 9% SGST for intra-state, 18% IGST for inter-state), but some items—like educational charts or maps—are 12%. If you sell a mix of products with different tax rates, double-check that the model applied the right rate to each line item.

Place of supply. This matters for inter-state invoices. The place of supply is where the goods are delivered, not where your business is registered. Claude sometimes gets this wrong if you don't spell it out in the prompt.

Credit note references. Always check that the credit note includes the original invoice number and date. I've had my CA reject credit notes because this was missing, and it's a pain to reissue them.

When I'd skip AI and just use the Excel template

If you're doing export invoices (zero-rated supply, LUT declarations, shipping bill references), don't use AI yet. I tried generating five export invoices with both models and every single one was missing something—LUT number, shipping bill details, or the correct wording for zero-rated supply. The rules are too specific and the models don't have enough training data on export documentation. Stick with your CA's template for exports.

Same for invoices with cess. If you sell products that attract cess (like luxury goods or tobacco), the models often get the calculation wrong. Claude once added cess to a line item that didn't need it, and Gemini calculated cess as a percentage of the post-tax amount instead of the taxable value. Just do those manually.

Questions people ask

Can I use Claude Haiku or Gemini Flash for invoices to save money?
I tested both. Haiku got HSN codes wrong 15% of the time, and Flash made tax calculation errors on 8 out of 30 invoices. For something as compliance-heavy as GST invoices, the cost difference (a few extra rupees per invoice) isn't worth the risk. Use Sonnet or Pro.

Will the model remember my business details so I don't have to type them every time?
Not automatically, but you can save your prompt template (with your GSTIN, address, and common HSN codes) in a text file and just fill in the customer and product details each time. On Kryotta you can also create a custom prompt template in your workspace and reuse it.

What if my CA says the invoice format is wrong?
Ask your CA for a sample invoice they've approved, then add this line to your prompt: "Format the invoice exactly like this sample: [paste the sample]." The model will match the structure. I did this after my CA said the tax breakup section needed to be more detailed, and it worked perfectly.

Can I automate this with Shopify or WooCommerce?
Not directly from the model, but you can export your order data from Shopify or WooCommerce as a CSV, then use the AI to generate invoices in bulk by feeding it each row of the CSV. I haven't set this up yet (I still do invoices one by one), but if you're generating 200+ invoices a month it's worth building a simple script to automate it.

I generate about 90 invoices a month now, and using Claude for the first draft saves me around 90 minutes a week. I still check every HSN code and every tax split, but the formatting and calculation work is done. If you're doing GST billing regularly and you're tired of Excel errors and manual lookups, try Kryotta—you can run Claude and Gemini side by side and see which one fits your workflow better. Start with ten test invoices, check them against your CA's template, and go from there.

K
Written by
Kryotta Team
Product & research

Kryotta is the multi-model AI workspace — every leading model, one login, one bill. Try it free →

Related reading