Skip to main content

Clerk Billing is the easiest way to implement subscriptions for B2C and B2B applications. No payment integration code to write, no UI work, and no webhooks.

Define and manage plans directly in Clerk

Set up plans in Clerk’s dashboard, create a pricing page with the <PricingTable /> component, and let customers manage their subscriptions through Clerk’s profile components.

Acme, Inc
Product
Pricing
Integrations
Blog
Tailor made pricing
from Acme, Inc
Starter
For personal use
$9
/ month
Get started
Unlimited projects
Custom branding
24/7 priority support
Advanced analytics
Collaboration tools
Daily backups
Mobile app integration
Pro
For professionals
$49
/ month
Get started
Unlimited projects
Custom branding
24/7 priority support
Advanced analytics
Collaboration tools
Daily backups
Mobile app integration
Checkout
Starter plan
$9.00
per month
Tax
$0.65
Total due today
USD
$9.65
Account Funds
Visa ⋯ 4242
Pay $9.65
or
Add a new payment source
Pay with
More Payment Methods

Access user and subscription data in one place

Clerk automatically updates and stores your customers' subscription status alongside their user data, eliminating the need for complex synchronization code and the ongoing maintenance it requires.

<PricingTable />
Current plan
Silver
For personal use
$99
/ month
Monthly
Annually
Subscribe
Subscribed
Subscribe
AI assistant
Unlimited files and projects
Workspaces
Advanced reporting
Task reminders
Custom themes
30-day analytics retention
Priority Slack support
User
Brooke Millie
Email address
brooke@example.com
User ID
user_54UHj87K09LKkju09877s87YU
Joined
August 5, 2024
Subscription
Plan
Silver
Status
Active
Amount
$99
Features
AI assistant
Workspaces
Task reminders
Custom themes
Brooke

Billing-aware authorization checks

Use Clerk’s has() helper to control access based on a customer’s plan, features, and permissions.

<Protect /> for components

import { Protect } from '@clerk/nextjs'

export default function ProtectPage() {
  return (
    <Protect
      feature="team_access"
      fallback={<p>Sorry, you don't have Team Access.</p>}
    >
      {children}
    </Protect>
  )
}

has() for everything else

import { auth } from '@clerk/nextjs/server'

export default async function Page() {
  const { has } = await auth()
  const hasBronzePlan = has({ plan: 'bronze' })

  if (!hasBronzePlan) return <h1>Sorry, only subscribers to the Bronze plan can access this content.</h1>

  return <h1>For Bronze subscribers only</h1>
}

Access 100+ payment methods

Connect with Stripe to accept payments, let Clerk handle the recurring billing logic

Straightforward and predictable pricing, payable as you grow

0.7%

Plus Stripe’s transaction fees, payable directly to them.

No upfront cost. No surprises.

Integrate Clerk Billing with your framework of choice.

Reliability you can count on

Keep your users authenticated and engaged, even in challenging network conditions, without writing any session management code.

Established reliability

Founded in 2019, Clerk supports thousands of developers across over 10,000 active applications, managing authentication for 100+ million users across the globe.

Rigorous security standards

Security is Clerk’s top priority, with rigorous testing and certification across SOC 2 TYPE II, HIPAA, CCPA, and other industry standards.

Payment protection

Clerk does not store or process credit card information. Instead, you plug in your preferred payment provider for added protections like fraud prevention, PCI compliance, and secure transaction handling with 3Dsecure.

Coming soon

More features are in the works

  • Trials

    Give customers free access to your paid subscriptions for a predefined limited time.

  • Per-seat billing

    Charge customers a variable rate based on the number of seats they select when subscribing to your plans.

  • Taxes

    Easily collect and manage taxes from our upcoming integrations with popular tax collection platforms.

  • Coupons & discounts

    Easily give customers a discount when signing up for your subscription plans via discount codes.

  • Paid add-on features

    Offer your customers paid features they can optionally add to their subscription.

  • Metered and usage-based billing

    We’ll tally up your customer’s usage of your features, and charge them according to the variable rates you set up.

You’ve seen how easy it is, now go try for yourself. Start building your business with Clerk today.

Technical questions and answers

What is Clerk Billing and how quickly can I launch subscriptions with it?

Clerk Billing helps you add subscriptions to your SaaS app with minimal code. We provide ready-to-use UI components like <PricingTable /> that displays your pricing plans and lets users or organizations subscribe instantly. We manage the complete subscription lifecycle, allowing you to easily gate features and enforce plan limits.

Do I need a Stripe account to use Clerk Billing?

Yes. Simply connect your Stripe account during setup, and we’ll handle syncing users, payment methods, and transactions automatically.

Does Clerk Billing support usage-based/metered billing today?

Not yet, but usage-based billing is a top priority on our roadmap.

How does Billing work with other Clerk features, especially B2B Organizations?

Clerk Billing is designed with Organizations in mind. Like users, Organizations can have their own subscriptions, letting you bill per team and gate features based on their plan.

Can I restrict access to features/entitlements based on a user’s billing plan?

Yes, use Clerk’s authorization helpers like has() or the <Protect /> component to gate features or areas of your app based on a user’s subscription plan.

What third-party tools does Clerk Billing integrate with?

None directly, but since payments are processed through Stripe, you can use any third-party tool that integrates with Stripe for analytics, reporting, invoicing, or tax compliance.

Can I test my billing flows in dev/staging before going live in prod?

Yes, Clerk’s development instances automatically use a Stripe test account, allowing you to use test credit cards to simulate subscriptions, failures, and upgrades with zero configuration.

Can I offer custom pricing plans to specific customers?

Clerk Billing does not currently support custom pricing plans, though we plan to roll out support for this in the future.

Can I let users upgrade or downgrade their plans mid-cycle?

Yes. Plan upgrades will take effect immediately, while downgrades take effect at the end of the current billing cycle.

Can I offer free trials or promo periods with Clerk Billing?

Not yet, but free trials is a top priority on our roadmap.

How many currencies does Clerk Billing support?

Clerk Billing currently supports only USD as the billing currency. While you can connect both US and non-US Stripe accounts, all payments will be processed in USD regardless of your Stripe account’s local currency. For information about Stripe’s supported countries and currencies, see Stripe Global. Support for additional currencies is on our roadmap.

How does Clerk handle taxes and VAT for international billing?

Clerk Billing does not currently support tax or VAT, but these are planned for future releases.

How can I test failure scenarios like expired cards or canceled subscriptions?

You can simulate failures in Stripe test mode using test cards that trigger specific behaviors. See Stripe Testing for a list of test cards and behaviors.