TreasuryWire

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.

DrClearing, Flutterwave25,000.00
CrWallet, Adaeze25,000.00
BalancedDebits 25,000.00 = credits 25,000.00

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

  1. 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.

  2. 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.

  3. 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