Cheques
The Cheques page is a register of every cheque payment you've received from customers or issued to suppliers, letting you track each one from Pending through Cleared, Bounced or Cancelled.
Overview
Every cheque record captures the cheque number, cheque date, due (clearance) date, bank details, amount, and an optional link to a specific Customer or Supplier.
A cheque moves through one of four statuses: Pending (not yet cleared), Cleared (successfully honoured), Bounced (dishonoured — requires a reason), or Cancelled (voided — requires a reason).
Pending cheques past their due date are automatically flagged "overdue" throughout the page — in the due-date column, the status chip, and the detail view — so you can follow up before it's too late to redeposit or chase.
This feature is gated behind its own cheques feature flag at the Advanced plan tier or above.
Before You Start
- The Cheques feature must be enabled on your plan (Advanced tier or above) — if the menu item is missing, ask your Admin to check Settings → Billing.
- Linking a cheque to a party is optional but recommended — pick "Customer" or "Supplier" only if this cheque payment relates to one.
Step-by-Step Guide
1 Record a new cheque
- Click Add Cheque.
- Enter Cheque Number, Cheque Date and Due Date (all required) and the Amount (required).
- Fill in Bank Name (required), and optionally Branch Name, Account Number and IFSC Code.
- Under Party Details, optionally choose Customer or Supplier and pick the specific party from the dropdown that appears — or leave it as "None" for a cheque unrelated to a tracked party.
- Add optional Notes and click Create Cheque.
2 Clear, bounce or cancel a pending cheque
- Find the cheque in the register (only Pending cheques show these actions) and click the green check icon to Clear, the red X icon to mark it Bounced, or open its details to Cancel it.
- Clearing needs no extra input — it immediately records today as the clearance date.
- Bouncing requires you to pick a Reason from a dropdown: Insufficient Funds, Account Closed, Signature Mismatch, Stop Payment, or Other.
- Cancelling requires a free-text Reason.
- Confirm the action — the cheque's status badge, the summary cards, and any linked ledger updates immediately.
3 View full cheque details
- Click the eye icon on any cheque row to open its detail modal.
- Review the Cheque Details card (dates, bank, branch, account, IFSC), the Party Details card (linked customer/supplier), and — depending on status — the Clearance, Bounce, or Cancellation information card.
- If the cheque is overdue, a red "Payment Overdue!" banner shows exactly how many days it has been outstanding.
- From here you can Edit (Pending only), Clear, Bounce, or Cancel using the footer buttons.
4 Filter, search and monitor the register
- The four summary cards at the top show count and total amount for each status (Pending, Cleared, Bounced, Cancelled) at a glance.
- Click Filters to reveal status filter toggle-buttons — select one or more of Pending/Cleared/Bounced/Cancelled to narrow the list, or click Clear all to reset.
- Use the search box in the data grid toolbar to find a cheque by number, party, or bank.
- Sort by clicking any sortable column header, and use the export icon to download the current view as a spreadsheet.
Every Field & Button, Explained
| Field / Button | What it does |
|---|---|
Cheque Number * | The physical cheque's number; required. |
Cheque Date * | The date printed on the cheque. |
Due Date * | The date this cheque is expected to be presented/cleared; used to compute overdue status once Pending. |
Amount * | The cheque amount. |
Bank Name * | Issuing bank; required. |
Branch Name / Account Number / IFSC Code | Optional additional bank details for record-keeping and reconciliation. |
Customer / Supplier link | Optional party association — pick a party type first, then the specific customer or supplier. |
Status (Pending/Cleared/Bounced/Cancelled) | The cheque's current lifecycle state, colour-coded throughout the page. |
Clear action | Marks a Pending cheque Cleared with today as the clearance date; no reason required. |
Bounce action + Reason | Marks a Pending cheque Bounced; requires selecting a reason (Insufficient Funds, Account Closed, Signature Mismatch, Stop Payment, Other). |
Cancel action + Reason | Voids a cheque; requires a free-text reason. |
Overdue indicator | Shown automatically on any Pending cheque whose Due Date has passed, both as a warning icon in the table and a red badge/banner in detail view. |
Notes | Free-text notes on the cheque record. |
Tips & Best Practices
- Enter both Cheque Date and Due Date accurately even for cheques you plan to deposit immediately — the overdue tracking depends entirely on Due Date.
- Link cheques to the relevant Customer or Supplier whenever possible so their party history stays complete alongside your Ledger records.
- Review the Pending summary card regularly — a growing pending total with several overdue entries is an early sign you need to chase deposits or follow up with issuers.
- Use a consistent Bounce Reason from the provided list rather than "Other" where possible — it keeps your bounce-reason data analysable over time.
Troubleshooting & FAQ
The Cheques menu item is missing.
I can't edit a cheque anymore.
I bounced a cheque by mistake — can I undo it?
Why does a cheque show as overdue even though it's "only a few days" late?
🧑💻 Developer Notes
Source component(s):
frontend-app/packages/pos-react-lib/src/pages/cheque/ChequeRegister.jsx
Backend endpoints used:
GET /chequesPOST /chequesPUT /cheques/:idDELETE /cheques/:idGET /cheques/summaryPOST /cheques/:id/clearPOST /cheques/:id/bouncePOST /cheques/:id/cancelGET /customersGET /suppliers
Related tables (db-core repositories):
ChequeCustomerSupplier
Redux slices:
scope (selectCurrentScope / getScopeQueryParams)
Feature flag key: cheques (requires advanced plan tier or above)
Days-overdue is computed client-side in calculateDaysOverdue() by diffing the due date against "now" — it is recalculated on every render rather than stored, so it is always accurate to the minute the page is open. The cheque list is fetched in one page with limit: 10000 and handed to the shared DataGrid component for client-side search/sort/pagination/export, the same pattern used by Suppliers and Customer Advance.