Techmatic Tally ERP 9 Connector
A production-ready, bidirectional bridge between Tally ERP 9 and Odoo. Ledgers become Partners, Stock Items become Products, and every voucher — Sales, Purchase, Purchase AE, Purchase RI, Delivery Challans, Payments, Receipts, POS and Stock Journals — flows both ways automatically. A guided Historical Migration back-fills years of vouchers in batches, then a near-real-time sync cycle keeps the two systems mirrored: Tally vouchers appear in Odoo within a minute, and Odoo invoices, bills, deliveries and POS sales are raised back in Tally as native vouchers — GST split, cost centres, godowns and units handled. GUID-based mapping with checksums makes every sync idempotent: no duplicates, no echo loops, full audit logs.
Compatible with Odoo 19 (Community + Enterprise)
A single, version-agnostic codebase runs across Odoo 19.0 — Community, Enterprise and Odoo.sh. It works over Tally's built-in XML server (port 9000): no agent to install on the Tally machine, no Tally TDL customisation required.
What Gets Synced
Every master and voucher is mapped both ways. The Direction column shows how each one flows.
| Tally ERP 9 | Direction | Odoo | What flows |
|---|---|---|---|
| Ledgers (parties) | ⇆ Both ways | Contacts / Partners | Name, GSTIN, address, state, phone, email |
| Stock Items | ⇆ Both ways | Products | HSN, part no., rate, base unit (PCS/BOX/MTR) & live on-hand |
| Sales Vouchers | ⇆ Both ways | Customer Invoices | Party, items, GST, amounts, dates |
| Purchase / Purchase AE / Purchase RI | ⇆ Both ways | Vendor Bills + Incoming Receipts | Goods lines create validated receipts (+stock); GST/expense ledgers mapped to accounts |
| Delivery Challans / Notes | ⇆ Both ways | Delivery Orders | Outgoing deliveries that reduce stock on both sides |
| POS Vouchers (e.g. Pos Quote New) | ⇆ Both ways | POS Orders | Paid pos.orders with items, GST, cost centre & cash ledger |
| Payments | → Tally to Odoo | Vendor Payments | Party, amount, reference, date |
| Receipts | → Tally to Odoo | Customer Receipts | Party, amount, reference, date |
| Stock Journals | → Tally to Odoo | Sync Log (logged) | Recorded for audit; not auto-posted (policy) |
| Stock-in-hand (closing balance) | ⇆ Both ways | Product On-Hand | Kept mirrored via pickings & Physical Stock reconcile |
Each entity has its own on/off toggle on the connection, so you sync exactly what you need. All syncs are idempotent (GUID + checksum) — no duplicates, no echo loops.
Configuration — 5 Steps to Go Live
Step 1 — Prepare Tally. Open Tally ERP 9 and load your company. Go to
Gateway of Tally → F12: Configure → Advanced Configuration and set
"Tally.ERP 9 acts as" to Both (or Server) on port 9000. Leave Tally
sitting at the Gateway screen.
Step 2 — Create the connection. In Odoo, open Techmatic Tally ERP 9 →
Configuration → Connections and create a record: the Tally host
(127.0.0.1 if Tally runs on the same machine, otherwise its LAN IP), port 9000,
the exact Tally company name, and the Odoo company to sync into. Click
Test Connection — it verifies the round-trip and that the company exists.
Step 3 — Choose what to sync. Tick the entities you want under "What to
Sync" (Ledgers, Stock Items, Sales, Purchases, Purchase AE / RI, Delivery
Challans, Payments, Receipts, POS Orders). Set the push voucher-type names to
match your Tally (Delivery Challan type, POS voucher type, POS party ledger, POS
cost centre) and map Purchase AE ledgers to expense accounts with a default
fallback account.
Step 4 — Back-fill history. Open Operations → Historical
Migration, pick the entities, and run once with Dry Run ticked to
preview counts — then untick it and run again to import. The wizard pulls all
dates automatically, batch by batch, until everything is in (it pauses the live
cron while it works).
Step 5 — Go live. Mark the connection Active. The "Tally: Live Sync
Cycle" cron now runs every minute: new Tally vouchers land in Odoo, and posted
Odoo documents are raised back in Tally — no clicks needed. Monitor everything
under Operations → Sync Logs and Sync Mappings.
Guided Historical Migration — Dry Run First
One wizard back-fills your entire Tally history into Odoo. Pick the entities — Ledgers, Stock Items, Sales Invoices, Purchase Invoices, Purchase AE (Expense), Purchase RI (Returns), Delivery Challans, Payments, Receipts, POS Orders, Stock Journals — and the wizard pulls all dates automatically, batch by batch, newest first, until everything is imported: no date ranges to manage, no manual re-runs. A Dry Run mode previews exact record counts before anything is written. Imports are idempotent (GUID + checksum mapping), commit per batch, and pause the live sync cron while running so the two never collide. Tested against a company with 11,000+ vouchers including 8,000+ POS invoices.
Tally Vouchers Become Real Odoo Invoices
Every Tally Sales voucher lands in Odoo Invoicing as a customer invoice with its party, items, quantities, rates and dates — and a colour-coded Tally Source badge (Tally Sales / Tally Purchase / Tally AE / Tally RI / Tally POS) so imported documents are instantly distinguishable from native ones. Products and customers referenced by a voucher are matched by external mapping, internal reference or exact name — and auto-created when missing, so an invoice line never degrades into free text. The reverse direction is just as automatic: posting a customer invoice in Odoo raises a native Sales voucher in Tally — with the item lines and a per-rate "GST @ 18%"-style tax ledger when the invoice has no delivery, or accounting-only when a Delivery Challan already carries the goods (so stock is never reduced twice).
Bidirectional Point of Sale Sync
POS flows both ways. New Tally POS vouchers are imported as genuine pos.order records — paid, stock-reducing, and visible under Point of Sale → Orders — inside a dedicated "Tally POS" shop the connector creates and keeps open automatically (no cashier interaction needed). In the other direction, a sale rung up in Odoo POS is raised in Tally as your own POS voucher type (e.g. "Pos Quote New") carrying the items, the GST tax ledger, the mandatory cost centre and the cash/payment party ledger — all four names configurable on the connection to match any Tally setup. Signature-based echo guards reconcile pushed vouchers on the next pull, so a sale never comes back as a duplicate.
One Product Catalogue, Live Stock Levels
Tally Stock Items sync as storable Odoo products with their HSN code, part number, rate and description. Each product remembers its exact Tally item name and base unit (PCS, BOX, MTR…), so quantities round-trip perfectly — a classic Tally integration failure mode (vouchers arriving with quantity 0 because of a unit mismatch) is designed out. On-hand stays mirrored in both directions: Tally vouchers move Odoo stock through real validated pickings, Odoo deliveries raise Delivery Challan vouchers in Tally, and products created in Odoo (e.g. from your eCommerce) are pushed to Tally as item masters automatically before their first transaction.
Purchase Vouchers Drive Real Inventory
Purchase, Purchase AE and Purchase RI vouchers import as vendor bills — and their goods lines automatically create validated incoming receipts that raise Odoo on-hand, each stamped with the originating Tally voucher GUID as its source document. Ledger-only lines (GST, freight, expenses) are booked to the right expense account through a configurable Ledger → Account mapping table with a default fallback. Going the other way, vendor bills created in Odoo push back as the matching Tally purchase voucher type — selectable per bill via a Voucher Type field (Purchase / Purchase AE / Purchase RI) — with items, so Tally stock rises too. PO-linked bills are handled intelligently so the Purchase Order flow never double-counts a receipt.
Full Traceability on Every Synced Document
Every transfer, bill and invoice created by the sync carries its Tally origin in the Source Document field — the voucher GUID straight from Tally — so any record can be traced back to the exact voucher that produced it, and vice versa. The Sync Mappings table stores the GUID ↔ Odoo-record pair with a content checksum (unchanged vouchers are skipped on re-sync; edited ones update in place), and the Sync Log records every push and pull with direction, status, payload and error detail, auto-cleaned after 30 days. If one voucher fails, it is logged and skipped — a single bad record never stops the cycle.
Releases
Odoo 19 Tally ERP 9 Connector — initial release. Bidirectional sync for Ledgers, Stock Items, Sales, Purchase / Purchase AE / Purchase RI, Delivery Challans, Payments, Receipts and POS Orders, with Historical Migration, GST handling, cost-centre support and full sync logging.
Our Services
Odoo Customization
Odoo Implementation
Odoo Support
Hire Odoo Developer
Odoo Integration
Odoo Migration
Odoo Consultancy
Odoo Implementation
Odoo Licensing Consultancy
Contact Us
+91
7995411325
info@techmaticsys.com
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Inventory (stock) • Invoicing (account) |
| Lines of code | 4001 |
| Technical Name |
techmatic_tally_erp9_connector |
| License | LGPL-3 |
| Website | https://www.techmaticsys.com |
Please log in to comment on this module