Connect to a locally running TallyPrime instance via its XML-over-HTTP interface. All requests are HTTP POST to $TALLY_URL (commonly http://localhost:9000) with an XML body.
SVCURRENTCOMPANY (exact spelling).Goal: zero manual entry for CAs handling many clients.
Use when the user asks to:
YYYYMMDD (no separators).GUID per voucher to prevent duplicates on retries.& → use & in XML.reference/vouchers.md).<ISINVOICE>No</ISINVOICE> and place the party ledger entry first in the ALLLEDGERENTRIES.LIST sequence. This makes the Day Book "Particulars" column show the party name (not the expense/purchase ledger) and defaults the voucher to the clean "As Voucher" view. Only use ISINVOICE=Yes for item invoices that go through reference/inventory.md.LEDGERENTRIES.LIST: when OBJVIEW="Invoice Voucher View" is set (Modes 1 and 2 in reference/vouchers.md), every ledger block must use <LEDGERENTRIES.LIST>, not <ALLLEDGERENTRIES.LIST>. Tally silently ignores ALLLEDGERENTRIES in this view, causing the voucher to be saved with no entries and the error "No accounting or inventory entries are available."<CLASSNAME>EXACT_CLASS_NAME</CLASSNAME> in the voucher header and include all four GST header fields ( CMPGSTIN, PARTYGSTIN, GSTREGISTRATIONTYPE, PLACEOFSUPPLY). If class existence is unconfirmed, stop and ask — do not post without it. Full decision rules and templates are in the "Voucher class — decision rules" section of reference/vouchers.md.Run through every item before sending any Create/Alter/Delete request. Stop at the first unresolved item and ask the user.
#CheckHow to verifyBlock if…1Company confirmedUser stated it explicitlyName not given — ask2Server reachablecurl -s --max-time 5 "$TALLY_URL"No response / wrong port3Voucher type uses a class?Export voucher type masters or ask userUnknown — ask before posting4Class name confirmed (if class mode)List voucher type via masters export; match exact class name in TallyClass not found — ask, never guess5Party ledger existsLedger existence check ( reference/masters.md)Missing — create first6Purchase/Sales/GST ledgers existSame as aboveMissing — create first7GST header fields available (if class mode)CMPGSTIN, PARTYGSTIN, GSTREGISTRATIONTYPE, PLACEOFSUPPLYAny missing — ask user8Voucher totals balanceSum all AMOUNT values = 0Mismatch — fix before posting
bash
curl -s --max-time 5 "$TALLY_URL"
Expected (example):
xml
<RESPONSE>TallyPrime Server is Running</RESPONSE>
If not running, stop and ask user to open TallyPrime and enable integrations for the port.
If the user did not specify company, ask. If they did, use exact name in SVCURRENTCOMPANY.
To list companies, use the template in reference/reports.md (“Company list”).
Ledger existence checks and master creation templates are in reference/masters.md (includes ledgers, groups, GST/address fields, and party ledger creation with required field prompts).
New company? Run the "New Company Setup — Standard GST Ledgers" block in reference/masters.md first. It creates the seven minimum ledgers every GST-registered company needs:
#LedgerType1Input Sgst @ 9 %Input GST2Input Cgst @ 9 %Input GST3Input IGST @ 18 %Input GST4Purchase @ 18 %Purchase ledger5Round OffRounding6Output Sgst @ 9 %Output GST7Output Cgst @ 9 %Output GST
Quick group defaults (common CA mapping):
Ledger typeParent groupCustomerSundry DebtorsVendorSundry CreditorsSalesSales AccountsPurchases/ExpensesPurchase Accounts / Direct Expenses / Indirect ExpensesBankBank AccountsCashCash-in-HandGSTDuties & Taxes
Use REPORTNAME=Vouchers and always include GUID, DATE, and VOUCHERTYPENAME. Full templates (including bill-wise allocations, returns, contra) are in reference/vouchers.md.
Supported voucher types in this skill:
Use TALLYREQUEST=Export / REPORTNAME=... with SVEXPORTFORMAT=$$SysName:XML. Full templates are in reference/reports.md.
Common CA reports:
Use a deterministic pattern when invoice number exists:
text
{companyShort}-{voucherType}-{voucherNumber}-{date}
Examples:
abc-purchase-ril2026-00123-20260115abc-creditnote-cn09-20260302reference/reports.mdreference/vouchers.mdreference/masters.mdreference/inventory.mdreference/errors.md