ml-connector
TallyPrimeDayforce

TallyPrime and Dayforce integration

TallyPrime runs accounting and inventory for small and mid-sized companies across India and Southeast Asia. Dayforce runs payroll and HR in the cloud. Connecting the two keeps your employee headcount and payroll cost allocations in agreement. Payroll deductions, employee onboarding, and terminations recorded in Dayforce line up with TallyPrime ledger accounts and cost groups, and the labor cost vouchers TallyPrime creates are validated against Dayforce records without manual re-entry. ml-connector bridges TallyPrime's local HTTP server with Dayforce's cloud REST API.

How TallyPrime works

TallyPrime exposes ledgers, groups, vouchers, stock items, and company master data through an XML or JSON HTTP POST interface at http://<tally-host-ip>:9000. The integration endpoint is stateless; all operations are specified in an TALLYREQUEST envelope field (Import Data for writes, Export Data for reads). Authentication is optional at the transport layer; access control can be enforced at the network level via firewall or VPN, or optionally via application credentials (company name, username, password). TallyPrime is a single-user desktop application and requires the application to be running and the target company to be open. It has no native webhooks, so all data reads are done by polling with date range filters on the Day Book or voucher collections, typically every 5 to 15 minutes.

How Dayforce works

Dayforce is a cloud HR and payroll platform accessed via REST API at a client-specific endpoint (https://www.dayforcehcm.com/api/{clientNamespace}/V1/). Authentication uses OAuth 2.0 Resource Owner Password Credentials with a bearer JWT token that expires hourly. The platform exposes employees, org units, jobs, positions, pay summaries, and employee balance periods. Like TallyPrime, Dayforce has no native outbound webhooks; changes are detected by polling with date range query parameters on employee and org endpoints. Dayforce tokens expire in one hour and must be refreshed before they become invalid. The client must maintain HCM Anywhere API permissions in the Dayforce admin console.

What moves between them

Employee and cost allocation records flow in both directions. When payroll runs in Dayforce, ml-connector reads the updated employee records, org units, and balance periods, then matches them against TallyPrime groups, ledgers, and existing vouchers by polling both systems on a regular schedule. If a new employee is added in Dayforce, ml-connector creates or updates the matching Group and Ledger in TallyPrime via Import Data requests. If an employee is terminated in Dayforce, the corresponding TallyPrime entries are marked inactive. Cost allocations attached to Dayforce positions are matched to TallyPrime cost groups so payroll vouchers debit the correct expense ledger accounts. Changes are detected by comparing Dayforce's employee update timestamps and TallyPrime's voucher inventory; no record is replayed twice.

How ml-connector handles it

ml-connector stores the TallyPrime host IP, port 9000, company name, and optional credentials encrypted. It stores the Dayforce OAuth credentials and ClientMetadata URL encrypted as well. On each sync cycle, ml-connector queries Dayforce by posting to the token endpoint, retrieves a fresh bearer JWT, then uses it to call the employees and org-units endpoints with filterUpdateDateRangeMin and filterUpdateDateRangeMax parameters to fetch only records changed since the last sync. Simultaneously, it polls TallyPrime by POSTing Export Data requests with SVFROMDATE and SVTODATE envelopes to read the Day Book and Ledger collections. It compares the returned employee and ledger IDs against a last-seen inventory stored in its state database. For any new Dayforce employees, ml-connector POSTs Import Data requests to TallyPrime to create Group and Ledger entries with the employee name and Dayforce position cost codes. For terminations, it marks the TallyPrime ledger as inactive using Alter actions. Dayforce tokens expire in 3600 seconds, so ml-connector requests a fresh token at the start of every sync cycle. TallyPrime has no native idempotency, so ml-connector tracks voucher and master IDs locally to prevent duplicate creates. All records carry timestamps and are audit-logged so failed syncs can be replayed after fixing the underlying issue.

A real-world example

A mid-sized accounting firm in India uses TallyPrime for all client bookkeeping and GST compliance, and has recently hired remote staff paid through Dayforce. Before the integration, the partner reconciled Dayforce payroll runs by hand each month, creating groups and ledgers in TallyPrime for new staff and then manually posting deductions to the correct expense accounts. With TallyPrime and Dayforce connected, each new hire in Dayforce automatically creates the corresponding group and ledger in TallyPrime, and monthly payroll reconciliation is reduced to a final audit of the automatically created vouchers. Terminations are also handled automatically, and the firm's compliance audit trail is now complete.

What you can do

  • Read employee records from Dayforce on a schedule and create or update matching groups and ledgers in TallyPrime.
  • Map Dayforce position cost codes and org units to TallyPrime cost groups so payroll deductions debit the correct expense ledger accounts.
  • Authenticate TallyPrime via local HTTP and company credentials, and Dayforce via OAuth 2.0, refreshing Dayforce tokens hourly.
  • Detect employee changes in Dayforce by polling with date range filters, and compare TallyPrime voucher inventory against last-seen state to avoid duplicate creates.
  • Audit every sync cycle with timestamps and state checkpoints, so failed syncs can be diagnosed and replayed without manual re-entry.

Questions

Which direction does data move between TallyPrime and Dayforce?
Employee and cost allocation records flow in both directions. When Dayforce payroll runs, ml-connector reads the updated employee records and org units, then creates or updates matching groups and ledgers in TallyPrime. New employees in Dayforce trigger new group creation in TallyPrime; terminations mark the TallyPrime ledger as inactive. Cost allocations from Dayforce positions are matched to TallyPrime cost groups.
How does ml-connector handle TallyPrime's local-only HTTP server and lack of webhooks?
ml-connector runs on a local agent or in the same network as the TallyPrime machine, connecting to the local HTTP server on port 9000 that must be manually enabled in TallyPrime Settings. Since TallyPrime has no webhooks, ml-connector polls at a regular interval (every 5 to 15 minutes) by POSTing Export Data requests with date range filters and comparing the returned voucher and ledger inventory against the previous sync state.
What happens when Dayforce tokens expire or TallyPrime goes offline?
Dayforce tokens expire in one hour, so ml-connector requests a fresh OAuth 2.0 bearer token at the start of every sync cycle. If TallyPrime is offline or the target company is not open, ml-connector logs the connection error, audit-logs the failure with a timestamp, and retries on the next polling interval. Failed syncs are recorded in the state database so they can be replayed once TallyPrime is available again.

Related integrations

Connect TallyPrime and Dayforce

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

Get started