ml-connector
TallyPrimeOrderful

TallyPrime and Orderful integration

TallyPrime runs accounting and inventory on premise across Asia-Pacific regions. Orderful handles EDI translation and delivery to your trading partners in the cloud. Connecting them bridges the gap between your local accounting system and cloud-based supply chain networks. Purchase orders created in TallyPrime flow to Orderful as EDI 850 documents, invoices flow as 810 documents, and inbound ship notices and payment remittances post back as TallyPrime vouchers without manual re-entry. ml-connector manages the local polling, API translation, and compliance audit.

How TallyPrime works

TallyPrime exposes ledgers, groups, vouchers (Purchase, Sales, Payment, Receipt, Purchase Order), and stock items through an XML or JSON HTTP endpoint at http://<tally-host-ip>:9000. The endpoint accepts POST requests with a TALLYREQUEST envelope; operations are controlled by the request type (Import Data for write, Export Data for read). Port 9000 must be manually enabled in TallyPrime Settings, and since the server is LAN-accessible only, a local agent is required to bridge the cloud connector to the on-premise instance. TallyPrime has no webhooks or event subscription, so data is read by polling, typically every 5 to 15 minutes. No native authentication layer exists at the transport level; network-level security is expected through firewall or VPN.

How Orderful works

Orderful exposes EDI document endpoints through a REST API at https://api.orderful.com (US) or https://api-eu.orderful.com (EU), with versioned paths: /v4 for create and inbox operations, /v3 for list and retrieve. All calls require an API Key passed in the orderful-api-key header (not Authorization); there is no OAuth or token refresh. Key entities include 850 purchase orders, 810 invoices, 856 ship notices, 820 payment orders, and a full suite of 16 EDI transaction types for supply chain workflows. Orderful supports both webhooks (inbound push to your endpoint) and polling via /v3/polling-buckets for retrieval. Transactions must route by sender and receiver ISA identifiers, and the stream field must be set to test in development and live in production.

What moves between them

The main flow runs bidirectional. Outbound: TallyPrime purchase orders and sales vouchers are polled at a fixed interval and translated into EDI 850 and 810 documents, then posted to Orderful for routing to trading partners. Inbound: Orderful receives EDI 856 ship notices and 820 payment remittances from trading partners and either pushes them to ml-connector via webhook or ml-connector retrieves them via polling; they are translated back into TallyPrime purchase receipts and payment vouchers. The cadence is tied to your business processes: polling occurs every 5 to 15 minutes, and data appears in the target system within the same interval plus translation time.

How ml-connector handles it

ml-connector requires a local agent running on the same machine or LAN as TallyPrime to reach the http://<tally-host-ip>:9000 endpoint; it stores the host IP, port, and company name (case-sensitive) along with optional username and password if the company is protected. It polls TallyPrime's Export Data endpoint with date-range filters on a fixed schedule and compares returned voucher IDs against the last-seen state to detect new or modified records. For each new purchase or sales voucher, it builds the matching EDI 850 or 810 envelope, including sender and receiver ISA identifiers required by Orderful, and POSTs it to Orderful's /v4/create endpoint with the API Key in the header. Inbound, ml-connector either registers a webhook callback with Orderful (if you expose a public endpoint) or polls the /v3/polling-buckets endpoint every 5 to 10 minutes to retrieve incoming EDI; it validates the webhook signature (documented by Orderful support) or trusts polling results, translates the EDI back to TallyPrime XML or JSON envelopes, and POSTs them to the local TallyPrime endpoint via Import Data. Because TallyPrime is single-user and not idempotent, ml-connector keeps requests sequential and does not retry failed imports; failed records are logged with full context so they can be replayed once the TallyPrime instance recovers. Orderful's region (US vs EU) is locked per credential set, and ISA identifiers must match your trading partner registration in Orderful.

A real-world example

A mid-market distributor based in India runs TallyPrime for accounting and inventory across three regional warehouses. Their largest customers (retailers in Southeast Asia) exchange purchase orders and ship notices via EDI through an Orderful account. Before the integration, the finance team manually entered EDI purchase orders from Orderful into TallyPrime, then exported invoices from TallyPrime and manually formatted them as EDI 810 documents for delivery through Orderful. Reconciling inbound ship notices against TallyPrime receipts was error-prone and slow. With TallyPrime and Orderful connected, each sale triggers an EDI invoice automatically, each inbound ship notice lands in TallyPrime as a purchase receipt, and the team's manual rekeying is gone. Month-end close now starts with order and receipt counts already aligned between the two systems.

What you can do

  • Poll TallyPrime vouchers on a schedule and translate them into EDI 850 purchase orders and 810 invoices for Orderful.
  • Receive Orderful EDI 856 ship notices and 820 payment remittances via webhook or polling and post them into TallyPrime as purchase receipts and payment vouchers.
  • Translate between TallyPrime's XML/JSON voucher format and standard EDI X12 envelopes, handling ledger, group, and stock item references.
  • Store Orderful API credentials and TallyPrime host IP, port, and company name encrypted, with optional password protection per company.
  • Maintain a full audit trail of every EDI translation and TallyPrime import, with context available for replay if a transaction fails.

Questions

How does the integration handle TallyPrime running on a local machine?
ml-connector requires a local agent on the same machine or LAN as TallyPrime to bridge the cloud connector to the http://<tally-host-ip>:9000 endpoint. The agent runs as a background service and forwards HTTP requests from ml-connector to the local TallyPrime instance. You provide the host IP, port (default 9000), and company name (case-sensitive) in ml-connector's configuration. TallyPrime must be running and the company must be open for API calls to succeed.
Which direction do EDI documents flow between TallyPrime and Orderful?
Both directions. Outbound: TallyPrime purchase orders and sales vouchers are polled and translated into EDI 850 and 810 documents, then sent to Orderful for routing to trading partners. Inbound: Orderful receives EDI 856 ship notices and 820 payment remittances from partners and ml-connector receives them via webhook or polling, translates them back to TallyPrime vouchers, and imports them. No manual rekeying is required in either direction.
What happens if TallyPrime is not running or a company is locked?
ml-connector will fail to retrieve or import data and log the error with full context. Because TallyPrime is single-user and not idempotent, ml-connector does not retry automatically; instead, it surfaces the failure so you can fix the underlying issue (unlock the company, start TallyPrime, fix port 9000 configuration) and manually replay the affected records. A full audit trail is kept so you know exactly which vouchers and EDI documents were blocked.

Related integrations

Connect TallyPrime and Orderful

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

Get started