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.

Built With

Share this project:

Updates

Submission history