BirrJS

Billing framework
for Ethiopian apps

Define plans and features in code. BirrJS handles subscriptions, webhooks, and entitlements — with usage tracking, all inside your codebase.

$ npx @birrjs/cli init
Read Docs
import { feature, plan } from "birrjs"

const messages = feature({ id: "msgs", type: "metered" })
const proAccess = feature({ id: "pros", type: "boolean" })

export const free = plan({
  id: "free",
  default: true,
  includes: [
    messages({ limit: 20, reset: "month" }),
  ],
})

export const pro = plan({
  id: "pro",
  price: { amount: 499, interval: "month" },
  includes: [
    messages({ limit: 100, reset: "month" }),
    proAccess(),
  ],
})
Payment provider routing illustrationlinks.etVerify.etTelebirrChapa

One integration. Every provider.

BirrJS speaks a single provider interface. Start on Chapa, swap to Telebirr later, or route manual transfers through links.et or verify.et — your billing code never changes.

Scaffold, configure, ship.

One command scaffolds your provider, plans, and config — real files you can open, edit, and deploy.

$

Features

Plugins, webhooks, and type-safe entitlements. Everything you need to bill Ethiopian users.

Plugin System

Extend BirrJS with plugins. Drop in SMS, email, Slack, trials, or custom logic — all through one simple plugin interface.

birr.js⇄chapatelebirrlinks.etverify.etchapa

Provider Agnostic

Built-in support for Chapa, Telebirr, Links.et, and Verify.et — or bring any provider via the provider interface.

Type-Safe

Full TypeScript inference from your plan schema. Plan IDs, feature keys — all typed.

Webhooks

Verified, deduplicated webhook handling. Automatically sync to your database.

Entitlements

Feature flags based on subscription status. Check instantly with check().

Your Database

All billing state in your Postgres. Low latency, joinable with your app tables.

One CLI, zero boilerplate

npx @birrjs/cli init scaffolds your provider, plans, config, and route handler — billing ready in under a minute.

Ready to add subscriptions?

Define your plans, connect Chapa, and ship billing in minutes.

Get Started
·© 2026 BirrJS