TallyPrime and Procurify integration
TallyPrime is the accounting hub for businesses in India and Southeast Asia. Procurify is the cloud procurement platform managing purchase orders and vendor bills. Connecting them keeps your purchasing and accounting in sync without manual re-entry. Approved purchase orders from Procurify flow into TallyPrime as purchase vouchers, and vendor bills from Procurify post into TallyPrime's accounts payable ledger. ml-connector handles the entirely different connection models: Procurify's cloud OAuth2 API and TallyPrime's local-only HTTP server on port 9000.
What moves between them
Purchase orders and bills flow from Procurify into TallyPrime. ml-connector polls Procurify on a configurable schedule for new and updated purchase orders and bills created or modified since the last sync. It transforms each Procurify purchase order into a TallyPrime purchase voucher and maps each bill line to the corresponding ledger account. Vendors in Procurify are matched to TallyPrime ledger accounts by name or custom mapping. The sync runs on a schedule under your control, with no event push from either side.
How ml-connector handles it
ml-connector runs a local agent on the same machine or LAN as TallyPrime to reach port 9000, since TallyPrime's server is not internet-accessible. It polls Procurify using OAuth2 client credentials, refreshing the token every 23 hours to avoid expiry mid-sync. For each new purchase order in Procurify, it creates a purchase voucher in TallyPrime by posting an Import Data request with the order details, account codes, and line amounts mapped to TallyPrime ledger accounts. To prevent duplicate vouchers if a sync is re-run, it tracks Procurify purchase order IDs and uses TallyPrime's Alter action to update existing vouchers if the order is modified. Bills flow the same way: new bills are imported as purchase vouchers with line items mapped to accounts payable ledgers. ml-connector handles the constraint that TallyPrime has no native pagination by accepting all records in a single response and filtering by date range server-side in Procurify before import. It respects TallyPrime's requirement that the company remain open and available, and if calls fail, it surfaces the error and retries on the next scheduled run.
A real-world example
A mid-market distributor in India uses TallyPrime for accounting and inventory and Procurify for centralized procurement across three offices. Before the integration, the procurement team approved purchase orders in Procurify and the finance team manually re-entered each order into TallyPrime as a purchase voucher, and again re-entered vendor bills when they arrived. Matching PO numbers to voucher numbers was error-prone and month-end reconciliation required chasing down missing invoices across both systems. With TallyPrime and Procurify connected, every approved purchase order flows directly into TallyPrime as a voucher, and each vendor bill posts into accounts payable automatically. The finance team now spends their time on exceptions rather than data entry, and reconciliation matches PO numbers in both systems by design.
What you can do
- Import Procurify purchase orders into TallyPrime as purchase vouchers with line items mapped to the correct ledger accounts.
- Post Procurify vendor bills into TallyPrime accounts payable ledgers, applying the correct line amounts and GST treatments.
- Map Procurify vendors to TallyPrime ledger accounts by name or custom mapping so bills land on the right accounts.
- Poll Procurify on a schedule using OAuth2, refresh tokens before expiry, and bridge to TallyPrime's local port 9000 via a local agent.
- Deduplicate imports so re-running a sync never creates duplicate vouchers, and update existing vouchers if a purchase order is modified.
Questions
- How does ml-connector connect to TallyPrime if it runs only on a local network?
- ml-connector deploys a local agent on the same machine or LAN as TallyPrime to reach port 9000, since TallyPrime's HTTP server is not internet-accessible. The cloud service communicates with the agent, which forwards requests to TallyPrime's local API. The local agent must be running on a machine where TallyPrime is installed and the target company is open.
- What happens if TallyPrime is stopped or the company is closed when ml-connector tries to sync?
- API calls will fail and the sync will be retried on the next scheduled run. To minimize disruption, schedule syncs during hours when TallyPrime is guaranteed to be running with the company open. ml-connector logs the error so you can see exactly which purchases were not imported and when the sync succeeded.
- Can ml-connector update or delete purchase orders that are already in TallyPrime?
- Yes, ml-connector can update existing purchase vouchers using TallyPrime's Alter action if a Procurify purchase order is modified, by matching the Procurify PO ID. TallyPrime has no delete operation for masters; if a purchase order is cancelled in Procurify, ml-connector can reverse the corresponding TallyPrime voucher or you can cancel it manually.
Related integrations
More TallyPrime integrations
Other systems that connect to Procurify
Connect TallyPrime and Procurify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started