PayKitBeta
White-label subscription billingBeta

Ship subscriptions.
Not billing code.

PayKit sits between your product and your payment gateway (plans, trials, dunning, invoicing, and an append-only ledger), so you integrate a small API instead of building a billing system.

PayKit is in beta. We are onboarding a small group of businesses ourselves.

Pro monthly

sub_8Q2R · acme retail

past due

Amount

R 249.00

Attempt

2 of 4

Next retry

in 3d

Dunning policy

day 0Fail
day 1Retry 1
day 3Retry 2
day 7Retry 3
day 10Suspend
Double-entry ledgerPaystack-nativeMulti-tenantIdempotent APIMinor-unit precise

Why PayKit

The billing system you'd build if you had the time

Opinionated where correctness matters, additive everywhere else, so a small team can run a two-level billing platform without it collapsing under configuration.

A ledger that reconciles by construction

Every charge, fee, and refund is a balanced double-entry journal. Nothing is ever updated or deleted. Corrections are reversing entries, so your books always tie out.

A real lifecycle engine

Trials, renewals, retries, grace, suspension: a strict state machine driven by a single next-charge sweep. Every transition is an immutable, timestamped event.

Entitlements, not raw state

Your app asks what a customer can do. Features, limits, and metered items merge across active subscriptions, so you can reprice a tier without touching billing.

You never touch the money

PayKit is not the merchant of record. Funds settle directly between the gateway and you. We meter fees from the ledger and stay out of the flow.

Multi-tenant to the core

Clients, projects, and customers are isolated at every layer, with test and live environments per project. Cross-tenant access returns zero rows, by design.

Built for developers

Idempotent mutations, signed webhooks, cursor pagination, and additive-only changes. Integrate against your own customer references, never our identifiers.

How it works

Three moves to live billing

01

Model your catalog

Define plans, immutable versions, and the features each grants. Repricing never changes an existing subscriber’s terms.

02

Integrate a small API

Create customers by your own reference, start subscriptions, and read entitlements. Hosted checkout handles the gateway.

03

We run the lifecycle

Charging, retries, dunning, invoicing, and ledger, off one indexed sweep, each step one atomic transaction.

Dunning, done right

A failed charge isn’t the end of a customer

When a renewal fails, PayKit works a configurable recovery track (timed retries, a grace window where access continues, then suspension) instead of dropping the subscriber on the first decline. The policy is a fixed, versioned vocabulary, so it’s auditable and testable, never a free-form rules engine.

  • ✓Timed retry schedule
  • ✓Configurable grace window
  • ✓Every step an immutable event

Effective policy

day 0Fail
day 1Retry 1
day 3Retry 2
day 7Retry 3
day 10Suspend

The dunning timeline is the product’s visual signature. The same track renders anywhere a billing policy appears in your dashboard.

Now in beta

Contact us to sign up

PayKit is in beta, so we are setting up each new business ourselves for now. Tell us about your product and how you bill today, and we will create your workspace and walk you through test mode.