Money moves. The books balance.
TreasuryWire is the ledger behind your fintech. Your app makes one API call to collect a deposit, send a payout or charge a fee. Every naira lands as a double entry, in books only your business can see.
You start in test mode. Live is a switch away when you're ready.
Try a posting
Adaeze has ₦120,000.00 in her wallet and is on KYC Tier 1, capped at ₦300,000.00.
Change it and the entries update.
Wallet after: ₦145,000.00. The deposit was checked with Flutterwave before it was credited.
Where homemade ledgers break
A balance column on a users table works until the first bad day. These are the days TreasuryWire is built for.
- A webhook arrives twice
- Every deposit is keyed on the provider's own event id. The second delivery is acknowledged and ignored, so the customer is credited once.
- A payout times out
- No answer isn't treated as a no. The debit stands until the bank confirms or fails the transfer, and only a confirmed failure is reversed.
- Two payouts hit one wallet at once
- The balance check and the debit happen in one step. One payout goes through and the other is refused. The wallet never goes below zero.
- A deposit pushes someone past their KYC limit
- The money has already arrived, so it isn't bounced. The excess is held in its own account and released when the customer upgrades.
One request per money movement
Create a wallet, send a payout, check a balance. Every request carries a key that belongs to your business and to test or live mode, so a test key can't touch real money and no one else can reach your books.
- Retry safely. The same reference never sends money twice.
- Know where a payout stands: pending, confirmed or failed, checked against the bank.
- Deposits are verified with the provider before they're credited.
Send a payout
curl -X POST $API_URL/api/v1/payout/transfer \
-H "Authorization: Bearer gl_test_…" \
-d '{
"ownerRef": "adaeze-0021",
"currency": "NGN",
"amount": 40000,
"accountNumber": "0123456789",
"bankCode": "058",
"reference": "rent-march-0021"
}'Response
{
"status": "OK",
"message": "Transfer initiated",
"reference": "rent-march-0021",
"transactionId": "66f1c2…"
}Made for money in Nigeria
The rules your compliance team already works to are built in, not bolted on.
- CBN KYC tiers
- Daily and balance limits for Tier 1, 2 and 3 are set up when you sign up, and checked on every deposit, payout and transfer.
- BVN verification
- Customers confirm their BVN on the provider's consent page. A verified BVN moves them to Tier 2 and releases anything held.
- Naira to the kobo
- Amounts are stored as whole kobo, never as floating-point numbers, so every total adds up exactly.
- Your bank providers
- Collections and payouts run through Flutterwave today. Providus and SeerBit are being added.
From signup to live money
Create your ledger
Enter your business name and an email. You get a full set of accounts in test and live mode, and an owner login.
Build against test mode
Generate a test key in Settings, then create wallets and post deposits and payouts. Each one shows up in the back office as it lands.
Go live
Add your provider credentials and generate a live key. The same calls now move real money.
Open your books.
It takes a business name and an email. Your ledger is ready as soon as you sign up.
Create your ledger