Talk to an Expert
Talk to an Expert ✆ +91 945 945 6700
Accounting and Bookkeeping · 9 min read · Jul 20, 2026 · Updated Jul 27, 2026

How to Set Up GST in Odoo Accounting

CA Puja Pradhan

How to Set Up GST in Odoo Accounting - Featured Image
In this guide

    To use GST in Odoo you install the Indian Accounting localisation package (l10n_in), set your company state and GSTIN, then let fiscal positions decide whether an invoice carries IGST or CGST plus SGST. Odoo does support Indian GST, and it is compliant when the localisation is set up in the right order: taxes and tax groups first, then fiscal positions, then HSN codes on products, and finally e-invoicing if your turnover requires it. This guide explains each step in plain terms, gives one worked tax calculation, and points you to the parent Odoo Accounting Services page if you would rather have the setup done for you.

    Does Odoo support Indian GST?

    Yes. Odoo ships a set of India-specific modules that sit on top of its core double-entry engine. The base module, l10n_in, loads the Indian chart of accounts, the standard GST tax codes and the HSN or SAC fields. Companion modules add the Indian GST reports, e-invoicing (IRN) and e-way bill generation. Without these installed, Odoo behaves like a generic international ledger with no concept of CGST, SGST or IGST, so the first real task is always installation.

    A short reminder on scope: this article is a setup tutorial. If you are still deciding whether the software fits your business, read our companion piece on whether Odoo is good accounting software for Indian businesses and the honest list of disadvantages of Odoo accounting before you commit.

    Which Odoo module do you install for GST?

    The mandatory package is l10n_in (Indian Accounting). Install it from the Apps menu before you post any transactions, because it rewrites the chart of accounts and adds the GST tax codes. The related modules you will usually want are the Indian GST reports module, the e-invoicing module and the e-way bill module. Install only what your turnover and business actually need; every extra module is one more thing to keep updated.

    Common mistake: Installing the Indian localisation after invoices are already posted. Odoo will not retag historical entries for you, so you are left correcting tax lines and the chart of accounts by hand. Install l10n_in on the very first day the company record is created.

    How do you configure GST in Odoo, step by step?

    The setup follows a fixed order. Each step depends on the one before it, so resist the urge to jump ahead to raising invoices.

    Six-step flow showing the correct order to configure GST in Odoo, from installing l10n_in to adding e-invoicing credentials.
    GST setup sequence in Odoo
    1. Install l10n_in. Apps, search Indian Accounting, install. This is the foundation and cannot be skipped.
    2. Set the company state and GSTIN. On the company record enter the registered state and the 15-digit GSTIN. The state field is what Odoo reads to decide intra-state versus inter-state tax, so it must be exact.
    3. Check taxes and tax groups. The localisation pre-loads GST 5%, 12%, 18% and 28% as sale and purchase taxes, each split into the correct tax group. Confirm the rates and the linked ledger accounts rather than creating your own from scratch.
    4. Review fiscal positions. Odoo creates intra-state and inter-state fiscal positions that map a single tax to its CGST plus SGST or IGST equivalent. This mapping is the heart of GST in Odoo.
    5. Set HSN or SAC on every product. Enter the code on the product form so the GSTR-1 HSN summary populates itself.
    6. Configure e-invoicing and e-way bills, if applicable. Add the GST Suvidha Provider API credentials generated on the portal so IRNs and e-way bills push automatically.
    CA Tip: Set the state on every customer and vendor contact at the point of creation, not later. A blank state is the single most common reason Odoo applies the wrong GST head on an invoice.

    How do you create GST tax and tax groups in Odoo?

    In most cases you do not create GST taxes at all, because l10n_in supplies them. Each rate exists once as a sale tax and once as a purchase tax, and each belongs to a tax group such as GST 18%. The tax group is what lets a single fiscal position swap an 18% IGST line for a 9% CGST plus 9% SGST pair without you touching the invoice. If you genuinely need a non-standard rate, duplicate an existing GST tax so it inherits the correct tax group and ledger mapping, then edit the percentage. Building a tax from a blank form usually breaks the fiscal position link and the GST reports that depend on it.

    How does Odoo decide between IGST and CGST plus SGST?

    Odoo compares two states: the state on your company record and the state on the customer's delivery address. When the states match, the intra-state fiscal position applies and the invoice carries CGST and SGST at half the rate each. When they differ, the inter-state fiscal position applies and the invoice carries IGST at the full rate. This logic is automatic, but it is only as reliable as the state data on your contacts.

    Flow showing how Odoo compares company and customer states to apply CGST plus SGST for same-state and IGST for different-state sales.
    How Odoo picks the GST head

    Worked example: intra-state versus inter-state on a Rs 1,00,000 invoice

    Assume a taxable value of Rs 1,00,000 on goods taxed at 18% GST. The table shows how the same invoice splits depending on whether the customer is in the same state as your company or in a different one. Figures are indicative and Exl GST is not relevant here as the tax is the point of the example.

    LineIntra-state (same state)Inter-state (different state)
    Taxable valueRs 1,00,000Rs 1,00,000
    CGST 9%Rs 9,000Rs 0
    SGST 9%Rs 9,000Rs 0
    IGST 18%Rs 0Rs 18,000
    Total taxRs 18,000Rs 18,000
    Invoice totalRs 1,18,000Rs 1,18,000

    The total tax and the invoice total are identical at Rs 18,000 and Rs 1,18,000; only the split between heads changes. That split is exactly what the fiscal position controls, and getting it wrong means your GSTR-1 reports the tax under the wrong head even though the customer paid the right amount.

    Where do HSN codes go, and how much detail is required?

    HSN for goods or SAC for services is entered on each product, under the Accounting or Purchase tab, in the HSN or SAC code field added by the localisation. Setting it at product level lets the GSTR-1 HSN summary build automatically instead of being typed in later. On the reporting depth: six-digit HSN is required where aggregate turnover exceeded Rs 5 crore in the previous financial year, and four digits is accepted below that. The current rules and thresholds are published by the CBIC, and it is worth confirming them each year rather than assuming last year's limit still holds.

    How do you generate GST invoices and e-invoice IRNs from Odoo?

    Once taxes, fiscal positions and HSN codes are in place, a normal customer invoice already carries the correct GST. For e-invoicing, the Indian e-invoicing module connects to a GST Suvidha Provider using API credentials you create on the GST portal. On confirmation Odoo pushes the invoice, receives the IRN and acknowledgement number, and stores the signed QR code on the record. E-invoicing is mandatory for businesses whose aggregate turnover crossed Rs 5 crore in any year from 2017-18 onward, so many growing SMEs now fall inside it. If you also move goods, the e-way bill module generates the bill from the same invoice.

    How do you file GST returns from Odoo?

    Odoo does not file on your behalf; it prepares the data. Run the GST report under Accounting reporting for the return period, then either export the summary for manual entry or use the GSTR-1 export that produces a JSON file for the GST portal offline utility. Before you upload anything, reconcile the export against the sales register and the credit note register, because amendments and cancelled invoices are the usual source of mismatch. For input tax credit, cross-check the purchase side against your GSTR-2B so you only claim what the portal reflects. The return due dates themselves are governed by the GST law and published on the GST portal, not by the software.

    Common mistake: Treating the Odoo GSTR-1 export as final without reconciling cancelled and amended invoices. A single voided invoice that is still counted inflates your outward supply and creates a mismatch the portal will flag at filing.

    Is Odoo GST compliant, and how does it compare with the alternatives?

    Odoo is GST compliant in India when the localisation is installed and configured correctly; compliance is a function of setup, not of the label. If you are weighing it against other software, our comparison of Odoo versus Zoho Books for an Indian SME goes deeper, and you can read about the equivalent setup on Zoho Books Accounting, Xero Accounting Services or Tally Prime Accounting Services if you have not settled on a platform. The practical difference is that Odoo asks for more configuration up front in exchange for a single system that also runs inventory, sales and manufacturing.

    Key terms

    Key takeaways

    • Install l10n_in before the first invoice; retagging history later is painful.
    • The company state and the customer's delivery state decide IGST versus CGST plus SGST.
    • Fiscal positions do the tax split automatically, so never build GST taxes from a blank form.
    • Put HSN or SAC on every product to auto-build the GSTR-1 HSN summary.
    • Reconcile the Odoo export to your sales and credit note registers before filing.

    Set up in the right order, GST in Odoo is dependable and largely hands-off at invoice time. If the configuration or a migration feels heavy, the Odoo Accounting Services team can set the localisation, taxes and fiscal positions for you and hand back a system that files clean.

    Decision guide

    Which GST head will Odoo apply, IGST or CGST plus SGST?
    Which GST head will Odoo apply, IGST or CGST plus SGST?
    Share this guide: Link copied!

    Which Odoo module is required for Indian GST?

    The Indian Accounting localisation package, l10n_in, must be installed before the company is used, because it loads the Indian chart of accounts, GST tax codes and HSN fields. Related modules cover Indian GST reports, e-invoicing and e-way bills. Installing localisation after transactions are posted forces manual retagging of existing invoices.

    How does Odoo decide between IGST and CGST plus SGST on an invoice?

    Odoo compares the company state set on the company record with the state on the customer's delivery address, then applies the fiscal position mapped to intra-state or inter-state. Matching states give CGST and SGST at half the rate each, different states give IGST at the full rate. A blank state on the contact is the usual cause of wrong tax.

    Can e-invoice IRN be generated directly from Odoo?

    Yes. The Indian e-invoicing module connects to a GST Suvidha Provider using API credentials created on the e-invoice portal, then pushes the invoice and stores the IRN, acknowledgement number and signed QR code on the record. E-invoicing is mandatory for businesses with aggregate turnover above Rs 5 crore in any year since 2017-18.

    Where are HSN codes entered for products in Odoo?

    HSN or SAC is set on each product under the Accounting or Purchase tab as the HSN or SAC code field, provided by the Indian localisation. Setting it at product level lets the GSTR-1 HSN summary build automatically. Six digit HSN reporting is required where aggregate turnover exceeded Rs 5 crore, and four digits below that.

    How is GSTR-1 data taken out of Odoo for filing?

    Run the GST report under Accounting reporting for the return period and export the summary, or use the GSTR-1 export that produces a JSON file for the GST portal offline utility. Reconcile the export to the sales register and the credit note register first, since amendments and cancelled invoices are the common mismatch.