ml-connector
TallyPrimeUKG

TallyPrime and UKG integration

TallyPrime runs accounting and inventory for small and mid-market businesses, especially in India and Southeast Asia. UKG runs payroll and HR across the enterprise. Connecting the two keeps your general ledger current with payroll costs and your employee master data synchronized without manual re-keying. Payroll GL documents flow from UKG into TallyPrime after each pay run, allocated to the correct cost centers, and employee changes in UKG reflect in your TallyPrime ledger groups and department codes.

How TallyPrime works

TallyPrime is a desktop accounting and ERP application running on a local Windows machine, accessed via HTTP POST to a local server on port 9000. All operations use a single XML or JSON envelope with a TALLYREQUEST field that specifies either Export Data for reads or Import Data for writes. Port 9000 must be manually enabled in TallyPrime Settings, and the application must be running with the target company open. The platform exposes ledgers, groups, vouchers, stock items, and purchase orders. TallyPrime has no native webhooks, so data is retrieved through polling with date-range filters, and requires a local agent to bridge the cloud connector to port 9000. Concurrent requests can cause inconsistent behavior, so requests must be kept sequential. There is no native pagination, no rate limits, and no idempotency; duplicate Import requests create duplicate vouchers, so writes must use the Alter action for updates.

How UKG works

UKG is a multi-tenant HR and payroll platform with REST and SOAP APIs exposed at tenant-specific hostnames. Authentication uses HTTP Basic Auth with two custom API key headers for Core REST APIs, or OAuth 2.0 client credentials for Platform APIs and webhooks, with a 1-hour token expiry. The platform exposes employee master data, compensation, pay statements, direct deposit, cost centers, and pay groups through REST endpoints, and payroll GL data through a third-party pay export. UKG supports webhooks via HMAC-signed events with 14-day retention, but also supports polling via a delta endpoint. However, UKG has no native AP or ERP entities like vendors or purchase orders, and GL posting must go through a third-party pay template or structured export, so payroll GL data is read-only from the payroll system's perspective.

What moves between them

The main flow runs from UKG into TallyPrime. After each payroll run, ml-connector reads UKG employee records and payroll GL export data, maps cost centers and employee departments to TallyPrime ledger groups, and imports payroll vouchers into TallyPrime's general ledger. Employee master data syncs in the same direction so TallyPrime headcount reflects UKG hires, terminations, and rehires. Reference data such as cost centers and departments is aligned in both directions. Payroll GL data is read-only from UKG, so ml-connector never writes financial entries back into payroll.

How ml-connector handles it

ml-connector polls UKG on a schedule tied to your payroll calendar and stores both credential sets encrypted. On the UKG side, it manages OAuth token refresh on 1-hour expiry, handles UKG's two-pass employee fetch (first call returns internal UUIDs, second returns full profiles), and retries on 429 rate-limit responses. On the TallyPrime side, it maintains the local company context (company name is case-sensitive in the envelope), accepts the local host IP and port 9000 from customer configuration, and imports vouchers using the Import Data envelope. Since TallyPrime has no native idempotency, ml-connector deduplicates writes by comparing returned voucher IDs against prior imports and uses the Alter action for updates rather than duplicate Imports. Dates are formatted as YYYYMMDD per TallyPrime requirements. Every record carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-market services firm with a head office in India runs TallyPrime for accounting and inventory, and uses UKG for payroll and HR across two regional offices. Before the integration, the finance team exported payroll registers from UKG every pay period and manually entered labor costs into TallyPrime vouchers, then reconciled cost-center allocations against UKG employee records during month-end close. With TallyPrime and UKG connected, each payroll run's GL export flows into TallyPrime automatically as vouchers allocated to the correct cost centers and departments, employee changes in UKG sync to TallyPrime ledger groups, and month-end close begins with payroll already reconciled and the manual re-keying step eliminated.

What you can do

  • Read employee master data from UKG and sync it into TallyPrime ledger groups and department codes after each payroll run.
  • Import UKG payroll GL documents as vouchers into TallyPrime's general ledger, allocated to the correct cost centers and departments.
  • Manage OAuth token refresh for UKG and maintain TallyPrime company context and envelope structure across polling cycles.
  • Handle UKG's two-pass employee fetch (UUID lookup then full profile) and TallyPrime's lack of native idempotency by deduplicating writes and using Alter actions for updates.
  • Track all payroll imports in a full audit trail, with error replay and per-record lineage back to the source UKG export.

Questions

How does ml-connector reach TallyPrime if it runs on a local Windows machine?
ml-connector requires a local agent running on the same machine or LAN as TallyPrime to bridge the cloud connector to port 9000. The customer provides the local host IP and port in the connection configuration, and ml-connector polls that endpoint on a schedule tied to the payroll calendar. TallyPrime must be running and the target company must be open for API calls to succeed.
Which direction does data move between TallyPrime and UKG?
The main flow is UKG into TallyPrime. Payroll GL documents, employee records, and cost-center data flow from UKG into TallyPrime, while cost centers and departments are aligned in both directions. Payroll GL data in UKG is read-only, so ml-connector does not write financial entries back into payroll.
Does TallyPrime have native webhooks, and how does ml-connector stay current with changes?
No, TallyPrime has no native webhooks or event subscription. ml-connector polls TallyPrime and UKG on a schedule tied to your payroll calendar using date-range filters and compares returned voucher IDs against prior imports to detect changes. UKG also supports webhooks, but ml-connector uses polling for consistency and zero-tolerance integrations.

Related integrations

Connect TallyPrime and UKG

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

Get started