PlinthPlinthStart building

The baseYourbillingStands on.

Recurring billing & reconciliation, built for how Nigeria actually pays.

The problem

Recurring payments in Nigeria are leaky and manual.

01
Charges fail

Most recurring card charges in Nigeria don’t go through.

02
Reconciled by hand

Matching inbound transfers to customers is slow and manual.

03
Slips away

Failed charges churn silently; deposits go untracked.

Plinth Subscriptions · the billing engine

Billing that recovers what others lose.

A managed recurring-billing layer on Nigerian rails. Plinth collects, retries, and reconciles — so revenue actually lands.

Transfer-native dunning

Smart, payday-aware retries recover payments that fail — and most card charges in Nigeria do.

Cards, fully supported

A complete, conventional card experience too — first-class, not an afterthought.

Proration & plan changes

Upgrades, downgrades, prepaid and postpaid billing, prorated to the kobo.

Entitlements API

Tells your product who currently has access, so you can gate features cleanly.

Accounts · reconciliation visual
Plinth Accounts · the foundation

And the foundation it's built on.

Dedicated virtual accounts with automatic reconciliation — the base the billing engine runs on, useful on its own too.

  • A dedicated account number per customer

    Every customer gets their own virtual account — so money arrives already attributed.

  • Automatic reconciliation

    Inbound transfers reconcile themselves: exact, partial, overpayment, or unidentified.

  • Statements & a running ledger

    Per-customer statements and a transparent, double-entry ledger you can trust.

  • Standalone-capable

    Use it on its own, or as the solid base beneath Plinth Subscriptions.

How it works

Three steps to recurring revenue.

  1. 01

    Create a plan

    Define pricing and interval — e.g. ₦5,000/month. Presets or granular policy, your call.

  2. 02

    Subscribe a customer

    Attach a customer to the plan. They get a dedicated account; cards work too.

  3. 03

    Plinth does the rest

    It collects, retries, reconciles, and tells your product exactly who has access.

The differentiator

Built for how Nigeria actually pays.

Cards fail often here; bank transfer rarely does. Plinth is transfer-native — it defaults to the rail that works, and falls back to it when cards die.

~XX%

Recurring card charges that fail

~XX%

Transfers that clear first try

+XX%

Revenue recovered by smart dunning

* Illustrative placeholders — real, sourced figures at launch.

Who builds on Plinth

One base, many businesses.

If you collect money from the same customers on a schedule, Plinth carries the hard part.

SaaS

Bill on cards, recover the failures

A Lagos SaaS tool bills 400 customers monthly. Cards that fail get retried and recovered automatically.

Cooperative · ajo / esusu

Contributions that reconcile themselves

A savings circle gives every member a dedicated account number. Contributions reconcile on their own; the ledger is transparent to everyone.

School

Fees per student, nothing lost

Each student has their own account number. Underpayments are tracked, not lost in a spreadsheet.

Streaming

Plans, upgrades, downgrades

Monthly plans with upgrades, downgrades, and proration handled to the kobo.

Landlord

Rent collection on autopilot

A dedicated account per tenant; rent and service charges reconcile automatically each cycle.

Building something else?

Presets for common cases, granular policy when you need it.

See the API →
Developer experience

Integrate in a few lines.

Drop Plinth in; don't rebuild billing. A clean API, SDKs, and webhooks — money-critical correctness handled for you.

  • Clean REST API
  • Typed SDKs
  • Webhooks for every event
  • Idempotent by design
subscribe.ts
import { Plinth } from "@plinth/sdk";
const plinth = new Plinth(process.env.PLINTH_API_KEY);

// 1. Define a plan (₦5,000/month — amounts are in kobo)
const plan = await plinth.plans.create({
  name: "Pro",
  amount: 500_000,
  interval: "monthly",
});

// 2. Subscribe a customer
const sub = await plinth.subscriptions.create({
  customer: "cus_bob",
  plan: plan.id,
});

// 3. Ask who has access — your product gates on this
const access = await plinth.entitlements.get("cus_bob");
// → { active: true, features: ["pro"], valid_until: "2026-07-25" }
Correctness & trust

Money-critical, by default.

Double-entry ledger

Every movement is recorded twice and balances exactly. Kobo-precise money math you can audit.

Idempotent by design

Retries and webhooks can't double-charge or double-count. Safe to call again.

Every kobo reconciled

Exact, partial, overpayment, unidentified — each inbound transfer is accounted for.

Built on Nomba's rails

Settlement and movement run on regulated, production payment infrastructure.

Security & compliance details (encryption, access controls, certifications) — placeholder, to be finalised before launch.

Pricing

Start free. Pay as you grow.

Transparent, usage-based pricing — final rates published at launch.

Sandbox

Free

Build and test end-to-end

  • Full API & SDK access
  • Test mode
  • Webhooks
  • Community support

Growth

Most popular
Usage-based

Go live and scale

  • Everything in Sandbox
  • Live transfers & cards
  • Smart, payday-aware dunning
  • Reconciliation & ledger
  • Email support

Enterprise

Custom

Volume, controls & SLAs

  • Everything in Growth
  • Volume pricing
  • Dedicated support & SLA
  • Custom policy & onboarding
Social proof

What builders say.

“Placeholder quote — a customer describes how Plinth recovered revenue and removed the manual reconciliation work.”
Name, Role
Company (placeholder)
“Placeholder quote — a customer describes how Plinth recovered revenue and removed the manual reconciliation work.”
Name, Role
Company (placeholder)
“Placeholder quote — a customer describes how Plinth recovered revenue and removed the manual reconciliation work.”
Name, Role
Company (placeholder)
FAQ

Questions, answered.

What exactly is Plinth?

Recurring-payments infrastructure for Nigeria. It handles subscriptions, recurring billing, and automatic reconciliation so you don't have to build billing from scratch.

Do I need a Nomba account?

Plinth runs on Nomba's payment rails. You integrate with Plinth; the underlying settlement is powered by Nomba.

Cards or bank transfer?

Both, fully. Plinth is transfer-native because transfers clear reliably in Nigeria, with first-class card support and an automatic card → transfer fallback.

How does reconciliation work?

Each customer gets a dedicated account number, so inbound transfers arrive already attributed. Plinth matches exact, partial, overpayment, and unidentified payments automatically.

How long does integration take?

A few lines with the SDK to create a plan, subscribe a customer, and read entitlements. Clean API, webhooks, and idempotency are built in.

What does it cost?

Start free in sandbox. Live usage is usage-based, with custom pricing for volume. Final rates are published at launch.

Build on Plinth.

Your product is the column. Plinth is the base it stands on — recurring payments, on solid ground.