Ship financial products on regulated rails, without becoming a bank
Issue wallets, open accounts, run KYC, move money, and offer savings and investments inside your own product, all through one secure, CBN-licensed API.
+
Three steps from sandbox to scale

Sign up for a Halo Business account, and we'll provision sandbox API credentials within one business day so your engineering team can start building.

Drop our REST endpoints and webhooks into your product. Wallets, accounts, transfers, KYC, and investments, all in one consistent, well-documented surface.

Complete your compliance review with the Halo team, swap to production keys, and launch knowing your stack is CBN-licensed and SEC-regulated end to end.
+
Start leveraging our Banking-as-a-Service Solution to Grow Your Business
From wallet issuance to treasury optimization and investment integration, Halo’s Banking-as-a-Service infrastructure provides the secure, scalable foundation you need to expand services, deepen customer engagement, and accelerate growth.
Company Wallet
Centralized digital wallets for real-time fund control and visibility.
Account Management
Structured account issuance with secure oversight and compliance.
Embedded Savings and Investment
Integrated savings and investment tools to grow user balances.
Powering the back office of Growing businesses
One API surface for accounts, money, and yield
Issue accounts, move money, run KYC, and offer savings or investments from inside your product, using a single, consistent REST API with first-class TypeScript and Python SDKs.
- Wallets, virtual accounts, and beneficiaries
- Local transfers (NGN)
- Embedded Halo Equity Fund subscriptions
- Idempotency keys and signed webhooks built in
// Open a Halo account for one of your users
const account = await halo.accounts.create({
user_id: "usr_3kFp29",
type: "savings",
currency: "NGN",
});
// Move money into it
await halo.transfers.create({
to: account.id,
amount_kobo: 500_00,
reference: "ord_27FxK1",
});
// Subscribe to balance updates via webhook
halo.webhooks.on("account.balance_updated", (event) => {
console.log(event.data.balance_kobo);
});