Date: 2026-05-14 Product: TallyPrime / Tally.ERP 9 (tallysolutions.com) — Tally Solutions Pvt. Ltd., Bangalore, India Current version: TallyPrime Release 6.0 (2025) — also TallyPrime Edit Log 6.0 Purpose: Evaluate whether Tally — the dominant SMB accounting/ERP software in India — has API capabilities that would let Orcha push processed AP invoices, sync reference data, and read back document status, before committing to integration work.
Tally is on-premise desktop accounting software, not a cloud SaaS with a hosted API. This single fact dominates every part of this assessment and makes Tally structurally different from every cloud vendor Orcha has researched so far (Pleo, Qonto, Moss, Payhawk, Spendesk, etc.).
| Cloud vendors (Pleo / Qonto / Moss / …) | Tally (TallyPrime) | |
|---|---|---|
| Deployment | Vendor-hosted SaaS | Customer installs .exe on a Windows PC / LAN server |
| API endpoint | Vendor's internet domain (thirdparty.qonto.com) |
The customer's own machine — http://localhost:9000 |
| Auth | OAuth 2.0 / API keys issued by a developer portal | None centrally — request just has to reach the Tally process; security is the customer's LAN + Tally's own user logins |
| Developer portal | Yes | No portal, no app registration, no token issuance |
| Reachability from Orcha's cloud | Direct HTTPS call | Not reachable by default — Tally listens on localhost only |
| Events / webhooks | Common | None |
There is a "TallyPrime on Cloud" offering, but it is not a cloud API — it is the same desktop application running on a hosted Windows VM (Oracle Cloud Infrastructure, or AWS/Azure via partners), accessed over RDP. It does not change the integration model; it just moves the localhost.
Disambiguation — two unrelated products are both called "Tally":
tallysolutions.com, help.tallysolutions.com) — the Indian accounting software. This is what this document is about.tally.so, developers.tally.so) — a completely unrelated form-builder SaaS. It does have a modern REST API, OAuth, and Zapier/Make connectors. Every Zapier / Make / Workato / Pipedream "Tally" connector, and the developers.tally.so API docs, belong to the form builder — not the accounting software. Search results conflate them constantly; none of those connectors help us.Why Tally still matters despite the awkward architecture: Tally is the default books-of-account for a very large share of Indian SMBs and the mid-market. If Orcha wants to serve Indian customers (or the India operations of multi-national customers), "we integrate with Tally" is effectively table stakes — but it is an agent/connector integration, not an API integration, and should be scoped as such.
| Capability | Native XML/HTTP API | Via unified API (RootFi/Commenda) | Via India middleware | Via file import | Verdict |
|---|---|---|---|---|---|
| Read ledgers / chart of accounts / groups | YES (Export) |
YES | YES | YES (XML/Excel) | Available — but only if you can reach the Tally process |
| Read cost categories / cost centres | YES (Export) |
Likely | YES | YES | Available |
| Read suppliers (ledgers under Sundry Creditors) | YES (Export) |
YES (contacts) | YES | YES | Available |
| Read vouchers / Day Book (by date range or ID) | YES (Export, SVFROMDATE/SVTODATE) |
YES | YES | YES | Available — polling only |
| Write ledgers / groups | YES (Import) |
YES (bi-directional) | YES (POST plugins) | YES (Import Masters) | Available |
| Write cost categories / cost centres | YES (Import) |
Likely | YES | YES | Available |
| Write purchase vouchers / supplier invoices (with GST, HSN, inventory) | YES (Import) |
YES (bi-directional) | YES (POST plugins) | YES (Import Vouchers) | Available |
| Cost-centre allocation on a voucher | YES (allocation tags inside the voucher XML) | Likely | Likely | YES | Available |
| Alter / cancel / delete an existing voucher | YES (Import with ACTION attribute) |
Partial | Partial | YES | Available |
| Attach the source invoice PDF to a voucher | NO (not in the voucher data model) | NO | NO | NO | Not possible via API — third-party "Document Attachment" TDL add-on only |
| Trigger / manage approvals programmatically | NO (no native approval API) | NO | NO | NO | Not possible — native = "Optional Vouchers"; real maker/checker is a TDL add-on |
| Receive status-change events (approved / posted / paid) | NO — no webhooks anywhere in the product | NO | NO | NO | Not possible — must poll |
| Reach the Tally instance from Orcha's cloud at all | NO by default — localhost listener | YES (their connector agent solves it) | Partly (their connector / hosted Tally) | N/A (file drop) | This is the gating problem |
Overall assessment. Tally's data capabilities are genuinely good: it is fully bi-directional. You can read masters and vouchers, and you can write ledgers, cost centres and purchase vouchers (with GST/HSN/inventory detail) through a well-documented XML interface. For the core Orcha job — "create a coded purchase voucher in the customer's books from a processed invoice" — Tally can absolutely accept that write.
The problem is not capability, it is reachability and operational shape:
localhost. Orcha's cloud cannot call it directly. Every real-world Tally integration solves this with an agent installed on the customer's Tally machine/LAN that bridges local Tally ↔ the vendor's cloud. Orcha would have to build, ship, and support such an agent — or rent one (see §5).This is closest in shape to the SAP S/4HANA on-premise research already in this folder: a capable system whose integration cost is dominated by connectivity, not by the API.
| Surface | What it is | Read | Write |
|---|---|---|---|
| XML over HTTP | The primary interface. Tally runs as a local HTTP server; you POST an XML <ENVELOPE> and get an XML response. |
YES | YES |
| JSON over HTTP (via TDL) | Newer. TallyPrime can receive/emit JSON, but the JSON handling is defined in TDL, not a fixed REST contract. | YES | YES |
| ODBC | Tally can act as an ODBC server (and client). Mostly used for reporting/BI pulls. | YES | Limited |
| TDL (Tally Definition Language) | Tally's native extension language. Lets you define new reports, modify vouchers/masters/UI, and drive HTTP/JSON exchange from inside Tally. Requires the separate TallyPrime Developer product to author. | YES | YES |
| DLL integration | External DLLs callable from Tally for SQL Server / hardware / cloud bridges; data exchanged as XML/JSON. | YES | YES |
| File-based import/export | XML (native) and Excel-derived XML files imported through Gateway of Tally → Import Data. |
YES | YES |
There is no central REST API, no OAuth, no developer portal, and no API keys. "Authentication" is simply whether your request can reach the Tally process, plus Tally's own internal user security on the loaded company.
On the customer's TallyPrime: F12 (Configure) → Data Synchronization / Connectivity → set Tally as Server, default port 9000. The integrating app then POSTs to http://<tally-host>:9000 with Content-Type: text/xml. This is a built-in feature of every TallyPrime edition — no add-on licence required to switch it on.
<ENVELOPE>
<HEADER>
<VERSION>1</VERSION>
<TALLYREQUEST>Import</TALLYREQUEST> <!-- Import | Export | Execute -->
<TYPE>Data</TYPE>
<ID>All Masters</ID> <!-- or "Vouchers", or a report name -->
</HEADER>
<BODY>
<DESC>
<STATICVARIABLES>
<SVCURRENTCOMPANY>Acme Pvt Ltd</SVCURRENTCOMPANY>
<!-- for reads: <SVFROMDATE>, <SVTODATE> etc. -->
</STATICVARIABLES>
</DESC>
<DATA>
<TALLYMESSAGE>
<!-- LEDGER / GROUP / COSTCENTRE / VOUCHER object goes here -->
</TALLYMESSAGE>
</DATA>
</BODY>
</ENVELOPE>
TALLYREQUEST = Export → read. Import → write. Execute → run an action/function.YYYYMMDD.help.tallysolutions.com/developer-reference/ — the canonical docs for the XML interface, TDL, and integration capabilities.tallysolutions.com/tallyprime-api-explorer/ — an official interactive sandbox to build/validate XML and JSON requests for both reads and writes (masters: ledgers, groups, stock items, units; transactions: payment, receipt, sales, purchase). This is the most "modern" piece of Tally's official API story and is the right starting point for a build.Write is confirmed and well documented. This is not an inferred capability — Tally's entire Import request type exists to write data in.
Writable masters: Groups, Ledgers, Cost Categories, Cost Centres, Stock Groups, Stock Items, Units of Measure, Godowns, Voucher Types, Currencies.
Writable transactions: all voucher types — Purchase, Sales, Payment, Receipt, Journal, Contra, Debit/Credit Note, etc. Vouchers can be created, altered, cancelled, and deleted (the operation is set via an ACTION attribute on the object). Purchase vouchers accept supplier invoice number, GST/tax detail, HSN codes, and inventory lines.
Constraints / gotchas:
DupModify (overwrite), DupCombine (merge), DupIgnoreCombine (skip if exists) — set in the request DESC.Tally.imp log file on the customer's machine; the XML response is terse. Expect to invest in defensive validation before sending.Community corroboration: multiple independent toolkits write to Tally via this exact interface — the tally-integration Python package on PyPI, community repos (e.g. NoumaanAhamed/tally-prime-api-docs, aadil-sengupta/Tally.Py), and a large ecosystem of "Excel-to-Tally" converters. The write path is heavily exercised in the wild.
There is no Zapier, Make.com, Workato, Celigo, n8n, or Tray.io connector for TallyPrime the accounting software. Every "Tally" app on those marketplaces is the unrelated tally.so form builder (see disambiguation note above). This is expected — mainstream iPaaS connectors assume a reachable cloud endpoint, which Tally does not have.
| Platform | Tally support | Notes |
|---|---|---|
| RootFi (now Commenda) | YES — Tally Prime and Tally ERP9, advertised as bi-directional sync | RootFi was acquired by Commenda (announced ~March 2025). RootFi solved the localhost problem with its own "Tally Connector" — a small agent the customer installs on the Tally desktop that runs minimised in the background and continuously syncs to RootFi's cloud; Orcha would then talk to RootFi's unified REST API. Commenda's site lists Tally among 50+ integrations and repeats the bi-directional/real-time claim. Brand and commercial terms are mid-transition — verify current product name, pricing, and whether the standalone RootFi API is still sold before relying on it. |
| Merge.dev | NO | Merge's accounting catalogue is cloud systems only (Xero, QBO, NetSuite, Sage Intacct, Zoho Books, Dynamics, …). No Tally. |
| Codat | NO | No Tally, and Codat has publicly wound down investment in accounting integrations. |
RootFi/Commenda is the single most important finding in this section: it is a working existence proof that a cloud product can integrate with on-premise Tally bi-directionally, and it is the one path where Orcha would not have to build and maintain its own connector agent.
A whole cottage industry exists specifically to put an API in front of Tally:
| Provider | What it offers | Indicative price |
|---|---|---|
| tallyprimeapi.com | GET + POST API "plugins" for vouchers, masters, receipts/payments | Subscription; not fully public |
| api2books.com | GET + POST API plugins; submit JSON to a per-object POST URL | ₹1,350 + GST for 3 GET modules, +₹450/module; very cheap |
| CData | Commercial ODBC / JDBC / OData drivers + an "API Server" that exposes Tally as OData | Per-seat/server licensing |
| AI Accountant / Talligence / TallyCloudHub etc. | Connector agents installed on the Tally machine, syncing over HTTPS to a cloud | Varies |
These all use the same underlying XML/HTTP or ODBC interface — they are convenience wrappers, and they all still require something running next to Tally.
Suvit (rebranded Vyapar TaxOne) is an Indian accounting-automation product that does almost exactly what Orcha does: it ingests invoices/bills/receipts/bank statements (photo or PDF), extracts the data with AI, creates vouchers, and pushes them straight into Tally — no manual entry. This is simultaneously (a) hard proof that Orcha's intended use case is technically achievable into Tally, and (b) a note that this space already has India-native incumbents.
Because Tally has no reachable cloud endpoint, "how do we reach it" is a first-class architecture decision, not a footnote.
| Channel | How it works | Pros | Cons |
|---|---|---|---|
| A. Orcha-built connector agent | Orcha ships a small Windows service installed on the customer's Tally machine/LAN. It receives jobs from Orcha's cloud (poll or long-lived connection), translates to local XML/HTTP calls, returns results. | Full control; real-time-ish; no third-party fees; this is the proven pattern (RootFi, Suvit, AI Accountant all do this) | Orcha must build, code-sign, distribute, version, and support software on customer desktops — a new operational discipline |
| B. Rent a connector via unified API | Use RootFi/Commenda: their agent sits on the customer's Tally box, Orcha calls their unified REST API. | No agent to build/maintain; one API for Tally and other accounting systems later | Third-party dependency + per-connection cost; brand/commercial uncertainty post-acquisition; less control over the data mapping |
| C. Hosted / cloud Tally | If the customer already runs "TallyPrime on Cloud" or Tally on a partner-hosted AWS/Azure VM, a "virtual connection client" can bridge it. | No desktop footprint if customer is already hosted | Only works for the subset of customers on hosted Tally; still needs a bridge component |
| D. File-based exchange | Orcha produces native Tally XML files; the customer (or a scheduled job) imports them via Import Data, and exports back out. |
Dead simple; no live connection; works even when Tally is firewalled | Not real-time; manual or scripted on the customer side; no clean status read-back; clunky UX |
| SFTP | No native Tally SFTP capability. Would just be a transport for option D. | — | — |
| Webhooks | Do not exist in Tally. No outbound event mechanism of any kind. | — | Status changes are discoverable only by polling the Day Book |
Bottom line: options A and B are the only ones that give a product-grade experience. A is more work but more control; B trades money and a dependency for speed-to-market.
| Item | Cost (India list, 2025) | Needed for integration? |
|---|---|---|
| TallyPrime Silver (single-user, one PC) | ₹22,500 + 18% GST (~€250) one-time, perpetual | Customer needs a TallyPrime licence — they almost certainly already have one |
| TallyPrime Gold (unlimited users on a LAN) | ₹67,500 + 18% GST (~€750) one-time, perpetual | Same — Gold if multi-user |
| TallyPrime Server (large deployments) | ₹2,70,000 + 18% GST | Only for big customers |
| TSS — Tally Software Services | Annual subscription (renewal) | Keeps the product updated (statutory/GST changes) and powers "connected" features. The local XML/HTTP/ODBC interface itself is part of the base product and works without active TSS — but a customer with lapsed TSS is on an outdated build. Verify there is no TSS gate on any connectivity feature the chosen design depends on. |
Good news: the XML/HTTP API is included in every TallyPrime edition at no extra cost. There is no "API module" to buy, no API-user seat, no per-call metering from Tally itself. This is the opposite of vendors that gate API access behind an Enterprise tier.
| Item | When it's needed | Cost |
|---|---|---|
| TallyPrime Developer | Only if Orcha goes the TDL route (custom reports/objects inside Tally) | Separate paid product; pricing not public — sales contact required |
| Document Attachment TDL add-on | If the customer wants the source invoice PDF linked to the voucher | Third-party add-on (AAPL, Antraweb, LogicTech, …); per-site licence |
| Voucher Approval / Transaction Authorisation TDL add-on | If the customer wants a real maker/checker workflow | Third-party add-on; per-site licence |
| Unified API (RootFi/Commenda) | If Orcha chooses channel B instead of building an agent | Per-connection / platform fee — request current quote |
| India API middleware (api2books etc.) | If used as a shortcut wrapper | From ~₹1,350 + GST — negligible, but adds a dependency |
F12 → Configure, enable Tally as an HTTP server and confirm the port (default 9000).| Orcha need | Supported? | How | Confidence |
|---|---|---|---|
| Sync reference data inbound (read CoA / ledgers / cost centres / suppliers to validate against) | YES | Export request for List of Accounts / ledger / cost-centre / group masters; or export Sundry Creditors for suppliers |
High |
| Write reference data (create/update ledgers, groups, cost categories, cost centres) | YES | Import request with LEDGER / GROUP / COSTCATEGORY / COSTCENTRE objects in <TALLYMESSAGE> |
High |
| Write transactional data (push a coded purchase voucher / supplier invoice) | YES | Import request with a VOUCHER object, VCHTYPE="Purchase", ledger entries, GST/HSN, optional inventory lines, supplier invoice no. |
High |
| Cost-centre allocation on the voucher | YES | CATEGORYALLOCATIONS / cost-centre allocation tags nested inside the ledger entry of the voucher XML |
Medium-High (well attested; build against the API Explorer to confirm exact tags) |
| Alter / cancel a previously pushed voucher | YES | Import with ACTION="Alter" / ACTION="Cancel" / ACTION="Delete" and the voucher's REMOTEID or master-id |
Medium-High |
| Attach the source invoice PDF to the voucher | NO | Not in Tally's voucher data model. Only possible if the customer has installed a third-party "Document Attachment" TDL add-on — and even then it is not a standard API write. Orcha would keep the PDF on its own side and link out. | High (that it's not natively possible) |
| Trigger / manage approvals | NO | No approval API. Native Tally offers only "Optional Vouchers" (a voucher saved as Optional doesn't hit the books until regularised — Orcha could push vouchers as Optional so a human regularises them in Tally). A real maker/checker workflow is a third-party TDL add-on. | High |
| Read status / lifecycle (posted / approved / cancelled / paid) | PARTIAL — polling only | No webhooks. Re-Export the Day Book or specific vouchers by date range (SVFROMDATE/SVTODATE) or by id and diff against last known state. "Paid" is inferred by finding a linked Payment voucher against the supplier ledger. |
High |
| Need | Verdict | Channel |
|---|---|---|
| Read masters (validate coding) | ✅ Available | XML Export |
| Write masters (cost centres, ledgers) | ✅ Available | XML Import |
| Push coded purchase voucher | ✅ Available | XML Import |
| Cost-centre allocation on voucher | ✅ Available | XML Import |
| Attach source PDF | ❌ Not possible via API | — (keep PDF on Orcha side) |
| Approval workflow | ❌ Not native | Workaround: push as "Optional Voucher" |
| Status read-back | ⚠️ Polling only | XML Export of Day Book |
| Reach the Tally instance at all | ⚠️ Requires a connector agent | Build (A) or rent (B) |
Net: four of Orcha's six core data needs are cleanly met; "attach PDF" and "approvals" are not, and "status" is poll-only. None of that is the hard part — the hard part is connectivity, which is a build-or-buy decision before any XML is written.
| Approach | Cost | Complexity | Control | Best when |
|---|---|---|---|---|
| Build an Orcha connector agent + native XML/HTTP | Engineering only (no per-call fees) | High — new discipline: desktop software lifecycle, code-signing, AV/firewall support, versioning | Full | Orcha commits to India/Tally as a strategic market and wants margin + control |
| Rent connectivity via RootFi/Commenda unified API | Per-connection platform fee | Medium — one REST API, they own the agent | Partial | Orcha wants speed-to-market and may add other accounting systems via the same API later |
| File-based exchange (Orcha emits Tally XML, customer imports) | Low | Low | Low | A pragmatic pilot / proof-of-value with one or two customers before investing |
| TDL custom build | TallyPrime Developer licence + TDL expertise | High + niche skill | Full (inside Tally) | Only if the integration must live inside Tally's UI — not Orcha's case |
Tally is integrable and the data model fits Orcha's AP use case well — but treat this as an on-premise connector project, not an API project. Budget the effort against connectivity (build or rent an agent), not against XML. The fastest credible route to a working Indian-market integration is RootFi/Commenda's unified API (subject to confirming its post-acquisition status); building Orcha's own connector agent is the higher-control, higher-cost alternative worth revisiting once Tally demand is proven.
Official Tally documentation
Community / developer
Unified API / middleware
Pricing & licensing
Competitive / ecosystem
Verification flags (could not be fully confirmed in this pass)