Skip to content

Insights

Shopify to Tally Prime: posting orders, refunds and payouts correctly

To get Shopify orders into Tally Prime correctly, each order should become a sales voucher with GST split by place of supply, each refund a credit note, each gateway payout a receipt that clears the gateway’s balance and books its fees, and each cash-on-delivery remittance a receipt from the courier. Re-typing a daily total misses most of this, which is why the books and the GST return stop agreeing within a month or two.

Why a daily total is not enough

Many stores start by entering one journal per day: total sales, total GST, done. It looks tidy and fails in four ways:

  • GSTR-1 needs the split. Consumer sales are reported by state and rate; inter-state invoices above ₹1 lakh to unregistered buyers are reported invoice by invoice. A daily total cannot produce either.
  • Refunds land on other days. A return processed next month has to reverse the original rate and state, not today’s mix.
  • Money arrives net. Razorpay pays out after deducting its fee and the GST on that fee. Without a clearing account the bank never matches sales.
  • COD money comes from the courier. Cash-on-delivery orders are paid by Shiprocket or Delhivery in batches, net of their charges, days later.

The ledgers you need in Tally first

Set these masters up once, before importing anything. The names are examples; what matters is the structure.

LedgerGroupPurpose
Sales 5% Local, Sales 5% InterstateSales AccountsTaxable value by rate and supply type
Sales 18% Local, Sales 18% InterstateSales AccountsAs above, for the 18% rate
Output CGST, Output SGST, Output IGSTDuties and TaxesTax collected
Shopify Customers (or one ledger per B2B buyer)Sundry DebtorsThe party on each sales voucher
Razorpay ClearingBank Accounts or Current AssetsPrepaid orders until the payout arrives
COD Receivable: CourierSundry DebtorsCOD orders until remitted
Payment Gateway Charges, Courier ChargesIndirect ExpensesFees deducted from payouts
Input IGST or Input CGST and SGSTDuties and TaxesGST charged on those fees

B2B buyers who give a GSTIN at checkout need their own ledger with the GSTIN and state filled in, so the invoice appears in the B2B section of GSTR-1.

Order to voucher: the mapping

  1. Sales voucher per order, dated the order date (or the invoice date your invoicing app assigns), with the invoice number from that app.
  2. One line per tax rate. A cart with a 5% kurta and an 18% saree produces two sales lines. Since the GST 2.0 changes, apparel and footwear rates depend on price per piece, so this matters more than it used to; we cover it in Shopify GST setup after GST 2.0.
  3. Place of supply from the shipping address. Same state as your registration: CGST and SGST. Different state: IGST.
  4. Tax-inclusive prices back-calculated. Shopify shows the tax-inclusive price; Tally needs the taxable value and the tax separately, rounded consistently.
  5. Shipping charged to the customer follows the goods’ rate where it forms part of a composite supply, so it goes on the sales lines rather than a separate service ledger. Agree the treatment for mixed-rate carts with your adviser.
  6. Discounts reduce taxable value on the invoice. Order-level discounts are spread across lines in proportion.
  7. The debit goes to Razorpay Clearing for prepaid orders and COD Receivable for cash-on-delivery orders.

Refunds, payouts and COD

  • Refund: a credit note against the original invoice, same rate and same place of supply, reducing the clearing or receivable account.
  • Razorpay payout: a receipt into the bank for the net amount, crediting Razorpay Clearing for the gross orders, with the fee to Payment Gateway Charges and GST on the fee to input tax, which you can generally claim if Razorpay’s invoice carries your GSTIN.
  • COD remittance: a receipt from the courier for the net amount, clearing COD Receivable, with courier charges and their GST booked the same way.
  • Anything that does not match (a payout that includes an unknown order, a refund with no original, an amount off by more than a rupee) goes to a review list, not into the books.

The rule that keeps books clean: post what you can prove, queue what you cannot.

How to get the data into Tally Prime

Tally Prime offers three practical routes:

  • XML over HTTP. Tally Prime can run an HTTP server (port 9000 by default) that accepts XML requests to import vouchers. This is how live integrations work, and it is what LedgerBridge uses.
  • XML or JSON file import. From Release 7.0, Tally Prime imports transactions from JSON files as well as XML through the Import menu. Good for a daily batch prepared outside Tally.
  • Excel templates through a utility. Workable for low volumes, fragile at scale.

Whichever route you choose, import into a test company first, compare its GSTR-1 view with Shopify’s tax report for the same period, and only then switch on the live company.

Where LedgerBridge fits

We built LedgerBridge because we kept writing this mapping by hand for stores. It works out GST on every Shopify order by place of supply, posts orders and refunds to Tally Prime as balanced vouchers, matches Razorpay settlements to orders and bank entries, and produces GSTR-1 data, with mismatches sent to an exceptions queue. Plainly stated: it supports Tally Prime and Razorpay today, has been production-tested, and is not yet live with a merchant. If you use other gateways or another accounting system, the method above still applies and we can build the connector.

Want your Shopify orders flowing into Tally?

Tell us your order volume, gateways and courier. We will tell you whether LedgerBridge fits or what a custom connector would take.

Talk to us about Tally

Frequently asked questions

Can Shopify connect to Tally Prime directly?

Not natively. Shopify has no built-in Tally connector. You need an app or a custom integration that turns orders, refunds and payouts into Tally vouchers, through Tally’s XML interface or file import.

Should every customer have a separate ledger in Tally?

For consumers, one common ledger is normal and keeps the masters manageable. Buyers who give a GSTIN need their own ledger with GSTIN and state, so their invoices report correctly as B2B.

How do I account for Razorpay fees?

Book the gross order value to a Razorpay clearing account, then when the payout arrives credit the clearing account, debit the bank with the net amount, and debit the fee and the GST charged on it to their own ledgers.

Does this work for cash on delivery?

Yes. COD orders are debited to a courier receivable and cleared when the courier remits, with the courier’s charges booked separately. Undelivered COD orders are reversed with a credit note.

Related: Shopify GST setup after GST 2.0, Shopify development in India, AI automation, LedgerBridge.