What is a Tally Shopify integration, in plain terms?
A Tally Shopify integration is a small program that sits between your online store and your accounts, reads what happened in Shopify, and writes the matching entry into TallyPrime. It replaces the daily routine where someone exports orders to Excel, opens Tally, and keys in party name, item, quantity, rate and tax for every sale.
The important word is matching. Shopify thinks in orders, line items, discounts, shipping lines, fulfilments and transactions. Tally thinks in vouchers, ledgers, stock items, godowns and tax classifications. The integration is really a translation table between those two worlds, plus rules for the awkward cases: a coupon applied to the whole cart, an order paid half by gift card, a parcel that came back unopened.
Most stores reach for a Tally Shopify integration at one of three moments:
- Order count crosses the point where one person can no longer post the day’s sales before evening.
- The CA finds GSTR-1 figures that do not agree with Shopify’s sales report and spends days finding why.
- Stock shown online keeps drifting from what the godown actually holds, and customers order items that are gone.
If you are still at five orders a day, a clean export template may be enough for now; our Excel to Tally import page covers that lighter route.
Can Shopify be integrated with Tally directly?
Yes, but not through a switch inside either product. Shopify exposes store data through its Admin API, and TallyPrime accepts and returns data over an HTTP server that speaks XML, so a Tally Shopify integration is always a piece of software talking to both ends.
On the Tally side, Tally Solutions’ help pages say TallyPrime must be running on a set port (9000 is the example they give) with at least one company loaded before it will answer an integration request. That single fact shapes the whole design: if Tally lives on one office desktop that is switched off at 8 pm, orders placed at night have to wait in a queue until the machine is back on.
On the Shopify side, Shopify’s developer documentation states that the REST Admin API became a legacy API on 1 October 2024, and that from 1 April 2025 all new public apps must be built on the GraphQL Admin API. A connector you commission today should therefore read orders through GraphQL, and use webhooks such as orders/create so new sales are noticed within moments rather than by polling every few minutes.
Put together, a direct integration has three parts: a listener that hears about Shopify events, a queue that holds them safely, and a poster that writes them into Tally when Tally is reachable. Skipping the queue is the most common reason cheap scripts lose orders.
How one Shopify order becomes one Tally sales voucher
Every design decision in a Tally Shopify integration comes back to one question: what should a single order look like once it sits in your books? Agree that on paper first, with your accountant, before a line of code exists.
A typical mapping for a prepaid B2C order looks like this. The voucher type is a dedicated “Shopify Sales” type so these entries can be filtered and numbered separately. The voucher number is the Shopify order name (for example #1043), which doubles as the duplicate guard. The party is either a common “Shopify Customers” ledger or a named ledger if the buyer gave a GSTIN. Each line item maps to a Tally stock item through the SKU, never through the product title, because titles get edited for marketing and SKUs should not.
Below the items come the charges. Shipping becomes its own ledger line. An order-level discount is either spread across items (so taxable value per line is correct) or posted as a separate discount ledger, depending on how your CA prefers to show it. Rounding off gets a ledger so the voucher total equals what the buyer paid to the paisa.
Finally, the voucher date. Shopify stores timestamps in the store’s time zone, but an order placed at 11:58 pm and paid at 12:03 am can land on two different days depending on which field you read. Pick one rule, usually the order creation date, and keep it.
The full field-by-field table appears lower on this page. Keep it next to your chart of accounts when you review our mapping sheet.
How is GST worked out for Shopify orders posted in Tally?
GST in a Tally Shopify integration is decided per line, from three inputs: the item’s HSN and rate, the taxable value after discount, and the place of supply taken from the delivery address. If the buyer’s state matches your registered state, the line carries CGST plus SGST; if it differs, IGST.
Shopify can be configured to show tax-inclusive prices, which is what most Indian stores do. That means the integration has to back out the taxable value from an inclusive price, and do it the same way Tally would, otherwise every voucher is off by a paisa or two and the rounding ledger fills with noise. We compute it once, compare it with Shopify’s own tax lines, and flag any order where the two disagree by more than a rupee instead of silently choosing one.
HSN deserves special care. The Press Information Bureau announced that from 1 April 2021 taxpayers with turnover above ₹5 crore in the previous year must show a six-digit HSN code on invoices, while those up to ₹5 crore show four digits on B2B invoices. Shopify does not require an HSN on a product, so the integration takes it from Tally’s stock item master, where your accountant already maintains it, rather than trusting a free-text product field.
Two situations need an explicit rule from your CA: orders shipped to a Union Territory, and orders from buyers who enter a GSTIN at checkout and expect a proper B2B tax invoice. We encode whatever your CA decides; we do not make that tax call ourselves.
Discounts, free shipping, bundles and gift cards
These four features cause more mismatches between Shopify reports and Tally ledgers than everything else combined, so a good Tally Shopify integration handles each one deliberately.
Discount codes
A “FLAT200” code on a three-item cart has to be divided across the lines, usually in proportion to line value, so each item’s taxable value and GST are right. Posting the whole discount as one ledger is simpler but can leave item-wise GST reports slightly overstated. Your CA picks the method; the code follows it.
Shipping charged to the buyer
Many accountants tax shipping at the rate of the goods it travels with, and split it across items when the cart has mixed rates. Others keep a single shipping ledger. The integration reads Shopify’s shipping line and applies whichever approach is on your mapping sheet.
Bundles and combo packs
A “Diwali gift box” sold as one Shopify product may be three stock items in Tally. The mapping explodes the bundle into its components at the right quantities and allocates the price, so stock falls correctly in each godown.
Gift cards and store credit
Selling a gift card is not a sale of goods; redeeming it is. Money received for gift cards goes to a liability ledger, and redemption shows up as a payment method on the later order. Stores that ignore this end up paying GST twice.
If your store uses none of these, say so in the brief. Leaving out rules you will never need keeps the build shorter and cheaper.
COD, prepaid payouts and settlement reconciliation
Posting the sale is only half the job; the money arrives later, in lumps, net of charges. A useful Tally Shopify integration books receipts in a way that lets your accountant see, order by order, what is still unpaid.
For prepaid orders, the payment gateway settles to your bank in batches, after deducting its fee and GST on that fee. We post each order’s payment to a “Gateway Clearing” ledger on the order date. When the settlement reaches the bank, one receipt entry clears the batch, and the fee goes to a charges ledger with its input tax. Any order left sitting in the clearing ledger after a week is a question worth asking.
COD is messier. The courier collects cash, deducts freight and COD charges, and remits days later with a remittance file listing AWB numbers. The integration can match those AWBs to Shopify fulfilments, and from there to orders and vouchers. What does not match goes onto an exceptions list: parcels marked delivered but never remitted, remittances for orders you cannot find, and short payments.
This is where our bank statement to Tally work connects: the settlement lines on your bank statement become the other half of each clearing entry, so reconciliation happens against real bank data rather than against what the gateway dashboard says.
Refunds, returns and RTO parcels in Tally
A refund in Shopify should become a credit note in Tally, linked to the original invoice, reversing tax at the same rate and place of supply. A Tally Shopify integration that simply deletes or edits the original voucher is doing it wrong, because the original may already be in a filed return.
Three return shapes come up again and again:
- Prepaid return: credit note for the returned lines, refund posted against the clearing or bank ledger, stock taken back into a “returns” godown until quality check.
- COD return to origin (RTO): no money was ever received, so there is no refund to post. Depending on your CA’s policy, the sale is reversed by credit note or the order is held back from posting until delivery is confirmed.
- Partial refund without return: a goodwill discount after delivery. Usually a credit note with no stock movement, or a financial credit note if your CA prefers.
The cleanest way to avoid RTO clutter is to post COD orders only once they are marked delivered, while prepaid orders post on payment. That single rule removes most reversals, and we recommend discussing it with your accountant before go-live.
Exchanges are the trickiest: Shopify may record them as a refund plus a new order, or as an edit. We test your actual exchange flow on a copy of your company data before switching the connector on.
Which way should stock sync between Shopify and Tally?
Pick one master. If Tally holds purchase entries, godown transfers and production, Tally should own stock and push available quantity to Shopify. If you only sell online and buy in bulk rarely, Shopify can own stock and each posted sale reduces Tally quantities as a side effect.
Two-way stock sync sounds tidy but usually is not. When both systems can change a quantity, a delayed update from one overwrites a fresher number in the other. Picture a shop that sells the last unit online while a counter sale is being billed in Tally, with both systems still showing one unit.
When Tally is master, the integration reads closing quantity per stock item and godown on a schedule, subtracts a safety buffer you choose, and writes it to the matching Shopify location. Shopify’s documentation lists an inventory_levels/update webhook topic, which lets us notice when someone edits stock in the Shopify admin by hand, and warn you, since that edit will be overwritten on the next run.
Multiple warehouses need a godown-to-location map. A Surat godown might feed one Shopify location and a Delhi 3PL another. Keep that map in a simple sheet you control, so adding a location next year is a data change, not a code change.
Customer ledgers: one per buyer or one common ledger?
For B2C orders, most accountants prefer a single “Shopify Customers” or “Online Sales” party ledger, with the buyer’s name and address kept in the voucher narration or in buyer details. Creating a ledger for every one-time shopper fills Tally with thousands of dormant accounts and slows reports.
B2B buyers are different. Anyone who enters a GSTIN at checkout needs their own ledger with that GSTIN, state and address, because the invoice must carry it and it flows to GSTR-1 as a B2B entry. The Tally Shopify integration checks whether a ledger with that GSTIN already exists before creating one, so a returning trade buyer does not get “Sharma Traders”, “Sharma Traders 1” and “SHARMA TRADERS”.
Repeat retail customers with store credit or instalments sit in between. If you actually chase balances with them, give them ledgers; if not, keep them in the common ledger.
We validate GSTIN format and check digit before posting, and send malformed ones to the exceptions list rather than letting a bad number reach your returns. Checking whether a GSTIN is active on the GST portal is a separate step some clients add; it is quoted separately if you want it.
Ready-made Tally Shopify connector or custom integration?
Choose a ready-made connector when your catalogue is plain, GST is a single rate per product, you ship from one location, and you are happy with the vendor’s mapping. Choose a custom Tally Shopify integration when your books have rules the vendor did not anticipate, or when you want the logic owned by you rather than rented.
Signs that a packaged app will struggle:
- Bundles or kits that explode into several Tally stock items.
- Two or more GSTINs, for example a warehouse registered in a second state.
- A voucher numbering series your auditor insists on.
- COD remittance matching by AWB, not just order posting.
- Existing TDL customisations in your Tally that change the voucher format.
- A need to hold orders for CA approval before they post.
We are happy to review a connector you are already trialling and tell you where it falls short; sometimes a small TDL customisation on top of a packaged app is cheaper than replacing it. When the gap is bigger, a custom build keyed to your mapping sheet is the steadier choice.
Whatever you choose, insist on an exceptions view. A connector that fails silently is worse than typing orders by hand, because you only find out at GST filing time.
How much does a Tally Shopify integration cost?
A custom one-way Tally Shopify integration starts at ₹40,000 (US$600) with BtechWaleTech. That covers order and refund posting to one Tally company with your GST mapping, a retry queue, an exceptions list and a short handover session.
What moves the number up is not order volume; code that posts 50 orders a day posts 5,000 just as easily. The drivers are rules and moving parts:
- Each extra GSTIN, Tally company or Shopify location.
- Bundle explosion and discount allocation across mixed tax rates.
- Settlement and COD remittance matching.
- Stock sync back to Shopify, with buffers and godown mapping.
- An approval screen or small dashboard for the accounts team.
- Hosting a cloud VM for Tally, if you do not want to rely on an office PC.
Quotes from other freelancers and vendors vary widely, mostly because some price only the happy path and charge again for each edge case. Ask any supplier to list refunds, RTO, bundles and duplicates in writing. Our itemised quote arrives in about two working days, and nothing is billed before you approve it. See the full starting price list for other work.
Where does Tally need to run for the sync to work?
Tally has to be switched on, with the company open, whenever the integration posts. Tally Solutions’ own prerequisites say the same: TallyPrime must be running on its configured port with a company loaded before it answers.
That leaves three practical setups:
Office PC with a local agent
A light agent runs on the same PC as Tally, collects queued orders from a small cloud service, and posts them whenever Tally is open. Cheapest to run; orders simply wait overnight. Good for stores whose accountant posts once a day anyway.
Always-on server in the office
A spare desktop or server that never sleeps, with TallyPrime running a dedicated licence. Orders post within minutes around the clock. Needs a UPS and someone who notices when Windows updates restart it.
Tally on a rented cloud VM
TallyPrime installed on a Windows virtual machine with remote access for the accounts team. Most reliable for posting, with a monthly hosting bill in your name. Check your Tally licence terms for this setup with your Tally partner.
We never open Tally’s port to the public internet. The agent always calls out from your side, so no inbound firewall hole is needed. For help choosing a VM, see cloud hosting setup.
Risks and red flags in a Shopify to Tally sync
Most failed integrations fail the same few ways. Ask any developer, including us, how their Tally Shopify integration handles each of these before you pay:
- Duplicates: a network blip causes a retry and the order posts twice. The fix is an idempotency key: the Shopify order ID stored against the voucher and checked before every write.
- Ledger name drift: someone renames “Shipping Charges” to “Freight Outward” in Tally and every post starts failing. Mapping by ledger GUID or a checked config sheet avoids this.
- Edited orders: staff change a quantity in Shopify after the voucher has posted. The integration should flag the difference, not overwrite a voucher that may already be in a filed return.
- Silent failures: Tally rejects a voucher for a missing stock item and nobody sees the error. An exceptions list with a daily summary is not optional.
- Credentials in chat: an admin API token pasted in WhatsApp and never rotated. Access should be a scoped custom app token you can revoke.
- No test company: building against live books. Always test on a copy of your Tally company first.
A red flag in a proposal is any promise of “100% automatic, zero checking”. Your accountant should still review the exceptions list daily for the first month.
Tally Shopify integration timeline, week by week
Most one-way builds take two to four weeks from a signed mapping sheet, and the mapping sheet itself usually takes the first few days because it needs your accountant’s time.
Week one is discovery: we read a month of real Shopify orders, your Tally chart of accounts, stock item names and voucher types, and draft the mapping sheet. You and your CA mark every line as agreed or changed. Week two is building the reader, queue and poster, and running them against a copy of your Tally company with last month’s orders. We produce a comparison of Shopify totals against Tally totals by day, by tax rate and by state.
Week three covers the extras you ordered, such as settlement matching or stock push, and a parallel run: the connector posts to the test company while your team keeps posting by hand in the live one, and both are compared. Week four is go-live on the live company, with the exceptions list watched closely.
Two-way stock, several GSTINs or a TDL approval screen add roughly a week each. Delays almost always come from waiting for decisions on tax treatment, which is why we ask for the CA’s input on day one rather than at the end.
Who owns the integration once it is live?
You do. The source code sits in a repository under your account, the cloud service runs in your hosting account, and the Shopify custom app is created in your store with a token only you can revoke. We hand over a mapping document written in accountant’s language, not only a technical README.
The first two months after launch include free maintenance: if Shopify changes an API field, or a new tax case appears that the mapping sheet did not cover, we fix it. After that, you can continue on a care plan from ₹8,000/mo, hand the code to your own developer, or leave it running. Nothing in the build stops another developer from reading it, because it uses ordinary languages and Tally’s documented interfaces.
Ownership also means your data stays yours. The queue stores order data only as long as needed to post it and to show recent exceptions; we agree a retention period with you and purge older entries automatically. We do not copy your sales data to any service outside the ones listed in the handover note.
If you want the same data used elsewhere later, such as an owner dashboard or a monthly MIS pack, it can be read from Tally once it is posted there, so the integration becomes the single clean feed for everything downstream.
Worked example: a saree store with two GST registrations
Here is a hypothetical scenario to make the moving parts concrete. Say a saree seller in Surat runs a Shopify store with about 120 orders a day, 40 percent of them COD. Stock sits in a Surat godown, with a small consignment at a fulfilment warehouse in Haryana registered under a second GSTIN. The accountant currently spends every morning posting the previous day’s orders.
The mapping sheet for this seller would say: prepaid orders post on payment, COD orders post on delivery; each Shopify location maps to its own Tally company because the GSTINs differ; blouse pieces sold as add-ons are separate stock items at their own rate; a festive “buy two, get 10 percent off” discount is spread across lines in proportion to value. Stock flows one way, Tally to Shopify, with a buffer of two pieces per SKU.
The build would be a GraphQL order reader, a queue, two posters (one per Tally company), a COD matcher reading the courier’s remittance file, and a daily email of exceptions. On the numbers above, the scope fits a quote starting at ₹40,000, with the second company and COD matching listed as their own lines.
What this seller would not get from us: a guarantee that the courier’s files are always complete, a GST opinion on the discount, or on-site setup at the godown. Those stay with the courier, the CA and whoever manages the office network.
Tally Shopify integration across India
We work remotely with Shopify sellers across the country; the integration logic is the same everywhere, but the product mix and GST puzzles differ by city. Textile and ethnic-wear sellers in Surat and Varanasi deal with bundled blouse pieces and heavy COD. Knitwear and hosiery brands in Ludhiana and Tiruppur manage size-colour variants that must map to Tally stock items one for one.
Brassware exporters from Moradabad and furniture makers in Jodhpur often sell domestically on Shopify while exporting through other channels, so separating the two in Tally matters. D2C brands in Bengaluru, Mumbai and Delhi tend to have multiple warehouses and second GSTINs, which is exactly where packaged connectors struggle.
Calls happen on WhatsApp or Google Meet in English or Hindi. Your Tally stays wherever it is today; we connect to it through the agent, never by asking you to move your books.
Go-live checklist for your Tally Shopify integration
Run through this list with your accountant before the connector posts to the live company. Every “no” is a risk you are choosing to carry.
- Every Shopify SKU matches a Tally stock item, and every stock item carries HSN and GST rate.
- Mapping sheet signed by your CA: voucher type, ledgers, discount method, shipping tax, rounding.
- Posting rule agreed: prepaid on payment, COD on delivery, or something else in writing.
- Duplicate test done: the same order sent three times produces one voucher.
- Parallel run for at least a week, with daily totals agreeing by tax rate and state.
- Refund, partial refund, RTO and exchange tested on real past orders.
- Exceptions list reaches a named person every day.
- Shopify custom app token stored in your password manager, not in chat.
- Backup of the Tally company taken just before go-live.
- Clear owner for fixes: us during the free two months, then your choice.
Keep this list; it doubles as the audit trail if anyone later asks how online sales entered the books.