NewLedger-only or full integration, chosen per bank

The ledger behind every naira, dollar and stablecoin.

Real account numbers from your partner banks, every balance proved every night, and an operations console your finance and compliance teams can live in. One API, built inside regulation.

Built to evidence CBN and NDPC reviews

PanoFlowLiveSearch accounts, entries, referencesKE
Good morning, KelechiTuesday 7 Oct, 09:21 WAT
All partners reconciled
Customer money heldNGN 25,589,200.00Across 2,418 wallets
PendingNGN 1,204,500.003 payouts at the bank
Safehaven, last nightMatchedStatement = settlement = wallets + suspense
TimeEntryAccountAmountStatus
09:21:04Transfer in, Adaeze StoresLIA:WAL:NGN:0193+NGN 150,000.00Posted
09:20:51Payout feeINC:FEE:NGN+NGN 25.00Posted
09:20:37NGN to USD at 1,542.25AST:FXP:USD+USD 1,000.00Posted
09:20:02Transfer in, number not boundLIA:SUS:NGN:BANK1+NGN 75,000.00Suspense
09:19:48USDC withdrawal, 2 of 2 signedLIA:WAL:USDC:0211−USDC 12,500.000000Posted
09:19:13Payout to GTBank, ending 6789LIA:WAL:NGN:0193−NGN 200,000.00At the bank

Move fast with money, and never lose track of it.

Most ledgers either help you build or help you prove. Regulated money needs both, from the first entry.

BuildShip money products in weeks

Accounts, holds, named accounts and FX are API calls in plain JSON. There’s no ledger language to learn and no balance column to keep in sync.

ProveKnow where every kobo is

Balances come from postings nobody can edit. Every partner bank, PSP and custody wallet is checked against the ledger every night, and every gap becomes a break with an owner.

PassHand auditors evidence, not spreadsheets

Maker-checker approvals, a hash-chained audit trail and signed regulator exports come in every plan, not behind an enterprise upgrade.

Every team that moves money writes a ledger. Most write it twice.

The first version is a balance column and a reconciliation spreadsheet. The second is what PanoQore gives you on day one.

Built in-house, version one
A balance column you updateTwo writes race, the balance drifts, and nobody can say which one was right.
Reconciliation in a spreadsheetSomeone matches bank lines by hand at month end and hopes the totals agree.
One bespoke integration per bankEach new bank or PSP is a new codebase, a new data shape and a new set of bugs.
Database access is the approval processWhoever can run SQL can move money, and the log of who did it is optional.
Audits are a fire drillWeeks of exports, screenshots and explanations for every regulator request.
Stablecoins in a separate systemToken balances live in a custody dashboard nobody reconciles with the books.
On PanoQore
Balances derived from postingsEvery entry balances or is rejected. Nothing is edited; a correction is a new, linked entry.
Every partner proved every nightStatement equals settlement equals wallets plus suspense. Any gap opens a break with an owner.
One model for every railBanks, PSPs and custodians post the same way. Ledger-only or full integration, chosen per bank.
Maker-checker, built inNobody approves their own change, large amounts need a fresh code, and every role maps to API scopes.
Evidence on requestA hash-chained event log and signed exports anyone can verify, ready the same afternoon.
Tokens in the same ledgerUSDC and cNGN ledgers, co-signed withdrawals and an hourly check against the chain.
Commercial banks
Microfinance banks
Digital banks
Card acquirers
Payment gateways
Transfer PSPs
Mobile money
MPC custody
Multisig custody
Enclave signers
Your own HSM

Every rail, one set of books.

Connect every bank, PSP and custodian you work with, and add the next one without touching your ledger. A card payment, a bank transfer and a USDC withdrawal post the same way, reconcile the same way and show up in the same console.

  • One posting modelEvery provider’s events become balanced entries
  • One reconciliationStatements, PSP reports and chain balances, checked the same way
  • One audit trailWho connected what, and every change since

Integrate at your pace, one bank at a time.

Start ledger-only with the bank integration you already have. When you’re ready, let PanoQore make the bank calls for you. Your accounts, bindings and history stay exactly where they are.

How the modes work
Available now

Ledger-only

Your code keeps calling the bank. You post each result to PanoQore, which keeps the books and proves them.

Your app→Bank→Your app→PanoQore
  • No bank credentials leave your systems
  • Upload the daily statement, or grant read-only access and we pull it
  • Same reconciliation, breaks and console as full integration
Account issuance now, payment orders in v2

Full integration

Send PanoQore an order. It checks the beneficiary’s name, holds the money, calls the bank with your credentials and posts the result.

Your app→PanoQore→Bank
  • Credentials held per tenant, rotatable, never readable
  • Every order step is an event: held, submitted, posted or voided
  • Switch any bank with one audited change

Naira, dollars and stablecoins. Never mixed.

Open NGN, USD, GBP or CAD next to USDC and cNGN on Base. Every entry balances inside each currency it touches, and each ledger starts from a template with suspense, rounding, FX position and fee accounts ready.

USDC on Base ledgerUSDC 12.50 is 12500000 unitsAmounts are whole numbers in the smallest unit, so nothing is lost to rounding.
SuspenseLIA:SUS:USDC
RoundingLIA:RND:USDC
FX positionAST:FXP:USDC
Fee incomeINC:FEE:USDC
Named accounts

Real account numbers, settled to the right wallet.

Your partner bank keeps one omnibus account and a routing table. PanoQore keeps every customer’s balance. Watch both sides of the same morning, side by side.

  • One number per customerIssued in the customer’s legal name and bound to exactly one wallet.
  • Credited once, alwaysThe bank’s reference is the idempotency key, so a second notification changes nothing.
  • Never a guessMoney for a number we can’t place waits in suspense with a break and an owner.
How named accounts work
Omnibus at partner bank, NGNNGN 11,335,700.00
Today, 09:14 WAT
What the bank sends
What PanoQore books
Adaeze Stores0123459876, LIA:WAL:NGNNGN 2,600,000.00+150,000.00
Kanem Logistics0123451204, LIA:WAL:NGNNGN 8,120,500.00
Tamuno Pharmacy0123457731, LIA:WAL:NGNNGN 615,200.00
Inbound suspenseLIA:SUS:NGN:BANK1NGN 0.00
Credited to Adaeze StoresThe number is bound to one wallet, so the credit posts once against settlement.
Omnibus NGN 11,335,700.00=Wallets NGN 11,335,700.00+Suspense NGN 0.00Balanced

Plain JSON. Nothing new to learn.

Open an account, post an entry, listen for events. Postings are JSON your engineers already read, and every write takes an idempotency key kept for 7 days, so a retry after a timeout never posts twice.

Follow the full quickstart
POST /v1/entries
Idempotency-Key: 01J9K4M2X7Q3R8S5T6V0W1Y2Z3

{
  "kind": "PAYOUT",
  "external_ref": "panoflow:txn:01J9K4",
  "postings": [
    { "account_id": "acc_A", "side": "DEBIT",  "amount": "35002500", "currency": "NGN" },
    { "account_id": "acc_BANK", "side": "CREDIT", "amount": "35000000", "currency": "NGN" },
    { "account_id": "acc_FEE", "side": "CREDIT", "amount": "2500", "currency": "NGN" }
  ]
}

201 Created
{ "id": "je_01HZVQ6M2K8R4T1X9W3N5B7C", "status": "posted" }
An entry whose debits and credits differ in any currency is rejected with ENTRY_UNBALANCED.Sandbox base URL: api.sandbox.panoqore.com

One ledger for every kind of money business.

Wallets, remittance, stablecoins, loans, marketplaces and treasury run on the same accounts, entries and reconciliation. Pick where you are today; the next product is a template, not a rebuild.

Engineered to hold under load.

The v1 design targets, tested before PanoFlow goes live. Nothing ships to v2 until v1 proves zero drift and zero duplicates.

2,000/spostings sustained on one PostgreSQL primary, 5,000/s in bursts
50 msp99 latency for a three-leg entry; p50 under 15 ms
99.95%monthly availability for writes, 99.99% for reads
7 yearsjournal, postings and events retained, then archived to WORM storage
Designed to evidenceCBNNDPCreviews, with signed exports and a verifiable audit chain.

Run your money on books you can prove.

Get early accessBook a demo