The collections layer

A credit lands. The right balance moves.

Nineveh sits between your bank’s virtual accounts and your product. It prices every credit, posts it to a double-entry ledger, and tells your product — in one pass, with the evidence kept.

Funds stay in bank-issued accounts — your product never holds money.
credit · txn_01JAV8Q3K7M2 live
₦10,150.00net ₦10,000.00
Gross received₦ 10,150.00
Institution fee− 100.00
Product fee− 50.00
Net to Available balance₦ 10,000.00
Runs on your bank’s virtual-account systemDouble-entry ledger from day oneSigned webhooks, replay & auditBuilt for product teams and their finance owners
The gap Nineveh closes

Between “a credit landed” and “the right customer was credited, and the right people were paid.”

A bank tells you money arrived on an account number. It doesn’t price your fees, keep your customers’ balances, compute a partner’s commission, deliver a reliable event, or reconcile against settlement. Nineveh is that layer — once, correctly, for every product you run.

01

Land

A customer transfers to their account number. The bank credits it and notifies Nineveh — deduplicated on the session id.

02

Price

Fixed institution, product and platform fees are applied. Gross-up means the customer receives a round amount.

03

Post

A balanced double-entry journal is written: the customer's wallet, the fee wallets, the pass-through — in one transaction.

04

Deliver

A signed event reaches your product with retries and replay. Your product credits the balance and acknowledges.

Capabilities

Everything between the bank and your product.

Collections

Ingest every credit on a virtual account number, idempotent on the bank's session id, resolved to the right customer — matched or queued, never lost.

Double-entry ledger & wallets

A Nineveh-owned ledger. Customer, group and fee wallets; balances derived from balanced journals, not stored — the number always adds up.

Fees & gross-up

Institution fee, product fee and your platform charge, priced per credit. Gross-up so the payer covers fees and the customer receives a round amount.

Signed delivery

HMAC-signed webhooks with retries, dead-lettering and replay. Your product credits the customer server-side and acknowledges once.

Settlement & reconciliation

Sync the bank's settlement, link it to the credits it covers, and surface every break between your ledger and the bank's.

Payouts

Withdrawals with maker-checker, ageing, evidence and a pluggable rail — manual today, bank-hosted when you're ready.

Your vocabulary

Every product names its own world — sites and residents, matters and clients. Labels, theming and the mark are configurable per product.

Consoles & audit

Operations and finance consoles with role-based access, typed confirmations for money, and a hash-chained audit of every action.

Funds stay in the bank

Money sits in bank-issued virtual accounts and settles bank-to-merchant. Your product never holds funds — a cleaner licensing story.

The ledger, visible

Every figure is the sum of its entries.

Balances aren’t stored and hoped to be right — they’re derived from balanced journals. A daily identity check proves assets equal liabilities. Nothing is computed in a browser; totals come from the ledger.

Append-only

Credits, journals and payouts are never edited. A correction is a new entry with a reason.

Position holds

Assets = liabilities, checked on every cycle. When it doesn't, a reconciliation break opens.

Three statuses

Credit, delivery and settlement are tracked separately and never collapsed into one.

DRPool receivable10,150.00
CRWallet · holder10,000.00
CRProduct fee wallet50.00
CRInstitution pass-through100.00
Journal balances · position holds verified 03:00

Funds never leave the bank

Money sits in bank-issued virtual accounts and settles bank-to-merchant. Your product holds no funds.

Signed everything

HMAC-signed webhooks; API keys with rotation; re-authentication and typed confirmation before money moves.

Least privilege & isolation

Role-based access per product, tenant isolation, server-authoritative checks — visibility is never authorisation.

Hash-chained audit

Every action recorded and verifiable; PII masked; emergency access time-boxed and fully audited.

Security & compliance

Built like infrastructure that holds other people’s money.

Nineveh is designed for a partner bank and a board to trust: money stays in regulated accounts, every action is authorised server-side and audited, and the ledger is the source of truth.

For product teams

Build against a stub. Plug Nineveh in by configuration.

An API-first design with a sandbox and an OpenAPI spec. Build behind a small collections interface with a local stub, then point it at Nineveh — no rewrite. Provision an account, receive a signed credit, read the ledger.

POST /v1/accounts
{ "owner": "occ_01J9F2", "type": "STATIC" }
→ { "number": "600 123 4567", "bank": "First Bank" }

event  credit.received
{ "net": { "currency":"NGN", "value":"10000.00" },
  "group": "A-08", "status": "POSTED" }
200   your endpoint acknowledges once
Pricing

Simple, per credit.

A small fixed charge per credit — no percentage, no minimums, no lock-in. You keep the pricing you show your customers; Nineveh’s charge is transparent on every credit.

Talk to us

Put every credit on the record.

Get access to a sandbox, wire one journey end to end, and see the ledger balance itself.

Get accessOpen the console