Sales Vouchers Without Inventory
Published
This exercise imports Sales Vouchers that don't carry stock item line items — just an invoice-level amount against a Sales Ledger. It's the simplest possible voucher import, and a good first voucher exercise before tackling item-wise sales.
The Excel sheet
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | INV NO. | DATE | CLIENT'S NAME | SALES LEDGER | NARRATION | AMOUNT |
| 2 | 11077 | 01/04/2026 | Vero Beach Embroidery | US-DIGITISING-RETAIL | Silk | 100.00 |
| 3 | 11078 | 01/04/2026 | A R S Marketing | US-ART-RETAIL | Mix | 200.00 |
| 4 | 11079 | 01/04/2026 | Vero Beach Embroidery | US-DIGITISING-RETAIL | Silk | 300.00 |
| 5 | 11080 | 01/04/2026 | V S Traders | US-DIGITISING-RETAIL | Mix | 400.00 |
| 6 | 11081 | 01/04/2026 | Parimal Arts | US-ART-RETAIL | Silk | 500.00 |
Step 1 — Create the Ledger masters
Column C (Party Name) and Column D (Sales Ledger) both need a matching
Ledger master in Tally before the voucher can post — udiMagic processes
MASTER tags before VOUCHER tags, so both ledgers
get created automatically in the same import if they don't already exist.
<!-- Party Ledger, created under Sundry Debtors -->
<MASTER TYPE="LEDGER">
<NAME.LIST>
<NAME COLUMNREFERENCE="C"/>
</NAME.LIST>
<PARENT>Sundry Debtors</PARENT>
</MASTER>
<!-- Sales Ledger, created under Sales Accounts -->
<MASTER TYPE="LEDGER">
<NAME.LIST>
<NAME COLUMNREFERENCE="D"/>
</NAME.LIST>
<PARENT>Sales Accounts</PARENT>
</MASTER>
Step 2 — Write the Voucher tags
The quickest way to get the exact tags Tally expects for a voucher is to
let Tally generate them for you: enter one sample Sales Voucher manually
in Tally Prime, then export it as
Gateway of Tally >> Display >> Daybook >> Alt+E.
This produces a Daybook.xml file — open it and look inside the
<TALLYMESSAGE> tag for the voucher structure Tally actually
uses (see udiMagic XML tags for how
udiMagic's COLUMNREFERENCE attribute then maps each of those
tags back to your Excel columns).
A Sales Voucher without inventory maps to something like this:
<VOUCHER>
<DATE COLUMNREFERENCE="B"/>
<VOUCHERTYPENAME>Sales</VOUCHERTYPENAME>
<VOUCHERNUMBER COLUMNREFERENCE="A"/>
<NARRATION COLUMNREFERENCE="E"/>
<ALLLEDGERENTRIES.LIST>
<!-- Party Ledger — debited with the invoice amount -->
<LEDGERNAME COLUMNREFERENCE="C"/>
<ISDEEMEDPOSITIVE>Yes</ISDEEMEDPOSITIVE>
<AMOUNT COLUMNREFERENCE="F"/>
</ALLLEDGERENTRIES.LIST>
<ALLLEDGERENTRIES.LIST>
<!-- Sales Ledger — credited with the invoice amount -->
<LEDGERNAME COLUMNREFERENCE="D"/>
<ISDEEMEDPOSITIVE>No</ISDEEMEDPOSITIVE>
<AMOUNT FORMULA="=-F#"/>
</ALLLEDGERENTRIES.LIST>
</VOUCHER>
- Master tags always process before voucher tags — so a Party or Sales Ledger that doesn't exist yet still gets created in time for the voucher that references it.
- The two
ALLLEDGERENTRIES.LISTblocks must net to zero — the debit to the Party and the credit to the Sales Ledger are equal and opposite.
Ready to import your Excel data into Tally?
Download udiMagic and start a 14-day free trial — no credit card required.
Download udiMagic View Pricing