ml-connector
TallyPrimeServiceNow

TallyPrime and ServiceNow integration

TallyPrime manages accounting, inventory, and payroll on desktop. ServiceNow runs enterprise workflows in the cloud. Connecting them keeps your general ledger, purchase orders, and supplier records aligned across accounting and IT operations without re-keying. Vouchers posted in TallyPrime flow into ServiceNow as GL documents and purchase orders, while supplier and cost center records stay synchronized in both directions.

How TallyPrime works

TallyPrime is a locally-installed accounting application that exposes ledgers, groups, vouchers (purchase, sales, payment, receipt, purchase orders), and stock items through an XML and JSON API over HTTP POST to port 9000. The application requires a local agent to bridge the cloud connector to the desktop instance, and the target company must be open in TallyPrime at the time of each request. All operations are controlled by envelope fields in the request, and TallyPrime supports either Import Data for writes or Export Data for reads. Authentication is optional network-level security (firewall, VPN) with optional application-level credentials tied to the company name. TallyPrime has no native webhooks, so integrations must poll periodically by posting Export requests with date-range filters and comparing returned record IDs against last-seen state.

How ServiceNow works

ServiceNow is a cloud-based enterprise platform accessed via REST APIs at a customer-supplied subdomain (https://{instance}.service-now.com) and protected by OAuth 2.0 Client Credentials, OAuth 2.0 Authorization Code, or Basic Auth. Key tables include general ledger accounts (itfm_gl_accounts), cost centers (cmn_cost_center), purchase orders (proc_po and proc_po_item), invoices (sn_apo_invoice), and suppliers, with additional Source-to-Pay staging tables for Accounts Payable operations. Every API call requires appropriate module roles and permissions. ServiceNow supports polling via query parameters like sysparm_query=sys_updated_on>javascript:gs.minutesAgoStart(5), with default OAuth token lifespan of 30 minutes. Real-time push requires admin-configured Business Rules and Outbound REST Messages; the base ITSM instance does not include Source-to-Pay tables without the licensed add-on module.

What moves between them

The main flow is TallyPrime into ServiceNow. Vouchers and day book entries from TallyPrime are read on a scheduled cycle (typically daily or after each accounting close) and posted as general ledger documents and purchase orders into ServiceNow's APO and procurement tables, mapped to matching cost centers and GL accounts. Stock items, ledger groups, and supplier references flow in the same direction. Cost centers and departments are aligned bidirectionally so that TallyPrime voucher allocations land on valid ServiceNow GL dimensions. General ledger documents and purchase orders in ServiceNow are not written back to TallyPrime, so the source of truth for financial transactions remains TallyPrime.

How ml-connector handles it

ml-connector stores TallyPrime connection details (host IP, port 9000, company name, and optional credentials) and ServiceNow OAuth credentials encrypted, and manages the local network bridge to the TallyPrime HTTP endpoint. Because TallyPrime has no webhooks, ml-connector polls the Export Data endpoint with date-range filters (SVFROMDATE and SVTODATE in YYYYMMDD format) and tracks the last-seen record ID to detect new or modified vouchers. Before posting GL documents into ServiceNow, ml-connector verifies that the target GL accounts and cost centers exist in ServiceNow's itfm_gl_accounts and cmn_cost_center tables, creating or updating them if needed. ml-connector handles ServiceNow OAuth token refresh at the 30-minute boundary and backs off on rate limits or temporary service interruptions. Every voucher and GL posting carries a full audit trail and can be replayed if a downstream write fails. TallyPrime requires all dates in YYYYMMDD format and does not support pagination; ml-connector batches large export requests and handles the possibility that concurrent requests to TallyPrime may cause inconsistent behavior by keeping requests sequential.

A real-world example

A mid-sized distributor and service provider runs TallyPrime for accounting and inventory in India and recently expanded to use ServiceNow for IT service management and procurement operations. Before the integration, the finance team exported voucher reports from TallyPrime weekly and manually re-entered purchase order details into ServiceNow's procurement system, creating duplicate entry work and drift between the two systems. With TallyPrime and ServiceNow connected, each new purchase voucher in TallyPrime posts automatically into ServiceNow as a procurement record with GL allocations, and inventory stock items sync daily so ServiceNow procurement users see current stock status without a separate lookup step. The manual import process is eliminated, and the two systems stay in agreement.

What you can do

  • Poll TallyPrime vouchers and day book entries on a schedule and post general ledger documents into ServiceNow's APO module with cost center and account allocation.
  • Sync TallyPrime stock items, ledgers, and groups into ServiceNow procurement and finance tables so purchase orders reference current inventory.
  • Map TallyPrime GL accounts and cost centers to ServiceNow itfm_gl_accounts and cmn_cost_center, creating missing dimensions on first sync.
  • Authenticate ServiceNow with OAuth 2.0 Client Credentials, refresh tokens at the 30-minute boundary, and handle rate limiting and transient failures with automatic retry.
  • Keep a complete audit trail of every voucher, GL posting, and dimension sync with the ability to replay failed records.

Questions

How does the integration reach TallyPrime if it runs on a local desktop machine?
ml-connector requires a local agent running on the same LAN as the TallyPrime instance. The agent bridges the cloud connector to TallyPrime's HTTP server on port 9000, which must be manually enabled in TallyPrime Settings. The agent forwards all Export and Import requests to the local endpoint; ServiceNow then receives the enriched data.
What happens if TallyPrime is not running or the company is not open?
TallyPrime API calls fail if the application is not running or the target company is not loaded. ml-connector retries the request on a backoff schedule and logs the failure in the audit trail. The integration operator must ensure TallyPrime is running and the company is open during sync windows, which is typically managed by scheduling integrations outside business hours or during known maintenance windows.
Can the integration write purchase order changes from ServiceNow back into TallyPrime?
No. The integration is one-way from TallyPrime to ServiceNow. Vouchers and purchase orders are created or updated in TallyPrime and read into ServiceNow, but changes in ServiceNow procurement are not written back to TallyPrime. TallyPrime remains the source of truth for transactions.

Related integrations

Connect TallyPrime and ServiceNow

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

Get started