Launch on Nigerian mobile networks, without the telco work.
One platform for telco services: USSD, SMS and carrier billing from your website or app. Koridor handles the aggregators, telco approvals, short codes, charging and callbacks. You bring the product; we run the telco side.
tenant: acme-promo services: [ussd, sms, carrier_billing] ussd: { menu: hosted } # or relay → your backend billing: { from: web } # charge from your site or app products: - { code: DAILY, price_ngn: 100 } credentials: secret://acme-promo/aggregator mode: sandbox # live after UAT sign-off
Live across every Nigerian network
MTN
Airtel
Glo- 9mobile
One integration reaches subscribers on all four networks, through our aggregator partners.
The slow, technical, relationship-heavy part, done for you.
Launching on Nigerian networks usually means months of aggregator contracts, telco approvals and integration work. With Koridor you skip all of it.
Speed
Onboarding is a config change, not a new deployment. Once terms are agreed, you can go from setup to UAT in a day.
Relationships
We hold the aggregator and telco connections, so you don't have to negotiate, certify or maintain them.
Trust
Reliable uptime, clear numbers, and revenue figures reconciled against what actually settles.
Your own workspace
Traffic, menu funnel, charge success, revenue and uptime for your service only, plus a simulator and your own team.
Three channels. One integration.
Use one service or all three. Each runs on the same workspace, connectors and portal.
Menus on a short code
Interactive sessions on any handset, with no data needed. We can host the menu, or relay each step to your backend.
*000*12#Two-way messaging
Keywords, alerts, OTPs and subscription messages, with a delivery report for every send.
PLAY → 0000Charge to airtime
Let customers pay from your website or app with their mobile balance. Telco consent flows and callbacks are handled for you.
POST /v1/chargesFrom first call to live, in six steps.
Access is by invitation. We set your workspace up on our side, and you never touch the telco machinery.
Request access
Tell us what you want to launch and on which networks. There's no self sign-up: every workspace starts with a conversation.
Agree terms
We review the fit and agree commercial terms with you. Nothing technical starts until this is done.
We set up your workspace
Your services, products, prices and connector go into config from our admin portal. Your credentials go into our secrets store.
workspace: acme-promoYour team gets access
Your owner account gets a one-time link to set a password, then invites your own admins. Every account belongs to one workspace.
Test in sandbox
Run real session and charge flows with the simulator in your workspace. Sandbox never charges a subscriber.
mode: sandboxUAT, then live
Your sandbox runs produce a UAT report. Once it's signed off, Koridor switches your service live and the workspace starts counting.
mode: liveSetup to UAT can take a day once terms are agreed. Telco approval times vary by network.
Every session, charge and callback, recorded.
An example of the events a tenant's service produces. Hover to pause.
{
"tenant": "acme-promo",
"msisdn": "234803100****",
"code": "*000*10#",
"mode": "hosted",
"at": "2026-10-28T14:10:00Z"
}{
"tenant": "lotto-ng",
"product": "WEEKLY",
"amount_ngn": 500,
"result": "insufficient_balance",
"at": "2026-10-28T14:17:01Z"
}{
"tenant": "quizbox",
"msisdn": "234803101****",
"dlr": "DELIVERED",
"latency_ms": 1074,
"at": "2026-10-28T14:24:02Z"
}{
"tenant": "naija-rewards",
"source": "web",
"msisdn": "234803102****",
"amount_ngn": 200,
"consent": "otp_confirmed",
"at": "2026-10-28T14:31:03Z"
}{
"tenant": "fanzone",
"period": "2026-10-05",
"recorded_ngn": 372844,
"settled_ngn": 372844,
"variance": 0
}{
"tenant": "acme-promo",
"msisdn": "234803103****",
"code": "*000*15#",
"mode": "relay",
"at": "2026-10-28T14:45:05Z"
}{
"tenant": "quizbox",
"msisdn": "234803105****",
"dlr": "DELIVERED",
"latency_ms": 1759,
"at": "2026-10-28T14:59:07Z"
}{
"tenant": "naija-rewards",
"source": "app",
"msisdn": "234803106****",
"amount_ngn": 300,
"consent": "otp_confirmed",
"at": "2026-10-28T14:16:08Z"
}{
"tenant": "fanzone",
"period": "2026-10-10",
"recorded_ngn": 613899,
"settled_ngn": 613899,
"variance": 0
}{
"tenant": "acme-promo",
"msisdn": "234803107****",
"code": "*000*20#",
"mode": "hosted",
"at": "2026-10-28T14:30:00Z"
}{
"tenant": "lotto-ng",
"product": "ENTRY",
"amount_ngn": 50,
"result": "insufficient_balance",
"at": "2026-10-28T14:37:01Z"
}{
"tenant": "quizbox",
"msisdn": "234803109****",
"dlr": "DELIVERED",
"latency_ms": 1044,
"at": "2026-10-28T14:44:02Z"
}{
"tenant": "fanzone",
"period": "2026-10-15",
"recorded_ngn": 854954,
"settled_ngn": 854954,
"variance": 0
}{
"tenant": "acme-promo",
"msisdn": "234803111****",
"code": "*000*25#",
"mode": "relay",
"at": "2026-10-28T14:15:05Z"
}{
"tenant": "lotto-ng",
"product": "WEEKLY",
"amount_ngn": 500,
"result": "insufficient_balance",
"at": "2026-10-28T14:22:06Z"
}{
"tenant": "quizbox",
"msisdn": "234803113****",
"dlr": "DELIVERED",
"latency_ms": 1729,
"at": "2026-10-28T14:29:07Z"
}{
"tenant": "naija-rewards",
"source": "app",
"msisdn": "234803114****",
"amount_ngn": 200,
"consent": "otp_confirmed",
"at": "2026-10-28T14:36:08Z"
}{
"tenant": "fanzone",
"period": "2026-10-20",
"recorded_ngn": 196009,
"settled_ngn": 196009,
"variance": 0
}Numbers you can take to finance.
Each client sees their own traffic, funnel, charge success, revenue and uptime. Recorded revenue is reconciled against settlement, so the two figures agree.
Conversion funnel
Reconciliation
Sample data for a fictional tenant, shown to illustrate the client workspace.
We run the service, or plug into yours.
Pick the mode that fits your team. Both run on the same platform, workspace and connectors.
Koridor runs it
USSD menus, SMS keywords and payment pages live in config. There's nothing for you to host.
- Change menus, messages and prices without a deploy
- Charging and subscriptions handled for you
Your product calls Koridor
We relay USSD and SMS traffic to your backend, and your website or app calls our charging API to bill airtime.
- Keep your existing logic, checkout and data
- One integration for every network
Built once. Shared by every tenant.
Each new aggregator connector becomes available to every client, and each problem we solve stays solved. An agency rebuilds for every project. Koridor builds once and adds tenants, so every launch is faster than the last.
Have a mobile product in mind?
Tell us what you want to launch. We'll tell you which networks, how long it takes and what we need from you.
Request accessQuestions first? hello@koridor.com