- Checks Module
Controlled, Auditable, and Legally Traceable Check Payment Management
- Conceptual Overview (What the Checks Module Really Is)
The Checks module is a specialized financial control layer designed exclusively for managing check-based payments, which are fundamentally different from digital payments.
Unlike credit cards or bank transfers, checks are delayed, conditional, and legally sensitive.
They may:
-
Be deposited days later
-
Bounce due to technical or legal reasons
-
Enter legal recovery workflows
-
Require manual follow-up and documentation
Because of this, the Checks module exists as a dedicated operational system, not just another payment list.
- Why Checks Require Their Own Module
Checks introduce risk, delay, and legal exposure.
This module ensures:
-
Every check has a life cycle
-
Every status change is intentional
-
Every rejection is explicitly documented
-
Every image is stored and traceable
-
Every check is owned by a responsible team member
Without this structure, checks would become financial blind spots.
- Life Cycle of a Check (High-Level Flow)
Check Received
│
▼
In Treatment
│
├─► Paid Up
│
├─► In Agreement
│
└─► Legal / Attorney
Each stage reflects a real-world banking and legal state, not just an internal label.
- Status System (Operational Meaning, Not Just Colors)
Each check status represents a financial and legal condition:
-
Paid Up (Green)
The check cleared the bank. Money is confirmed. No further action required.
-
In Treatment (Yellow)
The check is deposited or under review. Outcome is not yet known.
-
In the Care of an Attorney (Red)
The check failed and entered legal recovery. This status freezes financial assumptions. -
In Agreement (Gray)
A settlement exists. Payment may be structured, delayed, or partially agreed.
These statuses directly affect reports, obligo, and risk exposure.
❌ Rejection Reasons – Legal Accountability Layer
A rejected check is never “just failed”.
The system enforces 27 predefined banking-standard rejection reasons, ensuring:
-
Uniform terminology
-
Legal defensibility
-
Bank compatibility
-
Accurate recovery workflows
Each rejection reason is stored permanently and linked to:
-
Status
-
Notes
-
Team member
-
Customer record
This is essential for legal disputes, audits, and debt recovery.
- Extra Detail JSON – Why It Exists
Checks carry non-relational data:
-
Holder name
-
ID number
-
Pay-to-order text
-
Images
-
Assigned team members
Instead of fragmenting the schema, all check-specific data is stored inside a structured JSON object, giving flexibility while preserving consistency.
This allows:
-
Future expansion
-
Multiple images
-
Multi-member responsibility
-
Zero schema migrations
- Team Member Assignment (Ownership & Responsibility)
Every check can be assigned to one or more team members.
This transforms checks from passive records into owned financial tasks.
Benefits:
-
Clear responsibility
-
Targeted visibility
-
Reduced errors
-
Faster resolution
Non-admin users see only checks assigned to them, while admins retain full oversight.
- Image Management (Proof & Evidence)
Each check can store multiple images, such as:
-
Front / back of check
-
Bank stamp
-
Legal annotations
Images are:
-
Stored securely
-
Previewed inline
-
Viewable in full resolution
-
Permanently linked to the check record
This makes the module audit-ready at all demonstrates proof of payment or failure.
✏️ Editing Philosophy (Controlled, Not Freeform)
Check details can be edited, but never casually.
Edits update:
-
Structured JSON fields
-
Notes
-
Status
-
Rejection reasons
Every change is intentional and reflected immediately in:
-
Reports
-
Obligations
-
Legal workflows
There is no “silent correction.”
- Export & Reporting Integrity
Exports include:
-
Check holder details
-
Status
-
Rejection reasons
-
Assigned members
-
Notes
-
Amounts & currency
Exports always:
-
Respect filters
-
Reflect live status
-
Preserve legal context
This ensures exported data is safe for accountants, lawyers, and auditors.
- Security & Access Control
The Checks module enforces:
-
Organization-level isolation
-
Role-based visibility
-
Assignment-based access
-
Safe deletion with confirmation
No user can accidentally:
-
View unauthorized checks
-
Modify unrelated records
-
Delete checks without intent
