Nineveh for product teams
Nineveh sits between a bank’s virtual-account system and your product. Money arrives on an account number; Nineveh matches it, prices it, posts it to a double-entry ledger, and tells you — once, in a signed event you can verify. You keep your product. You stop keeping a ledger.
What Nineveh does
- Matches a credit to the account number it landed on, and therefore to a unit and a tenant.
- Prices it with your fee rule, so what the payer sends and what the tenant gets are both explicit.
- Posts it as balanced double-entry journals. Balances are derived from postings and never stored.
- Tells you, with a signed webhook, retried on a published schedule until it lands or dead-letters.
- Reconciles what it holds against what the bank settled, and writes down every difference.
What Nineveh does not do
It does not hold a banking licence, issue account numbers, or move money at a bank. The account numbers belong to the bank; settlement is the bank paying a segregated collections account; payouts are recorded here and executed there. Nineveh is the record and the control plane, not the rail.
The shape of an integration
Two directions, and they are deliberately different mechanisms. You call Nineveh over HTTPS with an API key. Nineveh calls you with a signed webhook. A stolen console password cannot post a credit, and a leaked API key cannot approve a payout.
bank ──notifies──▶ Nineveh ──signed event──▶ your product
│
├─ prices the credit (your fee rule)
├─ posts the journals (double entry, balanced)
└─ derives the balance (never stored)Start with the Quickstart: receive one credit end to end, verify its signature, and read the balance it moved.