Tally Integration with Website, Store or App
How a website, store or app posts sales vouchers into TallyPrime: XML or JSON over HTTP, a real voucher mapping, the office-computer problem, and what breaks.
- Organisation
- WavX Solutions
- Telephone
- +919310079927
Description
Integration Tally integration: posting orders and invoices into TallyPrime
TallyPrime has no cloud API. It accepts XML requests, and JSON from TallyPrime 7.0, over HTTP on the computer where it runs, port 9000 by default, while a company is open. An integration turns each order or invoice from your website or app into a balanced Tally voucher, reaches that computer safely, and catches what Tally refuses. This guide follows TallyHelp as read on 2 October 2026.
Discuss an integration Last updated 2 October 2026
What a Tally integration connects
"Tally" here means TallyPrime, the accounting software. The integration takes business events that happen elsewhere, mostly sales, receipts and refunds, and posts them as vouchers in the company's books, so nobody has to key them in from a spreadsheet.
Typical sources are a custom website or app, an online store, a billing or POS system, or a custom ERP that handles operations while Tally stays the book of accounts. The flow can also run the other way: reading ledger balances, stock items or outstanding bills out of Tally into a dashboard.
How TallyPrime accepts data
TallyHelp documents three things a sender needs to know:
The transport. External software sends an HTTP POST to TallyPrime's built-in server, http://<tally-machine>:9000 by default. TallyPrime can act as server, client or both, set under its data synchronisation configuration.
The format. An XML envelope with a header ( VERSION , TALLYREQUEST set to Import or Export, TYPE , ID ) and a body carrying the data. From TallyPrime 7.0, the same requests can be sent as JSON, with the header values passed as HTTP headers.
The conditions. TallyPrime must be running on the configured port with at least one company loaded. If those are not true, nothing is posted.
TallyHelp also lists ODBC for live reporting into Excel or Power BI, and TDL, Tally's own language, for customisations inside the product.
Data flow
Website / app / ERP Your server Office (Tally machine)
------------------- ----------- ----------------------
order paid ───────────────▶ build voucher from mapping
store in queue (status: pending)
◀────── agent asks: anything pending?
hands over voucher ───────▶ agent POSTs XML/JSON to
TallyPrime on localhost:9000
◀────── agent reports CREATED / ERRORS
marks posted, or shows the
error on the accounts screen
The agent makes only outbound requests, so the office firewall stays closed and no port on the Tally machine is exposed to the internet.
A real voucher mapping
One web order, invoiced from Haryana to a buyer in Haryana: two T-shirts at ₹500 each, 5% GST, ₹50 shipping. Each line of the order becomes a ledger entry in a Sales voucher. Because the place of supply is in the supplier's own state, CBIC's FAQ puts it under CGST and SGST; a buyer in another state would put the tax under IGST instead.
Order field
Tally field
Value in this example
Order date
DATE
Order number
VOUCHERNUMBER (or a reference field)
WEB-10452
Voucher type
VOUCHERTYPENAME
Sales (or a separate "Web Sales" type)
Customer, or a default for retail buyers
Party LEDGERNAME , ISDEEMEDPOSITIVE Yes
Online Sales Customer, debit ₹1,102.50
Product SKU and quantity
STOCKITEMNAME , BILLEDQTY , RATE
T-Shirt Blue M, 2 nos at ₹500
Line amount before tax
Sales ledger allocation
Sales GST 5%, credit ₹1,000
Tax on lines and shipping
Tax ledgers
CGST 2.5% ₹26.25, SGST 2.5% ₹26.25
Shipping charged
Income ledger
Shipping Charges, credit ₹50
Rounding
Round-off ledger
₹0 here; needed whenever the store rounds per line
Delivery state
Decides CGST/SGST or IGST ledgers
Haryana
Debits and credits must match to the paisa: ₹1,102.50 against ₹1,000 + ₹50 + ₹26.25 + ₹26.25. The tax shown assumes shipping is taxed at the goods' rate; how shipping is taxed for your business is your accountant's call, and the mapping follows it.
Written in the structure of TallyHelp's sample XML for a sales voucher in accounting view, the order above looks like this (inside the standard import envelope):
<VOUCHER>
<DATE>20261002</DATE>
<VOUCHERTYPENAME>Sales</VOUCHERTYPENAME>
<VOUCHERNUMBER>WEB-10452</VOUCHERNUMBER>
<LEDGERENTRIES.LIST>
<LEDGERNAME>Online Sales Customer</LEDGERNAME>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<ISPARTYLEDGER>Yes</ISPARTYLEDGER>
<AMOUNT>-1102.50</AMOUNT>
</LEDGERENTRIES.LIST>
<LEDGERNAME>Sales GST 5%</LEDGERNAME>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT>1000.00</AMOUNT>
<!-- CGST, SGST and Shipping Charges entries follow the same pattern -->
</VOUCHER>
Debits carry a negative amount and ISDEEMEDPOSITIVE Yes; credits are positive with No. Invoice view adds ALLINVENTORYENTRIES.LIST so stock moves as well.
Limits and gotchas
Issue
What happens
What the integration does
Tally closed or a different company open
Nothing is posted, and the sender may see no error
Queue every voucher; alert when the queue stops draining
Totals off by a paisa
Tally refuses with a line error such as "Voucher totals do not match! Dr: … Cr: … Diff: …"
Post a round-off entry; recompute tax the way the accountant does
Ledger or stock item name not found
Voucher rejected
Mapping table, checked before sending; readable error naming the missing item
Same order sent twice
Two vouchers, double-counted revenue
Record the order number with each posted voucher; check before posting
Response read carelessly
Request "succeeded" but ERRORS is 1
Read CREATED , ALTERED , ERRORS and LINEERROR from every response
Refunds and cancellations
Sales stay in the books
Post a credit note against the original voucher number
Office computer exposed to the internet
A security risk for the books
Outbound-only agent; no forwarded port
Most of these are covered in more depth, with a check for each, on orders not syncing to Tally or your ERP .
What WavX builds
For a Tally integration, WavX builds the mapping engine on your server, the outbound agent on the Tally machine, a screen where the accounts team can see pending, posted and failed vouchers and match new products or tax rates without a developer, and a daily reconciliation of orders against posted vouchers. Credit notes, receipts against outstanding bills and reading stock back out of Tally are added when the business needs them.
If B2B invoices also need an IRN, the GST e-invoicing integration sits before the Tally post, so the voucher carries the IRN. For a Shopify store specifically, read Shopify to Tally .
Effort band
A Tally integration is quoted after scoping, because the work depends on how many voucher types are involved and how many exceptions your mapping has. For planning, the software cost estimator carries third-party integrations as a ₹60,000 line item inside a larger build. A standalone integration with its own agent and accounts screen is a separate small build; the worked planning range is on API and system integration services .
When not to build one
If you post a handful of sales a day, a daily export from your store and Tally's own import may be enough, at no development cost. If your platform is already supported by a Tally connector product and your GST treatment is standard, try that first. A custom integration earns its cost when the volume is high, the mapping is unusual, or the source system was built for you and no connector knows it.
Frequently asked questions
Does Tally have an API?
Not a hosted one. TallyPrime runs an HTTP server on the machine where it is installed, and external software posts XML to it, or JSON from TallyPrime 7.0 onwards. It only answers while TallyPrime is running with a company loaded, which is the main thing an integration has to plan around.
Our Tally is on one office computer. Can a cloud website still post to it?
Yes, but not by opening that computer to the internet. We install a small agent on the Tally machine that fetches pending orders from your server and posts them to Tally locally, then reports the result back. If the computer is off, orders wait in the queue and go across when it comes back.
Can the integration create new customers and products in Tally?
It can create ledgers and stock items through the same import request, but most accountants prefer it not to. A common rule is: create customer ledgers automatically for B2B buyers with a GSTIN, post retail sales to one cash or marketplace ledger, and stop with a readable error when a product has no matching stock item.
Should we buy a Tally connector instead?
If your store or software is one that a connector vendor already supports, and your mapping is standard, yes. A custom integration is worth it when your invoices, GST treatment or stock locations do not fit the connector's options, or when the source is software built for you.
Sources
TallyHelp: XML integration · read 2 October 2026
TallyHelp: Pre-requisites for integrations · read 2 October 2026
TallyHelp: Sample XML · read 2 October 2026
TallyHelp: How to integrate with TallyPrime using JSON · read 2 October 2026
TallyHelp: Integrate with TallyPrime · read 2 October 2026
CBIC GST: Frequently asked questions · read 2 October 2026
Related
Shopify to Tally integration
Orders not syncing to Tally or your ERP
Custom ERP development
GST e-invoicing integration
API and system integration services
Build your own software — your way, your pricing.
WavX Solutions is here to create your own software in a fully custom way, built exactly how you work — with a pricing model that fits your business. Connect now and let's build it.
Contact Now helpwavx@gmail.com