TallyPrime and ShipStation integration
TallyPrime runs accounting and inventory for small and mid-sized businesses. ShipStation manages orders from multiple sales channels and arranges shipments. Connecting the two keeps your order pipeline and your inventory in agreement. Sales orders from your marketplace, store, or B2B channel flow into TallyPrime as purchase orders and shipment delivery notes, inventory is updated as goods move, and financial records stay synchronized without re-entry.
What moves between them
Sales orders and shipments flow from ShipStation into TallyPrime. When a new order is placed in ShipStation, ml-connector converts it to a Purchase Order voucher in TallyPrime and allocates it to the correct ledger. As the order ships, a Delivery Note voucher is created with the shipped stock items, quantity, and reference back to the original order. Inventory is decremented in TallyPrime as shipments are confirmed. Reference data such as stock items and customer ledger accounts are aligned so orders map to valid TallyPrime entities. ShipStation is the source of truth for order and shipment state; TallyPrime reflects that state for accounting and inventory purposes.
How ml-connector handles it
ml-connector runs a local polling loop that regularly fetches new orders and shipment updates from ShipStation via its REST API, extracting the order ID, customer, item SKU, quantity, and destination. It converts each order into TallyPrime's Voucher envelope format (Import Data action with a TALLYMESSAGE containing the voucher XML) and posts it via HTTP to port 9000 on the TallyPrime host. Because TallyPrime has no idempotency mechanism, ml-connector tracks order IDs and voucher states to avoid duplicate Import calls. ShipStation webhooks supplement polling for real-time notifications; ml-connector validates webhook signatures and queues the follow-up GET to ShipStation to fetch full order details. Port 9000 must be manually enabled in TallyPrime Advanced Configuration. Since TallyPrime is single-user and lock-prone, ml-connector sequences requests and includes retry logic with exponential backoff. Rate limits on ShipStation are respected via the X-Rate-Limit headers; TallyPrime has no rate limits but throughput is constrained by the Windows machine running it.
A real-world example
A mid-sized e-commerce merchant in India operates a TallyPrime instance for accounting and inventory on a local server, and uses ShipStation to aggregate orders from their Shopify store, Amazon Seller Central, and B2B marketplace. Before the integration, the operations team manually downloaded the day's orders from ShipStation, re-entered them as Purchase Order vouchers in TallyPrime, and then manually updated stock quantities in both systems as shipments left the warehouse. Reconciliation at month-end meant chasing discrepancies between ShipStation's shipment records and TallyPrime's stock levels, with no single source of truth. With TallyPrime and ShipStation connected, each order arriving in ShipStation is automatically posted as a voucher in TallyPrime, shipments are logged as Delivery Notes with quantities, inventory is decremented in real time, and the two systems stay aligned without manual entry.
What you can do
- Convert ShipStation orders into TallyPrime Purchase Order vouchers, allocating them to the correct customer ledger accounts.
- Create Delivery Note vouchers in TallyPrime when shipments are confirmed in ShipStation, updating stock quantities.
- Sync product SKUs and inventory levels between ShipStation and TallyPrime so orders reference valid stock items.
- Authenticate ShipStation via API Key and TallyPrime via the local port 9000 endpoint with optional company password.
- Poll ShipStation and TallyPrime on a schedule you set, with built-in deduplication and full audit trail on every order and shipment.
Questions
- Which direction does data move between TallyPrime and ShipStation?
- The main flow is ShipStation into TallyPrime. Orders and shipment data move from ShipStation into TallyPrime as vouchers and inventory updates. Reference data such as stock item SKUs and customer accounts are synced so orders map to valid TallyPrime entities. TallyPrime is read to fetch current inventory and ledger state; ShipStation is the source of truth for order and shipment events.
- Why does TallyPrime require a local agent and how does the integration handle it?
- TallyPrime's HTTP server on port 9000 is LAN-accessible only and is not enabled by default. ml-connector includes a local agent that runs on the same machine or LAN as TallyPrime and bridges cloud requests to the local endpoint. The port must be manually enabled in TallyPrime Advanced Configuration. Since TallyPrime is single-user, the agent sequences requests to avoid lock contention.
- What happens if ShipStation reports an order that TallyPrime has already received?
- ml-connector tracks order IDs and avoids duplicate Import Data calls, since TallyPrime has no native idempotency. If a shipment is marked as already processed, ml-connector skips the Delivery Note creation. If an order is updated in ShipStation (e.g., quantity change), ml-connector detects the change via polling or webhook and updates the corresponding TallyPrime voucher.
Related integrations
More TallyPrime integrations
Other systems that connect to ShipStation
Connect TallyPrime and ShipStation
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started