Section 22 of the Micro, Small and Medium Enterprises Development Act requires a buyer to pay a registered micro or small enterprise within 45 days of accepting the goods or services, or the shorter period agreed in writing. Checking this on an audit means three things have to line up on each invoice: a reliable flag confirming the vendor is actually Udyam-registered as micro or small, an accurate invoice/acceptance date, and either an actual payment date or confirmation the invoice is still unpaid. Any invoice flagged MSME where the gap from invoice date to payment date (or to today, if unpaid) exceeds 45 days is a breach worth pulling, separate from the disclosure and section 23 disallowance questions that follow from it.
Why a one-line rule turns into a three-column problem
The rule itself is simple. The purchase register usually isn't built around it. Vendor master data frequently has no reliable MSME field at all, or one that was populated once at vendor onboarding and never revisited even after a vendor's Udyam status changed. Invoice dates and acceptance dates can differ. And "payment date" in an export is sometimes the date an entry was recorded in the books rather than the date money actually left the bank — a distinction that matters a lot when the test is counting days.
What a blank MSME flag actually means
- It does not mean the vendor isn't MSME-registered — it usually means the field was never filled in.
- Treating a blank as "not MSME" understates the population at risk and is the single most common way this test misses real exposure.
- The honest output for a blank flag is "can't determine from this data," not a pass.
A vendor that was registered as MSME after the first few invoices of the year is still flagged "MSME" for the whole year in most purchase registers that only carry one static flag — the test can only be as current as the underlying vendor master.
Where the test stops, and what has to happen next
Finding a delayed invoice is the start of the question, not the end of it. The section 23 disallowance under the Income Tax Act, the exact disclosure wording required in the financial statements, and whether an explanation exists for the delay are all separate steps that a date comparison alone can't resolve. The value of getting the comparison right is that it tells the team which invoices are actually worth spending that time on.
This is practical guidance written for audit teams, not an authoritative statement of any standard or statute. Standards, forms and timelines change. Check the current text issued by the ICAI and the relevant authority before relying on anything here in an audit file.
Related resources
- CARO & Companies ActMSME disclosure testing under Section 22 and CAROIdentifying MSME vendors, testing 45-day payment tracking and interest disclosure, and why the vendor master needs Udyam enrichment before this test is even possible.
- CARO & Companies ActCARO statutory dues clause: testing approachHow to test timely deposit of statutory dues for CARO reporting, handle disputed dues disclosure, and avoid redoing work already done in the GST and payroll sections.
- Audit workflow & automationAudit sampling methods for Indian CA firmsStatistical vs judgmental sampling, when full-population testing removes the need to sample, when sampling still applies, and what drives sample size.
Free tools, no signup
Each one reads a file entirely in your browser — or, for two of them, just answers a few questions — and nothing is ever uploaded.
- Purchase register checkDuplicate payments, round-sum amounts, weekend-dated invoices, incomplete records.
- GSTR-2B reconcilerMatches your purchase register against GSTR-2B — missing invoices either side, amount mismatches.
- Bank reconciliation checkerMatches your cash book against a bank statement — what's outstanding on each side.
- Fixed asset register checkDuplicate asset codes, missing location or useful life, negative net book value.
- Payroll red-flag scannerBank accounts shared across employees, and records missing an ID, PAN or salary.
- CARO applicability checkerAnswer a few questions about the company and see which CARO 2020 clauses likely apply.
- Related-party transaction screenerTransactions above a threshold you set with no approval reference, grouped by counterparty.
- Depreciation useful life checkerCompares a useful life in use against the Schedule II, Part C indicative figure.
- Materiality calculatorOverall and performance materiality against PBT, revenue, assets or equity, with reasoning shown.
- Sample size calculatorStatistical sample size for a test of controls or a substantive test of detail.