Money rails for conversational banking.
Give every customer an account number, a wallet, transfers out, dollars and swaps that the AI agents can use in chat and your app can use over REST. TwelveAI provides the rails; the money never sits with TwelveAI. Funds are held by our licensed, NDIC-insured banking partner, and account issuing, transfers and bank validation all run on that partner; the engine keeps the ledger. Build in the sandbox from day one, then go live after verification.
One ledger, two doors
The rails are the same whether a customer says "send 25k to my landlord" in chat or your backend calls POST /v1/rails/customers/:id/transfers. Same account, same wallet, same ledger entry, same event afterwards. The agents get the money tools on install; your app gets the REST endpoints with the same API key.
Reads answer at any time. Writes need the workspace enrolled, and every money move still goes through the confirmation gate and your policies when it comes from a conversation.
Sandbox first, live after verification
Every workspace has the whole rails in the sandbox from the first day, on the sandbox API key: open accounts with any BVN, simulate deposits, send transfers that settle in seconds, swap at a fixed rate. Nothing touches a bank.
Going live is three steps on the console: accept the rails agreement, verify the workspace owner's BVN, verify the company's CAC. Then swap the sandbox key for the live key. The code does not change.
Plain fees, your margin
A transfer costs the customer a flat ₦50, taken with the amount and refunded with it if the payout fails. A swap runs at the provider rate adjusted by your workspace's own margin, quoted before anything moves. Revenue, wallets, transfers and swaps are readable on the console's Money page and exportable as CSV.
What a customer gets
An account number
A dedicated account number per customer, issued through the partner bank once their BVN is verified and their name matches the record.
A naira wallet
Balances, pending holds, and a statement with every deposit, transfer, fee, refund and swap, as JSON or a monthly PDF.
Transfers out
To any Nigerian bank on the partner's list, with the recipient name resolved on the partner and checked against the verified holder, and an idempotency key so a retry never debits twice.
A dollar wallet
Appears when their first swap into dollars settles, and sits on the same statement as the naira wallet.
NGN/USD swaps
Quote first, then swap in either direction. The source wallet is debited at once; the destination lands on settlement, or the source is refunded.
Events for your books
rail.deposit, rail.transfer.updated, rail.swap.updated and more, delivered as webhooks or used as Automation triggers.
Infrastructure, not a demo.
Everything here runs on the same platform we operate for real customers, grounded answers, gated writes, and a full audit trail.
- An account number. A dedicated account number per customer, issued through the partner bank once their BVN is verified and their name matches the record.
- A naira wallet. Balances, pending holds, and a statement with every deposit, transfer, fee, refund and swap, as JSON or a monthly PDF.
- Transfers out. To any Nigerian bank on the partner's list, with the recipient name resolved on the partner and checked against the verified holder, and an idempotency key so a retry never debits twice.
- A dollar wallet. Appears when their first swap into dollars settles, and sits on the same statement as the naira wallet.
Start in the sandbox today.
Create a workspace, use the sandbox key, and open your first account before you enroll.