Skip to content
OnlyProjects
MCA · BlockchainFor educational purposes only
Code included

MSME Invoice Acceptance and Delayed-Payment Interest Ledger (MSMED Act 45-Day Rule)

A tamper-evident, hash-linked event ledger that runs the MSMED 45-day clock, computes s.16 interest and tracks disputes to MSEFC referral

Mapped to your syllabusIGNOU MCA_NEW — MCSP-232 guidelines (2025) · MCSP-232 Project · Semester 4

Overview

1 min read

Micro and small enterprises in India wait far too long to be paid. The MSMED Act, 2006 gives them statutory weapons — section 15 requires buyers to pay within an agreed period not exceeding 45 days from acceptance, and section 16 makes late buyers liable to compound interest with monthly rests at three times the RBI-notified bank rate — yet an individual supplier still tracks invoices in Excel, computes interest by hand and argues over tampered-looking printouts when a dispute reaches the MSEFC (filed through the MSME Samadhaan / MSME ODR portals).

This project builds a tamper-evident invoice and payment-event ledger in Node.js for that fight. Every business event — invoice issued, delivery, objection, acceptance (actual or deemed), payment, dispute, MSEFC referral — is appended with a SHA-256 hash chained to the previous event, so any later edit breaks the chain and the verifier flags it. A daily anchor root hash, exported and preserved outside the system (printed register, e-mail, or a public service), proves the ledger state existed on a given day. A statutory-clock module implements deemed acceptance (the 15-day written-objection window), the 45-day due date and the section 16 interest calculation; a dispute state machine mirrors the Samadhaan workflow; and a React dashboard shows ageing, interest statements, defaulter rankings and chain-integrity status.

No cryptocurrency, tokens or consensus network are involved — the ledger borrows blockchain's tamper-evidence without pretending two parties will run nodes. The stack is IGNOU-approved and the design stores no government ID numbers.

Relevant for
All India
Level
Advanced · 16 weeks · solo
Common at
IGNOU, Anna University, Visvesvaraya Technological University
Updated
Nov 2026

Syllabus alignment

IGNOU · MCA_NEW — MCSP-232 guidelines (2025)

MCSP-232 · Project · Semester 4 · 12 credits · 200 = report 150 + viva 50 (≥40% each)

Subjects this project applies
  • Node.js
  • JavaScript (React/Angular)
  • MySQL
  • NoSQL concepts (optional archive store)
How it is evaluated

Team: 1 (2 only with prior written approval for ≥ 1 person-year effort)

15–20-page proposal (DFD, ER, PERT/Gantt, schema, security); 100–125-page report excluding code; must include software development. Prohibited: dBASE/FoxPro/MS-Access, VB + Access, C/C++ for information systems

Also fits: Anna University MCA Regulation 2021, VTU MCA 2022 Scheme.

What's in the box

11 parts · 5 free · 2 previewed · 4 unlock for ₹2,000

Problem & synopsis

6 min read

Problem statement

When a micro or small supplier chases a delayed payment, three things repeatedly go wrong. First, the record-keeping: invoices, delivery proofs and payment entries live in editable spreadsheets, so the buyer can allege manipulation and the supplier cannot prove otherwise. Second, the arithmetic: deemed acceptance (the 15-day written-objection rule), the 45-day due date and section 16's compound interest with monthly rests at three times the RBI bank rate are consistently miscalculated by hand, weakening legitimate claims. Third, the escalation path: the MSME Samadhaan/ODR workflow has clear stages — application, buyer response, MSEFC conciliation, arbitration — but the supplier has no tool that tracks an invoice through those states. What is needed is a small, verifiable system in which every invoice event is appended to a hash-linked ledger that any later tampering would break, the statutory clock and interest are computed automatically and reproducibly, and disputes are tracked as first-class states all the way to MSEFC referral.

Synopsis

Abstract

Delayed payments are the single biggest working-capital complaint of Indian MSMEs. The MSMED Act, 2006 answers them with a 45-day payment rule (section 15), compound interest with monthly rests at three times the bank rate (section 16) and a facilitation-council remedy (section 18) now filed online through the MSME Samadhaan portal, with new applications moving to the MSME ODR portal. But when a supplier reaches that forum, the evidence is usually a set of Excel sheets and e-mails that a buyer can easily contest. This project delivers a Node.js event ledger that records every invoice, acceptance and payment as a hash-linked, append-only event, automates the statutory clock and interest computation, and exports court-ready statements — making the supplier's record tamper-evident by construction.

Introduction

Section 2 of the MSMED Act defines acceptance, including deemed acceptance when the buyer files no written objection within 15 days of delivery; section 15 then fixes the payment deadline; section 16 fixes the interest. These are date-driven rules — perfect for software — yet most small suppliers apply them with a calculator. At the same time, examiners and employers keep asking what "blockchain" actually contributes to a business application beyond the buzzword. This project answers both: it uses the core cryptographic idea (a hash chain over an append-only log, with periodic root anchoring) where it genuinely helps — proving a record was not edited after the fact — and it refuses where it does not (no token, no distributed consensus for a one-party ledger).

Existing system vs proposed system

  • Excel registers / Tally exports / e-mail threads: mutable, unversioned, no proof of when an entry was made; interest computed by hand; disputes become word-versus-word.
  • GST e-invoicing: built for tax compliance, not for tracking acceptance dates, the 45-day clock or section 16 interest.
  • Proposed: an event-sourced, hash-chained ledger with an integrity verifier, a statutory-clock engine (15-day objection window, 45-day due date, compound monthly-rest interest at 3× the configurable bank rate), dispute states mirroring the Samadhaan/ODR workflow, optional daily root-hash anchoring, and a dashboard with ageing buckets and defaulter rankings.

Feasibility study

  • Technical: SHA-256 chaining is a few lines with the standard node:crypto module; SQLite in WAL mode gives a safe append-only store; React covers the dashboard. All steps run on a student laptop.
  • Economic: zero licence cost — Node.js, SQLite, MySQL and React are free.
  • Operational: single-supplier deployment with three roles (admin, accountant, read-only auditor); the interest engine is configurable so an RBI bank-rate change is a config edit, not a code change.
  • Legal fit: the design never stores government ID numbers (GSTIN, Udyam, PAN, Aadhaar), and an integrity-verified log supports the kind of reliable electronic records the Information Technology Act contemplates — though admissibility questions stay outside the project's claims.

Objectives

  1. 01Design an event-sourced ledger schema in which every invoice-lifecycle event is an immutable row with sequence number, payload, previous-hash and own hash.
  2. 02Implement the SHA-256 hash chain with node:crypto and a full-chain integrity verifier that walks and recomputes the chain on demand.
  3. 03Automate the statutory clock: acceptance and deemed acceptance under the MSMED Act's 15-day written-objection rule, the 45-day due date of section 15, and overdue ageing buckets (0–45, 46–90, 90+ days).
  4. 04Implement the section 16 interest engine — compound interest with monthly rests at three times a configurable RBI bank rate — with partial-payment application and a hand-verifiable statement.
  5. 05Model the dispute workflow as a state machine (normal → disputed → resolved, or referred to MSEFC/ODR) mirroring the MSME Samadhaan process.
  6. 06Provide an optional anchoring service that exports a daily root hash for preservation outside the system.
  7. 07Build a React dashboard with ageing reports, interest statements, buyer defaulter rankings and a visible chain-integrity status.
  8. 08Secure the system with role-based access (admin, accountant, auditor), input validation and the deliberate exclusion of all government ID numbers from the schema.

Scope

In scope

  • A single supplier organisation (the MSME) recording invoices against many buyers; users are supplier staff plus a read-only auditor.
  • Full invoice lifecycle: issue → delivery → objection/acceptance (actual or deemed) → due → paid / overdue → dispute → resolution or MSEFC referral.
  • Hash-chained append-only event store (SQLite, WAL) with a MySQL read model for fast queries, an interest engine, an anchoring exporter and a React dashboard.
  • Section 16 interest statements and an event-history annexure formatted for MSEFC/ODR filing support.

Out of scope (v1)

  • No cryptocurrency, tokens, smart contracts on public chains, or multi-party consensus — the buyer does not run a node.
  • No GST return filing, e-invoicing (IRN) generation or accounting-ledger replacement; the ledger complements, not replaces, Tally-style books.
  • No payment-gateway integration; payments are recorded with a reference number (NEFT/UPI reference).
  • No storage of statutory identifiers: GSTIN, Udyam registration number, PAN and Aadhaar are deliberately absent from the schema; parties are referenced by name and an internal code.
  • No legal-advice features — the tool produces statements; filing and advocacy remain with the supplier and counsel.

Methodology

The project follows an incremental SDLC with risk retired early — the hash chain and the interest engine are built first because everything else depends on them. It spans 16 weeks, matching the MCSP-232 project semester.

PhaseWeeksActivitiesDeliverable
Statutory study & requirements1–2Read MSMED Act ss. 2, 15, 16, 18; study MSME Samadhaan/ODR flow; functional requirements; MCSP-232 proposal (15–20 pages)Approved proposal with DFD, ER, PERT/Gantt, schema, security section
Design3Event types and state machine, level-0/1/2 DFDs, ER diagram, REST API contract, threat listDesign document
Increment 1 — ledger core4–5Append-only SQLite store, SHA-256 chain, integrity verifier, event APIVerifiable ledger with tests
Increment 2 — statutory engine6–7Acceptance window, 45-day clock, ageing buckets, s.16 monthly-rest interest with partial paymentsInterest statements match hand-computed golden cases
Increment 3 — disputes8Dispute state machine, MSEFC referral states, annexure exportDispute workflow demo
Increment 4 — anchoring9Daily root hash export, external-preservation instructionsAnchor files + procedure note
Increment 5 — dashboard10–11MySQL read model, React dashboard (ageing, statements, defaulter list, integrity badge)Working UI
Security & hardening12Role-based access, validation, tamper drill, backup/restore rehearsalSecurity section of report
Testing13Jest unit tests, API integration tests, tamper test, UAT with demo dataTest report
Documentation & viva prep14–16MCSP-232 report (100–125 pages excluding code), PPT, viva rehearsalFinal submission

Testing approach: the interest engine is pinned by golden test cases computed by hand (including month-end and leap-month boundaries); the ledger has a property test that appends random valid events and asserts verifier success, and a tamper test that silently modifies a row and asserts the verifier fails; the API gets Jest integration tests; a 12-invoice demo dataset is validated with user-acceptance checklists.

Architecture & tech stack

4 diagrams · 8 technologies · 2 min read

  • Node.js 20
  • Express
  • JavaScript (ES modules)
  • node:crypto (SHA-256)
  • SQLite (append-only, WAL)
  • MySQL
  • React
  • Jest

The system is a small three-tier application with an event-sourced core. The presentation tier is a React dashboard for the supplier's staff and auditor. The application tier is an Express REST API that validates input, enforces roles, appends events and serves the read models. The data tier has two stores: SQLite in WAL mode holds the append-only event ledger (the system of record), and MySQL holds derived, rebuildable read models for fast queries — a separation that keeps the evidence store pure while the query side stays flexible.

Every mutation is an event: nothing in the ledger is ever updated or deleted. Corrections are new compensating events, which is what makes the hash chain meaningful. Each event stores its sequence number, type, canonical-JSON payload, timestamp, the previous event's hash, and its own SHA-256(previousHash + canonical JSON). The verifier recomputes the chain; a daily job exports the latest hash as an anchor that can be preserved outside the system (printed register, e-mail, or later a public timestamping service) to prove the state existed that day.

flowchart TD
  S(["Supplier admin / accountant"]) -->|"invoice, acceptance, payment events"| API["Express REST API"]
  A(["Auditor (read-only)"]) -->|"verify, view"| API
  API --> V["Payload validation + role check"]
  V --> EV["Append event: seq, type, payload, recorded_at"]
  EV --> HC["Hash chain: SHA-256(prevHash + canonical JSON)"]
  HC --> ST[("SQLite ledger - append-only, WAL")]
  ST --> VF["Integrity verifier: recompute full chain"]
  ST --> RM["Read-model builder (rebuildable)"]
  RM --> MY[("MySQL query index")]
  RM --> IE["Statutory engine: 15-day objection, 45-day due date, s.16 monthly-rest interest"]
  ST --> AN["Anchor service: daily root hash export"]
  AN --> EXT["Preserved outside: printed register / e-mail / public timestamping"]
  MY --> UI["React dashboard: ageing, statements, defaulters, integrity badge"]
  IE --> UI

Ledger schema (core tables)

erDiagram
  INVOICE_STATE ||--o{ LEDGER_EVENT : "is built from"
  INVOICE_STATE ||--o{ DISPUTE : "may enter"

  LEDGER_EVENT {
    int seq PK
    string event_type
    string payload_json
    string prev_hash
    string hash
    datetime recorded_at
  }
  INVOICE_STATE {
    int invoice_seq PK
    string invoice_no
    string buyer_code
    int amount_paise
    string state
    date acceptance_date
    date due_date
    int overdue_days
  }
  DISPUTE {
    int dispute_seq PK
    string invoice_no
    string status
    date raised_on
    date resolved_on
  }

Invoice lifecycle and dispute states

flowchart TD
  I["Issued"] --> DL["Delivered"]
  DL -->|"no written objection in 15 days"| DA["Deemed accepted (s.2)"]
  DL -->|"objection filed"| OR["Objection raised"]
  OR -->|"objection removed"| DA
  DL -->|"accepted in writing"| DA
  DA --> DUE["Due within 45 days (s.15)"]
  DUE --> P["Paid in full"]
  DUE --> OV["Overdue - s.16 interest running"]
  OV --> PP["Part payment recorded"]
  PP --> OV
  OV --> DP["Disputed by buyer"]
  DP --> RS["Resolved / settled"]
  DP --> MF["Referred to MSEFC / ODR (s.18)"]

Level-2 DFD — statutory engine

flowchart LR
  API(["REST API"]) --> P1["2.1 Validate event payload"]
  P1 --> P2["2.2 Append to hash chain"]
  P2 --> D1[("D1: Ledger events")]
  D1 --> P3["2.3 Derive invoice state"]
  P3 --> D2[("D2: Invoice state")]
  D2 --> P4["2.4 Compute ageing and s.16 interest"]
  P4 --> D3[("D3: Interest statements")]
  P4 --> U(["Dashboard / auditor"])

Modules

6 modules

  1. Module 01

    Invoice & Event Capture API

    An Express REST API where the accountant records events — invoice issued, delivery, buyer objection, acceptance, payment with a NEFT/UPI reference, dispute raised or resolved. Every request is validated for required fields and dates before it may touch the ledger, and every response carries the resulting event hash for the user's own records.

  2. Module 02

    Hash-Linked Ledger Store

    The system of record: an append-only SQLite (WAL) table of events, each storing the previous event's hash and its own SHA-256 over the canonical JSON. There is no update or delete path in code; corrections happen as new compensating events. A verifier endpoint recomputes the entire chain and reports the first broken link if any.

  3. Module 03

    Statutory Clock & Interest Engine

    Implements the MSMED Act's date rules: deemed acceptance when no written objection arrives within 15 days of delivery, the 45-day due date under section 15, ageing buckets (0–45, 46–90, 90+ days), and section 16 interest — compound, with monthly rests, at three times the configurable bank rate — applied from the day after the due date, with part payments recorded against the running balance.

  4. Module 04

    Dispute & MSEFC Workflow

    A state machine mirroring the MSME Samadhaan / ODR process: normal → disputed → resolved, or disputed → referred to MSEFC → awarded/settled. Each transition is an event, so the ledger shows who said what and when. An annexure exporter prints the invoice's full event history and interest statement in the sequence a facilitation council would want to read.

  5. Module 05

    Anchoring Service

    Each night the service computes the current chain tip's root hash and writes an anchor file with the date. The supplier preserves it outside the system — printed and signed in a register, or e-mailed to themselves — so that even if the database were later replaced wholesale, yesterday's anchor proves the ledger content existed on that date. Instructions for future public timestamping are included.

  6. Module 06

    Supplier Dashboard & Reports

    A React dashboard with role-specific views: accountant (event entry, statements), admin (buyer master, configuration), auditor (read-only history and integrity badge). Reports cover overdue ageing by buyer, a buyer-defaulters ranking, section 16 interest statements per invoice, and a prominent chain-integrity indicator fed by the verifier.

Slides

13 slides · titles free · bullets, notes and the .pptx unlock

  1. Slide 1

    MSME Invoice Acceptance and Delayed-Payment Interest Ledger

  2. Slide 2

    The MSME delayed-payment problem

  3. Slide 3

    Problem Statement

  4. Slide 4

    Proposed System

  5. Slide 5

    Objectives

  6. Slide 6

    Technology Stack

  7. Slide 7

    System Architecture

  8. Slide 8

    Hash Chain — How Tamper-Evidence Works

  9. Slide 9

    Statutory Engine (s.2, s.15, s.16)

  10. Slide 10

    Dispute Workflow & MSEFC Mapping

  11. Slide 11

    Security & Privacy by Design

  12. Slide 12

    Testing & Demo

  13. Slide 13

    Conclusion & Future Scope

Bullets, speaker notes and the .pptx · ₹2,000

The titles above are the real outline. The rest is what you present from.

Unlock for ₹2,000

Viva questions & answers

3 of 18 answered free · 15 unlock

Read each answer, close it, and say it in your own words. Your viva will ask. Now you'll know.

  1. 01Concept

    How does a hash chain make records tamper-evident?

    Each event stores the SHA-256 hash of the previous event together with its own content, so its hash depends on everything before it. If anyone edits an old row, its recomputed hash changes, which breaks the link stored in the next row and every link after it. The verifier walks the whole chain, so a single silent edit anywhere is detected.

  2. 02Concept

    Is this a blockchain? Why did you not build a full one?

    It borrows the blockchain's core construction — an append-only, hash-linked log with periodic anchoring — but it is not a distributed blockchain because there is no second party running a node and no consensus to reach. A single supplier's evidence ledger gains nothing from tokens or mining; claiming otherwise would be architecture theatre, so I scoped it honestly.

  3. 03Concept

    What does 'compound interest with monthly rests' mean under section 16?

    Interest accrues at three times the RBI-notified bank rate, and at each month-end the accrued interest is added to the outstanding amount, so the next month's interest is calculated on principal plus accumulated interest — that is the 'monthly rest'. My engine iterates month boundaries between the day after the due date and each payment, compounding exactly this way.

+15 more questions, with answers

Try the free ones out loud first. Your examiner will not accept “it's in the PPT”.

Source code & how to run

7 steps · complete source code · unlocks with the project

Unlocks with the project · ₹2,000

7 steps · source code zip

Prerequisites, install, seed data and tests, written for demo day. Plus the complete source.

Unlock for ₹2,000

READMEFIRST

253 words · unlocks with the project

What to change before it goes anywhere near a submission. Skipping it is how the demo fails live.

Unlocks with the project · ₹2,000

253 words · ~1 min read

The checklist of things to rename, re-seed and re-think so the project reads as yours.

Unlock for ₹2,000

Instructions

437 words · unlocks with the project

How to study it, adapt it and walk your examiner through it, step by step.

Unlocks with the project · ₹2,000

437 words · ~2 min read

Report structure, formatting rules and the submission checklist your department will grade.

Unlock for ₹2,000

References

7 sources

  1. The Micro, Small and Medium Enterprises Development Act, 2006 (ss. 2, 15, 16, 18) — India Code
  2. MSME Samadhaan — Delayed Payment Monitoring System, Ministry of MSME, Government of India
  3. MSME ODR Portal — online filing of delayed-payment applications, Ministry of MSME
  4. Delayed Payments to Micro and Small Enterprises — Legal Framework, Office of DC-MSME, Ministry of MSME
  5. Node.js v20 Documentation — Crypto module (createHash, SHA-256)
  6. Satoshi Nakamoto, 'Bitcoin: A Peer-to-Peer Electronic Cash System' (the original hash-chain construction)
  7. Andreas M. Antonopoulos, Mastering Bitcoin: Programming the Open Blockchain, 2nd ed., O'Reilly Media

Cite this bundle

OnlyProjects. (2026). MSME Invoice Acceptance and Delayed-Payment Interest Ledger (MSMED Act 45-Day Rule): MCA Blockchain project bundle [Educational resource]. https://onlyprojects.online/projects/mca-blockchain-msme-invoice-delayed-payment-ledger

Future scope

1 min read

  • Merkle-tree anchoring with inclusion proofs and an OpenTimestamps-style public anchor, so a single invoice's event can be proven against the daily root without revealing the rest.
  • Two-party lite network: a signed-event exchange where the buyer's system countersigns acceptance events, adding non-repudiation without full consensus.
  • Accounting integration: Tally XML import/export so the ledger mirrors an existing books of account without re-entry.
  • MSEFC filing pack generator: a single ZIP with the interest statement, event annexure and anchor log laid out for the ODR portal's attachment requirements.
  • Buyer risk scoring: defaulter rankings across the supplier's history with trend charts for credit decisions.
  • Mobile companion for delivery-recording with geotagged proof photos hashed into the chain at capture time.

Keep browsing

Same degree, same syllabus slot, different idea. Pick the one your guide will actually approve.