<link href="https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Google+Sans+Flex:opsz,wght@6..144,1..1000&display=swap" rel="stylesheet">
GST e-Invoice Portal via GSP

ERPNext e-invoicing and IRN generation

IRN generated from the invoice, not re-keyed into a portal. E-invoicing fails in one of two ways. Either your team is keying invoices into a portal a second time, or the integration exists but rejects one invoice in twenty and nobody finds out until the buyer calls. Both are fixable, and the fix is mostly in validation, not in the connection.

ERPNext supports IRN generation through the India Compliance app, which talks to the e-invoice portal via a GST Suvidha Provider.

Can ERPNext generate an e-invoice IRN automatically?

Yes. With the India Compliance app configured against a GST Suvidha Provider, submitting a sales invoice sends it to the e-invoice portal and returns the IRN, acknowledgement number and signed QR code onto the invoice itself. The QR prints on the customer copy and cancellation within the permitted window is handled from the same document.

Why e-invoicing keeps breaking

The portal is strict and unforgiving about things your own invoice format never cared about. That mismatch is where the failures come from.

The invoice is valid to you and invalid to the portal

A missing HSN on one line, a state code that does not match the buyer's GSTIN, a unit of measure outside the permitted list, or a rounding difference of a rupee. Each rejects the whole document, and the message rarely names the field in plain language.

Rejections are discovered by the customer

Where failures are not surfaced, an invoice goes out without a valid IRN and the buyer's team finds it during their own credit reconciliation. By then the correction window may have closed.

Cancellation windows are missed

An IRN can only be cancelled within a limited period after generation, and after that the correction has to happen through a credit note instead. Teams that do not track that clock end up with mismatched books and returns.

Books and portal drift apart

Invoices cancelled in the ledger but not on the portal, or generated on the portal and never marked in the ledger, produce a difference that only appears at annual reconciliation, when it is expensive.

What a properly configured setup gives you

The goal is that nobody thinks about e-invoicing on an ordinary day, and that the exceptions are visible within minutes.

IRN on submit

Submitting a sales invoice sends it to the portal and writes the IRN, acknowledgement number, acknowledgement date and signed QR back onto the same document.

What that means in practice

No second system, no re-keying, and the printed invoice carries the QR because it is pulled from the record rather than pasted in.

Pre-submit validation

The conditions the portal will reject on are checked before the document is sent — HSN present on every line, buyer GSTIN format and state consistency, permitted UOM codes, place of supply, and total rounding.

What that means in practice

Catching these at submit turns a portal rejection into an on-screen message the biller can fix in ten seconds.

Applicability by turnover and document type

Rules are configured so e-invoicing applies to the document types and counterparties it should, and not to those it should not, including exports and supplies to unregistered persons.

What that means in practice

Applying it too broadly is as disruptive as missing it, because the portal rejects documents that should never have been sent.

Cancellation and amendment handling

Cancellation within the permitted window is initiated from the invoice, and the remaining time is visible. Beyond it, the workflow routes to a credit note instead of leaving the user stuck.

What that means in practice

The clock is shown on the document, so nobody has to remember when the window closes.

Exception queue and reconciliation

Any invoice that failed to generate an IRN sits in a visible queue rather than passing silently, and periodic reconciliation compares ledger invoices against portal records.

What that means in practice

This is the control that keeps books and portal in step through the year rather than at the annual return.

What moves between ERPNext and the portal

The exchange is per document and initiated from ERPNext. Nothing is pushed to the portal without a submitted invoice behind it.

ERPNext fieldE-invoice schemaDirectionNotes
Sales Invoice on submitIRN generation requestERPNext → PortalSent via GSP; validated locally first
Company GSTIN & addressSeller detailsERPNext → PortalMust match the registration exactly
Customer GSTIN & billing addressBuyer detailsERPNext → PortalState code has to agree with the GSTIN prefix
Item lines with HSN & UOMItem listERPNext → PortalHSN mandatory per line; UOM from the permitted list
Tax breakup & totalsValue detailsERPNext → PortalRounding differences are a frequent rejection cause
Shipping addressDispatch / ship-toERPNext → PortalRequired where goods move to a third party
IRN, Ack No, Ack DateWritten back to the invoicePortal → ERPNextStored on the document and used on the print format
Signed QR codeInvoice print formatPortal → ERPNextRendered on the customer copy automatically
Cancellation requestIRN cancellationERPNext → PortalOnly inside the permitted window; reason code required

How we get it working

Tested against real documents before cutover, because the first time you find a rejection pattern should not be with a live customer invoice.

  1. 1

    Confirm applicability

    Which of your entities and document types are within scope, and which counterparties and transaction types are outside it. This determines the configuration and prevents documents being sent that should not be.

  2. 2

    Connect through a GSP

    Credentials for your chosen GST Suvidha Provider are configured against your registration, with the connection proved in the sandbox environment before production.

  3. 3

    Clean the master data

    The usual blockers are fixed at source: items without HSN, UOMs outside the permitted list, customer GSTINs that fail validation, addresses with mismatched state codes.

  4. 4

    Test against real invoice shapes

    Domestic, inter-state, export, SEZ, credit note and any unusual document type you actually raise are each run through the sandbox until they generate cleanly.

  5. 5

    Go live with the exception queue

    Production cutover with the failure queue and reconciliation report in place from day one, plus a short session so billing staff know what to do with a rejection.

Timeline shown is indicative and depends heavily on master data condition, which stage three establishes. Statutory thresholds and requirements change; applicability is confirmed with your own advisors.

What this does not do

Worth knowing before you assume e-invoicing removes an obligation it does not.

  • It does not remove the need for a GSP subscription or portal credentials. Those are contracted in your own name, not ours, and carry their own cost.
  • It does not file your GST returns. IRN generation and return filing are separate obligations, though the data feeds the return.
  • It does not generate an e-way bill on its own, although the two are related and can be raised together where the movement requires one.
  • It does not validate that your tax treatment is correct. The portal checks structure, not judgement — a correctly formatted invoice with the wrong tax rate will generate an IRN happily.
  • It cannot recover a missed cancellation window. Once it closes, the correction is a credit note, and no configuration changes that.

This is general information, not legal or tax advice. Applicability thresholds change; confirm your position with a qualified professional.

ERPNext e-invoicing —common questions

In practice yes for most businesses. ERPNext connects to the e-invoice system through a GST Suvidha Provider, and that subscription is contracted in your own name. The connection is configured during implementation and proved in sandbox before any live invoice is sent.

The invoice submits in ERPNext and the IRN request lands in the exception queue rather than blocking your billing. It is retried, and the queue makes it visible that a document is still without an IRN, so nothing slips out silently.

Yes. The signed QR returned by the portal is stored on the invoice record and rendered by the print format, along with the IRN and acknowledgement details. Your existing format is adapted rather than replaced.

Within the permitted window, yes, initiated from the invoice with a reason code. The remaining time is shown on the document. After the window closes the correction has to be a credit note, and the workflow routes you there rather than failing silently.

A periodic reconciliation compares invoices in the ledger against IRN records for the same period, so cancelled-but-not-cancelled and generated-but-not-recorded cases surface during the year rather than at annual return time.

Export invoices have their own treatment within the e-invoice schema and are configured accordingly, including SEZ supplies which are handled differently again. Whether it applies to your business at all depends on turnover thresholds that change, so it is confirmed with your advisors rather than assumed.

Next step

Talk to us about e-invoicing

A short call about how invoices leave your business today and where IRN generation currently breaks.

ERPNext and Frappe are trademarks of Frappe Technologies Pvt. Ltd. References to the GST e-invoice system, IRN and GST Suvidha Providers describe statutory infrastructure operated by or on behalf of Indian tax authorities and are used here for identification only.

ERPNext CalculatorContact Us