Better Billing

Next.js Integration

Set up Better Billing with Next.js App Router and Pages Router

Create a catch-all API route:

// app/api/billing/[...path]/route.ts
import { billing } from "@/lib/billing";
import { toNextJsHandler } from "better-billing/integrations/next-js";

const handler = toNextJsHandler(billing.api);

export const { GET, POST, PUT, DELETE, PATCH } = handler;

Pages Router

// pages/api/billing/[...path].ts
import { billing } from "@/lib/billing";
import { toNodeHandler } from "better-billing/integrations/node";

export const config = { api: { bodyParser: false } };

export default toNodeHandler(billing.api);

Configuration

// lib/billing.ts
import { betterBilling } from "better-billing";
import { corePlugin } from "better-billing/plugins/core";
import { stripePlugin } from "better-billing/plugins/stripe";

export const billing = betterBilling({
  plugins: [
    corePlugin({ ... }),
    stripePlugin({ ... }),
  ],
});

Webhook URL

https://yourdomain.com/api/billing/stripe/webhook