Confirm e-invoice applicability: mandatory for GST-registered businesses with annual aggregate turnover above the current notified threshold; verify the current threshold on the GST portal as it has been revised multiple times.
Choose one of the six government-notified IRPs (NIC-IRP, IRIS-IRP, and others); register your GSTIN on the chosen IRP's portal and obtain API credentials (client ID and client secret or API key depending on the IRP).
Authenticate via the IRP's API authentication endpoint to obtain a session token; session tokens are short-lived and must be renewed for batches exceeding the token validity period.
Build the invoice payload as a JSON object conforming to the GST e-invoice schema (the schema includes GSTIN, document type, line items with HSN codes, tax rates, and totals); POST to the IRP's IRN generation endpoint.
On success the IRP returns an IRN (Invoice Reference Number), a digitally signed JSON (signed QR data), and a QR code; embed the QR code on the invoice printed or shared with the buyer — the IRN must appear on the invoice.
For e-way bill generation on the same consignment, the IRP's API supports auto-generation of an e-way bill linked to the IRN in the same API call when Part B transporter details are supplied.
Known gotchas
Each IRP issues its own API credentials and has slightly different endpoint paths and authentication mechanisms; do not assume credentials or SDK code written for NIC-IRP will work on IRIS-IRP or other private IRPs without adjustments.
An IRN is a unique hash derived from the GSTIN, document type, document number, and financial year; attempting to register the same combination a second time returns a duplicate IRN error — ensure your invoice numbering is unique per GSTIN per financial year.
Cancellation of a registered e-invoice must happen within 24 hours via the IRP API; after 24 hours the IRN is locked and the invoice can only be addressed through a credit note — build cancellation workflows to respect this window.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp