Perimattic
Guides

How to Connect TallyPrime with Power BI

ERPPlugs Team14 October 202610 min read7 sections
TallyPrime exposes data through an ODBC driver and an XML gateway. You can connect Power BI directly via ODBC for simple reads, but production dashboards with scheduled refresh, multi-company support, and schema stability benefit from a managed extraction layer like ERPPlugs’ upcoming Tally Data Bridge.
1

What People Actually Want: Live Tally Data in Power BI

When someone searches "tally to power bi," they are not looking for a screenshot of a Tally report pasted into a slide. They want their Tally data — sales registers, outstanding receivables, stock summaries, cash flow — refreshing automatically inside a Power BI dashboard that their team can slice, filter, and drill into without opening Tally at all.

This is a reasonable ask. Power BI is built for exactly this kind of work: pulling data from operational systems and turning it into interactive visuals. The challenge is not Power BI. The challenge is getting data out of TallyPrime reliably, repeatedly, and in a shape that Power BI can consume.

There are three practical routes to get there. Each has real trade-offs, and which one you pick depends on how many companies you manage, how often you need the data refreshed, and how much maintenance you are willing to absorb.


2

Route 1: ODBC — The Direct Connection

TallyPrime ships with an ODBC driver. Once enabled in Tally’s configuration (F12 > Advanced Configuration > Enable ODBC Server), Tally exposes its data as a set of tables that any ODBC-compatible client — including Power BI Desktop — can query.

The setup is straightforward. In Power BI Desktop, choose "Get Data > ODBC," select the Tally ODBC DSN you configured in Windows, and you will see tables like `Ledger`, `StockItem`, `Voucher`, and `Company`. Write a query or use the navigator to pick the tables you need, and Power BI pulls the data.

This works. For a developer or CA who wants to pull a trial balance or ledger summary from a single Tally company into a one-off Power BI report, ODBC is the right starting point. No middleware, no subscription, no dependencies.


3

The ODBC Gotchas — Why It Breaks in Production

The ODBC route is honest and functional for simple cases, but it has real limitations that surface the moment you try to use it for a production dashboard with scheduled refresh:

Single-threaded access. Tally’s ODBC server processes one query at a time. If your Power BI dataset has 8 tables and Power BI tries to refresh them in parallel (which it does by default), queries queue up and the refresh takes far longer than expected. On a company file with a few years of voucher data, a full refresh can take 20–40 minutes.

Schema instability. Tally’s ODBC schema is not versioned. When Tally updates, column names or data types can shift. When you add a custom field or a new voucher type in Tally, the schema changes. Power BI queries that worked yesterday return errors today. There is no migration path — you fix the queries manually.

No incremental sync. ODBC pulls the full dataset every time. There is no change-data-capture, no "give me vouchers since last refresh." For a company with 50,000+ vouchers, this means every scheduled refresh re-reads everything, which is slow and puts load on the Tally instance.

Company context. The ODBC driver connects to whichever company is currently loaded in Tally. If someone switches the active company in Tally while Power BI is mid-refresh, you get data from the wrong company — silently. Multi-company setups require manual coordination or scripting to switch contexts before each refresh.

Network and firewall. Power BI Service (cloud-based scheduled refresh) cannot reach your local Tally instance directly. You need a Power BI Gateway installed on a machine that can see Tally’s ODBC port, and that gateway needs to stay online. If the gateway machine restarts or Tally is not running when the refresh fires, it fails silently.


4

Route 2: TDL/XML Export

The second approach bypasses ODBC entirely. Instead of querying Tally like a database, you use Tally’s XML gateway (port 9000) to request specific data exports, then land the results as files — CSV, JSON, or XML — that Power BI imports.

This is how most custom Tally integrations work under the hood. You write a TDL collection definition that specifies exactly which fields you want (ledger name, parent group, opening balance, closing balance, for example), send it as an XML POST to Tally’s listener, parse the XML response, and save it as a structured file.

The advantage over ODBC is precision. You control exactly what data comes out and in what shape, so Power BI gets a clean, predictable dataset. You can filter by date range, voucher type, or company at the TDL level, reducing the data volume significantly.

The disadvantage is that you are now maintaining a custom extraction pipeline. The TDL needs to be written and tested. The extraction script needs to run on a schedule (Task Scheduler on Windows, typically). The output files need to land somewhere Power BI can reach them. And when Tally’s TDL behaviour changes in an update, your extraction breaks and someone has to debug TDL — which is not a skill most teams have on staff.


5

When to Just Use ODBC Yourself

ODBC is the right choice when these conditions are all true:

Single company. You are pulling data from one Tally company file, so there is no company-switching risk.

Simple reads. You need ledger balances, stock summaries, or a trial balance — not multi-year voucher-level detail with inventory allocations and cost centre breakdowns.

Manual or infrequent refresh. You are fine clicking "Refresh" in Power BI Desktop when you need updated data, rather than relying on automated scheduled refresh via the Power BI Service.

Learning or prototyping. You want to explore what Tally data looks like in Power BI before committing to a production pipeline.

If this describes your situation, set up the ODBC DSN, connect Power BI Desktop, and build your report. It is free, it works, and you will learn a lot about what Tally data actually looks like when you get it outside of Tally’s own report viewer.


6

When a Managed Bridge Makes Sense

The calculus shifts when any of these are true:

Multiple companies. You manage books for 3, 10, or 50 Tally companies (common for CA firms and group companies). Switching company context per-refresh and maintaining separate ODBC configurations is fragile at scale.

Scheduled refresh. Your dashboard needs to update overnight or every few hours without someone manually hitting refresh. This means dealing with the Power BI Gateway, Tally uptime coordination, and silent failure handling.

Schema stability. You cannot afford to have your dashboards break every time Tally updates or someone adds a ledger group. You need an extraction layer that absorbs schema changes and presents a stable interface to Power BI.

Incremental sync. Pulling 100,000 vouchers every refresh is not practical. You need a layer that tracks what has changed since the last extraction and only sends the delta.

Team consumption. The dashboard is not just for you — it is published to the Power BI Service for a team of 5, 10, or 50 people who expect it to just work every morning.

This is the space ERPPlugs is building into. The Tally Data Bridge — currently in development — is designed to sit between TallyPrime and destinations like Power BI and Excel. It handles the extraction, schema mapping, incremental sync, and multi-company context switching, and lands the data in a format Power BI can consume via scheduled refresh without a custom pipeline.


7

How ERPPlugs Approaches This

ERPPlugs is building the Tally Data Bridge as part of the broader connector platform. The approach is the same one that powers the ecommerce and payment gateway connectors: a lightweight bridge app on the Tally machine handles the low-level XML/ODBC communication, while the cloud layer manages scheduling, schema mapping, and data delivery.

For Power BI specifically, the bridge will land extracted data in a format that Power BI can pull via its standard connectors — either as a hosted dataset endpoint or as files in a location the Power BI Gateway can reach. The goal is zero TDL, zero ODBC debugging, and zero manual company switching.

The Tally Data Bridge is not live yet. If you are evaluating options today, start with the ODBC route for single-company setups, or reach out to the ERPPlugs team to discuss the bridge for multi-company or production-refresh scenarios. You can browse the existing connector catalog to see what is available now.

FAQ

Frequently Asked Questions

Quick answers about topics covered in this article

Yes. TallyPrime includes an ODBC driver that you enable in F12 > Advanced Configuration. Once enabled, Power BI Desktop can connect via "Get Data > ODBC" and query Tally tables like Ledger, StockItem, and Voucher. This works well for single-company, manual-refresh scenarios. For production dashboards with scheduled refresh or multi-company setups, the ODBC route has limitations around single-threaded access, schema stability, and company context switching.

Tally’s ODBC server is single-threaded — it processes one query at a time. Power BI attempts to refresh multiple tables in parallel by default, but Tally queues them sequentially. Combined with no incremental sync (every refresh pulls the full dataset), a company with years of voucher history can take 20–40 minutes per refresh. Reducing the number of tables, filtering by date range in your queries, and disabling parallel loading in Power BI’s options can help.

Today, you can automate extraction by scripting XML requests to Tally’s port 9000 gateway using TDL, then scheduling the script via Windows Task Scheduler to land the output as files Power BI imports. This works but requires TDL knowledge and ongoing maintenance. ERPPlugs is building a Tally Data Bridge that will automate this extraction with scheduled refresh, incremental sync, and multi-company support — no TDL or custom scripting required.

Get Started

Ready to automate your ERP workflows?

Connect your ERP with your business tools in under 5 minutes. No coding required.