Ledgerline Payments
A reconciliation and payouts engine for a marketplace moving money across borders.
Money moved through four providers, each with its own file format, settlement timing and fee model. Reconciliation was a manual month-end exercise, and finance could not state with confidence that the books were correct.
We built a double-entry ledger as the system of record and normalised every provider into a single transaction model feeding it. Reconciliation runs continuously, and discrepancies are flagged the moment they appear rather than at month end.
Provider normalisation
Adapters translate each provider's data into one canonical transaction shape.
Double-entry ledger
Immutable, balanced ledger that finance can trust as the source of record.
Continuous reconciliation
Every inbound event is matched in near real time; breaks are raised immediately.
Scheduled payouts
Configurable payout runs with approval gates and a complete audit history.
- 01Frontend
Operations console for reconciliation, payouts and audit review
- 02API Layer
Idempotent write API, signed webhooks, strict input validation
- 03Services
Ingestion, matching engine and payout scheduler communicating over Kafka
- 04Database
Append-only ledger in Postgres with partitioned transaction history
- 05External Integrations
Payment providers, banking rails and the data warehouse
Frontend
- React
- TypeScript
- Vite
- Tailwind CSS
Backend
- Go
- Node.js
- Kafka
Database
- PostgreSQL
- BigQuery
Cloud
- GCP Cloud Run
- Pub/Sub
- Cloud SQL
DevOps
- Terraform
- GitLab CI
- Grafana
- Reconciliation moved from monthly to continuous
- One ledger finance can rely on
- Payout runs with enforced approval controls
- Clear path to add new providers