Get Started →
Open Accounting Infrastructure

The accounting engine
your app already needs

Fedha API is a multi-tenant double-entry accounting microservice. Connect any system via HTTP — post transactions, generate financial reports, and reconcile bank statements.

Double-entry verified Multi-tenant ready Any language
Fedha API — double-entry journal
40+
Chart of Accounts
5
Financial Reports
3
Business Domains
Tenants Supported

Why Fedha API

Everything accounting,
nothing you don't need

Built on the principles that make accounting software reliable — correctness first, then convenience.

🏷️

Semantic Account Labels

Reference accounts by name — PRIMARY_BANK, AR_CONTROL, MPESA — not by numeric codes. No hardcoded account numbers scattered across your app.

🔗

Full Audit Trail

Every journal entry is linked to your own source_type and source_id. Trace any balance back to its origin — invoice, payment, or expense — in one query.

Instant Chart of Accounts

Seed 40+ accounts in a single API call. Pick a domain template — rental, transport, or generic — and start posting entries immediately.

📊

Ready-made Reports

Trial balance, income statement, balance sheet, cash position, and AR aging — all queryable as JSON, ready to display in any dashboard.

🏦

Bank Reconciliation

Built-in reconciliation workflow. Load journal lines for a period, mark cleared items, and lock the period when done.

🌐

Any Language

REST API — works with Python, JavaScript, PHP, Ruby, Go, or any HTTP client. No SDK required, just standard JSON requests.

Financial accuracy,
built into your stack

Stop bolting accounting on as an afterthought. Fedha API enforces correctness at the entry point — before data ever touches your database.

Double-entry enforcement Every unbalanced entry is rejected at the API level. Your books are correct by construction, not by luck.
Idempotent by default Tag entries with your own source ID. Retry on network failure — duplicates are reversed automatically.
Complete tenant isolation One API instance, unlimited clients. Each tenant's data is fully isolated behind its own API key.

Getting Started

Live in 4 API calls

No complex setup. No migrations to run. No schema to design. Start recording accounting entries in minutes.

1

Create a tenant

Register your application as a tenant. Each tenant is fully isolated — its own accounts, journals, and reports.

POST /admin/tenants
→ { "id": "...", "name": "My App" }
2

Seed your accounts

Load a complete Chart of Accounts in one call. Pick rental, transport, or generic to match your domain.

POST /accounts/seed?domain=rental
→ { "created": 40 }
3

Post journal entries

Every financial event — payment, invoice, expense — becomes a balanced journal entry. Reference accounts by name, not code.

POST /journal
→ { "is_balanced": true }
4

Pull financial reports

Query trial balance, income statement, balance sheet, and more. All computed in real time from your journal data.

GET /reports/balance-sheet
→ { "total_assets": ... }

Built for Real Businesses

One engine, any domain

Fedha API ships with pre-built Chart of Accounts templates for the most common business types.

🏠

Property Management

Rent invoicing, security deposits, maintenance expenses, and AR aging for overdue tenants.

domain: rental
🚚

Transport & Logistics

Freight receivables, fuel expenses, vehicle depreciation, and driver salary tracking.

domain: transport
🛒

E-commerce

Sales revenue, returns, supplier payables, VAT handling, and cash position reporting.

domain: generic
🎓

Schools & Education

Fee collection, salary processing, petty cash, and year-end income statement generation.

domain: generic

Ready to integrate Fedha API?

Request access and post your first journal entry in minutes.

Request API Access → Read the Docs