Back to Dashboard
How the Tally Sync Works
Jump to:
Overview ·
Connecting Tally ·
What maps where ·
Ledger names ·
Realtime & scheduling ·
Troubleshooting
1. What the integration syncs
| CRM | Tally | Direction | |
|---|---|---|---|
| Clients (primary contact person + primary company, TRN) | ↔ | Ledgers under Sundry Debtors | Both ways |
| Services catalogue | → | Stock Items | CRM → Tally only |
| Estimates | ↔ | Sales Order vouchers | Both ways |
| Invoices (net + Output VAT split) | ↔ | Sales vouchers | Both ways |
| Invoice payments | ↔ | Receipt vouchers (Cash/Bank ↔ party) | Both ways |
| Credit notes | ↔ | Credit Note vouchers | Both ways |
| Expenses (approved only) | ↔ | Purchase vouchers (vendor auto-created under Sundry Creditors) | Both ways |
2. Connecting Tally (desktop or cloud)
- Enable Tally's XML server: in TallyPrime press F1 (Help) → Settings → Connectivity → Client/Server configuration → set "TallyPrime acts as" = Both, port 9000. (Tally ERP 9: Gateway → F12 → Advanced Configuration → act as Both.)
- Reachability: the CRM server must be able to reach that port.
- Cloud-hosted Tally (Tally on a VPS / Tally-on-cloud provider): use the server address, e.g.
http://tally.yourcompany.com:9000— works directly. - Office-PC Tally: the office network must expose the port to the CRM server (static IP + port-forward, VPN, or a tunnel like ngrok/Cloudflare). Without that, the CRM cannot reach Tally over the internet.
- Cloud-hosted Tally (Tally on a VPS / Tally-on-cloud provider): use the server address, e.g.
- In Settings here: enter the Tally URL, the exact Tally company name (as shown in Tally's company list), pick entities and ledger names, Save, then click Test Connection.
3. Exactly what maps where
- Clients → Ledgers: the ledger name is the client's primary company name; email/phone/mobile come from the primary contact person; the primary company's address and TRN (15-digit) go into the ledger's mailing details and VAT registration field. Tally-created debtor ledgers pull back as CRM clients.
- Invoices → Sales vouchers: the party is the client's ledger (created on the fly when missing); the amount is split into net → Sales ledger and VAT → Output VAT ledger. Invoices created inside Tally pull into the CRM with the CRM's own next invoice number (the Tally voucher keeps its Tally number — vouchers cannot be renamed remotely; the sync links them).
- Payments → Receipts: a CRM payment posts a Receipt (Cash/Bank debit, party credit) with the invoice number in the narration. A receipt recorded inside Tally is matched to its CRM invoice via the invoice number in the narration, and the CRM invoice's paid/due amounts and status update automatically.
- Credit notes → Credit Note vouchers: reverse posting of the sale (party credited), with the original invoice referenced in the narration. Drafts stay local.
- Expenses → Purchase vouchers: only approved expenses post; the vendor ledger is created automatically under Sundry Creditors from "Purchased From".
- Services → Stock Items: one-way; the CRM catalogue is the source of truth.
4. Ledger names (must exist in Tally)
Vouchers post to the ledgers configured in Settings — they must exist in the Tally company
(Gateway of Tally → Accounts Info → Ledgers):
| Role | Default name | Used by |
|---|---|---|
| Sales ledger | Sales | Invoices, estimates, credit notes |
| Purchase ledger | Purchase | Expenses |
| Cash / Bank ledger | Cash | Payment receipts |
| Output VAT ledger | Output VAT | VAT portion of sales documents |
| Input VAT ledger | Input VAT | reserved for purchase VAT |
5. Realtime & scheduling — honest expectations
- CRM → Tally: pushed the moment a sync runs — click a Sync button for instant, or let the hourly automatic sync handle it (enable it in Settings; requires the server scheduler).
- Tally → CRM: Tally has no webhooks, so changes made inside Tally arrive on the next sync run (manual or hourly) — this is a Tally platform limit, not a CRM one.
- Change detection ensures only new/changed records move each run; running syncs repeatedly is safe and never duplicates data.
6. When something fails
Every failed record's reason is recorded — click Details on a run in Recent Sync Activity, or open the
Results & Fix Guide page for step-by-step solutions
(gateway unreachable, missing ledgers, unlinked receipts, missing client, …).