GST Overview in Odoo
India's Goods and Services Tax (GST) has multiple components that Odoo must handle: CGST + SGST for intra-state, IGST for inter-state, HSN/SAC codes for classification, e-invoicing for B2B, and monthly/quarterly return filing (GSTR-1, GSTR-3B).
Initial Setup
1. Install Indian Chart of Accounts
During Odoo setup, select "India" as the country. Odoo installs the Indian chart of accounts and pre-configured tax groups.
2. Company GSTIN
# Settings → Companies → Your Company
# GSTIN: 29ABCDE1234F1Z5 (15-digit)
# State: Karnataka (auto-detected from GSTIN first 2 digits)
# PAN: ABCDE1234F (extracted from GSTIN)3. Tax Configuration
# Pre-configured taxes (verify these exist):
# GST 5% (CGST 2.5% + SGST 2.5%)
# GST 12% (CGST 6% + SGST 6%)
# GST 18% (CGST 9% + SGST 9%)
# GST 28% (CGST 14% + SGST 14%)
# IGST 5%, 12%, 18%, 28% (for inter-state)
# Odoo auto-selects CGST+SGST or IGST based on:
# Company state vs Customer/Vendor state
# Same state → CGST + SGST
# Different state → IGST4. Fiscal Positions
# Fiscal positions auto-map taxes:
# Intra-state: GST 18% → CGST 9% + SGST 9%
# Inter-state: GST 18% → IGST 18%
# Export: GST 18% → 0% (with LUT)
# SEZ: GST 18% → 0% (with bond/LUT)
# Unregistered dealer: Standard GST appliesHSN/SAC Codes
# Every product needs an HSN code (goods) or SAC code (services):
# Products → set HSN/SAC code field
# Examples:
# Laptop: 8471.30
# Software license: 9983.14
# Consulting: 9983.11
# Food items: 2106.90
# HSN code is mandatory on invoices for:
# Turnover > 5 Cr: 6-digit HSN
# Turnover 1.5-5 Cr: 4-digit HSN
# Turnover < 1.5 Cr: 4-digit for B2BE-Invoicing
Mandatory for businesses with turnover > 5 Cr (lowered progressively):
- Register on the GST e-invoice portal (einvoice1.gst.gov.in)
- Get API credentials (client ID + secret)
- Configure in Odoo: Accounting → Configuration → E-Invoicing
- On invoice confirmation, Odoo generates JSON → sends to IRP → gets IRN + QR code
- IRN (Invoice Reference Number) printed on invoice
E-Way Bill
Required for movement of goods worth > ₹50,000:
- Generated from Odoo delivery orders
- Contains: invoice details, transporter, vehicle number
- Valid for distance-based duration
- Can be generated via API integration
GSTR Returns
| Return | Frequency | Content |
|---|---|---|
| GSTR-1 | Monthly/Quarterly | Outward supplies (sales) |
| GSTR-3B | Monthly | Summary of inward/outward + tax payment |
| GSTR-2A/2B | Monthly | Auto-populated inward supplies |
| GSTR-9 | Annual | Annual return |
# Export GSTR-1 data from Odoo:
# Accounting → Reports → GST Reports → GSTR-1
# Generates JSON file for upload to GST portal
# Includes: B2B invoices, B2C invoices, credit/debit notes, exportsReverse Charge Mechanism (RCM)
# For specific goods/services, buyer pays GST instead of seller:
# - Import of services
# - Purchases from unregistered dealers (certain cases)
# - Specific notified goods/services
# In Odoo:
# Create RCM tax group
# Vendor bill with RCM → tax posted to output + input simultaneously
# Net tax effect: zero (but compliance requirement)TDS/TCS on GST
- TDS: Government entities deduct 2% (1% CGST + 1% SGST / 2% IGST) from payments to vendors
- TCS: E-commerce operators collect 1% (0.5% CGST + 0.5% SGST) from sellers
- Configure in Odoo: create separate tax lines for TDS/TCS
Common Mistakes
- Wrong state on partner → CGST+SGST instead of IGST (or vice versa)
- Missing GSTIN on B2B invoices → rejected on GST portal
- HSN code missing → e-invoice generation fails
- Not reconciling with GSTR-2B → ITC (Input Tax Credit) mismatch
DeployMonkey for India
Deploy Odoo for your Indian business on DeployMonkey. The AI agent configures GST — taxes, fiscal positions, HSN codes, e-invoicing, and GSTR export. Compliance-ready from day one.