Skip to main content
How-To · 4 min read

Odoo Reconciliation in India: Localisation, Community vs Enterprise, and Integration Paths

Odoo has a fast-growing footprint in Indian SMEs through both Community (free) and Enterprise editions. Its India localisation covers GST and TDS at module level, with differences between editions. Reconciliation at scale typically uses Odoo's XML-RPC interface to bridge to an external layer. This guide covers the specifics.

Terra Insight
Terra Insight Reconciliation Infrastructure

Content authored by practitioners with experience at Amazon India, Intuit QuickBooks, and the Tata Group. Meet the team →

Published 17 April 2026
Domain expertise
TDS Reconciliation GST Input Credit Platform Settlements NACH Batch Matching Bank Reconciliation Form 26AS Matching ERP Integrations Enterprise Finance Ops
Knowledge Card
Problem

Odoo's India localisation (l10n_in, l10n_in_gst, l10n_in_edi) covers GST tax determination, e-invoice IRN, and GSTR-1/3B return generation in Enterprise, but no native GSTR-2B matching against the purchase register, no Form 26AS reconciliation, and no TDS on vendor payments under 194C/194J without Studio customisation or partner modules — leaving Indian SMEs on Odoo to reconcile externally above 300 purchase invoices per month.

How It's Resolved

Add an external reconciliation layer via Odoo XML-RPC at /xmlrpc/2/object (or JSON-RPC), pulling account.move, account.move.line, account.bank.statement.line, and res.partner models. Authenticate via API key (Odoo 14+). Ingest GSTR-2B, Form 26AS, and bank MT940 externally, run multi-pass matching with variance taxonomy, and post cleared status back by creating account.payment and reconciliation records via XML-RPC.

Configuration

Odoo connector with XML-RPC/JSON-RPC endpoints, API key authentication, model registry (account.move, account.move.line, account.bank.statement.line, res.partner), rate-limit-aware batch scheduler (Odoo.sh caps 100 req/min), GSTR-2B JSON adapter, Form 26AS parser, and writeback job creating payment and reconciliation records.

Output

An Indian Odoo deployment (Community or Enterprise) reconciled beyond the native GSTR-1/3B layer — GSTR-2B invoice-level matching, Form 26AS TDS receivable matching, bank reconciliation at scale, and cleared status written back to Odoo's native UI for CA and auditor review.

Odoo has grown rapidly in the Indian SME and mid-market segments, particularly among businesses that want an ERP beyond Tally’s complexity ceiling but don’t need SAP or Oracle scale. Its India localisation has matured through Odoo 15, 16, and 17, and the gap between Community and Enterprise editions has narrowed in key areas — though not for reconciliation. This guide covers what the India localisation includes and where an external reconciliation layer fits.

Odoo India Localisation — Module by Module

The India fiscal localisation in Odoo 17 comprises:

  • l10n_in — Base India module: chart of accounts, GST tax structure, state codes, HSN/SAC code support
  • l10n_in_gst — GST tax determination on invoice entry, reverse charge mechanism, ISD support
  • l10n_in_edi — e-invoice generation with IRN via Invoice Registration Portal (IRP), QR code embedding
  • l10n_in_edi_ewaybill — E-way bill generation through the NIC portal
  • l10n_in_hr_payroll — Indian salary structure with TDS under Section 192, PF, ESI
  • l10n_in_reports — GSTR-1 and GSTR-3B return output

TDS on vendor payments under 194C, 194J, 194I, 194Q and other sections is not in the core localisation. It is typically added via Odoo Studio customisation or a partner module.

Community vs Enterprise for India

FeatureCommunityEnterprise
Base India localisation (l10n_in)YesYes
GST tax determinationYesYes
e-invoice (IRN) generationNoYes
GSTR-1/3B JSON exportLimited (partner modules)Native
Bank reconciliation with auto-suggestBasicAdvanced
Document recognition (OCR)NoYes
Indian bank feeds (Salt Edge / Yodlee)NoYes

For an Indian business serious about reconciliation automation, Enterprise is the practical starting point. The Community edition is viable for entities under 100 transactions/month where e-invoice is not mandatory (turnover under ₹5 crore).

Integrating Odoo with an External Reconciliation Layer

Odoo exposes XML-RPC at /xmlrpc/2/object (and JSON-RPC for newer clients). Authentication is via API key (Odoo 14+) or username/password. The endpoint is real — it is Odoo’s supported integration mechanism, not a fabricated API.

The integration flow:

  1. External tool authenticates and gets a session.
  2. Reads open invoices from account.move, ledger lines from account.move.line, and bank statement lines from account.bank.statement.line.
  3. Processes the reconciliation externally (applying TDS, GST, NACH, platform-settlement matching logic).
  4. Writes cleared status back by creating account.payment records and calling reconciliation methods on account.move.line.

Rate limits apply on hosted Odoo.sh instances (~100 requests/minute); on-premise Odoo has no imposed limit other than PostgreSQL throughput.

Reconciliation Gaps That Move to the External Layer

  • GSTR-2B matching — Not native. External layer reads the Odoo purchase register via XML-RPC and matches against GSTR-2B JSON.
  • Form 26AS vs TDS receivable — Not native. External TRACES integration handled outside Odoo.
  • Payment gateway settlement — Odoo connects to Stripe and PayPal natively; Razorpay, PayU, Cashfree, Flipkart, Amazon settlements typically need partner modules or external processing.
  • NACH batch disaggregation — Not handled. The bank statement line shows the lump sum; mandate-level outcomes come from the NPCI response file, which Odoo does not parse.

For a growing Indian business on Odoo, reconciliation software India reads Odoo via XML-RPC and adds these India-specific layers. GST reconciliation software handles the GSTR-2B matching specifically, pulling the Odoo purchase register and the 2B JSON in a single pipeline.

India-Specific Considerations

Odoo’s e-invoice module posts the IRN to the invoice record but does not verify that the IRN actually appears in the recipient’s GSTR-2B — that verification is the reverse reconciliation step that sits outside Odoo. The GSTR-2B reconciliation guide details the end-to-end matching logic. The reconciliation in SAP, Oracle and Tally India guide covers the parallel gaps in heavier ERPs. Odoo’s full India fiscal localisation reference is published on the Odoo India Fiscal Localization documentation.

A brief FAQ on specific Odoo-India reconciliation questions follows.

Primary reference: Odoo India Fiscal Localization documentation — where Odoo publishes the India localisation reference for GST, TDS, and e-invoice modules.

Frequently Asked Questions

What modules does the Odoo India localisation include?
Odoo's India fiscal localisation (available from Odoo 15 onwards and complete in Odoo 17) includes l10n_in (base chart of accounts and tax structure), l10n_in_gst (GST tax determination and return generation), l10n_in_edi (e-invoice IRN generation via IRP), l10n_in_hr_payroll (Indian payroll with TDS on salary under Section 192), and l10n_in_reports (GSTR-1, GSTR-3B). TDS on vendor payments under 194C, 194J etc. is available via partner modules or Odoo Studio customisation, not the core localisation.
What are the differences between Odoo Community and Odoo Enterprise for India reconciliation?
Odoo Community (free) includes the base l10n_in module and basic GST tax determination but lacks the e-invoice module, automated GSTR-1 JSON generation, and the Bank Reconciliation screen's AI-suggestion feature. Odoo Enterprise (paid, approximately ₹31/user/month for India as of 2026) adds l10n_in_edi, GSTR-1/3B JSON, the advanced bank reconciliation UI, and the Accounting app's document recognition. For India-scale reconciliation, Enterprise is the practical starting point.
How does Odoo's bank reconciliation feature work?
Odoo Enterprise's bank reconciliation (Accounting → Bank) ingests bank statements via CSV, OFX, QIF, CAMT.053, or direct bank feed (Salt Edge / Yodlee connectors). Each statement line is matched against open customer and vendor invoices using a model-based rule engine — reference, amount, partner name, and date are the signals. Reconciliation models can be configured per bank account for repetitive transactions like bank charges or interest. Line-level acceptance is manual by default; auto-reconciliation is possible but requires rule tuning to avoid false positives.
How is Odoo typically integrated with an external reconciliation layer in India?
Odoo exposes XML-RPC at /xmlrpc/2/object (and JSON-RPC at /jsonrpc) for all models including account.move (journal entries), account.move.line (GL lines), account.bank.statement.line (bank transactions), and res.partner (parties). An external reconciliation layer authenticates with API key (Odoo 14+) or username/password, reads open items, processes matching outside Odoo, and writes cleared status back by creating account.payment and account.move.line reconciliation records via XML-RPC. Rate limits depend on the hosting: Odoo.sh caps at 100 requests/minute per instance.
Does Odoo handle GSTR-2B matching for Indian purchase reconciliation?
Odoo Enterprise's India localisation includes GSTR-1 and GSTR-3B return generation but does not include native GSTR-2B reconciliation against the purchase register as of Odoo 17. Some community partner modules (from Indian Odoo consultants like Cybrosys, Serpent Consulting) add GSTR-2B import and matching. For production-grade Indian GST reconciliation at 300+ invoices/month, the standard pattern is to export the Odoo purchase register via XML-RPC and match against GSTR-2B JSON in an external layer.

See how TransactIG handles reconciliation for your industry

Configuration takes 2–4 weeks. No code development required. ISO 27001:2022 certified.