Vitta Fin — Accounting — Forms
Vitta Fin — Forms & Input Specification
Reference technical blueprint: vitta.md 13 sub-modules · ~28 forms · accounting + statutory filings Audience: treasurers, accountants, branch admins, archakas submitting bills, auditors. This document describes — in non-technical language — every screen on which a user enters data into Vitta Fin.
Reading conventions:
- Required = field must be filled before submit.
- Default = pre-filled value the operator may overwrite.
- All money fields are in INR with paisa precision (e.g. ₹ 1,234.50) unless explicitly tagged "foreign currency".
- All dates use DD-MM-YYYY (Indian convention) but store as ISO. Year boundaries follow the Indian Financial Year (1 April – 31 March) labelled YYYY-YY (e.g. 2025-26).
- Two-key fields require two distinct users with the named role. The system blocks self-signing.
Sub-module 1: Chart of Accounts
Workflow. Setup is a one-time exercise at tenant onboarding. The system seeds five statutory funds (General, Annadana, Building, FCRA, Endowment) on provisioning — the treasurer adds custom funds (Goshala, Vidyalaya, Rakshana, etc.) via Form 1.1, then builds the account heads tree under each fund via Form 1.2. The Account Tree (Form 1.3) is the day-to-day view operators consult before composing journals or posting bills. Accounts can never be deleted — only deactivated — to preserve the audit chain.
Form 1.1 — Define Fund
Purpose: Set up the segregated funds your trust operates. The five statutory funds are pre-seeded and cannot be deleted; this form is for additional tenant-specific funds. Who fills: Treasurer (rare — typically once a year when board approves a new earmarked fund).
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Fund Code | Text (max 20) | Yes | Uppercase, alphanumeric, unique per tenant; 3-10 chars recommended | — | Short tag like GOSHALA, VIDYA, RAKSHA |
| Fund Name | Text | Yes | Free text | — | Display name like "Goshala Fund (Cow Welfare)" |
| Fund Kind | Dropdown | Yes | Unrestricted · Restricted · Endowment · FCRA | Unrestricted | Restricted = donor-purpose-bound; Endowment = corpus only, expend interest; FCRA = foreign-source isolation |
| Is FCRA? | Checkbox | Yes | Auto-true if Kind=FCRA | False | When true, all linked accounts and journal entries are isolated from non-FCRA postings |
| Description | Textarea (max 500) | No | — | — | What this fund is meant for; cited on trustee meetings |
| Active? | Checkbox | Yes | — | True | Uncheck to retire (history preserved; new postings blocked) |
Submit action: Saves to Chart of Accounts root. System funds (GEN/ANNA/BLDG/FCRA/ENDO) are read-only on this form (rename only). Related: After defining a custom fund, set up its accounts via Form 1.2.
Form 1.2 — Define Account (Head / Sub-head)
Purpose: Create a leaf or grouping in the accounting tree under a chosen fund. Schedule III–style root types: asset, liability, income, expense, equity. Sub-heads can nest to any depth (most trusts use 2-3 levels). Who fills: Accountant or Treasurer (during setup; occasional additions thereafter).
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Account Code | Text (max 32) | Yes | Numeric or alphanumeric; unique per tenant; conventional 1100, 1100.01, 4100.02 |
Auto-suggested from parent | Stable code; do not reuse retired codes |
| Account Name | Text | Yes | Free text | — | E.g. "Cash in Hand — Hundi", "Donation Income — General", "Salary Payable" |
| Account Type | Dropdown | Yes | Asset · Liability · Income · Expense · Equity | Asset | Drives the financial statement bucket |
| Fund | Dropdown | Yes | All active funds for tenant | — | An account belongs to exactly one fund. To track the same activity across funds, create separate accounts |
| Parent Account | Dropdown (searchable) | No | Accounts of same type and fund | None (top-level head) | Leave blank for a root head; pick one to make this a sub-head |
| Branch (optional) | Dropdown | No | Branches of tenant; or "All branches" | All branches | Set to make the account branch-scoped (e.g. "Cash — Mysuru") |
| Is Bank Account? | Checkbox | Yes | — | False | Tick if this account represents a real bank account |
| Bank Account Number | Text (max 32) | If Bank | Digits | — | Visible only when Is Bank is ticked |
| Bank IFSC | Text (max 16) | If Bank | 11-char IFSC | — | Auto-validates against IFSC format |
| Active? | Checkbox | Yes | — | True | Uncheck to retire |
| Notes | Textarea | No | — | — | Internal note for accountants |
Submit action: Inserts an account row, available immediately to journal lines. If marked Is Bank, the account also surfaces in Bank Reconciliation (Sub-module 9).
Validation: Code uniqueness checked tenant-wide. An account whose parent_id is itself or causes a cycle is rejected.
Related: Once accounts are set, journal entries (Form 2.1) can reference them.
Form 1.3 — Account Tree View (Read-only Browser)
Purpose: Day-to-day reference view — browse the chart, see balances, drill into a ledger. Who consults: All Vitta-permitted roles. This is not a form — it is a screen with filters. The columns shown:
| Column | Meaning |
|---|---|
| Code | Account code, indented to show parent → child nesting |
| Name | Account name |
| Type | Asset / Liability / Income / Expense / Equity (colour-coded) |
| Fund | Fund tag (chip) |
| Branch | Branch scope or "All" |
| Current Balance | As-of-today balance in INR (sign per type) |
| Active? | Tick / cross |
| Actions | Edit · Deactivate · View Ledger |
Filters at top: - Fund (multi-select; default all) - Type (multi-select) - Branch (single) - Search by code or name (live filter) - Show inactive (toggle, default off)
Export buttons: PDF tree, CSV flat, Excel (with balances).
Sub-module 2: Journal & Ledger
Workflow. The treasurer or accountant composes a journal entry (Form 2.1), reviews the balanced debit-credit lines, and clicks Post. Once posted, the entry is immutable — corrections happen via reversal (Form 2.2), which produces a mirror entry linked to the original. Operators consult the ledger view (Form 2.3) to inspect any account's history. Period-end closes lock entries; reopening requires two-key override (Sub-module 13 of the Period Lock workflow).
Form 2.1 — Compose Journal Entry
Purpose: Make a manual accounting posting. Most postings are auto-generated by other modules (donations, hundi deposits, vendor bills, payroll); this form is for genuine adjustments — depreciation, accrued interest, year-end provisioning, donated-asset capitalisation. Who fills: Accountant (for draft) → Treasurer (for posting if amount > tenant threshold).
Header fields:
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Posting Date | Date | Yes | Cannot be in a locked period (unless override token supplied) | Today | The date the entry hits the books |
| Branch | Dropdown | No | Tenant branches | User's home branch | Leave blank for tenant-level |
| Fund | Dropdown | Yes | All funds | — | All lines must reference accounts of this fund |
| Voucher Type | Dropdown | Yes | Receipt · Payment · Journal · Contra · Sales · Purchase | Journal | Drives voucher numbering series |
| Source Document URI | File upload | No | PDF / image, max 10 MB | — | Scan of underlying paper document |
| Narration | Textarea (max 500) | Yes | Free text | — | Descriptive — appears on every line, every report; e.g. "Depreciation provision for Q3 FY 25-26 — Schedule III rates" |
Lines table (minimum 2 rows; sum debit must equal sum credit):
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Line # | Auto | Yes | — | 1, 2, 3 … | Reorderable |
| Account | Dropdown (searchable) | Yes | Active accounts of header's fund | — | Type code or name to filter |
| Debit | Money | Either Dr or Cr | ≥ 0; mutually exclusive with Credit | 0 | Use Dr or Cr, not both |
| Credit | Money | Either Dr or Cr | ≥ 0; mutually exclusive with Debit | 0 | — |
| Member (optional) | Dropdown (searchable) | No | Tenant members | — | Pin the line to a donor / staff for sub-ledger reporting |
| Cost Centre | Text | No | Free text or pick from suggested list | — | Event ID, samagri kit, project code |
| Line Narration | Text | No | Free text | (header narration) | Override per-line if needed |
Live indicators below the table: - Total Debits: ₹ ___ - Total Credits: ₹ ___ - Difference: ₹ ___ (must read 0 to enable Post) - Fund consistency check: green tick if all lines belong to header fund.
Buttons:
- Save Draft — saves without posting (posted_at null; can edit later)
- Post — validates balanced, fund-consistent, period not locked → posts and assigns entry number (e.g. MYS-JE-2526-001234)
Validation errors flagged inline:
- "Debits ≠ Credits — adjust by ₹ x.xx"
- "Account 4100.01 is in Annadana fund but header is General"
- "March 2026 is closed — supply override token or change date"
Form 2.2 — Reverse Journal Entry
Purpose: Cancel a posted entry by creating its mirror. The original remains immutable; the reversal is linked. Who fills: Treasurer only.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Original Entry | Read-only display | Yes | — | (selected from list) | Shows entry number, date, amount, lines |
| Reversal Date | Date | Yes | Cannot be earlier than original date; cannot be in a locked period | Today | When the reversal hits the books |
| Reason | Textarea (max 500) | Yes | Min 20 chars | — | Audit log requires this; e.g. "Vendor bill 2526-091 cancelled — duplicate raised" |
| I confirm I understand this is permanent | Checkbox | Yes | — | False | Final guard |
Submit action: Generates a new JE with debit/credit swapped on every line, links it via reverses_id, and posts both into the audit trail.
Form 2.3 — View Ledger (Filters Screen)
Purpose: Inspect any account's history with a running balance. Who consults: Any Vitta role.
Filter inputs:
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Account | Dropdown (searchable) | Yes | All accounts | — | The account to view |
| From Date | Date | Yes | — | First day of current FY | Inclusive |
| To Date | Date | Yes | ≥ From Date | Today | Inclusive |
| Fund (display only) | Auto | — | — | (account's fund) | Read-only confirmation |
| Branch | Dropdown | No | All branches or specific | All | Filter to one branch's entries |
| Show Reversals? | Toggle | No | Show / Hide | Show | Hide to see net picture |
| Voucher Type | Multi-select | No | Receipt / Payment / Journal / etc. | All | Narrow by source |
Result columns: Date · Entry # · Voucher # · Narration · Debit · Credit · Running Balance · Drill-link to JE.
Export buttons: PDF, CSV, Excel.
Sub-module 3: Hundi & Cash Collection
Workflow. Daily after the temple's hundi (donation box) is opened, two designated witnesses count the cash by denomination, log cheques and other tender separately, and submit the count (Form 3.1). The system prints a deposit slip (Form 3.2) which both witnesses sign. The treasurer takes the slip and cash to the bank, records the deposit confirmation (Form 3.3), and the system posts the journal entry crediting Cash-on-Hand and debiting the bank account. Hundi cash is anonymous — it never gets an 80G receipt, only a fund-credit.
Form 3.1 — Daily Hundi Count Entry
Purpose: Record the day's hundi tally with denomination breakdown and two witness signatures. Who fills: Two witnesses (typically two trustees, or one trustee + one branch admin) jointly. Both must be logged in.
Header fields:
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Branch | Dropdown | Yes | Tenant branches | User's home branch | One hundi per branch per date is allowed |
| Collection Date | Date | Yes | ≤ Today; only one entry per (branch, date) | Today | The day the hundi was opened |
| Fund | Dropdown | Yes | Non-FCRA funds only | General | Most temples credit hundi to General; some segregate Annadana hundi |
| Counted At | Date+time | Yes | — | Now | Wall-clock time of counting |
| Witness 1 | Dropdown (users) | Yes | Role ≥ branch-admin; ≠ Witness 2 | (current user if eligible) | First counter |
| Witness 2 | Dropdown (users) | Yes | Role ≥ branch-admin; ≠ Witness 1 | — | Second counter; must log in to confirm |
| Notes | Textarea | No | Free text | — | Anything irregular — torn note count, foreign currency present, etc. |
Denomination grid (cash):
| Denomination | Count | Amount (auto) |
|---|---|---|
| ₹ 2000 | (number) | (denom × count) |
| ₹ 500 | (number) | — |
| ₹ 200 | (number) | — |
| ₹ 100 | (number) | — |
| ₹ 50 | (number) | — |
| ₹ 20 | (number) | — |
| ₹ 10 | (number) | — |
| ₹ 5 | (number) | — |
| ₹ 2 | (number) | — |
| ₹ 1 | (number) | — |
| Total Cash | — | (sum, auto) |
Other tender:
| Field | Type | Required | Validation | Default | Help |
|---|---|---|---|---|---|
| Total Cheques | Money | No | ≥ 0 | 0 | Sum of all cheques dropped in hundi |
| Cheque Count | Integer | If cheques > 0 | ≥ 1 | 0 | Auto-prompts user to attach a list (free text or uploaded) |
| Total Other (jewelry / forex / coupons) | Money | No | ≥ 0 | 0 | Estimated INR value |
| Other description | Text | If Other > 0 | — | — | E.g. "12 g gold offering, valued by goldsmith" |
| Grand Total | Auto | — | = Cash + Cheques + Other | — | — |
Buttons: - Save Draft — partial save while counting - Submit (both witnesses sign) — locks the count; both witness users must click Confirm Signature on their respective devices/sessions
Validation: Sum (denomination × count) must equal Total Cash; the form blocks submit if mismatch.
Form 3.2 — Two-Witness Deposit Slip
Purpose: Print/PDF the deposit slip the treasurer carries to the bank. Who triggers: Branch admin or treasurer (after Form 3.1 is submitted).
This is not a data-entry form — it is a generated PDF with the following pre-filled fields. The user reviews on-screen before printing:
| Pre-filled item | Source |
|---|---|
| Tenant + Branch name and address | Tenancy record |
| Collection Date | Form 3.1 |
| Fund Name | Form 3.1 |
| Denomination breakdown table | Form 3.1 |
| Cheque list (if any) | Form 3.1 |
| Total Cash, Total Cheques, Grand Total | Form 3.1 |
| Witness 1 name + signature line | Form 3.1 |
| Witness 2 name + signature line | Form 3.1 |
| Treasurer signature line | (blank for hand-sign) |
| Bank teller stamp area | (blank) |
Buttons: Download PDF, Print, Email to Treasurer.
Form 3.3 — Hundi-to-Bank Reconciliation (Mark Deposited)
Purpose: Confirm the bank received the cash and post the journal entry. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Hundi Collection (selected) | Read-only display | Yes | — | (from list) | Shows date, branch, fund, grand total |
| Deposited At | Date+time | Yes | ≥ Collection counted-at | Now | When the cash was deposited at counter |
| Deposited To Account | Dropdown | Yes | Bank accounts in same fund | — | Filtered to fund-matching bank accounts |
| Deposit Slip Number | Text | Yes | Bank's own slip ref | — | From the stamped slip |
| Stamped Slip Scan | File upload | Yes | PDF / image | — | Uploaded as audit attachment |
| Variance from counted total | Money | Auto | = Deposited - Counted | 0 | If non-zero, system requires Variance Reason |
| Variance Reason | Textarea | If variance ≠ 0 | Free text | — | E.g. "₹ 50 short — torn note rejected by bank" |
Submit action: Posts the journal entry — Dr. Bank Account; Cr. Cash on Hand — Hundi (branch+fund). If variance ≠ 0, an additional line is posted to a Cash Variance — Hundi account. Sets the hundi collection's deposited_at and links the voucher.
Sub-module 4: Donations & 80G Receipts
Workflow. Donations are captured upstream in the Members/CRM module (the transactions table). Vitta reads that table and produces accounting consequences: a journal entry per donation (auto-posted on payment confirmation), an 80G receipt PDF (Form 4.1) per qualifying donation, and an annual roll-up summary (Form 4.2) at FY close. Receipts are dispatched via email (default) or postal letter (Form 4.3); the postal track integrates with the Communications module's dispatch_records. FCRA donations are excluded from 80G — they are tracked separately in Sub-module 5.
Form 4.1 — Generate 80G Receipt (Single)
Purpose: Produce the regulator-format 80G certificate for one donation. Who fills: Accountant.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Donation Transaction | Dropdown (searchable) | Yes | Realised donations of current tenant where no 80G receipt exists yet; FCRA-fund donations excluded | — | Search by donor name, amount, date, or transaction ID |
| Donor Member | Auto-filled | — | — | (from transaction) | Read-only confirmation |
| Donor PAN | Text (10 chars) | If amount ≥ ₹ 2,000 | Valid PAN format [A-Z]{5}[0-9]{4}[A-Z] |
(from member profile) | Mandatory above ₹ 2,000 per IT rule; overridable from member profile |
| Receipt Date | Date | Yes | ≤ Today; ≥ donation date | Today | Date the receipt is issued |
| FY Label | Auto | — | Derived from donation date | (e.g. 2025-26) |
Read-only |
| Amount | Money | Yes | = donation amount | (from transaction) | Read-only — change only via reversal |
| Deduction % | Dropdown | Yes | 50 % · 100 % | 50 % | 100 % only for qualifying funds (PM Relief, etc.) — rare |
| Template Version | Read-only | — | — | v1.2526 |
The PDF template to use; pinned per FY |
| Donor address override | Textarea | No | — | (from member profile) | Use to print a different address than on file |
| Donor email | If channel = email | Valid email | (from member) | For dispatch | |
| Dispatch channel | Dropdown | Yes | Email · Postal · Both · Hold | Hold generates PDF without sending |
Submit action: Renders PDF (server-side, WeasyPrint), assigns sequence (e.g. SGSDM-2526-000123), stores PDF in cloud storage, returns receipt to caller. If channel ≠ Hold, hands off to dispatch (email immediately; postal queues a dispatch_records row).
Validation: Blocks if donation's fund is_fcra=True. Blocks if a non-voided receipt already exists for the transaction.
Form 4.2 — Annual 80G Bulk Generator
Purpose: At FY close (typically April), generate 80G certificates for all donations made in the year that don't yet have one. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Financial Year | Dropdown | Yes | Closed FYs available | Last closed FY | E.g. 2025-26 |
| Member Filter | Dropdown | No | All donors · Substantial only (>₹ 50k) · Recurring only · Custom list | All donors | Restrict to a subset |
| Custom Member List | File upload | If filter = Custom | CSV with member IDs (one per line) | — | — |
| Minimum Amount | Money | No | — | 0 | Skip donations below this |
| Skip donations already with receipts? | Checkbox | Yes | — | True | Off only for re-issue scenarios |
| Issue Date | Date | Yes | — | Today | Single date stamped on every receipt |
| Dispatch channel | Dropdown | Yes | Email · Postal · Both · Hold | Bulk-applies to all receipts generated | |
| Generate Annual Summary? | Checkbox | No | — | True | Also produces a per-donor roll-up PDF (Form 4.3) |
| Preview before commit | Checkbox | Yes | — | True | Shows count + sample first; commits on confirm |
Submit action: Runs as a background job; shows a progress page. Each generated receipt gets its own row, sequence, PDF. Failures (missing PAN above threshold, FCRA donations) appear in an exceptions list for manual handling.
Form 4.3 — Annual Summary per Donor
Purpose: Per-donor PDF summarising every receipt issued to them in one FY — convenient for the donor's IT filing. Who triggers: Treasurer or auto-generated by Form 4.2.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Donor Member | Dropdown (searchable) | Yes | Members with ≥ 1 receipt in chosen FY | — | — |
| Financial Year | Dropdown | Yes | — | Current closed FY | — |
| Include voided receipts? | Checkbox | No | — | False | Voided receipts are excluded from the summary total |
Submit action: Generates a single-page PDF listing every receipt number, date, amount, fund, and deduction percentage; total at bottom. Emailed or downloaded.
Form 4.4 — 80G Mailout Status Dashboard
Purpose: Track dispatch state for receipts. Who consults: Accountant or treasurer. This is a list view, not a form. Columns:
| Column | Meaning |
|---|---|
| Receipt # | E.g. SGSDM-2526-000123 |
| Donor | Name (link to member) |
| Amount | INR |
| Issued Date | — |
| Email Status | Sent (date) · Bounced · Pending · N/A |
| Postal Status | Dispatched (date) · In Transit · Delivered · Returned · N/A |
| Last Action | Most recent dispatch event |
| Actions | Resend email · Re-queue postal · Void · View PDF |
Filters: FY · Channel · Status · Donor name search.
Sub-module 5: FCRA Ledger
Workflow. Foreign donations are first registered against a Foreign Donor Source (Form 5.1) — the registry FC-4 cites at year end. Each inbound foreign remittance is recorded via Form 5.2, requiring two-key entry, capturing the foreign currency amount, FX rate at receipt, and the bank charges. The system posts the journal entry against the FCRA-tagged bank account and is strictly isolated from non-FCRA funds. At year end, Form 5.3 composes the FC-4 file for upload to the MHA portal (file is generated; submission is human-driven).
Form 5.1 — Register Foreign Donor Source
Purpose: Record an institutional or individual foreign donor identity for FC-4 reference. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Donor Name | Text | Yes | — | — | Full legal name (institutional name for orgs) |
| Donor Type | Dropdown | Yes | Individual · Institution · Foundation · Corporate | Individual | Drives FC-4 schedule mapping |
| Country | Dropdown | Yes | ISO list (≤ 63 chars) | — | Donor's country of residence/registration |
| Address | Textarea | No | — | — | Mandatory for institutional donors; recommended for individuals |
| Identifier | Text (max 127) | No | — | — | Passport / institution-id / website URL |
| Linked Member | Dropdown | No | Existing tenant members | — | If the donor is also a CRM member (rare) |
| Notes | Textarea | No | — | — | Internal observation — verification, prior history, etc. |
Form 5.2 — Record FCRA Donation (Two-Key)
Purpose: Log an inbound foreign remittance. Who fills: Treasurer + a second-signer (treasurer or trustee). Both must confirm.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Receipt Number | Auto | — | Pulled from sequence | (e.g. FCRA-2526-0042) |
Read-only |
| Received Date | Date | Yes | ≤ Today | Today | When the bank credited the FCRA account |
| Donor Source | Dropdown (searchable) | Yes | Foreign donor sources from Form 5.1 | — | Add new inline if missing |
| Foreign Amount | Money (foreign) | Yes | > 0 | — | Amount in donor's currency |
| Foreign Currency | Dropdown | Yes | ISO 4217 codes (USD, GBP, EUR, AUD, …) | — | — |
| FX Rate (to INR) | Decimal (12,6) | Yes | > 0 | (RBI reference rate of received_date if available) | Multiplier: foreign × rate = INR |
| INR Amount | Money | Auto | = Foreign × FX | — | Read-only confirmation |
| Bank Charges | Money | No | ≥ 0 | 0 | Wire / SWIFT charges deducted by bank |
| Purpose | Dropdown + free text | Yes | Religious activities · Education · Social · Cultural · Economic Development · Other (specify) | — | FCRA mandates purpose at receipt |
| FCRA Bank Account | Dropdown | Yes | Accounts where Fund.is_fcra=True | — | Strict — system rejects non-FCRA accounts |
| SWIFT Reference | Text | No | — | — | Bank's wire reference number |
| Source Document | File upload | Yes | PDF / image of bank advice or wire confirmation | — | Required for FC-4 substantiation |
| Recorded By | Auto | — | — | (current user) | Read-only |
| Second Signer | Dropdown (users) | Yes | Treasurer or trustee role; ≠ Recorded By | — | Must log in and confirm |
Submit action: Posts JE — Dr. Bank — FCRA; Dr. Bank Charges (if any); Cr. FCRA Donation Income — purpose. Adds row to FCRA donation register. Triggers audit event.
Form 5.3 — FC-4 Annual Return Composer
Purpose: Generate the MHA-format FC-4 file. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Financial Year | Dropdown | Yes | Closed FYs | Last closed FY | — |
| Tenant FCRA Number | Auto | — | — | (from Org legal record) | Read-only sanity check |
| Include Brought-Forward Opening Balance? | Checkbox | Yes | — | True | Standard FC-4 schedule requires it |
| Include Donor List Schedule? | Checkbox | Yes | — | True | Per-donor breakdown |
| Include Utilisation Schedule? | Checkbox | Yes | — | True | Per-purpose expenditure |
| Auditor Name | Text | Yes | — | (from prior FC-4) | Printed in declaration page |
| Auditor Membership Number | Text | Yes | ICAI format | — | — |
| Date of Signing | Date | Yes | — | Today | Declaration date |
Submit action: Generates a multi-sheet Excel/PDF bundle ready for portal upload. Stored in cloud, downloadable. Submission to portal is manual.
Sub-module 6: Vendor Payables
Workflow. Vendors (samagri suppliers, contractors, AMC providers, external archakas) are registered once via Form 6.1. When an event or inventory module raises a Purchase Order (Form 6.2), it carries forward into bill receipt (Form 6.3) when the supplier sends the invoice. The accountant verifies; the treasurer approves (Form 6.4) — at approval, TDS is computed and the journal entry posted. Payment (Form 6.5) is recorded when the bank transfer is initiated, completing the cycle.
Form 6.1 — Vendor Master (Add / Edit)
Purpose: Register a vendor's identity, tax credentials, and payment instructions. Who fills: Accountant.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Vendor Code | Text (max 20) | Yes | Uppercase alphanumeric; unique per tenant | Auto-suggested | E.g. VEN-PSR-001 |
| Vendor Name | Text | Yes | — | — | Legal/registered name |
| PAN | Text (10) | If TDS ≠ none | Valid PAN format | — | Required for TDS — without it 20% rate applies |
| GSTIN | Text (15) | No | Valid GSTIN format | — | If supplier is GST-registered |
| Default TDS Section | Dropdown | No | None · 194C (contracts) · 194J (professional) · 194I (rent) · 194H (commission) | None | Overridable per bill |
| Bank Account Number | Text (max 32) | No | — | — | For NEFT/RTGS payments |
| Bank IFSC | Text (16) | If bank a/c set | Valid IFSC | — | — |
| Contact Email | No | — | — | For PO and payment intimation | |
| Contact Phone | Phone | No | E.164 | — | — |
| Address | Textarea | No | — | — | Place of supply for GST |
| Active? | Checkbox | Yes | — | True | Uncheck to retire |
| Notes | Textarea | No | — | — | Reliability rating, prior issues, preferred items |
Form 6.2 — Create Purchase Order
Purpose: Pre-authorise a vendor purchase before the bill arrives. Who fills: Accountant or branch admin (with PO permission).
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| PO Number | Auto | — | Pulled from sequence | (e.g. MYS-PO-2526-0156) |
Read-only |
| PO Date | Date | Yes | ≤ Today | Today | — |
| Vendor | Dropdown (searchable) | Yes | Active vendors | — | Inline-add if missing |
| Branch | Dropdown | Yes | Tenant branches | User's branch | — |
| Fund | Dropdown | Yes | Active funds | (vendor's default if any) | Non-FCRA usually |
| Expected Delivery Date | Date | No | ≥ PO Date | — | — |
| Cost Centre | Text / dropdown | No | Free text + suggestions (event, samagri kit) | — | — |
| Source Module | Read-only | — | Inventory · Events · Maintenance · Manual | Manual | Auto-set when PO is raised from another module |
| Approver Required? | Checkbox | Yes | — | True if amount > tenant threshold | Toggles whether treasurer approval is needed before sending PO |
Line items (≥ 1 row):
| Field | Type | Required | Validation | Help |
|---|---|---|---|---|
| Item Description | Text | Yes | — | E.g. "Sandalwood paste 1 kg" |
| HSN/SAC code | Text | If GSTIN set | — | For GST classification |
| Quantity | Decimal | Yes | > 0 | — |
| Unit | Dropdown | Yes | kg · g · litre · piece · hour · day · packet · custom | — |
| Rate | Money | Yes | ≥ 0 | Per unit |
| Amount | Auto | — | = Qty × Rate | — |
| GST % | Dropdown | If GSTIN set | 0 · 5 · 12 · 18 · 28 | — |
| Notes | Text | No | — | — |
Footer: Subtotal · GST total · Other charges · Grand Total. Submit action: Saves PO; if approver required, queues to treasurer; on approval, emails PO PDF to vendor.
Form 6.3 — Receive Bill (Vendor Invoice)
Purpose: Log the supplier's invoice when it arrives, with optional PO matching. Who fills: Accountant.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Bill Number (internal) | Auto | — | Sequence | (e.g. MYS-BILL-2526-0089) |
Read-only |
| Vendor | Dropdown | Yes | Active vendors | — | — |
| Vendor Invoice Number | Text (max 48) | Yes | Unique per vendor | — | The number printed on supplier's invoice |
| Vendor Invoice Date | Date | Yes | — | — | As on the bill |
| Received Date | Date | Yes | ≥ Invoice Date | Today | When the bill physically arrived |
| Linked PO | Dropdown | No | Open POs of this vendor | — | If linked, line-items pre-fill from PO |
| Branch | Dropdown | Yes | Tenant branches | User's branch | — |
| Fund | Dropdown | Yes | Active funds | (PO's fund if linked) | — |
| Expense Account | Dropdown | Yes | Expense-type accounts of selected fund | — | Where the cost lands in the books |
| Subtotal | Money | Yes | > 0 | (sum of lines if PO-linked) | Pre-tax |
| GST Amount | Money | No | ≥ 0 | (computed if PO-linked) | — |
| Other Charges | Money | No | ≥ 0 | 0 | Freight, packing, etc. |
| Total Amount | Auto | — | = Subtotal + GST + Other | — | Read-only |
| TDS Section (override) | Dropdown | No | None · 194C · 194J · 194I · 194H | (vendor's default) | — |
| TDS Rate | Decimal (5,2) | If section set | Per-section default — overridable | (per section: e.g. 2% for 194C, 10% for 194J) | — |
| TDS Amount | Auto | — | = Subtotal × Rate (or specific base per section) | — | Calculated; override allowed |
| Net Payable | Auto | — | = Total - TDS | — | Read-only |
| Bill Scan | File upload | Yes | PDF / image, max 10 MB | — | Mandatory for audit |
| Notes | Textarea | No | — | — | — |
Submit action: Saves bill in received state. Goes to verification queue.
Form 6.4 — Approve Payment (Treasurer Queue)
Purpose: Treasurer reviews the verified bill, confirms the TDS computation, and authorises payment. Who fills: Treasurer.
This is a list-detail screen rather than a fresh form. Each queued bill shows:
| Display field | Source |
|---|---|
| Bill # / Vendor / Date | Form 6.3 |
| Linked PO | If any |
| Total / TDS / Net Payable | Form 6.3 |
| Bill scan preview | (inline) |
| TDS section + rate (editable) | Override here if needed |
Action buttons per bill:
- Approve → posts JE: Dr. Expense (subtotal) + Dr. Input GST (if claimable); Cr. Vendor Payable (net) + Cr. TDS Payable (per section). Status moves to approved.
- Reject (with reason) — textarea required; bill returns to accountant.
- Hold — moves out of queue; treasurer note required.
Form 6.5 — Record Vendor Payment
Purpose: Log the actual payment to the vendor. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Payment Number | Auto | — | Sequence | (e.g. MYS-PAY-2526-0204) |
Read-only |
| Bill (linked) | Dropdown | Yes | Approved bills with outstanding balance | — | One payment can target one bill (split-payments via separate row) |
| Payment Date | Date | Yes | ≥ Bill received date | Today | — |
| Amount | Money | Yes | > 0; ≤ outstanding | (= Net Payable) | Partial payment allowed |
| Mode | Dropdown | Yes | NEFT · RTGS · IMPS · UPI · Cheque · Cash | NEFT | — |
| Bank Account | Dropdown | Yes | Bank-type accounts in bill's fund | — | — |
| UTR Number | Text | If mode = NEFT/RTGS/IMPS/UPI | — | — | From bank confirmation |
| Cheque Number | Text | If mode = Cheque | — | — | — |
| Notes | Textarea | No | — | — | — |
Submit action: Posts JE: Dr. Vendor Payable + Dr. TDS Payable (cleared portion); Cr. Bank Account. Updates bill status to paid or partly_paid.
Sub-module 7: Payroll & Sambhavana
Workflow. Each month the accountant creates a payroll run (Form 7.1) per category — salary, sambhavana-archaka, sambhavana-examiner, volunteer stipend, consultant. The system pulls the staff/archaka roster from Sub-module 5 of Staff Details, computes EPF/ESI/PT (only for salary category), TDS per category default (192 for salary, 194J for sambhavana), and auto-recovers any open staff advance balance. The treasurer reviews per-line details (Form 7.2 is the editable matrix), approves, and the system posts the consolidated journal entry plus emits one TDS entry per line where deduction > 0.
Form 7.1 — Run Monthly Payroll (Header)
Purpose: Create a payroll batch for a (branch, month, category). Who fills: Accountant.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Period Year | Integer | Yes | Current or prior calendar year | Current year | — |
| Period Month | Dropdown | Yes | Jan – Dec | Current month | — |
| Branch | Dropdown | No | Tenant branches; or "All" | User's branch | Leave blank for tenant-level |
| Category | Dropdown | Yes | Salary · Sambhavana (Archaka) · Sambhavana (Examiner) · Volunteer Stipend · Consultant | Salary | One run per (branch, period, category); kept distinct for TDS treatment |
| Fund | Dropdown | Yes | Active funds | General | The fund the salary expense is booked to |
| Auto-pull staff list? | Checkbox | Yes | — | True | Pulls from Staff Details based on category eligibility |
| Pay Date (target) | Date | Yes | ≥ first day of period_month + 1 | 7th of next month | When wages will be released — drives TDS quarter |
Submit action: Creates a draft PayrollRun; redirects to Form 7.2 (line composer).
Form 7.2 — Payroll Line Composer
Purpose: Per-staff line editor for the run. Shown as a table with one row per member. Who fills: Accountant.
Per-line fields (editable cells):
| Field | Type | Required | Validation | Default | Help |
|---|---|---|---|---|---|
| Member | Auto | — | — | (from roster) | Read-only |
| Basic | Money | Yes | ≥ 0 | (from pay grade) | — |
| HRA | Money | No | ≥ 0 | (from pay grade) | Salary category only |
| Food Allowance | Money | No | ≥ 0 | (from pay grade) | Sambhavana lines often have only this + sambhavana |
| Accommodation (in-kind) | Money | No | ≥ 0 | (from staff record) | Notional value of provided housing |
| Sambhavana | Money | If sambhavana category | ≥ 0 | (from category schedule) | Honorarium amount |
| Other Earnings | Money | No | ≥ 0 | 0 | Bonus, arrears |
| Gross | Auto | — | = sum of earnings | — | — |
| EPF | Money | If salary | 12% of (Basic + HRA up to ₹ 15k) by default | (computed) | Override allowed |
| ESI | Money | If salary + Gross < ₹ 21k | 0.75% of Gross | (computed) | — |
| Professional Tax | Money | No | State-rate slab | (computed for Karnataka) | — |
| TDS Section | Dropdown | No | 192 (salary) · 194J · 194C · None | (per category default) | Per Open Question 3 in blueprint |
| TDS | Money | No | ≥ 0 | (computed) | Override allowed |
| Advance Recovery | Money | No | ≥ 0 | (open StaffAdvance balance) | Auto-pulled, editable |
| Other Deductions | Money | No | ≥ 0 | 0 | Loan EMI, society dues |
| Net | Auto | — | = Gross - all deductions | — | — |
| Payment Mode | Dropdown | No | NEFT · UPI · Cash · Cheque | NEFT | Set at pay-time |
Footer totals: Gross Total · Deduction Total · Net Total.
Buttons:
- Save Draft — keep editing later
- Approve — treasurer-only; posts the consolidated JE described in workflow
- Mark Paid (per-line or bulk) — sets paid_at and payment_ref
Form 7.3 — Per-Staff TDS Calculation View
Purpose: Drill-down view showing how TDS was computed for one staff member. Who consults: Accountant or treasurer (read-only with override option).
| Display field | Source |
|---|---|
| Member name + PAN | Staff record |
| YTD Gross (FY-to-date) | Aggregate of payroll lines |
| YTD Deductions claimed (80C, 80D, etc.) | Staff record (declared investments) |
| Estimated annual taxable | Computed |
| Tax slabs applied | Old/new regime — picked from staff preference |
| TDS due (annual) | Computed |
| TDS already deducted (FY-to-date) | Aggregate |
| TDS this month | Annual ÷ remaining months |
| Override reason (if any) | Free text textarea |
Action: Override TDS (treasurer only) requires reason and is logged.
Sub-module 8: Staff Advance (Imprest)
Workflow. A staff member or sevadar gets an advance for samagri purchase, travel, or sundry expense (Form 8.1). They submit each receipt/bill against the advance (Form 8.2) as it accrues. The treasurer reviews submitted bills (Form 8.3) and approves or rejects. When the advance is fully accounted for, the closure is recorded — either bills clear it entirely, or the staff member returns the balance, or the residual is recovered from salary in the next payroll run.
Form 8.1 — Issue Advance
Purpose: Disburse imprest cash/transfer to staff and record the corresponding receivable. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Advance Number | Auto | — | Sequence | (e.g. MYS-ADV-2526-0042) |
Read-only |
| Member (staff) | Dropdown (searchable) | Yes | Active staff members | — | — |
| Issue Date | Date | Yes | ≤ Today | Today | — |
| Amount | Money | Yes | > 0; ≤ tenant's per-advance ceiling (else two-key) | — | — |
| Fund | Dropdown | Yes | Active funds | General | Most advances are General |
| Purpose | Textarea | Yes | Min 10 chars | — | E.g. "Samagri for Sankranti utsava — Hosa Aluvana market run" |
| Expected Settlement By | Date | No | ≥ Issue Date | Issue Date + 30 days | Driver of aging report |
| Disbursement Mode | Dropdown | Yes | Cash · NEFT · UPI · Cheque | NEFT | — |
| Bank Account (source) | Dropdown | If non-cash mode | Bank accounts in fund | — | — |
| UTR / Cheque Number | Text | If non-cash | — | — | — |
Submit action: Posts JE: Dr. Staff Advance — <member>; Cr. Bank/Cash. Sets advance status open.
Form 8.2 — Submit Bills (Settlement Entry, Member-facing)
Purpose: The staff member uploads receipts as the advance is spent. Who fills: Member (the advance recipient).
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Linked Advance | Dropdown | Yes | User's open advances | (auto if only one) | — |
| Bill Date | Date | Yes | ≥ Advance issue date; ≤ Today | Today | — |
| Description | Textarea | Yes | Min 10 chars | — | E.g. "Coconuts × 50 from Hosa Aluvana market — bill # 2734" |
| Amount | Money | Yes | > 0; ≤ remaining advance balance | — | The system shows current remaining inline |
| Expense Account | Dropdown | Yes | Expense-type accounts of advance's fund | (last used by this member) | Where the cost will eventually land |
| Bill Scan | File upload | Yes | PDF / image, max 5 MB | — | Required for treasurer approval |
| Notes | Textarea | No | — | — | Anything the treasurer should know |
Submit action: Saves an ImprestBill in status submitted. Goes to treasurer queue (Form 8.3).
Form 8.3 — Treasurer Approval Queue
Purpose: Treasurer reviews submitted bills. Who fills: Treasurer.
List view per pending bill:
| Display | Source |
|---|---|
| Member · Advance # · Advance amount | — |
| Bill date · description · amount | Form 8.2 |
| Expense account proposed | Form 8.2 |
| Bill scan preview | inline |
| Running advance utilisation | computed (bills approved so far / advance amount) |
Actions per bill:
- Approve → posts JE: Dr. Expense Account; Cr. Staff Advance — <member>. Status: approved.
- Reject → textarea reason; status: rejected. Member notified.
- Request more info → comment posted; bill returns to submitted for member's edits.
Form 8.4 — Final Settlement
Purpose: Close the advance — bills approved + balance returned (or recovered via payroll). Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Advance (selected) | Read-only | — | — | (from list) | Shows total / bills approved / balance |
| Settled On | Date | Yes | ≥ last approved bill date | Today | — |
| Refund Amount | Money | Yes | ≥ 0; = advance - bills approved | (computed) | — |
| Refund Mode | Dropdown | If refund > 0 | Cash · NEFT · UPI · Salary Deduction · Written Off | Cash | Salary Deduction defers to next payroll run; Written Off requires reason |
| Bank Account (target) | Dropdown | If refund mode = NEFT/UPI/Cash | Bank/cash accounts in fund | — | — |
| UTR / Reference | Text | If non-cash refund | — | — | — |
| Write-off Reason | Textarea | If mode = Written Off | Min 30 chars | — | Two-key required for write-off |
| Second Signer | Dropdown (users) | If Written Off | Treasurer/trustee role; ≠ submitter | — | — |
Submit action: Posts settlement JE (varies by mode); sets advance status to settled. Salary-deduction mode tags the open balance for next month's payroll line.
Sub-module 9: Bank Reconciliation
Workflow. At the start of each month (or daily for active accounts), the accountant uploads the bank's statement file (Form 9.1). The auto-matcher runs (Form 9.2 is the worksheet) and pairs statement rows to existing journal lines on UTR / cheque-number / amount-and-date tokens. Unmatched rows go to a queue (Form 9.3) where the accountant either matches them manually or creates a new journal entry to absorb them (e.g. bank charges, interest credit). On finalise, the reconciliation closes; the bank account's reconciled balance is locked at the statement-end date.
Form 9.1 — Import Bank Statement
Purpose: Upload one bank's statement file for a date range. Who fills: Accountant.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Bank Account | Dropdown | Yes | Bank-type accounts (is_bank=True) |
— | — |
| Statement Period — From | Date | Yes | — | Last reconciled-to date + 1 | — |
| Statement Period — To | Date | Yes | ≥ From | End of last month | — |
| File Format | Dropdown | Yes | CSV · Excel (XLS/XLSX) · MT940 · OFX · JSON | CSV | Indian banks mostly send CSV; SBI corporate sends MT940 |
| Statement File | File upload | Yes | Per-format parser; max 20 MB | — | — |
| Has header row? | Checkbox | If CSV/Excel | — | True | — |
| Column mapping (CSV/Excel) | Mapping wizard | Yes | Date · Narration · Reference · Debit · Credit · Balance | Auto-detected; overridable | Run after first preview |
Submit action: Parses the file into a staging payload, creates a BankReconImport row in status parsed. Auto-matcher runs immediately (Form 9.2); user is taken to the worksheet.
Form 9.2 — Match Entries (Worksheet)
Purpose: Two-pane reconciliation worksheet — statement rows on left, journal lines on right. Who fills: Accountant.
Left pane (statement rows):
| Column | Meaning |
|---|---|
| Date | From statement |
| Narration | From statement |
| Reference (UTR / cheque no) | Parsed |
| Debit | If applicable |
| Credit | If applicable |
| Status | Auto · Manual · Unmatched · Rejected |
| Confidence | (auto-matcher score 0-1) |
Right pane (candidate journal lines):
Same date window ± 5 days, same bank account, similar amounts. Drag a statement row onto a journal line (or vice versa) to manually match.
Actions: - Auto-match — runs the matcher (UTR / cheque / amount-date+narration / saved recurring rules) - Manual match (drag) — pair one row with one line - Create JE for this row — opens Form 2.1 prefilled (e.g. for bank charges) - Mark as ignore — for rows that mirror inter-account transfers already booked - Save and Continue Later — preserves state
Form fields on manual match dialog:
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Statement Row | Read-only | — | — | (selected) | — |
| Journal Line | Dropdown (searchable) | Yes | Lines for this account in date window | — | — |
| Confidence Note | Textarea | No | — | — | Why this match — for audit |
Form 9.3 — Unmatched Queue
Purpose: Persistent list of rows the matcher couldn't auto-pair. Who consults: Accountant or treasurer. Columns: Date · Narration · Ref · Debit · Credit · Days Old · Last Action · Suggested Match (if any) · Actions (Match · Create JE · Ignore). Filter: by import batch · by account · by date range · by amount > threshold.
Form 9.4 — Finalise Reconciliation
Purpose: Lock the reconciliation when all rows are dealt with. Who fills: Treasurer.
| Field | Type | Required | Validation | Default | Help |
|---|---|---|---|---|---|
| Import Batch (selected) | Read-only | — | — | (from worksheet) | — |
| Closing Balance per Statement | Money | Yes | — | (last row of statement) | — |
| Closing Balance per Books | Money | Auto | computed | — | Read-only |
| Difference | Auto | — | = Statement - Books | 0 | Must be 0 to enable Finalise |
| Notes | Textarea | No | — | — | — |
Submit action: Sets the reconciliation status to completed; locks the bank account's balance to that date. Future imports start after this date.
Sub-module 10: Financial Statements
Workflow. Three primary statements drive trustee and auditor reporting: Trial Balance (Form 10.1), Income & Expenditure (Form 10.2), Balance Sheet (Form 10.3). Each is parameterised generation, not data entry — operators set period and fund parameters; the system aggregates posted journal entries; the result is a viewable HTML page with PDF/Excel exports. By default, output uses the Trust-triplet format (Receipts & Payments + I&E + Balance Sheet); a Schedule III toggle is available for Section-8 organisations.
Form 10.1 — Generate Trial Balance
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| As-of Date | Date | Yes | — | Today | Snapshot date |
| Fund | Dropdown | No | All funds + "Consolidated" | Consolidated | Per-fund or all-funds |
| Branch | Dropdown | No | Branches + "All" | All | — |
| Show zero-balance accounts? | Checkbox | No | — | False | — |
| Include period-locked entries? | Checkbox | No | — | True | Off only for what-if scenarios |
| Format | Dropdown | Yes | Schedule III · Trust-triplet · Compact | Trust-triplet | — |
Submit action: Renders TB on screen; PDF / CSV / Excel export buttons.
Form 10.2 — Generate Income & Expenditure Statement
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| From Date | Date | Yes | — | Start of current FY | — |
| To Date | Date | Yes | ≥ From | Today | — |
| Fund | Dropdown | No | All funds + "Consolidated" + multi-select | Consolidated | — |
| Branch | Dropdown | No | Branches + "All" | All | — |
| Comparison period? | Checkbox | No | — | False | If on, shows prior FY same-period column |
| Format | Dropdown | Yes | Schedule III · Trust-triplet · Compact | Trust-triplet | — |
| Include in-kind valuations? | Checkbox | No | — | True | Cooked-prasadam donations, donated samagri, etc. |
Form 10.3 — Generate Balance Sheet
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| As-of Date | Date | Yes | — | End of current FY | — |
| Fund | Dropdown | No | All funds + "Consolidated" | Consolidated | — |
| Branch | Dropdown | No | Branches + "All" | All | — |
| Comparison period? | Checkbox | No | — | True | Shows prior FY same-as-of column |
| Format | Dropdown | Yes | Schedule III · Trust-triplet | Trust-triplet | — |
| Include corpus break-up note? | Checkbox | No | — | True | Endowment fund detail |
All three forms share these export buttons: Download PDF, Download Excel, Email to Trustee List, Schedule for monthly auto-mail.
Sub-module 11: Statutory Returns
Workflow. At end of each quarter (TDS) or month (GST) or year (Form 10B audit return, FC-4), the treasurer composes the relevant statutory file. Each composer pulls data already in the system (TDS entries, GST invoices, donation register, FCRA donations) and produces a regulator-format upload-ready file. Submission to portals (GSTN, TRACES, MHA, IT) is manual — Vitta produces the file; a human pushes it.
Form 11.1 — GSTR-1 Composer (Outward Supplies)
Purpose: Generate the monthly GSTR-1 file listing all outward supplies (sales-side invoices). Who fills: Treasurer. Applicability: Only tenants with GSTIN and taxable supplies — most pure trusts will skip this.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Period Year | Integer | Yes | — | Current year | — |
| Period Month | Dropdown | Yes | Jan – Dec | Last month | — |
| Tenant GSTIN | Auto | — | — | (from org legal record) | Read-only |
| Include zero-rated supplies? | Checkbox | No | — | True | Exports — applicable to publication exports |
| Include nil-rated / exempt? | Checkbox | No | — | True | Most religious services are exempt |
| Format | Dropdown | Yes | JSON (offline tool) · Excel · CSV | JSON | JSON for portal upload via offline tool |
Submit action: Aggregates GST invoices for the month; produces the file; stores; downloadable. Saves as a GSTReturn row.
Form 11.2 — GSTR-3B Composer (Summary Return)
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Period Year | Integer | Yes | — | Current year | — |
| Period Month | Dropdown | Yes | Jan – Dec | Last month | — |
| ITC claim toggle | Checkbox | No | — | True | Whether to claim Input Tax Credit on input GST |
| Reverse charge supplies? | Checkbox | No | — | False | Tick if any RCM supplies received |
| Format | Dropdown | Yes | JSON · Excel | JSON | — |
Form 11.3 — TDS Quarterly Return Composer (24Q / 26Q)
Purpose: Generate the quarterly TDS return file (24Q for salary/192, 26Q for other sections). Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Return Form | Dropdown | Yes | 24Q · 26Q · 27Q (foreign) · 27EQ | 24Q | One form per filing |
| Financial Year | Dropdown | Yes | Current/prior FY | Current FY | — |
| Quarter | Dropdown | Yes | Q1 (Apr-Jun) · Q2 (Jul-Sep) · Q3 (Oct-Dec) · Q4 (Jan-Mar) | Last completed quarter | — |
| Tenant TAN | Auto | — | — | (from org record) | Read-only |
| Deductor Type | Dropdown | Yes | Government · Statutory body · Autonomous body · Local Authority · Branch of Bank · Branch of statutory body · Person to whom statement is filed by company · Other | Other | Defaults pulled from org record |
| Person Responsible — Name | Text | Yes | — | (from prior return) | — |
| Person Responsible — Designation | Text | Yes | — | "Treasurer" | — |
| Person Responsible — PAN | Text | Yes | Valid PAN | (from user record) | — |
| Challan Details — bulk-confirm | Multi-row | Yes | Per challan: number, BSR, date, amount paid | (auto-pulled from TDSEntry rows) | Editable per challan |
| RPU Version | Auto | — | — | (latest as per regulator) | Read-only |
| Include Lower Deduction Certificates? | Checkbox | No | — | False | If any deductee has 197 certificate |
Submit action: Generates the FVU-ready file (NSDL format); stores in cloud; downloadable. The file is what the user uploads to the TIN/TRACES portal.
Form 11.4 — Form 10B Audit Return Composer
Purpose: Generate Form 10B (audit report for charitable trust) for IT filing. Who fills: Treasurer (with auditor coordination).
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Financial Year | Dropdown | Yes | Closed FYs | Last closed FY | — |
| Auditor Name | Text | Yes | — | (from prior return) | — |
| Auditor Membership Number (ICAI) | Text | Yes | — | — | — |
| Auditor Firm Name | Text | No | — | — | — |
| Auditor Firm Registration Number | Text | No | — | — | — |
| Date of Audit Report | Date | Yes | ≤ Today | Today | — |
| Trust Activities Summary | Textarea (max 2000) | Yes | — | (last year's text) | Free narrative — auditor edits as needed |
| Section claimed under | Dropdown | Yes | 11 · 10(23C)(iv) · 10(23C)(v) · 10(23C)(vi) · 10(23C)(via) | 11 | Per IT registration |
| Income applied to objects (₹) | Auto | — | computed | — | Editable — auditor adjusts |
| Income accumulated under section 11(2) (₹) | Money | No | — | 0 | If applicable |
| Form 9A / 10 details (if accumulated) | Textarea | No | — | — | — |
| Deemed application notes | Textarea | No | — | — | — |
Submit action: Generates the Form 10B JSON / utility-tool file plus a printable PDF for auditor signature.
Sub-module 12: Inter-Branch Transfers
Workflow. When money moves between branches of one tenant (Mysuru → Bengaluru, say), Form 12.1 records it. The system posts two journal entries — one debiting an inter-branch suspense account at the source and crediting the source bank, one debiting the destination bank and crediting suspense at the receiver. Both legs share the same fund (fund segregation cannot be breached). When the destination branch confirms UTR receipt, the transfer is marked confirmed and the suspense balance settles to zero.
Form 12.1 — Transfer Money Between Branches
Purpose: Record an internal money movement. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Transfer Number | Auto | — | Sequence | (e.g. IBT-2526-0011) |
Read-only |
| Transfer Date | Date | Yes | ≤ Today | Today | — |
| Fund | Dropdown | Yes | Active funds | — | Must be the same fund on both legs |
| From Branch | Dropdown | Yes | Tenant branches | User's branch | — |
| To Branch | Dropdown | Yes | Tenant branches; ≠ From | — | — |
| From Bank Account | Dropdown | Yes | Bank accounts of From-branch in selected fund | — | — |
| To Bank Account | Dropdown | Yes | Bank accounts of To-branch in selected fund | — | — |
| Amount | Money | Yes | > 0 | — | — |
| Mode | Dropdown | Yes | NEFT · RTGS · IMPS · UPI · Internal book-only | NEFT | "Internal book-only" used when consolidating without an actual wire |
| UTR Number | Text | If mode = NEFT/RTGS/IMPS/UPI | — | — | From bank confirmation |
| Notes | Textarea | No | — | — | E.g. "Funds for Bengaluru shibira samagri Q3" |
Submit action: Posts both legs of journal entries; sets transfer status pending_confirmation. Notifies destination branch admin. When destination admin confirms (separate quick-confirm action with UTR re-entry), status moves to confirmed.
Sub-module 13: Annual Audit Pack
Workflow. At FY close (typically April-May), the treasurer triggers the audit pack generator (Form 13.1). The system bundles all required artifacts — TB, I&E, BS (consolidated and fund-wise), every voucher PDF, 80G register, FCRA register, payroll register, TDS challan summary, vendor ledger, jewel valuation snapshot from Asset module — into one ZIP file. The pack is delivered to the auditor; sign-off is tracked outside the system but the ZIP serves as the immutable submission artifact.
Form 13.1 — Audit Pack Generator
Purpose: Produce the auditor-ready bundle. Who fills: Treasurer.
| Field | Type | Required | Options / Validation | Default | Help |
|---|---|---|---|---|---|
| Financial Year | Dropdown | Yes | Closed FYs (period must be locked) | Last closed FY | If FY is not period-locked, the form blocks |
| Branch Scope | Dropdown | Yes | All branches (consolidated) · Specific branch · Each-branch-separate | All branches | "Each-branch-separate" produces one ZIP per branch |
| Format | Dropdown | Yes | ZIP · ZIP + Tally XML export · ZIP + sectioned-PDFs | ZIP | — |
| Include sections | Multi-select | Yes | Trial Balance · Income & Expenditure · Balance Sheet · Receipts & Payments · Voucher PDFs · 80G Register · FCRA Register · Payroll Register · TDS Challans · Vendor Ledger · Donor Ledger · Jewel Valuation · Bank Reconciliation Reports · Period Lock Certificates · Statutory Returns (filed copies) | All checked | Uncheck to slim the bundle |
| Include exception register? | Checkbox | Yes | — | True | Variances, written-off advances, voided receipts, two-key overrides — auditor reads this first |
| Auditor Name (printed cover) | Text | Yes | — | (last audit) | — |
| Auditor Firm | Text | No | — | — | — |
| Trustee Sign-off Names | Textarea | Yes | One per line | (from board roster) | Printed on cover |
| Generation Notes | Textarea | No | — | — | E.g. "Excludes TDS Q4 — return pending" |
Submit action: Runs as a background job (typical run time 10-30 minutes for a full year of a busy tenant); produces a ZIP stored in cloud; emails a download link to the treasurer and auditor. Generation produces an AuditPack record with manifest of every file included and SHA-256 of the ZIP.
Post-generation actions: - Re-generate (with the same parameters, if data corrections were made — produces a new versioned pack; older pack retained for audit) - Mark Submitted to Auditor (with date and auditor email captured) - Mark Audit Closed (with sign-off date and auditor's report file uploaded)
Appendix A — Field types glossary
| Type | Format / behaviour |
|---|---|
| Text | Single-line input; max length per field-spec |
| Textarea | Multi-line; rendered ≥ 3 rows |
| Money | Numeric, two decimals, prefixed ₹; thousand separators in display only |
| Money (foreign) | Numeric, two decimals, prefix per ISO 4217 currency code |
| Date | DD-MM-YYYY display; ISO storage |
| Date+time | DD-MM-YYYY HH:mm IST display |
| Dropdown | Single-select; searchable when ≥ 10 options |
| Multi-select | Multiple choices, comma-separated chips |
| Checkbox | Boolean tick |
| Toggle | Visual switch (semantically same as checkbox) |
| File upload | Drag-and-drop; size limit per spec; streamed to cloud storage |
| Auto | Read-only; computed by the system |
Appendix B — Common validation behaviours
- Period lock guard. Any form with a "posting date" or "transfer date" field rejects dates falling in a locked (year, month) unless an active override token is presented (override token is generated through the period-lock override workflow).
- Two-key blocks. Forms requiring two-key signing keep a draft state until both signers click Confirm. The first signer cannot also be the second (system blocks self-signing).
- FCRA isolation. Any field that picks a fund or account validates: a journal entry whose header fund is FCRA cannot reference a non-FCRA account, and vice versa. Inter-fund movements require an explicit
inter_fund_transfervoucher (designed in a future iteration). - Sequence numbers. All "auto" identifier fields draw from the existing
sequenceNumbershelper, with new keys per Vitta entity (JE-<branch>,RCPT-80G-<tenant>,FCRA-<tenant>,BILL-<tenant>,PO-<branch>,PAY-<branch>,ADV-<branch>,IBT-<tenant>,AUD-<tenant>). - Amount precision. All money is
Numeric(18, 2)— paisa precise. Forms reject more than 2 decimal places. - Audit footer. Every entered row is stamped with
created_by,created_at,updated_by,updated_atby the audit mixin — these are not in form specs but are visible in detail views and the audit pack.
Appendix C — Roles cross-reference
| Form | Required role to submit |
|---|---|
| 1.1 Define Fund | Treasurer |
| 1.2 Define Account | Accountant |
| 2.1 Compose JE | Accountant (draft) · Treasurer (post over threshold) |
| 2.2 Reverse JE | Treasurer |
| 3.1 Hundi Count | Two witnesses, each ≥ branch-admin |
| 3.3 Hundi Deposit | Treasurer |
| 4.1 Generate 80G | Accountant |
| 4.2 Bulk 80G | Treasurer |
| 5.1 Foreign Donor Source | Treasurer |
| 5.2 FCRA Donation | Treasurer + second-signer |
| 5.3 FC-4 Composer | Treasurer |
| 6.1 Vendor Master | Accountant |
| 6.2 Create PO | Accountant / Branch admin |
| 6.3 Receive Bill | Accountant |
| 6.4 Approve Payment | Treasurer |
| 6.5 Vendor Payment | Treasurer |
| 7.1 Payroll Run | Accountant |
| 7.2 Payroll Lines | Accountant (draft) · Treasurer (approve) |
| 7.3 TDS View / Override | Treasurer (override only) |
| 8.1 Issue Advance | Treasurer |
| 8.2 Submit Bills | Member (advance recipient) |
| 8.3 Approval Queue | Treasurer |
| 8.4 Final Settlement | Treasurer (+ second-signer for write-off) |
| 9.1 Statement Import | Accountant |
| 9.2 Match Worksheet | Accountant |
| 9.4 Finalise Reconciliation | Treasurer |
| 10.1–10.3 Statements | Any (read) · Treasurer (auto-mail config) |
| 11.1–11.4 Statutory Returns | Treasurer |
| 12.1 Inter-Branch Transfer | Treasurer (both branches confirm) |
| 13.1 Audit Pack | Treasurer |
End of Vitta Fin forms specification. ~28 forms across 13 sub-modules.