All work

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

A simplified illustration. No real IRNs, invoices or tax data are shown.
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.