Home Tutorials Software How-To Sales Invoice + e-Invoice + e-Way Bill
Software Guide 19 · Advanced · 18 min

Sales Invoice, e-Invoice (IRN) & e-Way Bill

The full outward chain, step by step. Raise the invoice and stock goes out while output GST is recorded. Register it with the IRP to get the IRN and signed QR. Then generate the e-Way Bill so the goods can legally move. Every step, both the JSON-upload route and the direct route — plus what each one genuinely needs before it will work.

The Three-Step Chain

Sending goods out under GST is three separate obligations, in a fixed order. Each depends on the one before it:

  1. The sales invoice — your accounting document. Stock reduces, output GST is recorded, the customer owes you.
  2. 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.
  3. 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 invoiceAlways, 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 BillGoods move and the consignment value crosses the notified limit — commonly ₹50,000, but several states set lower limits for intra-state movement.
Check the current thresholds yourself
The e-invoicing turnover threshold has been lowered repeatedly, and e-way bill limits differ by state and by intra- versus inter-state movement. Confirm what applies to you today with your CA or on the GST portal — don't rely on a number you remember from a previous year, and don't rely on this page for it either.

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

  1. Open Transactions → Sales, or press F10.
  2. Enter the customer. Type a new name and it's created under Sundry Debtors — but set their GSTIN and state before you e-invoice.
  3. Set the date; the invoice number is generated for you.
  4. Add each line item: item, quantity, unit, rate per unit (before GST), and GST%.
  5. Choose the warehouse the goods leave from.
  6. 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

LedgerGroupAmount
DrThe customerSundry DebtorsInvoice grand total
CrSalesSales AccountsTaxable value
CrOutput CGSTDuties & TaxesCGST (intra-state)
CrOutput SGSTDuties & TaxesSGST (intra-state)
CrOutput IGSTDuties & TaxesIGST (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:

ItemWorkingAmount
Taxable value20 × ₹1,000₹20,000
Output CGST9% of 20,000₹1,800
Output SGST9% of 20,000₹1,800
Invoice total20,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:

  1. Open the GST menu → Generate e-Invoice JSON…
  2. Enter the Sales voucher number (e.g. INV1).
  3. Choose where to save the file — it's named eInvoice_<voucher>.json.
  4. Log in to the NIC e-Invoice portal (or hand the file to your GSP) and upload it.
  5. The portal returns the IRN, acknowledgement number and the signed QR. Record them against the invoice.
Check the payload before uploading
The exported JSON carries your GSTIN, state code, invoice details and line items with HSN — but the seller and buyer address fields are left blank. The IRP requires address, location and PIN. Open the JSON (or complete it on the portal's form) and fill those in before submitting, or the upload will be rejected.

Route 2b — Generate the IRN Directly

If you have e-Invoice API access, iAccounting can call the IRP for you:

  1. Open the GST menu → 🧾 Generate e-Invoice (IRN)…
  2. You'll see your last 200 Sales invoices — voucher number, date, party and amount. Select the invoice.
  3. Click ⚡ Generate IRN…
  4. 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.
  5. On success the right-hand panel shows the IRN and Ack No, and renders the signed QR code as an image you can print.
Please read before relying on this route
The direct IRP call needs e-Invoice API access on your GSTIN, and it is a Solo-edition menu item. Be aware that this endpoint has not yet been verified against a live, active GSTIN — the only GSTIN available for testing during development was a cancelled one. Treat your first use as a test: try it on a low-value invoice, and keep the JSON upload route ready as your fallback. If it works for you, it saves real time; if it errors, nothing has been sent and you lose nothing.

Step 3 — The e-Way Bill

Same two routes again.

Route 3a — Export the JSON

  1. GST menu → Generate e-Way Bill JSON…
  2. Enter the voucher number and save the file.
  3. Upload it on the e-Way Bill portal (ewaybillgst.gov.in) after completing the transport details.

Route 3b — Generate Directly

  1. GST menu → 🚚 Generate e-Way Bill (Portal)…
  2. Select the Sales invoice from the list.
  3. Click ⚡ Generate e-Way Bill… and type EWB at the confirmation.
  4. 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.
  5. 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:

FieldExported asYou must supply
Vehicle numberblankThe actual vehicle, e.g. MH12AB1234
Transport distance0Approximate km — it sets the bill's validity period
Transporter ID / nameblankIf a transporter is carrying it
Transport doc no. / dateblankLR / GR number where applicable
From address, place, PINblankYour dispatch address
Transport modeRoad (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

ProblemCause / 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 missingExpected: seller/buyer addresses are exported blank. Complete them before submitting.
Portal rejects — HSN missing or invalidSet the HSN code on each item master and re-export.
e-Way Bill rejected — distanceTransport distance exports as 0. Enter the real distance.
EWB login failsThe 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 IGSTThe customer's state code is missing or wrong. Fix the ledger and re-raise.
Menu item greyed outThese are Solo-edition screens; the online IRN/e-way options also need the GST-online feature.

Tips & Best Practice

  1. Fix masters before your first e-invoice — GSTINs, state codes, addresses, HSN. Most rejections are master problems wearing an invoice costume.
  2. Use 🔍 Fetch to fill customer GSTIN details rather than typing them. A single wrong character fails at the portal.
  3. Generate the IRN before dispatch, not after. An invoice needing an IRN isn't valid without one, whatever your books say.
  4. 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.
  5. Always complete transport distance and vehicle number. The commonest e-way bill error, and the one that strands goods.
  6. Watch the e-way bill validity. It's derived from distance; a long trip on a short validity means an expired bill mid-journey.
  7. Test the direct routes on a small invoice first — see the note in Route 2b. The JSON route is always there as a fallback.
  8. 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?

Try iAccounting for 15 days

Raise GST invoices, generate e-invoices and e-way bills, and file your returns from one tool.