What you’ll set up
This tutorial takes an Indian SaaS seller from zero to a GST-compliant invoice. You’ll save your seller GST configuration, see how place of supply decides CGST/SGST vs IGST, connect the Invoice Registration Portal (IRP) for e-invoicing, and generate a compliant invoice for a B2B customer.GST configuration applies to all future invoices. Finalized invoices are
never modified retroactively — set this up before you start billing Indian
customers.
Step 1: Save your seller GST configuration
Store your GSTIN, legal name, state code, SAC code, and default GST rate. This one call drives both invoice formatting and the CGST/SGST-vs-IGST decision.
Read it back any time with
GET /v1/settings/gst — note that it returns 404
until a configuration exists, which is exactly why unconfigured tenants see
0% GST.
Step 2: Understand place of supply
GST splits by where the supply happens. Recurso derives the buyer side from the customer’s billing-address state /place_of_supply and compares it to your
seller state_code:
Create the B2B customer with GSTIN and state so the invoice is correct:
29) and the buyer in Maharashtra (27) — a
different state — so the invoice will carry IGST at 18%. A Karnataka buyer
would instead get CGST 9% + SGST 9%.
Step 3: Enable e-invoicing (IRP)
If you’re under India’s e-invoicing mandate (turnover above the threshold), register your IRP credentials so B2B invoices are submitted to the government portal automatically. This is a separate endpoint from GST config.Start with
environment: "sandbox" to validate credentials, then switch to
production once submissions succeed. Recurso manages IRP token refresh for you;
sensitive fields are masked in responses. Setting is_enabled: false pauses
e-invoice generation without deleting credentials.Step 4: Generate a compliant invoice
With GST configured, invoices are generated automatically at each billing period end — no extra call. The result includes the full GST breakup. For the interstate example above:GET /v1/invoices/{id}/einvoice, and download the print-ready document via
GET /v1/invoices/{id}/pdf.
Verify Your Setup
1
GST config saved
GET /v1/settings/gst returns your GSTIN and rate (not a 404).2
Place of supply correct
A same-state customer’s invoice shows CGST + SGST; a different-state
customer’s shows IGST.
3
IRP connected
Sandbox submissions succeed before you flip
environment to production.4
Invoice compliant
The invoice carries both GSTINs, place of supply, SAC code, and the correct
tax breakup.