Double-Entry Accounting
for Platform Services
Multi-tenant journals, hold-capture, and real-time balances. The financial primitive that powers FF Banking and FF Commerce.
The accounting primitives you need
Six building blocks. Every financial operation in your platform reduces to these.
Double-Entry Journals
Every transaction records balanced debits and credits. No silent balance discrepancies.
Hold-Capture
Reserve funds with a hold, then capture or release. Two-phase commit for payments.
Real-time Balances
Total, available, and held amounts computed from the journal. Always consistent.
Multi-Tenant Isolation
Each org gets its own SQLite database. Zero data leakage between tenants.
Idempotent Operations
Every entry and hold accepts an idempotency key. Safe retries, no duplicates.
Five Account Types
Asset, liability, equity, revenue, expense. Full chart of accounts per tenant.
The foundation of the financial stack
Every financial service builds on FF Ledger. One journal, many products.
API Reference
Nine endpoints. Accounts, entries, and holds - the complete surface area.
| Method | Endpoint |
|---|---|
| POST | /v1/accounts |
| GET | /v1/accounts |
| GET | /v1/accounts/{id}/balance |
| POST | /v1/entries |
| GET | /v1/entries |
| POST | /v1/holds |
| POST | /v1/holds/{id}/capture |
| POST | /v1/holds/{id}/release |
| GET | /v1/holds |
Integrate in minutes
Call FF Ledger over HTTP with an org slug and API key. That's it.