FastAPI backend. OpenAPI docs auto-generated at /docs (Swagger UI) and
/redoc on each backend — the tables in this section are the human-friendly
index.
The base URLs
| Book | Local | Production |
|---|
| UAE | http://localhost:8077 | via Coolify (ledger-api-uae.valura.*) |
| India | http://localhost:8078 | via Coolify (ledger-api-ind.valura.*) |
The endpoint families
| Family | Prefix | Books |
|---|
| Health | /health/* | Both |
| Firm reports | /v1/firm/* | Both |
| Transactions | /v1/transactions/* | Both |
| Postings / journal | /v1/journal/*, /v1/postings/* | Both |
| Customers | /v1/customers/* | Both |
| Reconciliation | /v1/reconciliation/* | Both |
| Cash requests | /v1/cash-requests/* | UAE primary |
| Jobs | /v1/jobs/* | Both (some India-only) |
| India-only | /v1/india/* | India |
| Webhooks | /v1/india/webhooks/* | India |
Categorized listings
- Auth — the
X-Ledger-Token and admin-token contract
- Firm & customer endpoints — summary, earnings, transactions,
journal, per-customer
- India endpoints — every
/v1/india/* with response schema
- Jobs — sync + provision + reversal + recost endpoints
- Webhooks — inbound HMAC-verified receivers
Response conventions
- Monetary amounts are strings (Decimal-safe):
"1234.56".
- Dates:
YYYY-MM-DD.
- Timestamps:
YYYY-MM-DDTHH:MM:SS(.ffffff)+00:00 (ISO 8601, UTC).
null when a field is genuinely absent (not "" or "0").
- Errors: FastAPI standard:
{"detail": "..."}.