Ledgers as a Service
One ledger underneath all of it.
Double-entry, real-time, reconciled against the rails — so every balance traces to the entries behind it.
- Double-entry
- Real-time
- Reconciled to InstaPay & PESONet
- Queryable
- Immutable
Every movement is a line you can read.
Payments, payouts and wallet transfers post to the same ledger as double-entry lines — and you can post your own. Nothing moves without a matching entry.
- One ledger across payments, payouts and wallets
- Debits equal credits, always
- Query by account, transaction or external ID
Reconciled to the rails as they clear.
A transfer’s ledger transaction posts when InstaPay or PESONet confirms it. Anything still pending or returned shows the same day, not as a month-end surprise.
- Entries post when the rail confirms
- Pending and returned transfers visible the same day
- Reconciliation export, daily or monthly
Sub-ledgers for every customer.
Each wallet, sub-account and credit account is its own ledger account. Sum them for the parent; drill down for the auditor.
- Per-customer sub-ledgers
- Group accounts with metadata
- Entry history per account
Developer API
Debits and credits, one transaction.
Every transaction pairs its debits and credits, and carries the reference that caused it. Balances are sums you can recompute, not numbers you have to trust.
{ "id": "eaff7c71-1c8c-4c3d-b88f-469712147bbc", "object": "ledger_transaction", "status": "posted", "external_id": "top_5g2b8c", "ledger_entries": [ { "direction": "debit", "amount": 200000, "ledger_account_id": "a9a8b9ae-90a5-4f6f-b21b-ad9b9a096084" }, { "direction": "credit", "amount": 200000, "ledger_account_id": "3f1c2b7e-5d4a-4e9b-8c61-0a2f7d9e4b13" } ], "effective_at": "2026-09-11T01:41:00Z"}
