GST E-Invoicing Infrastructure
Compliance as a step in billing, not a separate chore.
- Role
- Lead developer
- Status
- Production
- Stack
- Django · Python · IRP API
How it fits together
01
Context
Under India’s GST e-invoicing rules, qualifying invoices must be registered with the Invoice Registration Portal. The registration returns an invoice reference number (IRN) and a signed QR code that belong on the final invoice.
I led a direct integration with the IRP so registration happens inside the existing Django billing flow.
02
Constraints
- The IRN and signed QR data returned by the portal must reach the customer’s invoice unchanged.
- Registration depends on an external government service, so the billing flow has to cope with it being slow or unavailable.
- Tax and customer data must never appear in logs, examples or demos.
03
What I built
- A direct IRP API integration that registers invoices from the billing workflow.
- Handling of the returned IRN and signed QR data.
- Customer-ready PDF invoices that carry the registration details, sent to customers by email.
04
Tradeoff: Integrate directly instead of exporting files
Calling the portal directly means owning authentication and error handling for an external service. It removes the export, upload and re-import loop and keeps the invoice and its registration together.
05
Outcome
E-invoicing runs as part of billing instead of as a separate manual step.