Cheque Check

Reads a cheque date as written and shows the safe deposit window, so a cheque isn't presented after it expires, before its date or with a rejected correction.

StopsCheque bounced as expired or post-dated

Installation

pnpm dlx shadcn@latest add https://bollard-ui.vercel.app/r/cheque-check.json

The files land in your project. They're yours to edit.

Usage

cheque-check-usage.tsx
import { ChequeCheck, type ChequeMode } from "@/components/ui/cheque-check"

<ChequeCheck key="receive" mode="receive" now={NOW} defaultValue={{ date: "10072026", amount: 75000 }} />

What it catches

  • Impossible dates (31 November) and two-digit years
  • Cheques older than three months, or post-dated
  • A January cheque still carrying last year's date
  • Corrections other than to the date, which need a fresh cheque
  • Amounts where Positive Pay applies (₹50,000 and above)

Props

ChequeCheck props
PropTypeDefault
value

Controlled cheque details.

ChequeDetails—
defaultValue

Initial details when uncontrolled.

ChequeDetails—
onValueChange

Called on every edit and one-tap fix.

(value: ChequeDetails) => void—
mode

"receive": you are about to deposit it. "issue": you are writing it. Default "receive".

ChequeMode"receive"
now

"Today" in epoch ms, for deterministic rendering. Read from the clock after mount when omitted.

number—
rules

Validity, Positive Pay thresholds and the "deposit soon" window.

ChequeRules—
locale

Locale for dates and money.

string"en-IN"
currency

ISO currency code for the amount.

string"INR"
showAmount

Hides the amount field when the amount doesn't matter to you.

booleantrue
messages

Any visible string.

Partial<ChequeCheckMessages>—

* required. Also accepts the native props of <div> (className, aria-*, data-*…), passed through to it.

Accessibility

  • Labelled date, amount and correction fields; aria-invalid and aria-describedby to the issues list
  • Focus moves to the first fix
  • Issues use icons plus text

Only what the source does. Test with your own screen reader and content before shipping.

Limitations

  • RBI doesn't define whether the three-month window ends on the same date or the day before; the earlier day is shown as safe
  • Your bank may make Positive Pay mandatory at a different amount
  • India rules by default; other countries need custom rules

Rules

Rules last verified:

Informational; check with your bank. Checked: three-month validity from the instrument's date; changes to payee or amount need a fresh cheque; Positive Pay enabled for ₹50,000 and above, banks may mandate it from ₹5,00,000. Copied components don't update themselves, so re-check after rule changes (see updating a component).

What it stops

Cheque bounced as expired or post-dated

Also known as

cheque · check · rbi 3 month rule · cts cheque · positive pay · cheque date · bank deposit · pdc

Dependencies

Pairs well with