The Three-Step Chain
Sending goods out under GST is three separate obligations, in a fixed order. Each depends on the one before it:
- The sales invoice — your accounting document. Stock reduces, output GST is recorded, the customer owes you.
- The e-Invoice (IRN) — registering that invoice with the government's Invoice Registration Portal, which returns an IRN and a signed QR code. Without it, an invoice that required an IRN is not a valid tax invoice at all, and your customer's ITC is at risk.
- The e-Way Bill — permission for the goods to move. Without it, the consignment can be detained.
The order matters: the e-Invoice needs a saved invoice, and the e-Way Bill needs the invoice details. You cannot usefully do them backwards.
When Each Is Required
| Broadly required when | |
|---|---|
| Tax invoice | Always, for any taxable supply by a registered person. |
| e-Invoice (IRN) | Your aggregate turnover crosses the notified threshold, for B2B supplies (and exports). B2C invoices are outside e-invoicing, though QR-code rules may apply separately. |
| e-Way Bill | Goods move and the consignment value crosses the notified limit — commonly ₹50,000, but several states set lower limits for intra-state movement. |
Step 0 — Get the Masters Right First
Nearly every e-invoice and e-way bill failure traces back to a master, not to the invoice. Fix these once:
- Your company (Masters → Company): a valid GSTIN, the correct state code, and your full address.
- The customer (Masters → Ledgers): their GSTIN and state code. The state code drives CGST+SGST versus IGST, and the GSTIN is mandatory for a B2B e-invoice. You can pull both automatically by typing the GSTIN and clicking 🔍 Fetch.
- Your items (Masters → Items): the HSN code and the correct GST rate. HSN is mandatory on an e-invoice.
Five minutes here saves repeated rejections at the portal later.
Step 1 — Raise the Sales Invoice
- Open Transactions → Sales, or press F10.
- Enter the customer. Type a new name and it's created under Sundry Debtors — but set their GSTIN and state before you e-invoice.
- Set the date; the invoice number is generated for you.
- Add each line item: item, quantity, unit, rate per unit (before GST), and GST%.
- Choose the warehouse the goods leave from.
- Check the total against what you're charging, add a narration, and save.
That single save does all the accounting work — you never post the GST separately, and stock reduces on its own.
The Entry It Creates
| Ledger | Group | Amount | |
|---|---|---|---|
| Dr | The customer | Sundry Debtors | Invoice grand total |
| Cr | Sales | Sales Accounts | Taxable value |
| Cr | Output CGST | Duties & Taxes | CGST (intra-state) |
| Cr | Output SGST | Duties & Taxes | SGST (intra-state) |
| Cr | Output IGST | Duties & Taxes | IGST (inter-state) |
Stock reduces from the chosen warehouse at the same time. It's the mirror image of a purchase invoice: there the party is credited and Input GST debited; here the party is debited and Output GST credited.
Same state → Output CGST + SGST. Different state → Output IGST. Decided from your state code versus the customer's — which is why Step 0 matters.
A Worked Example
20 units at ₹1,000, 18% GST, to a customer in your own state:
| Item | Working | Amount |
|---|---|---|
| Taxable value | 20 × ₹1,000 | ₹20,000 |
| Output CGST | 9% of 20,000 | ₹1,800 |
| Output SGST | 9% of 20,000 | ₹1,800 |
| Invoice total | 20,000 + 3,600 | ₹23,600 |
Dr customer ₹23,600, Cr Sales ₹20,000, Cr Output CGST ₹1,800, Cr Output SGST ₹1,800 — and 20 units leave stock.
At ₹23,600 this consignment is over the common ₹50,000 e-way bill limit? No — but a similar invoice for 50 units would be, so check the value against your state's limit each time.
Step 2 — The e-Invoice (IRN)
Registering the invoice with the IRP returns two things you must then print: the IRN (a 64-character hash) and the signed QR code.
iAccounting offers two routes. They reach the same place by different paths, and which you use depends on whether you have e-Invoice API access.
Route 2a — Export the JSON and Upload (works everywhere)
The dependable route, needing no API access at all:
- Open the GST menu → Generate e-Invoice JSON…
- Enter the Sales voucher number (e.g. INV1).
- Choose where to save the file — it's named
eInvoice_<voucher>.json. - Log in to the NIC e-Invoice portal (or hand the file to your GSP) and upload it.
- The portal returns the IRN, acknowledgement number and the signed QR. Record them against the invoice.
Route 2b — Generate the IRN Directly
If you have e-Invoice API access, iAccounting can call the IRP for you:
- Open the GST menu → 🧾 Generate e-Invoice (IRN)…
- You'll see your last 200 Sales invoices — voucher number, date, party and amount. Select the invoice.
- Click ⚡ Generate IRN…
- A confirmation appears explaining that this registers the invoice with the government. You must type IRN to proceed — a deliberate speed bump, because this action is not reversible from here.
- On success the right-hand panel shows the IRN and Ack No, and renders the signed QR code as an image you can print.
Step 3 — The e-Way Bill
Same two routes again.
Route 3a — Export the JSON
- GST menu → Generate e-Way Bill JSON…
- Enter the voucher number and save the file.
- Upload it on the e-Way Bill portal (ewaybillgst.gov.in) after completing the transport details.
Route 3b — Generate Directly
- GST menu → 🚚 Generate e-Way Bill (Portal)…
- Select the Sales invoice from the list.
- Click ⚡ Generate e-Way Bill… and type EWB at the confirmation.
- Log in to the EWB system — this is a separate username and password from your GST portal login, issued specifically for e-way bills. The session lasts about six hours.
- On success you get the e-Way Bill number and its valid-up-to date.
The same caution applies as for the direct IRN route: this endpoint is also unverified against a live active GSTIN. Test it before you depend on it for a dispatch that's waiting.
⚠️ The Transport Fields — You Must Complete These
This is the most important practical point on the page.
The e-Way Bill payload iAccounting builds fills in everything it can from the invoice — your GSTIN, the customer's GSTIN and state, document number and date, values and line items. But it leaves the transport details blank, because they aren't in your accounting data:
| Field | Exported as | You must supply |
|---|---|---|
| Vehicle number | blank | The actual vehicle, e.g. MH12AB1234 |
| Transport distance | 0 | Approximate km — it sets the bill's validity period |
| Transporter ID / name | blank | If a transporter is carrying it |
| Transport doc no. / date | blank | LR / GR number where applicable |
| From address, place, PIN | blank | Your dispatch address |
| Transport mode | Road (1) | Change if rail, air or ship |
Fill these in on the e-Way Bill portal form (or in the JSON) before submitting. Transport distance especially — leaving it at 0 either gets rejected or produces a bill with the wrong validity, and an expired e-way bill on the road is exactly the problem you were trying to avoid.
Step 4 — Print and Dispatch
Once you hold the IRN and e-Way Bill number, print the invoice carrying:
- The IRN and the signed QR code (the QR is what an officer scans to verify it)
- The e-Way Bill number and its validity
- Your GSTIN, the customer's GSTIN, HSN codes and the tax breakup
Send a copy with the goods and share one with the customer — they'll want it for their own 2B reconciliation. Keep the IRN and e-way bill number recorded against the invoice in your own records.
📱 From the Android Mobile App
Raising a sales invoice on the phone is well suited to counter sales and deliveries. Open the app and use the POS or new-entry screens to build the bill — scan or tap items into a cart, pick the customer, and post a Sales invoice that reduces stock exactly as the desktop does.
Remember the app is a remote control: your books live on the desktop, which must be running with the company open and paired to the phone by PIN.
The e-Invoice and e-Way Bill steps are done on the desktop. They involve government portal sessions, a typed confirmation and — for the e-way bill — a separate EWB login, so they're deliberately kept on the desk rather than on a phone in someone's pocket. A practical split: raise invoices wherever you are, then run the IRN and e-way bill from the desktop before dispatch.
Scanning a Sales Invoice
If you write bills by hand and want them in the system afterwards, 🤖 Auto Accounting → Scan Sales Invoice (AI) reads a completed sales bill and drafts the Sales voucher — customer, line items, quantities, rates and GST — for you to review and post. Stock goes out on approval, just like a typed invoice.
This is for catching up on bills already written. For an invoice you're raising now, type it — you need the invoice number and totals to be exactly right before it goes anywhere near the IRP.
Troubleshooting
| Problem | Cause / fix |
|---|---|
| "Select a Sales invoice first." | Nothing highlighted in the list. Click the row, then the button. |
| "This company has no valid GSTIN set" | Masters → Company. A placeholder GSTIN won't do. |
| "Could not build the e-Invoice payload for this voucher." | Usually the customer has no GSTIN, or the voucher has no stock lines. e-Invoicing is for B2B — the buyer's GSTIN is mandatory. |
| Portal rejects the JSON — address missing | Expected: seller/buyer addresses are exported blank. Complete them before submitting. |
| Portal rejects — HSN missing or invalid | Set the HSN code on each item master and re-export. |
| e-Way Bill rejected — distance | Transport distance exports as 0. Enter the real distance. |
| EWB login fails | The e-Way Bill system uses its own username and password, not your GST portal credentials. Enrol on the EWB portal if you never have. |
| Tax split as CGST+SGST but should be IGST | The customer's state code is missing or wrong. Fix the ledger and re-raise. |
| Menu item greyed out | These are Solo-edition screens; the online IRN/e-way options also need the GST-online feature. |
Tips & Best Practice
- Fix masters before your first e-invoice — GSTINs, state codes, addresses, HSN. Most rejections are master problems wearing an invoice costume.
- Use 🔍 Fetch to fill customer GSTIN details rather than typing them. A single wrong character fails at the portal.
- Generate the IRN before dispatch, not after. An invoice needing an IRN isn't valid without one, whatever your books say.
- Never edit an invoice after its IRN is generated. Cancel and re-issue through the proper route instead — the registered version is the legal one.
- Always complete transport distance and vehicle number. The commonest e-way bill error, and the one that strands goods.
- Watch the e-way bill validity. It's derived from distance; a long trip on a short validity means an expired bill mid-journey.
- Test the direct routes on a small invoice first — see the note in Route 2b. The JSON route is always there as a fallback.
- Keep the IRN, QR and e-way bill number with the invoice record. You'll want them if a consignment is questioned.
What's Next?
- Purchase Invoice → Stock & ITC — the inward mirror of this flow
- File GSTR-1 — report these outward supplies
- GSTR-2B Reconciliation — the buyer's side of the same invoice
- Create GST Invoices — invoice branding and sharing