Channels & Currencies

Tulu Switch organises payment rails into three distinct channels. Each channel represents a different category of money movement and is backed by one or more providers. When initiating a deposit, transfer, or checkout, you must specify both the channel and currency.

WALLET Channel

The WALLET channel is the traditional fiat wallet rail. It supports deposits (via checkout links), outbound bank transfers, and balance queries. Routing across providers is automatic — the platform selects the best available provider based on availability, reliability, and liquidity.

Supported currencies by provider

ProviderCurrencies
PaystackNGN
SeerbitNGN
FlutterwaveNGN, KES, GHS, ZAR, USD, EUR, GBP

Example request body

POST /v2/purse/deposit
{
  "customerId": "cus_xxx",
  "channel": "WALLET",
  "currency": "NGN",
  "amount": 10000,
  "callbackUrl": "https://your-app.com/callback"
}

ACCOUNT Channel

The ACCOUNT channel issues virtual bank account numbers (NUBANs in Nigeria) that customers can fund via regular bank transfers. When funds arrive, a bank_account.deposit.success or checkout.paid webhook is fired.

  • Paystack DVA — Dedicated Virtual Accounts via Wema Bank
  • Flutterwave — Virtual accounts via Flutterwave
  • Seerbit Pocket — Sub-pocket accounts via Seerbit
  • PayRep MFB — Microfinance bank NUBANs via PayRep

Use the checkout endpoint (POST /v2/checkout) to create a one-time virtual account. One-time accounts expire after a configurable period (default 120 minutes, max 7 days). For persistent accounts, use the customer wallet provisioning endpoints.

STABLECOIN Channel

The STABLECOIN channel enables on-chain stablecoin wallets. Customers receive a wallet address on the requested chain; deposits and withdrawals settle on-chain.

Supported assets

USDC — USD Coin

USDT — Tether

Supported chains — LIVE (via Crossmint)

baseethereumpolygonarbitrumoptimismavalanchebscscrollworld-chain

Supported chains — TEST (via Crossmint testnets)

base-sepoliaethereum-sepoliapolygon-amoyarbitrum-sepoliaoptimism-sepoliaavalanche-fujibsc-testnetscroll-sepoliaworld-chain-sepolia

Hedera chain

hedera — LIVE

hedera-testnet — TEST

Country → Currency Map

When a customer is created, their wallet is auto-initialised with the default currency for their country. The key mappings are:

CountryDefault currency
Nigeria (NG)NGN
Ghana (GH)GHS
Kenya (KE)KES
South Africa (ZA)ZAR
United Kingdom (GB)GBP
United States (US)USD
Eurozone (DE, FR, …)EUR
Uganda (UG)UGX
Tanzania (TZ)TZS

Availability & Access

Channel and currency availability per builder account is configured by Tulu Admin via the platform configuration (ChannelCountryConfig). Not every channel is available to every account by default.

Contact support or your Tulu representative to enable additional channels or currencies for your account.

Refer to the Supported Countries page for the full list of countries and their applicable channels.

Important Notes

  • Channel values in the API are uppercase: WALLET, ACCOUNT, STABLECOIN
  • Currency codes follow ISO 4217 for fiat (e.g. NGN, GHS) and asset ticker for stablecoins (USDC, USDT)
  • Bank transfers (outbound payouts) on the WALLET channel are blocked in the TEST environment
  • Subscription recurring charges support DAILY, WEEKLY, MONTHLY, QUARTERLY, and ANNUALLY intervals (Paystack does not support QUARTERLY)