Own your billing.
Use any provider.

A billing engine that runs inside your application.
No lock-in. No revenue share. Pure logic.

pnpm add billsdk
npm i billsdk
bun add billsdk
const billing = billsdk({  features: [    { code: "api_access", name: "API Access" },    { code: "priority_support", name: "Priority Support" },  ],  plans: [{    code: "pro",    prices: [{      amount: 2000,      interval: "monthly"    }],    features: [      "api_access",      "priority_support"    ]  }]});
const { allowed } = await billing.checkFeature({  customerId: "cus_123",  feature: "api_access"});if (allowed) {  // Grant access to the feature}

Zero Lock-In

Switch payment providers without rewriting billing logic. Stripe, Paddle, MercadoPago—your choice.

In-Process

No external API calls. Everything runs inside your app. Milliseconds, not seconds.

Type-Safe

Plans in code. Version controlled. Full TypeScript inference. No database sync.

Subscriptions. Feature gating. Trials. Webhooks. Usage tracking.
Payment providers move money. BillSDK handles everything else.

MIT Licensed · Open Source