Skip to main content
India GST E-Invoicing & E-Way Bill — A build-to-order ERPNext app that generates IRN-validated GST e-invoices with signed QR  — 1/1Illustrative preview

A build-to-order ERPNext app that generates IRN-validated GST e-invoices with signed QR codes and creates or

updates e-way bills straight from your Sales Invoice, wired to the IRP/GSTN APIs.

ECOSIRE scopes, builds, installs, and supports it — no manual portal re-keying.

What is India GST E-Invoicing & E-Way Bill?

A build-to-order ERPNext app that generates IRN-validated GST e-invoices with signed QR codes and creates or updates e-way bills straight from your Sales Invoice, wired to the IRP/GSTN APIs. ECOSIRE scopes, builds, installs, and supports it — no manual portal re-keying. Built to order by ECOSIRE for ERPNext v15, v16 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

IRN generation on Sales Invoice `on_submit` via a `hooks.py` doc event, calling the IRP/GSTN e-invoice API through your GSP or the NIC sandbox
Government signed QR (Base64) decoded and rendered on the invoice print format, with acknowledgement number and date written back to the document
Dedicated `GST E-Invoice Log` DocType capturing full request/response payloads, the signed invoice JSON, and status for audit
E-way bill Part-A auto-derived from the invoice plus a Part-B DocType for transporter ID, vehicle number, transport mode, and distance
EWB generation, vehicle-number update, extend-validity, and cancellation pushed and pulled through the NIC e-way bill API
IRN cancellation and e-invoice cancel within the government time window, with reason and remark codes enforced
Pre-submit validation of GSTIN format, place-of-supply, tax breakup, and mandatory fields before any API call fires
HSN/SAC validation — length rules by turnover, mandatory presence, and mismatch flagging against the item master
GSTR-1 and GSTR-3B data-preparation views and export scripts reconciling booked invoices against IRN and EWB status
OAuth/token authentication cached and auto-refreshed on a `scheduler_event`, with API credentials stored in encrypted Frappe settings
Whitelisted server methods (`@frappe.whitelist()`) powering client-script buttons on the Sales Invoice and reachable over the Frappe REST API
Role profiles and DocType-level permissions scoping generate, cancel, and log-view actions to accounts and compliance roles
Bulk and retry handling for failed API calls with error-code surfacing, plus idempotency so a re-submit never double-mints an IRN
Credit note / debit note, export, and SEZ document-type support with the correct sub-type and reverse-charge flags
Packaged as a versioned Frappe app targeting ERPNext v15 and v16, safe under `bench update` and site migrations

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your ERPNext.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

ERPNext Compatibility
—
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
MariaDB 10.6+

About this Product

Every B2B invoice above the GST e-invoicing turnover threshold has to be reported to the Invoice Registration Portal (IRP) before it is legally valid, and any consignment above the value limit needs a live e-way bill before the goods move. Handled manually, that means finance teams re-key the same Sales Invoice into the GST/NIC portals, copy the IRN and signed QR back onto the print format, and chase Part-B vehicle updates by phone — slow, error-prone, and a genuine risk when a truck is stopped without a valid EWB. Stock ERPNext gives you the Sales Invoice, GST tax templates, and HSN/SAC fields, but it does not natively talk to the IRP/GSTN e-invoice APIs, mint an IRN, embed the government signed QR, or manage e-way bill Part-A/Part-B generation and cancellation. That last mile is exactly where teams fall back to the portal.

ECOSIRE builds a proper Frappe app — its own module, DocTypes, and hooks.py doc events — that closes that gap inside ERPNext. On submit of a Sales Invoice, a server-side on_submit handler validates the payload (GSTIN format, HSN/SAC presence and length, place-of-supply, tax breakup) against the schema the IRP expects, calls the authenticated IRP/GSTN API through your GSP or the sandbox, and writes the returned IRN, acknowledgement number, acknowledgement date, and Base64 signed QR back onto the invoice. A GST E-Invoice Log DocType stores the full request/response, the digitally signed invoice, and the QR image so every filing is auditable, and the print format renders the signed QR automatically. E-way bill generation is driven from the same document: Part-A is derived from the invoice, Part-B (transporter ID, vehicle number, mode) is captured on a dedicated DocType, and the EWB number, validity, and updates are pushed and pulled through the NIC EWB API. Cancellation within the government time window, IRN cancel, and reason codes are all handled through whitelisted server methods rather than the portal.

Under the hood it is standard, upgradable Frappe engineering — not a fragile script. Auth tokens are cached and refreshed on a scheduler_event so you are not re-authenticating per call; API credentials live in encrypted Frappe settings, never in code. Whitelisted methods (@frappe.whitelist()) expose generate/cancel actions to client scripts and buttons on the Sales Invoice, and the same methods are reachable over the Frappe REST API for your own integrations. Role profiles and DocType permissions keep e-invoicing actions scoped to your accounts and compliance roles. We also build the GSTR-1 and GSTR-3B data preparation layer — report views and export scripts that reconcile booked invoices, IRN status, and EWB status so your return filing starts from clean, matched data rather than a spreadsheet dump. The whole thing targets Frappe/ERPNext v15 and v16 and is delivered as a versioned app on your bench, so bench update and future migrations behave.

Because this is build-to-order, nothing ships until we agree on scope. We start with a short scoping call to confirm your GSP versus direct-IRP setup, turnover thresholds, document types in play (invoices, credit notes, exports, SEZ), and how your transporters work. You get a fixed statement of work, then we build and test against the government sandbox, run UAT on a staging bench with your real invoice patterns, and only cut over with a rollback plan agreed in advance. Typical delivery is one working week from confirmed scope. You receive the full source, the git repository, technical and user documentation, a training session, and a post-go-live support window.

What you get

  • Installable source code for your ERPNext version (v15 or v16) as a proper Frappe app
  • Installation and configuration on your bench, including GSP/IRP and NIC EWB credential wiring in encrypted settings
  • Technical documentation — DocType reference, hooks, whitelisted methods, and API/scheduler architecture
  • User guide plus a live training session for your accounts and compliance team
  • Post-go-live support window for defect fixes and government API-schema adjustments
  • UAT on a staging bench against the government sandbox, with an agreed cutover and rollback plan
  • Handover of the full git repository with commit history and build/deploy instructions
  • GSTR-1/GSTR-3B reconciliation views and export scripts configured to your chart of accounts

Who this is for

Finance & Compliance Lead at an Indian SME

Owns GST filing and needs every B2B invoice IRN-validated and every consignment covered by a live e-way bill without staff re-keying data into the government portals or missing the cancellation window.

ERPNext Administrator / Internal Frappe Developer

Runs the company bench and wants a clean, versioned Frappe app with documented DocTypes, hooks, and whitelisted methods that survives `bench update` — not a brittle server script bolted onto Sales Invoice.

Accounts Payable/Receivable Operator

Raises invoices daily and needs one-click IRN and e-way bill generation from the Sales Invoice, clear error messages when the IRP rejects a payload, and the signed QR already on the print format.

Logistics / Dispatch Coordinator

Manages transporters and vehicles and needs to generate Part-B, update vehicle numbers mid-transit, and extend EWB validity from inside ERPNext before goods leave the gate.

How India GST E-Invoicing & E-Way Bill Compares

CriterionECOSIRECustom BuildCompetitorERPNext Native
IRN + signed QR generationBuilt into Sales Invoice on_submit via IRP/GSTN API, QR on print formatPossible but you build and maintain the API integration yourselfOften supported, but on the app author's roadmap and update cycleNo native IRP/GSTN e-invoice API call or IRN minting
E-way bill Part-A/Part-BGenerate, update vehicle, extend, cancel via NIC EWB API from ERPNextFull custom build against NIC API, tested against sandbox by youVaries by app; Part-B update coverage is inconsistentNot available in ERPNext core
Fit to your invoicingScoped to your document types, GSP setup, and transporter workflowFully bespoke — but on your budget and timelineGeneric; you adapt your process to the appGeneric Sales Invoice only
ERPNext v15/v16 upgrade safetyVersioned Frappe app, hooks + whitelisted methods, bench-update safeDepends entirely on your team's engineering disciplineDepends on the author maintaining version parityN/A — no feature to upgrade
GSTR-1 / GSTR-3B prepReconciliation views and export scripts matching IRN/EWB statusBuild it yourself or export raw and reconcile in spreadsheetsSometimes bundled, often a separate paid moduleBasic GST reports, no IRN/EWB reconciliation
Ownership & sourceFull source and git repo handed over to youYou own everything you buildLicensed binary/app; usually no source handoverOpen source, but the feature does not exist to own
Support modelScoped build, UAT, rollback plan, post-go-live support windowYour team supports it foreverTicket queue on the author's SLA, if anyCommunity support only
Time to productionone working week from confirmed scope, tested on staging firstMonths, depending on your team's bandwidthFast install, but slow if it needs customization to fitImmediate, but the compliance gap is unsolved

Frequently Asked Questions about India GST E-Invoicing & E-Way Bill

How long until it is live?

This is build-to-order, not an instant download. After a scoping call and a signed statement of work, typical delivery is one working week from confirmed scope. The range depends on document types in play (invoices, credit notes, exports, SEZ), your GSP-versus-direct-IRP setup, and how your transporters and EWB workflow operate.

Do I need a GSP, or can it call the IRP/GSTN APIs directly?

Both models are supported. Most SMEs go through a GST Suvidha Provider (GSP) for the IRP e-invoice and NIC e-way bill APIs; some are provisioned for direct access. We confirm which path applies on the scoping call and wire your credentials into encrypted Frappe settings — never hard-coded. We build and test against the government sandbox first.

How do updates and support work after go-live?

You get a post-go-live support window for defect fixes and for adjustments when the IRP or NIC changes its API schema or validation rules. You also receive the full git repository and source, so your own team can maintain it. Extended support and enhancement retainers are available separately.

Will this survive ERPNext upgrades and bench updates?

Yes. It is delivered as a proper versioned Frappe app targeting v15 and v16, using standard DocTypes, `hooks.py` doc events, and whitelisted methods rather than ad-hoc console patches. That means `bench update` and site migrations behave, and upgrading ERPNext does not silently break e-invoicing.

What happens when the IRP rejects an invoice or an API call fails?

Payloads are validated before submission (GSTIN, HSN/SAC, place-of-supply, tax breakup), so most rejections are caught pre-flight. When the IRP or NIC does return an error, the code surfaces the government error code and message on the document, logs the full response in the `GST E-Invoice Log`, and supports retry — with idempotency so a re-submit never mints a duplicate IRN.

Can it handle credit notes, exports, and SEZ invoices, not just standard B2B?

Yes, within the agreed scope. We support credit and debit notes, export invoices, and SEZ documents with the correct document sub-type, reverse-charge, and supply-type flags. Which document types are included is confirmed in the statement of work so the build matches how you actually invoice.

Is my GST data and API credential secure?

API credentials are stored in encrypted Frappe settings, not in source code, and auth tokens are cached and refreshed on a scheduler event. Actions are gated by DocType permissions and role profiles so only your accounts and compliance roles can generate or cancel documents, and every call is logged for audit.

Request a quote

India GST E-Invoicing & E-Way Bill

A build-to-order ERPNext app that generates IRN-validated GST e-invoices with signed QR codes and creates or updates e-way bills straight from your Sales Invoice, wired to the IRP/GSTN APIs. ECOSIRE scopes, builds, installs, and supports it — no manual portal re-keying.

  • IRN generation on Sales Invoice `on_submit` via a `hooks.py` doc event, calling the IRP/GSTN e-invoice API through your GSP or the NIC sandbox
  • Government signed QR (Base64) decoded and rendered on the invoice print format, with acknowledgement number and date written back to the document
  • Dedicated `GST E-Invoice Log` DocType capturing full request/response payloads, the signed invoice JSON, and status for audit
  • E-way bill Part-A auto-derived from the invoice plus a Part-B DocType for transporter ID, vehicle number, transport mode, and distance

Request a Quotation

Tell us about your India GST E-Invoicing & E-Way Bill requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.