Skip to main content
Glama

Zovo Tally Import

Convert bank statement to Tally XML

convert_statement_to_tally
Read-only

Use this when the user attaches a bank statement (text PDF, CSV or Excel from net banking) and wants it as Tally XML: "bank statement to tally xml", "import bank statement in tally prime", "excel to tally". Builds Payment, Receipt and Contra vouchers against the bank ledger, maps narrations to ledgers with keyword rules (unmatched rows go to a suspense ledger), checks each voucher balances and that opening + rows = closing, and returns the vouchers XML, a ledgers XML and an Excel review sheet. Does not read scans or photos (use generate_tally_vouchers with the rows you can read), does not post into Tally, and is not for GST returns or sales invoices.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "file": "<file>"
    },
    "name": "convert_statement_to_tally"
  }
}

Input Schema

NameRequiredDescriptionDefault
fileYesThe bank statement to convert: a text PDF, or the CSV or Excel (.xlsx) download from net banking, e.g. hdfc-april-2026.pdf.
companyNoOptional Tally company name, e.g. Sharma Traders 2026-27. Leave empty to import into the company open in Tally.
date_orderNoOrder of numeric dates: DMY (default, 02/04/2026 = 2 April) or MDY. Detected from the file when a day is above 12.
auto_contraNoBook ATM withdrawals and cash deposits as Contra vouchers against the cash ledger. Default true.
bank_ledgerNoYour bank ledger name exactly as in Tally, e.g. HDFC Bank A/c. Default: Bank Account.
cash_ledgerNoCash ledger for ATM withdrawals and cash deposits (booked as Contra), e.g. Cash. Default: Cash.
ledger_rulesNoNarration keyword to ledger rules, first match wins, e.g. [{"match":"SALARY","ledger":"Salary Payable"},{"match":"GST","ledger":"GST Payable"}] or text "SALARY=Salary Payable; RENT=Rent". Rows that match no rule go to the suspense ledger.
statement_yearNoYear for dates printed without one, e.g. 2026, or a financial year like "FY 2026-27" (April to December 2026, January to March 2027).
closing_balanceNoClosing balance if the file has none, e.g. 98450.00. With the opening balance it proves no row is missing.
opening_balanceNoOpening balance if the file has none, e.g. 125000.50 or "1,25,000.50 Cr". Used to check the total.
suspense_ledgerNoLedger for rows that match no rule, e.g. Suspense. Default: Suspense.
bank_ledger_groupNoGroup of the bank ledger in the ledgers file: Bank Accounts (default) or Bank OD A/c.
voucher_type_namesNoOnly if you renamed voucher types in Tally, e.g. {"payment":"Bank Payment","receipt":"Bank Receipt"}. Defaults: Payment, Receipt, Contra.

Output Schema

NameRequiredDescriptionDefault
sourceYes
totalsYes
ledgersYes
previewYes
vouchersYes
warningsYes
downloadsYes
xml_checkYes
bank_ledgerYes
import_stepsYes
not_importedYes
unread_linesYes
ledgers_countNo
preview_countNo
reconciliationYes
suspense_countYes
financial_yearsYes
not_imported_countYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses the internal pipeline: narration-to-ledger keyword mapping, unmatched rows defaulting to a suspense ledger, per-voucher balance checks, and an opening+rows=closing reconciliation. It confirms nothing is posted into Tally, consistent with the read-only hint. It stops short of describing failure modes when the balance check fails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Guidance is front-loaded in the trigger sentence, followed by what it produces and then what it excludes — a sensible order. The second sentence is long and packs many clauses, but each clause carries real information, so density is earned rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 13-parameter conversion tool with nested objects, the description covers the input formats, the voucher-construction model, the rule/suspense fallback, the reconciliation check, and the three returned artifacts. With an output schema present, it need not detail return shapes, so nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented at field level, and the description largely restates that behavior at a summary level (keyword rules, suspense fallback, balance-check inputs). It adds the useful framing that conversion correctness depends on opening/closing balances and rule coverage, but no parameter-specific detail beyond the schema. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb (convert) plus the exact source (bank statement: text PDF, CSV, Excel from net banking) and target (Tally XML), and spells out the outputs built (Payment/Receipt/Contra vouchers, ledgers XML, Excel review sheet). It also names the sibling it is not, making it distinguishable from generate_tally_vouchers without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states a concrete trigger ('when the user attaches a bank statement...') and supplies example user phrasings that should route here. It explicitly lists exclusions (scans/photos, posting into Tally, GST returns, sales invoices) and names the alternative tool for the scanned-file case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources