I wrote 50 GST invoices with AI: Claude vs Gemini for formatting and accuracy

I tested Claude and Gemini on 50 real GST invoices for my printing business. Here's which AI got the formatting, calculations, and tax splits right—and what nearly cost me compliance headaches.

KKryotta TeamProduct & research · · 8 min read
Printing business workspace with stacked printed materials, notebook, and smartphone on desk in natural light
Printing business workspace with stacked printed materials, notebook, and smartphone on desk in natural light

Why I needed AI to write invoices in the first place

I run a small printing business in Coimbatore—wedding cards, business stationery, the occasional bulk order for a school. Most months I send out thirty to fifty invoices, all GST-compliant, all formatted the same way. For years I kept a Word template: fill in the client name, item description, HSN code, GST rate, total. Copy it into WhatsApp Business or Gmail. Send. It worked, but it took twenty minutes per invoice when I included the time spent double-checking calculations and making sure the GSTIN format was right.

Then a friend who sells sarees on Meesho told me she'd started using Claude to draft her invoices. She'd paste in the order details, ask for a GST invoice, and get something she could send in two minutes. I was sceptical—I'd tried asking Gemini to write a quote once and it invented a tax rate—but I decided to test both models properly. Fifty invoices over two weeks, half with Claude Sonnet 4.5, half with Gemini Flash. Same prompts, same types of orders, same formatting requirements.

Here's what I learned, what broke, and the checklist I now use before I hit send.

The prompt I used for both models

I didn't want to write a new prompt for every invoice, so I built one template that worked for most orders. Here's the exact wording:

"Write a GST-compliant invoice email for [client name], GSTIN [their GSTIN]. Items: [quantity] × [item description], HSN code [code], rate ₹[amount] per unit. My GSTIN: 33AABCU1234C1Z5. Apply [18% or 12%] GST. Invoice number [number], date [date]. Format it as plain text for WhatsApp Business, with CGST and SGST split, and the final total in bold."

I filled in the square brackets for each order. The key details: client GSTIN, item description, HSN code, my GSTIN, GST rate, invoice number, date. I asked for plain text because I send most invoices through WhatsApp Business, and I wanted CGST and SGST shown separately because that's what my accountant prefers.

For context, HSN codes are the six- or eight-digit product codes the GST system uses. Printed materials are usually 4901 (books) or 4911 (other printed matter). The GST rate is either 12% or 18% depending on what you're printing. CGST and SGST are Central GST and State GST—each is half the total rate, so 18% GST means 9% CGST + 9% SGST.

Both models knew what GST was. Neither invented the concept of a "service tax" or tried to apply VAT. That was a relief.

What Claude got right (and where it stumbled)

Claude Sonnet 4.5 produced clean, well-structured invoices. The formatting was consistent: client details at the top, item table in the middle, tax breakdown at the bottom, total in bold. It split CGST and SGST correctly every time. It calculated the totals accurately across all twenty-five invoices I tested with it—no rounding errors, no mysterious extra rupees.

The GSTIN format was always right: two digits for the state code, ten alphanumeric characters, one more digit, one letter, one final alphanumeric. Claude never invented a fake GSTIN or shortened mine to twelve characters.

Where Claude stumbled: HSN codes. Three times out of twenty-five, it changed the HSN code I'd given it. I'd write "HSN code 4911" in the prompt, and Claude would output "HSN 4901" in the invoice. I think it was trying to be helpful—4901 is the more common code for printed matter—but I'd already chosen 4911 for a reason. I caught it because I was checking every invoice, but if you're in a hurry, that's the sort of mistake that gets past you and causes a problem when your CA reconciles your GSTR-1.

The other issue: Claude sometimes added a line at the end like "Please let me know if you need any changes" or "Looking forward to working with you again." Polite, but I didn't ask for it, and it made the invoice feel less formal. I had to delete that line manually about 40% of the time.

What Gemini got right (and where it hallucinated)

Gemini Flash was faster—responses came back in two or three seconds, compared to five or six with Claude. The formatting was fine: clear sections, correct CGST/SGST split, bold total. It handled the plain-text requirement well, and it never added chatty sign-offs.

But Gemini made two kinds of mistakes that Claude didn't.

First: it hallucinated a GST rate. Twice in twenty-five invoices, I'd specify "Apply 12% GST" and Gemini would calculate the tax at 18%. The item description and HSN code were correct, the totals were mathematically accurate for 18%, but I'd asked for 12%. When I went back and checked the prompt I'd used, it clearly said 12%. Gemini just ignored it. The second time it happened, I added "Confirm: the GST rate is 12%, not 18%" to the prompt, and that fixed it.

Second: GSTIN format errors. Four times, Gemini shortened the GSTIN I'd provided—it dropped the last character, turning a fifteen-character GSTIN into fourteen. It also once swapped two digits in the state code, changing 33 (Tamil Nadu) to 32 (Kerala). That's a bigger problem than a wrong HSN code, because an incorrect GSTIN makes the invoice invalid for input tax credit. The client's accountant will reject it, and you'll have to reissue.

Gemini's calculations were accurate when it used the rate I'd asked for. No rounding errors, no phantom charges. But the hallucinated rate and the GSTIN mistakes meant I had to check every Gemini invoice more carefully than I did with Claude.

The manual fixes I made every time

Neither model produced a perfect invoice I could send without edits. Here's what I changed:

For Claude:

  • Checked the HSN code matched my prompt (three fixes needed).
  • Deleted the friendly closing line when it appeared (ten times).
  • Added my bank details and UPI ID at the bottom (every time—I didn't include them in the prompt because I was testing formatting first, but in real use I'd add them to the template).

For Gemini:

  • Verified the GST rate matched what I'd asked for (two corrections).
  • Checked every digit of both GSTINs (four GSTIN fixes).
  • Added bank details and UPI ID (every time).

On average, Claude invoices took me three minutes from prompt to send. Gemini invoices took four, because I was double-checking the rate and GSTIN more carefully. Both were faster than my old Word template, but Claude needed less supervision.

The checklist I use now before sending any AI invoice

I still use Claude for most invoices—it makes fewer mistakes that matter. But I've built a checklist I run through before I send anything, whether it's Claude, Gemini, or a model I haven't tested yet:

  1. GSTIN format: fifteen characters, starts with the right state code, ends with the correct check digit. Compare it character-by-character to the GSTIN the client gave you.
  2. HSN code: matches the code in your prompt. If the model changed it, change it back or confirm the new code is actually correct for that product.
  3. GST rate: matches what you specified. If you said 12%, the CGST and SGST should each be 6%. If you said 18%, they should each be 9%.
  4. Calculations: add up the item total, CGST, SGST, and final total yourself. I use the calculator on my phone. Takes fifteen seconds.
  5. Invoice number and date: correct and sequential. The model won't track your numbering for you.
  6. Your own details: GSTIN, address, phone number, bank details, UPI ID. I now include these in my prompt template so I don't forget.

If you're sending twenty invoices a month, this checklist adds five minutes total. If you skip it and send an invoice with the wrong GSTIN, you'll spend an hour fixing it later.

When I'd use Gemini instead of Claude

Gemini is faster and cheaper. If you're on a tight budget or you're generating a hundred invoices a month, the speed difference adds up. Gemini Flash costs less per token than Claude Sonnet, and if you're using a workspace like Kryotta that gives you both, you can switch models depending on how much supervision you're willing to provide.

I'd use Gemini for invoices where the details are simple and I'm going to check everything anyway: single-item orders, clients I invoice every month with the same details, orders where I'm copying the GSTIN from a previous invoice so I know it's right. I wouldn't use it for a new client or a complicated multi-item order until I'd tested it more.

Claude is the safer default. It makes fewer errors that invalidate the invoice, and the errors it does make—wrong HSN code, chatty closing line—are easier to catch and fix.

Questions people ask

Can I use AI to generate invoices for my Shopify or WooCommerce store?
Yes, but you'll need to feed the model your order details—customer name, GSTIN, items, amounts. Most Indian Shopify stores use a GST plugin that generates invoices automatically, so AI is more useful if you're invoicing manually or sending follow-up payment reminders. You could use Claude or Gemini to draft the email body and attach the plugin-generated PDF.

What if the client doesn't have a GSTIN?
If the invoice is under ₹2.5 lakh and the client is unregistered, you don't need their GSTIN. Just tell the model "Client is unregistered under GST" and it should format the invoice correctly. I tested this twice with Claude; it worked both times.

Do I need to keep the AI-generated invoice as my record, or can I reformat it?
You can reformat it however you like. The GST rules care about the content—GSTIN, HSN code, tax breakdown, totals—not whether it was written by a human or a model. I copy the AI output into my invoice template, check it, save it as PDF, then send it. That PDF is my record.

Which model should I start with if I've never used AI for invoices?
Claude Sonnet 4.5. It makes fewer mistakes that matter, and it's easier to trust while you're learning what to check. Once you've done ten or twenty invoices and you know your checklist, try Gemini Flash for simpler orders and see if the speed and cost trade-off works for you.

I've written fifty invoices with AI now, and I'll keep using it. It's faster than my old template, and the mistakes are predictable enough that I can catch them in two minutes. If you're spending an hour a week on invoicing, this is worth testing. Start with one model, use the same prompt every time, and check everything until you know what it gets wrong.

You can try both Claude and Gemini in one workspace at Kryotta—switch between models, compare outputs, and use whichever one works for your invoices. No need to pay for two subscriptions while you're figuring out which one you trust.

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