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).
No 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 , not . 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."
EXACT_CLASS_NAME 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.
| # | Check | How to verify | Block if… |
|---|---|---|---|
| 1 | Company confirmed | User stated it explicitly | Name not given — ask |
| 2 | Server reachable | curl -s --max-time 5 "$TALLY_URL" | No response / wrong port |
| 3 | Voucher type uses a class? | Export voucher type masters or ask user | Unknown — ask before posting |
| 4 | Class name confirmed (if class mode) | List voucher type via masters export; match exact class name in Tally | Class not found — ask, never guess |
| 5 | Party ledger exists | Ledger existence check (reference/masters.md) | Missing — create first |
| 6 | Purchase/Sales/GST ledgers exist | Same as above | Missing — create first |
| 7 | GST header fields available (if class mode) | CMPGSTIN, PARTYGSTIN, GSTREGISTRATIONTYPE, PLACEOFSUPPLY | Any missing — ask user |
| 8 | Voucher totals balance | Sum all AMOUNT values = 0 | Mismatch — fix before posting |
curl -s --max-time 5 "$TALLY_URL"
Expected (example):
<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:
| # | Ledger | Type |
|---|---|---|
| 1 | Input Sgst @ 9 % | Input GST |
| 2 | Input Cgst @ 9 % | Input GST |
| 3 | Input IGST @ 18 % | Input GST |
| 4 | Purchase @ 18 % | Purchase ledger |
| 5 | Round Off | Rounding |
| 6 | Output Sgst @ 9 % | Output GST |
| 7 | Output Cgst @ 9 % | Output GST |
Quick group defaults (common CA mapping):
| Ledger type | Parent group |
|---|---|
| Customer | Sundry Debtors |
| Vendor | Sundry Creditors |
| Sales | Sales Accounts |
| Purchases/Expenses | Purchase Accounts / Direct Expenses / Indirect Expenses |
| Bank | Bank Accounts |
| Cash | Cash-in-Hand |
| GST | Duties & 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:
{companyShort}-{voucherType}-{voucherNumber}-{date}
Examples:
abc-purchase-ril2026-00123-20260115
abc-creditnote-cn09-20260302
reference/reports.md
reference/vouchers.md
reference/masters.md
reference/inventory.md
reference/errors.md
共 1 个版本