Vouchers, reversals and system vouchers
A voucher is the only way an amount enters the ledger: a dated header with balanced debit and credit lines, editable as a Draft, numbered and frozen when posted, corrected only by a mirrored reversal; demands, payments, commissions, benefit accruals, cancellations, revenue runs and the year-end close post their own system vouchers the same way.
Vouchers, reversals and system vouchers
A voucher is one accounting entry: a date, a narration and at least two lines, each debiting or crediting one ledger, with the debits equal to the credits. Nothing reaches a ledger in NirmaanOne except through a voucher, whether an accountant typed it or a demand, receipt or payout run produced it. Once posted a voucher never changes; a mistake is undone by a reversal that mirrors it.
How it works in NirmaanOne
Kinds and numbering
Every set of books is seeded with eight voucher types, one per kind, each its own numbering series:
| Kind | Code | Prefix |
|---|---|---|
| Receipt | RCPT | RCP- |
| Payment | PYMT | PAY- |
| Journal | JRNL | JV- |
| Contra | CNTR | CON- |
| Sales | SALE | INV- |
| Purchase | PURC | PUR- |
| Credit Note | CRNT | CN- |
| Debit Note | DBNT | DN- |
A number is given only when the voucher is posted: prefix + counter padded with zeros (4 digits by default) + suffix, so the seventh receipt of the year is RCP-0007. With Restart each fiscal year on (the default) the counter is the highest number already used by that type in that year plus one; off, it carries on from the type's Next number. Numbers are unique per books, type and year. Extra series can be added on Voucher types, but the system postings always use the seeded codes.
The life of a voucher
- Draft. Saved from New voucher (the Create permission on Vouchers) with its type, date, optional reference, project and booking, narration and lines. A draft may be unbalanced and single-lined while you build it; the editor shows "Difference <amount> more debit / more credit" until it is Balanced. Drafts are editable (Edit voucher draft, the Edit permission), can be set aside with Cancel draft (kept on record as Cancelled, never in any balance) or removed with Delete (the Delete permission). A draft never affects a report.
- Posted. Post (the Post permission on Vouchers, or Save and post in the editor) checks, in order: the books are active; the fiscal year is not closed and the period not locked ("That fiscal year is closed.", "Period <n> of <year> is locked"); the date lies inside its year; at least two lines; debits equal credits and are above zero ("Debits <x> and credits <y> must be equal and above zero"); every ledger belongs to these books and is active ("Account <code> <name> is retired"); every bill-wise line is fully allocated and no plain ledger carries allocations; an Against Ref names a bill of the same ledger and does not exceed its outstanding. Then the voucher takes its number, is stamped with who posted it and when, opens or settles its bills, and refreshes the period-balance cache. From here it is immutable: "A <status> voucher cannot be edited; post a reversal instead".
- Reversed. Reverse (the Post permission) on a posted voucher posts a mirrored voucher at once: same type, every debit and credit swapped, reference set to the original's number and date, same project, booking and source, dated the Reversal date (default today; never before the original: "The reversal date cannot be before the original voucher date."), narration "Reversal of <no>" unless you type one. Bills the original opened are settled back; bills it settled are reopened; Advance and On Account allocations mirror as they are. The original's status becomes Reversed and the two link to each other: "Reversed by <no> dated <date>" on one, "This voucher reverses <no> dated <date>" on the other. Both stay in the ledger and add to zero; a reversal can itself be reversed. A voucher can be reversed only once ("This voucher has already been reversed.").
Posted and Reversed vouchers are what every balance and report counts; Draft and Cancelled never are. The Day book lists both a reversed voucher and its reversal.
System vouchers
Other modules post vouchers through the same rules, in their own transaction, and record their origin as the voucher's Source, shown as a badge in the Vouchers list's Context column and under Details with the words in the first column below:
| Source | Voucher | When |
|---|---|---|
| demand | Sales (INV-); Credit Note (CN-) | a demand is issued; cancelled or credit-noted |
| payment | Receipt (RCP-) or Payment (PAY-); its reversal | a receipt or payout is cleared; it bounces |
| commission | Journal (JV-); its reversal | a commission is approved; an approved one is cancelled |
| benefit_accrual | Journal (JV-) | a Member Benefits payout run is drafted |
| booking_cancellation | Journal (JV-) | a booking is cancelled with forfeiture, charges or TDS reversal |
| year_end_close | Journal (JV-) | a fiscal year is closed (its reversal on reopen) |
| revenue_run | Journal (JV-); its reversal | a revenue run is posted; it is reversed |
Each system voucher also carries the project, booking, unit, demand, payment or commission it belongs to, so the Ledger report can badge lines Booking / Demand / Payment / Commission and the Voucher page can link back. If a system posting is refused (an unmapped component, a locked period, a retired ledger), the business action that asked for it is refused too, and nothing is half posted.
Use the source record's own actions to undo a system voucher: cancel or credit-note the demand, bounce the payment, cancel the commission, reopen the year. Reverse on the voucher page is meant for manual entries; a system voucher reversed there leaves its demand or payment unaware.
Why immutability
Once a voucher is in a filed return or an audited trial balance, editing it would silently change history. Reversals keep both the mistake and its correction visible, dated when the correction was made, with the History panel showing who did what. That is also why bills reopen on reversal rather than being edited: the ledger of what a party owes is always the sum of posted vouchers.
Example
Bharat Constructions sends a bill of ₹11,80,000 plus 18% GST for September's work on Sai Darshan. On New voucher the accountant picks Purchase (Purchase), date 30 September 2026, reference "BC/0912", project Sai Darshan, and the lines:
| Side | Ledger | Amount | Cost centre |
|---|---|---|---|
| Dr | 5160 Contractor Work Bills | ₹11,80,000.00 | P001 |
| Dr | 1311 GST Input Tax Credit - CGST | ₹1,06,200.00 | P001 |
| Dr | 1312 GST Input Tax Credit - SGST | ₹1,06,200.00 | P001 |
| Cr | VEN-00004 Bharat Constructions | ₹13,92,400.00 |
VEN-00004 is bill-wise, so the credit line needs an allocation: + New Ref, bill no. "BC/0912", due 30 October 2026, ₹13,92,400.00. The totals show Balanced. Save and post creates the draft and posts it as PUR-0003 ("Voucher PUR-0003 posted."), opening a Cr bill BC/0912 on the vendor's ledger.
On 28 October she pays it. A Payment (Payment) voucher dated 28 October: Dr VEN-00004 ₹13,92,400.00 with + Against Ref on BC/0912 (the picker shows "13,92,400.00 outstanding · dated 30 Sep 2026, due 30 Oct 2026"), Cr the bank ledger for HDFC ····0217 ₹13,92,400.00, reference the UTR. Posted as PAY-0051; bill BC/0912 becomes Settled.
On 2 November the bank confirms the transfer went to the wrong beneficiary and was returned. On PAY-0051 she presses Reverse, Reversal date 2 November 2026, narration "NEFT returned by bank". PAY-0052 posts at once: Cr VEN-00004 ₹13,92,400.00 Against Ref BC/0912 (the bill reopens with ₹13,92,400.00 outstanding), Dr the bank ledger ₹13,92,400.00. PAY-0051 now reads "Reversed by PAY-0052 dated 2 Nov 2026. The entries below no longer affect balances on their own." The vendor's ledger and the bank are back where they were, and the Day book for November shows PAY-0052 with PAY-0051 (dated 28 October) as its reference. She then posts a fresh payment, PAY-0053, to the correct account.
Alongside these, the same books that month hold system vouchers she never typed: INV-0007 from demand DM-2026-27-00087 (source demand), RCP-0012 from its receipt (source payment), JV-0088 from payout run PR-2026-27-00004's benefit accrual (source benefit_accrual) and PAY-0042 from the run's payout (source payment).
Where you see it
- Vouchers: every voucher with status, Context and Source badges, the New voucher menu.
- New voucher and Edit voucher draft: the editor, Balanced, bill allocations, Save as draft / Save and post.
- Voucher: Post, Reverse, Cancel draft, Delete, the reversal banners and History.
- Voucher types: prefixes, padding and restart rules.
- Fiscal years: the year and period checks.
- Day book, Ledger report, Outstanding bills: what posted vouchers produce.
- Demand, Payment, Commission, Payout run, Revenue run, Cancel booking: the records whose actions post system vouchers.
- History panel: who posted or reversed a voucher.
Related
Related
- VouchersScreen
Every voucher in the chosen set of books (drafts, posted, reversed and cancelled), with filters and the menu to start a new voucher.
- New voucherScreen
Enter a manual voucher (receipt, payment, journal, contra, sales, purchase, credit note or debit note) with its lines and bill allocations, and save it as a draft or post it straight away.
- VoucherScreen
One voucher with its lines and bill allocations, its reversal links, its history, and the actions to post, reverse, cancel or delete it.
- Edit voucher draftScreen
Change a draft voucher's details, lines and bill allocations before it is posted, then save it or post it.
- Voucher typesScreen
The voucher numbering series of a set of books, one per kind of voucher: add a series, or change its prefix, suffix, digits and whether it restarts each fiscal year.
- Fiscal yearsScreen
The fiscal years of a set of books with their 12 monthly periods: lock or unlock a month, open the next year, and close or reopen a year at year end.
- Day bookScreen
Every posted voucher line in a date range as a paged grid you can sort, resize and filter by column, with totals for what the filters match and CSV export.
- Ledger reportScreen
The ledger of one account between two dates: opening balance, every posting with a running balance, and closing balance, with CSV export.
- Outstanding billsScreen
The bills on bill-wise ledgers of the chosen books: what each bill was for, how much has been settled, what is still outstanding and how overdue it is.
- DemandScreen
One demand: the installments it bills, its amounts with GST, the expected TDS and what is payable in money, the receipts and TDS credits against it and how the money is placed on the charges, with the actions to edit, issue, cancel or delete it.
- PaymentScreen
One receipt or payout: its details, amounts and allocations, and the actions to clear it, bounce it, cancel it, edit it or delete it.
- CommissionScreen
One channel-partner commission: the partner, the brokerage with GST and TDS, the payouts against it, and the actions to edit, approve, cancel or delete it.
- Payout runScreen
One payout run: its payouts, skipped payees and failures, and the steps to approve it, export the bank file, clear it with the bank's UTRs or cancel it.
- Revenue runScreen
One period close: what each booking and member offer recognises, the journals and cost moves it posts, the subjects it left out, and the actions to recompute, post, reverse or delete it.
- Cancel bookingScreen
The four-step wizard that cancels a booking: it shows the demands and receipts that will be reversed, suggests the forfeiture and charges from the rule in force, sets the refund and posts everything in one go, releasing the unit and parking and marking the opportunity lost.
- History panelScreen
See who changed a record, what they changed and when, including the record's lines, newest first, and jump to the full audit log.
- Party ledgers, bill-wise tracking and ageingConcept
A party ledger is the bill-wise ledger a set of books keeps for one buyer, society member, channel partner or vendor, created on first use with a generated code; every posting on it is allocated as New Ref (opens a bill), Against Ref (settles one), Advance or On Account, so the books know what each bill still owes and how overdue it is.
- Fiscal years, periods, locks, opening balances and the year-end closeConcept
Each set of books runs in fiscal years of twelve monthly periods; a voucher can post only into an open year and an unlocked period, opening balances carry each ledger's balance into a year, the year-end close moves income and expense into Profit & Loss Account by a closing journal and writes the next year's openings, and a monthly balance cache is kept as a cross-check.
- Books, the active books switcher and cost centresConcept
A set of books is the ledger of one promoter company: every posting for a project lands in its promoter's books, every accounting screen works on the one set chosen in the Books switcher, and cost centres inside the books (usually one per project with a child per tower) let the ledger and reports be cut by project.
- Receipts and payouts: allocation, clearing and the UTRConcept
A receipt is recorded as Pending and settles the payer's open demands by itself, oldest due first; a payout is allocated to commissions or member rows by hand. Both post their voucher only when cleared and can be bounced afterwards; the UTR is the bank's transfer reference, typed on NEFT-style payments and per payout when a payout run is cleared.
- Demands, demand runs and the GST splitConcept
A demand is the bill raised on a buyer's installments (or a member's offer charges): numbered by financial year, billing the full total with the buyer's expected 194-IA TDS shown apart, posted as a sales voucher with GST split as CGST + SGST or IGST by place of supply; a demand run raises one demand per buyer for everything due by a date.