ml-connector
TallyPrimeMicrosoft Teams

TallyPrime and Microsoft Teams integration

TallyPrime handles accounting and inventory for mid-market firms in India and Southeast Asia. Microsoft Teams coordinates approval workflows across the finance team. Connecting them sends new vouchers from TallyPrime directly to a Teams channel, where approvers can review vendor details, amounts, and dates in real time without logging into TallyPrime. High-value purchase orders and sales invoices trigger instant notifications so approvals move faster.

How TallyPrime works

TallyPrime is a desktop accounting application that exposes ledgers, purchase and sales vouchers, purchase orders, and stock items through an XML or JSON HTTP POST interface running on the local machine at port 9000. Reads are controlled by an Export Data request envelope specifying the date range (SVFROMDATE and SVTODATE in YYYYMMDD format) and the collection name (Day Book, Voucher Details, etc.). The application requires a local network agent since the server is LAN-only and not internet-accessible. TallyPrime has no webhook support or change notification system, so all data discovery is polling-based, and the application must be running with the company open for API calls to succeed.

How Microsoft Teams works

Microsoft Teams integrates with finance workflows through the Microsoft Graph API, which exposes channels, chat messages, and users via REST endpoints. Authentication uses OAuth 2.0 client credentials (app-only) against Azure AD, requiring tenant ID, client ID, and client secret. Teams does not store financial data; it serves as a notification and approval surface for teams and channels. Messages can be posted to channels with rich formatting (cards, tables, buttons) to present voucher data and approval links, and webhooks can be registered to listen for channel events.

What moves between them

TallyPrime purchase and sales vouchers flow one direction: from TallyPrime into Teams notifications. ml-connector polls TallyPrime on a schedule (every 5 to 15 minutes) for new vouchers created since the last poll, extracts vendor name, amount, and due date, and posts a formatted message card to a designated Teams channel. High-value vouchers (configurable threshold) get posted immediately; routine ones can be batched. Teams messages are read-only in this context; approvers comment on the channel thread but do not write back to TallyPrime.

How ml-connector handles it

ml-connector runs a local agent on the same machine or LAN subnet as TallyPrime to bridge the desktop application to the cloud. It polls TallyPrime's Export Data endpoint at regular intervals with date filters and stores the last-seen voucher ID to avoid re-posting duplicates. Extracted voucher data (vendor, amount, narration, due date) is formatted into an adaptive card and posted to the Teams channel via Microsoft Graph. Authentication to Teams uses OAuth 2.0 client credentials stored encrypted in the cloud platform. Because TallyPrime has no native idempotency or change tracking, ml-connector maintains its own state table to prevent duplicate notifications. High-value or urgent vouchers (e.g., over a configured amount or from priority vendors) are flagged in the card to draw approver attention. The local agent keeps the TallyPrime connection persistent so polling latency stays under 30 seconds per cycle.

A real-world example

A mid-sized accounting firm in India uses TallyPrime for GST compliance, payables, and receivables, and Microsoft Teams for internal finance team coordination. Before the integration, purchase orders and new sales invoices were handled offline: the AR team printed or emailed vouchers to approvers, who then manually reviewed amounts and dates on their own time. Month-end bottlenecks occurred when high-value POs sat unsigned because approvers did not check email in time. With TallyPrime and Teams connected, purchase orders above 100,000 rupees post to a dedicated Teams channel with vendor and amount details, triggering instant notifications to approvers. Approvers respond in the channel thread with approval or questions, and the timeline from order creation to sign-off dropped from days to hours.

What you can do

  • Post new TallyPrime purchase and sales vouchers to Microsoft Teams channels as formatted message cards with vendor, amount, and date.
  • Flag high-value vouchers (above a configurable threshold) for priority review by approvers.
  • Maintain local polling state to prevent duplicate notifications when TallyPrime API calls return the same data.
  • Map TallyPrime company accounts and ledger names to Teams channels so different cost centers get routed to the right approval team.
  • Retrieve approver comments from Teams threads and log them in TallyPrime audit records for compliance and reconciliation.

Questions

Does the integration push updates back into TallyPrime when a Teams user approves or comments?
No. Teams is the approval surface and comment record, but approvals do not reverse-sync into TallyPrime. TallyPrime remains the system of record for financial data. Teams threads provide an audit trail of who reviewed each voucher and when, which can be exported or manually linked to TallyPrime records.
Does TallyPrime need to be running at all times for the integration to work?
Yes. TallyPrime is a desktop application and must be running with the target company open for any API calls to succeed. The local agent that ml-connector runs requires persistent network access to the TallyPrime HTTP server on port 9000, which must be manually enabled in TallyPrime Advanced Configuration.
How often are new vouchers polled and sent to Teams?
ml-connector polls TallyPrime every 5 to 15 minutes by default, depending on your finance volume and network latency. Vouchers are batched into Teams messages on the same schedule. High-value vouchers can be configured for immediate posting via a separate high-priority check, keeping urgent approvals to under 30 seconds of latency.

Related integrations

Connect TallyPrime and Microsoft Teams

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started