Voucher Architecture
Every number in Tally comes from a voucher. Every report traces back to a voucher. Master this, and you master Tally. We cover all 16 voucher types, Voucher Classes, numbering schemes, security, TDL/XML code, and 40+ real-world scenarios — with Bangladesh VAT examples.
Why Vouchers Are the Most Important Pillar
Here is a statement that will sound strange to beginners but obvious to experts: Every financial statement in Tally is just an aggregation of vouchers.
Your Trial Balance? It is a sum of all ledger movements across all vouchers. Your Balance Sheet? It is a hierarchy of groups built from voucher postings. Your GST return? It is a filtered extract of vouchers where the tax ledgers are non-zero.
If you understand vouchers deeply, every report becomes self-explanatory. If you only understand reports, you will spend your life debugging "why does this number not match?"
A Voucher Is a Business Event Recorded
A voucher captures what happened, when it happened, who was involved, and for how much. That is it. Choose the right voucher type, and TallyPrime handles the accounting entries automatically.
Choose the wrong type, and TallyPrime will still accept it — but your reports will be silently wrong. This is why voucher type selection is the single most important decision in data entry.
A Voucher Is an Atomic Transaction Object
In TallyPrime's object model, a voucher is a Voucher object containing one or more LedgerEntry objects, one or more InventoryEntry objects, plus BillAllocation, CostCentreAllocation, and BatchAllocation sub-collections.
The voucher type is a first-class entity in Tally's storage — not a field on the voucher. This is why TDL can customize voucher types completely, and why XML must specify VCHTYPE explicitly.
The 16 Voucher Types: Complete Deep Dive
TallyPrime ships with 16 standard voucher types. Each has a specific purpose, a function-key shortcut, and a defined accounting behavior. Let's dissect every one — with examples you can try today.
1. Sales Voucher
The Sales voucher is the most-used voucher in any business. It records revenue and simultaneously reduces inventory. The party ledger is debited; sales and tax ledgers are credited.
Sales A/c ............... Cr 50,000
Output VAT @ 15% ........ Cr 7,500
Bangladesh Context: Every VAT-registered sale must generate a Mushak 6.3 challan. In TallyPrime, configure the Sales voucher type to print Mushak 6.3 by default. The voucher number becomes the challan number.
2. Purchase Voucher
The Purchase voucher mirrors the Sales voucher. Purchase ledger is debited; supplier is credited. If inventory integration is enabled, stock increases simultaneously.
Input VAT @ 15% ........... Dr 15,000
Karim Supplies .......... Cr 115,000
3. Receipt Voucher
Receipt vouchers record money received. The bank or cash ledger is debited; the customer ledger is credited. Use bill-wise tracking to link receipts to specific invoices.
Rahim Traders .......... Cr 30,000
Bill Allocation: INV-001 marked "Agst Ref" for ৳30,000
Remaining Outstanding: ৳27,500
4. Payment Voucher
Payment vouchers record money paid. The expense or supplier ledger is debited; bank or cash is credited. Handles both supplier payments and expense payments.
SBI Bank ............... Cr 50,000
Bill Allocation: PUR-001 marked "Agst Ref" for ৳50,000
Cheque No: 123456 · Bank Date: 30-Apr-2026
5. Contra Voucher
Contra is a specialized voucher for cash-bank transfers only. It is the only voucher type where both sides of the entry involve cash/bank ledgers. It appears automatically in Bank Reconciliation reports.
Cash .................... Cr 100,000
SBI Bank ............... Cr 50,000
6. Journal Voucher
Journal is the "catch-all" voucher for entries that are not Sales, Purchase, Receipt, Payment, or Contra. Depreciation, provisions, write-offs, adjustments, opening balances, and reversals all use Journal.
Accumulated Depreciation Cr 50,000
Provision for Doubtful Debts Cr 20,000
7. Debit Note
Debit Note is issued when you return goods to a supplier, or when you negotiate a rate reduction after invoicing. It reduces your payable and reverses the inventory and tax impact.
Purchase Return ......... Cr 20,000
Input VAT @ 15% ........ Cr 3,000
8. Credit Note
Credit Note is issued when a customer returns goods or when you grant a post-invoice discount. It reduces your receivable and reverses the tax.
Output VAT @ 15% .......... Dr 750
Rahim Traders ........... Cr 5,750
9. Delivery Note
When you dispatch goods before raising the invoice, use Delivery Note. It moves stock out of your godown into "Goods Out" — tracking goods that have left but have not yet been invoiced.
10 bags Basmati Rice 5kg × ৳1,200 = ৳12,000
No ledger entry · No P&L effect · No VAT
10. Receipt Note
When goods arrive before the supplier's invoice, use Receipt Note. It moves stock into "Goods In" — tracking goods that have arrived but have not been billed yet.
11. Rejection In
When a customer rejects goods AFTER the invoice has been raised, use Rejection In. It reverses the sale, reverses the VAT, and brings stock back into your godown. Unlike a Credit Note, Rejection In is used specifically for goods coming back physically.
Output VAT @ 15% .......... Dr 1,500
Rahim Traders ........... Cr 11,500
Stock: +10 bags back into Main Godown
12. Rejection Out
When you reject goods from a supplier AFTER the purchase invoice, use Rejection Out. It reverses the purchase, reverses the input VAT, and moves stock out of your godown back to the supplier.
Purchase Return ........ Cr 10,000
Input VAT @ 15% ........ Cr 1,500
Stock: -10 bags out of Main Godown
13. Stock Journal
Stock Journal moves stock between godowns within the same company, or converts raw material to finished goods (in a simple setup). No accounting entry is created.
Destination Godown: Chattogram Branch Warehouse
Item: Basmati Rice 5kg · Qty: 50 bags
Rate: ৳1,200/bag · Value: ৳60,000
14. Physical Stock
Physical Stock records the actual inventory count at the end of a period. TallyPrime compares the physical count to the book balance and adjusts the difference.
Physical Count: 98 bags
Difference: -2 bags (shortage)
Auto Journal: Stock Shortage Expense Dr ৳2,400
Stock-in-Hand Cr ৳2,400
15. Sales Order
Sales Order records a customer's intent to buy. It does NOT create accounting entries or affect stock. It is purely operational — tracking pending orders until they convert to invoices.
16. Purchase Order
Purchase Order records your intent to buy. It tracks pending procurement until Receipt Note or Purchase Invoice is recorded. Like Sales Order, it is non-accounting.
Voucher Classes: The Most Underrated Feature in Tally
If you only learn one thing from this part, learn this: Voucher Classes turn generic voucher types into industry-specific data-entry machines.
A Voucher Class is a pre-configured variant of a voucher type. When you create a Sales Invoice, instead of manually picking ledgers and tax rates every time, you select a Voucher Class and TallyPrime auto-fills the correct ledgers, tax rates, and defaults.
┌─────────────────────────────────────────────────────────┐ │ ONE VOUCHER TYPE → MANY VOUCHER CLASSES │ │ │ │ VOUCHER TYPE: Sales │ │ ├── Voucher Class: Local Sales @ 15% VAT │ │ │ ├── Default Sales Ledger: Sales (Local 15%) │ │ │ ├── Default Tax Ledger: Output VAT @ 15% │ │ │ └── Print Format: Mushak 6.3 │ │ ├── Voucher Class: Local Sales @ 5% VAT │ │ │ ├── Default Sales Ledger: Sales (Local 5%) │ │ │ ├── Default Tax Ledger: Output VAT @ 5% │ │ │ └── Print Format: Mushak 6.3 │ │ ├── Voucher Class: Export Sales (Zero Rated) │ │ │ ├── Default Sales Ledger: Export Sales │ │ │ ├── Default Tax Ledger: (None — Zero Rated) │ │ │ └── Print Format: Commercial Invoice │ │ └── Voucher Class: Retail Sales (Mushak 11A) │ │ ├── Default Sales Ledger: Retail Sales │ │ ├── Default Tax Ledger: Output VAT @ 15% │ │ └── Print Format: Mushak 11A │ └─────────────────────────────────────────────────────────┘
Hands-On: Create a Voucher Class
Alt+G → Create Voucher Type. Or alter the existing "Sales" type: Alt+G → Alter Voucher Type → Sales.
Local Sales @ 15% VAT. Press Enter. TallyPrime now asks you to configure the class defaults.
- → Default Sales Ledger: Sales (Local 15%)
- → Default Tax Ledger: Output VAT @ 15%
- → Tax Rate: 15%
- → Print Format: Mushak 6.3
Ctrl+A to save. Now when you create a Sales voucher, TallyPrime asks: "Which class?" Select Local Sales @ 15% VAT and the ledgers, tax rate, and print format are pre-selected. Data entry speed triples.
Voucher Numbering: The Complete Reference
Voucher numbers are not decoration. In Bangladesh, they are the legal identifier printed on Mushak forms. In India, they are the GST invoice number. In every country, they are the audit trail. TallyPrime offers multiple numbering schemes.
2. Manual — User types the number. Must be unique within the FY. INV-2026-001, INV-2026-002...
3. Automatic (Override) — Tally suggests a number; user can override. Best of both worlds.
4. Multi-User — Multiple users can enter vouchers. Tally ensures no duplicate numbers.
Hands-On: Configure Sales Invoice Numbering
Alt+G → Alter Voucher Type → Select Sales.
DT-INV-2026-. Now every invoice is numbered DT-INV-2026-001, DT-INV-2026-002, ... The prefix makes the invoice number instantly identifiable.
1. This is where TallyPrime begins numbering. Use this to continue from your previous system during migration.
Ctrl+A. Your sales invoice numbering is now compliant and audit-ready.
Voucher Type Configuration: 20 Settings That Matter
| Setting | What It Does | When to Enable |
|---|---|---|
| Use Class | Enable Voucher Classes for this type | Always, for production use |
| Method of Numbering | Automatic / Manual / Multi-User | Automatic for compliance |
| Prevent Duplicate Numbers | Blocks duplicate voucher numbers | Always |
| Restart Numbering | Resets counter periodically | Financial Year for compliance |
| Use Effective Dates | Activates the voucher type only for a date range | For seasonal voucher types |
| Allow Zero-Valued Transactions | Permits ₹0 or ৳0 vouchers | For sample or free goods tracking |
| Warn on Negative Stock | Alerts when stock goes negative | Always, for trading businesses |
| Warn on Negative Cash/Bank | Alerts on overdraft | Always |
| Track Additional Cost | Track landed cost in purchase | For trading and manufacturing |
| Print After Save | Auto-print on voucher save | For POS-style counter sales |
| Default Print Format | Mushak 6.3 / Mushak 11A / Commercial | Based on voucher type |
| Set/ Alter Narration | Default narration template | To save data-entry time |
| Default Voucher Class | Which class to auto-select | If you use one class 90% of the time |
| Enable GST/VAT | Tax tracking on voucher | Always for tax-registered |
| Use Batch-wise Details | Track stock by batch | Pharma, FMCG, chemicals |
| Use Cost Centre | Enable cost allocation | For departmental accounting |
| Use Bill-wise Details | Track credit by bill | Always for Sales/Purchase |
| Use Multiple Godown | Allow godown selection per line | For multi-warehouse operations |
| Use Rejection / Returns | Link to original invoice | For Credit/Debit Note types |
| Track Delivery/Receipt Note | Link dispatch to sales/purchase | For structured supply chains |
Voucher in Code: TDL and XML for Developers
Why You Should Care About Code
Even if you never write code, understanding that every voucher is stored as a structured object helps you reason about Tally's behavior. When you press F8, you are populating a data structure that the engine validates and stores.
This is why some errors ("voucher does not balance") are so cryptic — they are data-structure violations, not user-interface issues.
The Voucher Object Model
Every voucher in Tally's storage is represented as an object with sub-collections. The XML interface exposes this directly. When integrating, you must generate XML that respects the invariant SUM(LedgerEntries.Amount) = 0.
The ISDEEMEDPOSITIVE flag determines whether an amount's sign is natural or against the ledger's nature.
TDL: A Custom Voucher Type
This TDL creates a new voucher type called "Mushak 6.3 Sales" that inherits from Sales and auto-prints Mushak 6.3:
;; Mushak63Sales.tdl — Custom Voucher Type for Bangladesh VAT [VoucherType: Mushak 6.3 Sales] Parent: Sales PrintVoucherType: Mushak 6.3 NumberingMethod: Automatic Prefix: "MUSHAK-6.3-" RestartNumbering: Financial Year ;; Auto-populate the VAT ledger on every voucher [VoucherType: Mushak 6.3 Sales] UseDefaultVoucherClass: Yes DefaultVoucherClass: Local Sales @ 15% VAT ;; Force narration to include VAT registration number [VoucherType: Mushak 6.3 Sales] DefaultNarration: "VAT BIN: 0001234567"
XML: Creating a Full Sales Voucher
Here is a complete XML payload to create a Sales Voucher in TallyPrime via the HTTP interface on port 9000:
<ENVELOPE> <HEADER> <TALLYREQUEST>Import Data</TALLYREQUEST> </HEADER> <BODY> <IMPORTDATA> <REQUESTDESC> <REPORTNAME>Vouchers</REPORTNAME> <STATICVARIABLES> <SVCURRENTCOMPANY>Dhaka Traders Ltd.</SVCURRENTCOMPANY> <SVFROMDATE>20260401</SVFROMDATE> <SVTODATE>20260430</SVTODATE> </STATICVARIABLES> </REQUESTDESC> <REQUESTDATA> <TALLYMESSAGE> <VOUCHER VCHTYPE="Mushak 6.3 Sales" ACTION="Create"> <DATE>20260415</DATE> <VOUCHERTYPENAME>Mushak 6.3 Sales</VOUCHERTYPENAME> <VOUCHERNUMBER>MUSHAK-6.3-0001</VOUCHERNUMBER> <REFERENCE>ERP-ORD-98765</REFERENCE> <NARRATION>Sold to Rahim Traders via ERP sync</NARRATION> <PARTYLEDGERNAME>Rahim Traders</PARTYLEDGERNAME> <!-- DEBIT: Party Ledger +13,800 --> <ALLLEDGERENTRIES.LIST> <LEDGERNAME>Rahim Traders</LEDGERNAME> <ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE> <AMOUNT>13800.00</AMOUNT> <BILLALLOCATIONS.LIST> <NAME>MUSHAK-6.3-0001</NAME> <BILLTYPE>New Ref</BILLTYPE> <AMOUNT>13800.00</AMOUNT> </BILLALLOCATIONS.LIST> </ALLLEDGERENTRIES.LIST> <!-- CREDIT: Sales Ledger -12,000 --> <ALLLEDGERENTRIES.LIST> <LEDGERNAME>Sales A/c</LEDGERNAME> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <AMOUNT>-12000.00</AMOUNT> </ALLLEDGERENTRIES.LIST> <!-- CREDIT: VAT Ledger -1,800 --> <ALLLEDGERENTRIES.LIST> <LEDGERNAME>Output VAT @ 15%</LEDGERNAME> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <AMOUNT>-1800.00</AMOUNT> </ALLLEDGERENTRIES.LIST> <!-- INVENTORY: 10 bags @ 1,200 --> <ALLINVENTORYENTRIES.LIST> <STOCKITEMNAME>Basmati Rice 5kg</STOCKITEMNAME> <ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE> <RATE>1200.00/Bag</RATE> <AMOUNT>-12000.00</AMOUNT> <ACTUALQTY>10 Bag</ACTUALQTY> <BILLEDQTY>10 Bag</BILLEDQTY> <BATCHALLOCATIONS.LIST> <GODOWNNAME>Dhaka Main Warehouse</GODOWNNAME> <BATCHNAME>Primary Batch</BATCHNAME> <ACTUALQTY>10 Bag</ACTUALQTY> <AMOUNT>-12000.00</AMOUNT> </BATCHALLOCATIONS.LIST> </ALLINVENTORYENTRIES.LIST> </VOUCHER> </TALLYMESSAGE> </REQUESTDATA> </IMPORTDATA> </BODY> </ENVELOPE>
1. SUM(AMOUNT) must equal zero. Party debit (+13,800) + Sales credit (-12,000) + VAT credit (-1,800) = 0.
2. VCHTYPE must match an existing voucher type. "Sales" is different from "Mushak 6.3 Sales." Create the custom type via TDL first.
3. REFERENCE is your idempotency key. Use a unique ERP-generated ID. Query Tally for existing vouchers with that reference before pushing.
20 Real-World Voucher Scenarios (Bangladesh Focus)
Context: A Dhaka electronics showroom sells a ৳25,000 LED TV for cash.
Voucher Type: Sales (Mushak 11A Retail)
Entry: Cash Dr 28,750 · Sales Cr 25,000 · Output VAT @ 15% Cr 3,750.
Print: Mushak 11A (Retail Invoice) — must include BIN, item details, and VAT breakdown.
Context: An FMCG distributor in Chattogram sells 500 cartons to a dealer on 45-day credit.
Voucher Type: Sales (Mushak 6.3)
Entry: Dealer Dr · Sales Cr · Output VAT @ 15% Cr.
Bill Allocation: New Ref created with the Mushak 6.3 challan number.
Context: A Gazipur RMG factory imports fabric from China via Letter of Credit.
Voucher Type: Purchase (Import)
Complications: LC margin, bank charges, freight, insurance, and customs duty must all be tracked. Create a Voucher Class "Import Purchase" with default ledgers for LC Margin, Freight Inward, and Customs Duty.
Context: A consulting firm in Dhaka receives ৳100,000 from a client but the client deducts ৳10,000 TDS.
Voucher Type: Receipt
Entry: Bank Dr 90,000 · TDS Receivable Dr 10,000 · Client Cr 100,000.
Bill Allocation: Two allocations — ৳90,000 "Agst Ref" (bank), ৳10,000 "Agst Ref" (TDS).
Context: A trader withdraws ৳30,000 from an ATM.
Voucher Type: Contra
Entry: Cash Dr 30,000 · Bank Cr 30,000.
Pitfall: The bank charges ৳20 for the transaction. This is a separate Payment voucher: Bank Charges Dr 20 · Bank Cr 20.
Context: A Tongi factory depreciates machinery by ৳1,50,000 at year-end.
Voucher Type: Journal
Entry: Depreciation Expense Dr 1,50,000 · Accumulated Depreciation Cr 1,50,000.
Tip: Never reduce the Fixed Asset ledger directly. Accumulated Depreciation is a contra-asset that shows on the Balance Sheet as a deduction.
Context: A pharma company returns ৳80,000 of non-compliant raw material to a supplier.
Voucher Type: Debit Note (Mushak 12)
Entry: Supplier Dr 92,000 · Purchase Return Cr 80,000 · Input VAT Cr 12,000.
Print: Mushak 12 format as required by NBR.
Context: A Dhaka distributor grants a post-invoice 2% volume discount to a key dealer.
Voucher Type: Credit Note (Mushak 12A)
Entry: Sales Discount Dr · Dealer Cr.
Tip: If the dealer is also a supplier, use a single ledger with bill-wise tracking, or create separate ledgers.
Context: A Gazipur RMG factory dispatches 5,000 T-shirts to a buyer on 15-Apr. The invoice is raised on 20-Apr after buyer confirmation.
Step 1: Delivery Note on 15-Apr — stock moves to "Goods Out." No accounting entry.
Step 2: Sales Invoice on 20-Apr — reference the Delivery Note. Accounting entries and stock reduction occur at this point.
Benefit: Accurate dispatch tracking without double-counting stock.
Context: A pharma company rejects a supplier's batch of raw material after QC failure.
Voucher Type: Rejection Out
Entry: Supplier Dr · Purchase Return Cr · Input VAT Cr. Stock moves out of the QC-Pending godown.
Batch: Auto-reverse the specific batch via batch allocation.
Context: A Dhaka distributor transfers 200 units from Central Warehouse to Uttara Branch Warehouse.
Voucher Type: Stock Journal
Entry: Uttara Godown Dr (200 units) · Central Godown Cr (200 units).
No accounting effect. Valuation remains unchanged because it is the same company.
Context: A Gazipur food processor consumes 500 kg wheat (৳40,000), 100 kg sugar (৳10,000), and ৳5,000 labour to produce 400 kg biscuits + 20 kg scrap.
Voucher Type: Manufacturing Journal
Entry: Finished Goods (Biscuits) Dr 53,000 · By-Product (Scrap) Dr 2,000 · Raw Material Consumed Cr 50,000 · Labour Applied Cr 5,000.
Context: A Chattogram trader counts stock at month-end. Book says 500 bags; physical is 495 bags.
Voucher Type: Physical Stock
Entry: Stock Shortage Dr (5 bags × cost) · Stock-in-Hand Cr (adjustment).
Automatically creates the adjustment Journal, but the physical count drives the entry.
Context: A Dhaka distributor's dealer places a ৳5,00,000 order on 1-Apr.
Day 1: Sales Order (non-accounting).
Day 5: Delivery Note — goods dispatched (stock moves).
Day 10: Sales Invoice — accounting and stock reduction finalized, Mushak 6.3 generated.
Result: Complete order-to-cash traceability with zero manual intervention.
Problem: An accountant used a Journal voucher to record a purchase return. The payable reduced correctly, but stock stayed elevated. Physical stock did not match book stock.
Fix: Reverse the Journal and re-enter as a Debit Note. Stock now correctly reduces, and Input VAT reverses automatically.
Lesson: Never use Journal for inventory-affecting returns. Always use Debit Note / Credit Note.
Problem: An accountant used Journal instead of Contra for a cash-to-bank deposit. The bank balance was correct, but Bank Reconciliation did not show the transaction.
Fix: Delete the Journal, re-enter as Contra. Bank Reconciliation now shows the deposit.
Lesson: Only Contra vouchers appear in Bank Reconciliation reports.
Context: An RMG factory invoices a US buyer for $50,000 at ৳110/USD.
Voucher Type: Sales (Export) with multi-currency enabled.
Entry: Buyer (USD) Dr $50,000 · Export Sales Cr $50,000.
Functional Value: TallyPrime auto-converts to ৳55,00,000 for bookkeeping.
Context: A Narayanganj textile mill sends 1,000 kg grey fabric to a dyeing subcontractor.
Step 1: Material Out (Job Work) — stock moves to "Job Worker Godown." No accounting entry.
Step 2: Material In (Job Work) — dyed fabric returns. Stock moves back. Subcontractor charges recorded separately in a Purchase Invoice.
Context: A CFO wants to record a "pending board approval" for a future acquisition without affecting books.
Voucher Type: Memorandum
Effect: No accounting, no P&L, no Balance Sheet. Purely an internal note that appears in the Day Book with the "Memorandum" tag.
Context: A Dhaka trading house issues a cheque dated 30-Jun-2026 for a supplier payment, but issues it on 15-May-2026.
Voucher Type: Payment with "Post-Dated" enabled.
Effect: Voucher is recorded but does not affect current bank balance until 30-Jun. On 30-Jun, TallyPrime automatically activates it.
Voucher Architecture: Do's and Don'ts
- Use the correct voucher type — Contra for cash-bank, Sales for revenue, Purchase for procurement
- Create Voucher Classes for every tax rate you handle
- Enable bill-wise tracking on every Sales and Purchase voucher
- Set Numbering Method = Automatic for compliance-critical types (Sales, Mushak)
- Configure print formats per voucher type (Mushak 6.3, Mushak 12A, etc.)
- Enable Audit Trail to log every voucher alteration
- Use Post-Dated Vouchers for scheduled future payments
- Add narrations to every Journal voucher
- Reference original invoices in Debit/Credit Notes
- Back up before any bulk voucher import
- Never use Journal for cash-bank — use Contra
- Never use Journal for inventory movements — use Stock Journal or Debit/Credit Note
- Never use Sales voucher for a purchase return — use Debit Note
- Never delete numbered vouchers — alter them or reverse them
- Never skip bill-wise tracking on credit sales
- Never allow duplicate voucher numbers
- Never mix order vouchers with accounting vouchers in reports
- Never send XML vouchers without validating SUM = 0
- Never let Suspense remain on a Journal after a period close
- Never overwrite a Mushak 6.3 challan number with a new one
30 Pro Tips for Voucher Mastery
Ctrl+H changes the voucher type without losing entered data.
Alt+C to add an additional ledger entry (like tax, freight, discount).
F12 inside any voucher to toggle settings: Show GST details, Show Godown, Show Cost Centre, Show Batch details.
Ctrl+A is universal. Ctrl+Enter works in some screens. Get in the habit of Ctrl+A.
REFERENCE field to store your ERP voucher ID. Before pushing, query Tally for existing vouchers with that reference.
F11 → Inventory Features → Warn on Negative Stock = Yes. TallyPrime blocks or warns you before overselling.
F11 → Accounting Features → Use Audit Trail = Yes. Every change to every voucher is logged with user and timestamp. Non-negotiable for compliance.
Alt+A = Add Ledger · Alt+C = Add Column/New Ledger · Alt+D = Delete Line · Alt+I = Insert Line · Alt+N = Change Narration · Alt+V = Vault (Bank Details).
Ctrl+K. Useful for real-time adjustments without leaving the voucher screen.
LINEERROR blocks from the response XML and log the rejected voucher payload. Retry after fixing.
TALLYMESSAGE blocks per request. Throughput rises from 2/sec to 50+/sec.
Explore the Full 45-Part Masterclass
This is Part 7 of a 45-part series. The full masterclass covers everything from first ledger to CFO dashboards, ERP integration, TDL development, Power BI, and AI. Navigate to any part from the master page.
0 Comments
thanks for your comments!