Home / Help Center / pos-app / Money & Accounts / Cheques
🏦 Money & Accounts

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.

📍 Menu path: Money & Accounts → Cheques
👤 Who uses it: Owners/Admins and staff with Money/Billing permission; Cheques feature must be enabled on your plan
🏷️ Plan tier: advanced+

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

Step-by-Step Guide

1 Record a new cheque

  1. Click Add Cheque.
  2. Enter Cheque Number, Cheque Date and Due Date (all required) and the Amount (required).
  3. Fill in Bank Name (required), and optionally Branch Name, Account Number and IFSC Code.
  4. 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.
  5. Add optional Notes and click Create Cheque.

2 Clear, bounce or cancel a pending cheque

  1. 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.
  2. Clearing needs no extra input — it immediately records today as the clearance date.
  3. Bouncing requires you to pick a Reason from a dropdown: Insufficient Funds, Account Closed, Signature Mismatch, Stop Payment, or Other.
  4. Cancelling requires a free-text Reason.
  5. Confirm the action — the cheque's status badge, the summary cards, and any linked ledger updates immediately.
💡 Bouncing or cancelling a cheque cannot be undone from this page — double-check the cheque before confirming.

3 View full cheque details

  1. Click the eye icon on any cheque row to open its detail modal.
  2. 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.
  3. If the cheque is overdue, a red "Payment Overdue!" banner shows exactly how many days it has been outstanding.
  4. From here you can Edit (Pending only), Clear, Bounce, or Cancel using the footer buttons.

4 Filter, search and monitor the register

  1. The four summary cards at the top show count and total amount for each status (Pending, Cleared, Bounced, Cancelled) at a glance.
  2. 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.
  3. Use the search box in the data grid toolbar to find a cheque by number, party, or bank.
  4. 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 / ButtonWhat 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 CodeOptional additional bank details for record-keeping and reconciliation.
Customer / Supplier linkOptional 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 actionMarks a Pending cheque Cleared with today as the clearance date; no reason required.
Bounce action + ReasonMarks a Pending cheque Bounced; requires selecting a reason (Insufficient Funds, Account Closed, Signature Mismatch, Stop Payment, Other).
Cancel action + ReasonVoids a cheque; requires a free-text reason.
Overdue indicatorShown 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.
NotesFree-text notes on the cheque record.

Tips & Best Practices

Troubleshooting & FAQ

The Cheques menu item is missing.
Cheques is a separately-gated feature at the Advanced plan tier or above. Check Settings → Billing, or ask your Admin whether it is enabled for your account.
I can't edit a cheque anymore.
Only Pending cheques can be edited. Once a cheque is Cleared, Bounced or Cancelled, its record is locked to preserve the audit trail — you would need to create a new cheque entry if there was a genuine data error.
I bounced a cheque by mistake — can I undo it?
No, status changes (Clear/Bounce/Cancel) are final from this page. Contact support or your database administrator if a correction is truly needed.
Why does a cheque show as overdue even though it's "only a few days" late?
Overdue is calculated the day immediately after the Due Date passes while the cheque is still Pending — there is no grace period built in.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/packages/pos-react-lib/src/pages/cheque/ChequeRegister.jsx

Backend endpoints used:

  • GET /cheques
  • POST /cheques
  • PUT /cheques/:id
  • DELETE /cheques/:id
  • GET /cheques/summary
  • POST /cheques/:id/clear
  • POST /cheques/:id/bounce
  • POST /cheques/:id/cancel
  • GET /customers
  • GET /suppliers

Related tables (db-core repositories):

  • Cheque
  • Customer
  • Supplier

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.