Skip to content

lab

Payment Reconciliation

Deterministic payout decomposition and matching, with an auditable queue for human review

What it does

A net Stripe deposit hides revenue, fees, refunds, disputes and FX. This preparation agent decomposes payouts into ledger entries, matches them to bank deposits, and puts unresolved discrepancies into a React exception queue. A person remains the checker; it does not reconcile a ledger vendor account directly.

Payout arithmetic and ledger posting are deterministic. CSV and OFX ingestion, exact and subset-sum matching, a double-entry ledger and separate decision/review audit records support the workflow. Ledger and audit histories are append-only with hash chains, and money uses Decimal rather than float.

The repository documents 167 passing tests and a 600-instance synthetic scenario catalogue. Its L1 report records 100% precision and 81.18% recall against 510 ground-truth pairs. Those are fixture results, not client outcomes or a guarantee on live bank data.

Walkthrough on request

Stack

  • Python
  • FastAPI
  • PostgreSQL
  • LangGraph
  • React
  • pytest

All data in this project is synthetic.