Inspiration
A payment record is not proof that an invoice is settled. Partial payments, refunds and uncertain references can make a simple paid/unpaid dashboard misleading. Clearledger makes these exceptions visible before a merchant acts.
What it does
The prototype provides an invoice table beside an exception-review queue. Users can search, filter statuses, inspect evidence, mask identifiers, import JSON reports locally and export reconciliation JSON. Refund-affected invoices keep a human-review flag. No payment, refund or customer-message action is available.
UX approach
The primary flow is: inspect the summary, identify an unresolved invoice, open its evidence, then decide what to investigate. Status text accompanies color; controls have labels, and the import flow preserves the previous valid report when a new file fails. The interface prioritizes scanning and comparison rather than decorative dashboards. No merchant usability study has been conducted yet.
How it was built
Node.js and browser JavaScript implement a local interface and integer minor-unit accounting. HTML/CSS define the workspace; Lucide supplies icons. The source package includes synthetic fixtures and reproducible tests. On October 5, 2026, 64 automated tests passed with zero failures or skips, and syntax checks passed. These are accounting/contract tests, not proof of every browser workflow or production safety.
Challenges and learning
Gross matched payments must not be confused with net cash or profit. Pending events and refunds cannot silently settle an invoice. Failed or racing imports must not discard valid evidence. Keeping these distinctions visible shaped both the engine and the UI.
Scope and disclosure
This is a functional design prototype with synthetic demo records. Screenshots show an earlier local UI iteration. A separate read-only PayPal sandbox reporting check succeeded, but no credentials or real account records are distributed. Optional local-AI adapter code exists; actual model inference is not verified and is not claimed as a working feature. Existing components were developed before registration and are reused transparently. Development and submission preparation used substantial AI assistance, including Codex. No production deployment, merchant validation, earnings or prize is claimed.
Try it
Download the source archive from the linked repository, extract it, run npm ci followed by npm start, and open http://127.0.0.1:3221 locally. No sandbox account or model is required for the synthetic prototype. The local address is not a publicly hosted demo.
Log in or sign up for Devpost to join the conversation.