Skip to main content

Clerk Changelog

Clerk Billing now supports account credits

Category
Billing
Published

Adjust customer credit balances from the Clerk Dashboard and APIs

Starting today, you can add or remove account credits from Users and Organizations directly from the Clerk Dashboard and APIs.

Sometimes you want to adjust what a customer owes without changing their subscription. Maybe you're offering a one-time discount, issuing a service credit, or resolving a billing issue. Account credits make these kinds of adjustments simple while keeping subscription pricing unchanged.

Credits are stored on a customer's account and automatically applied toward future charges. If the available credit exceeds the amount of the current invoice, the remaining balance stays on the account and is automatically used for future recurring charges.

Flexible account adjustments

Account credits give you a straightforward way to make account-level billing adjustments without creating custom pricing or modifying Plans.

For example, you might:

  • Offer a one-time courtesy credit after a service interruption.
  • Grant promotional credits to early customers.
  • Apply a manual discount for a specific customer. (Note: customers can use their credits however they would like to).
  • Resolve billing issues by crediting part or all of an upcoming invoice.

Whenever a customer is billed, Clerk automatically applies any available credit balance before charging their payment method. Any unused credit remains on the account until it's fully consumed.

Built directly into Clerk Billing

Account credits can be managed from the Clerk Dashboard or through the Backend API, giving you the flexibility to automate credit adjustments or handle them manually.

Each User or Organization displays its current credit balance, and every adjustment immediately updates the amount available for future billing.

Every credit adjustment is recorded in a ledger, giving you a complete history of credits that were added or removed from an account. Whether you're issuing promotional credits automatically through your application or making manual adjustments from the Dashboard, you always have an audit trail of how a customer's balance changed over time.

Get started with Account credits

  • Open a User or Organization in the Clerk Dashboard.
  • Open the Actions menu.
  • Select Adjust credit balance.
  • Enter the amount of credit to add or remove.
  • Save your changes.

The updated balance will automatically be applied to the customer's next eligible charge, with any remaining credit carrying forward to future recurring invoices.

Contributors
Lamone Armstrong
Maurício Antunes

Share this article

Self-serve SSO

Category
SSO
Published

Your customers' IT admins can configure and manage their own enterprise SSO connections from a new Security tab in <OrganizationProfile />.

By default, enterprise SSO connections are configured by your team in the Clerk Dashboard. For every customer that needs SSO, someone on your side creates the connection, exchanges metadata with the customer's IT admin, tests it, and activates it. As your enterprise motion scales, that becomes a bottleneck. Self-serve SSO lets you delegate that configuration to your customers' IT admins, without giving them Dashboard access.

Note

Currently, Self-serve SSO is only available for applications using Clerk Organizations and only supports SAML providers.

How it works

When you enable self-serve SSO for an Organization, a Security tab appears in that Organization's <OrganizationProfile />. An admin with the org:sys_entconns permission can set up the connection end-to-end from there:

  • Domains: Add one or more domains and verify ownership of each with a DNS TXT record.
  • Connection: Pick an identity provider and supply its configuration, with setup instructions embedded inline. Okta, Google Workspace, Microsoft Entra ID, and custom SAML are supported.
  • Test: Run a test sign-in to confirm the connection works end-to-end.
  • Activate: Turn the connection on once the test passes.

The connection is scoped to the Organization it's configured in and behaves like any other enterprise connection once it's live: users with a matching email domain sign in through the configured provider.

Get started

Self-serve SSO is available to applications using Organizations and is enabled per Organization. In the Clerk Dashboard, select an Organization, open its Settings, and turn on Allow this organization to set up enterprise SSO under Organization permissions. The Security tab then surfaces wherever your app renders <OrganizationProfile />.

For setup details and requirements, refer to the self-serve SSO documentation.

Contributors
Laura Beatris
Iago Dahlem
Nicolas Lopes

Share this article

SAML custom attributes can now map every value an identity provider sends into an array on publicMetadata, instead of keeping only the first.

SAML custom attributes can now be mapped as multi-valued. When an identity provider sends an attribute with more than one value (common for groups or roles in Okta and Microsoft Entra ID), Clerk writes every value to the user's publicMetadata as an array. Previously, only the first value was kept.

Enable multi-value attributes

Open an enterprise connection in the Clerk Dashboard, edit a SAML custom attribute, and turn on Allow multiple values. Matching values are written to publicMetadata always as an array []. If the provider doesn't send the attribute at all, the key isn't written.

The same control is available on the Backend API as a multi_valued field on each custom attribute.

Compatibility

Multi-value mapping is off by default. Existing custom attributes are unchanged and continue to map the first value. No migration or reconfiguration is required.

Refer to the Multi-valued attributes documentation for setup details and how the setting interacts with SCIM.

Contributors
Nicolas Lopes
Gabriel Melo

Share this article

clerk deploy: guided, resumable, agent-ready

Category
Product
Published

clerk deploy takes your application live with a single command, cloning your development instance to production and walking you through DNS and OAuth setup.

When we released the CLI, we said we were hard at work on deploy. It's ready for you to use today: clerk deploy is now available in the Clerk CLI, taking your application from development to production with a single command.

A clerk deploy session showing the plan and production domain prompt

Run clerk deploy from a linked project and the CLI walks you through everything production needs:

  • Production instance: Creates a production instance from your development configuration and prompts for your production domain

  • DNS records: Displays the CNAME records to add at your DNS provider, and can export them as a DNS zone file you can import at any compatible provider

  • OAuth credentials: Detects the social connections enabled in development and prompts for production Google and Apple credentials, including importing a Google Cloud Console JSON file or pointing at your Apple .p8 key. Other providers are flagged for setup in the Clerk Dashboard

  • Verification: Checks DNS, SSL, and email DNS in one loop and reports exactly what's still pending

Built for agents

In a non-TTY context, or with --mode agent, clerk deploy emits a read-only JSON handoff describing the current deploy state instead of prompting.

clerk deploy status --mode agent

Get started

Update to the latest CLI, link your project if you haven't already, and deploy:

clerk update
clerk link
clerk deploy

Read the full documentation for all commands and options.

Contributors
Rafael Thayto
Wyatt Johnson

Share this article

Configure per-seat pricing in your organization billing plans

Starting today, you can create Plans with per-seat pricing in Clerk Billing, allowing you to charge Organizations based on the number of members using your product.

As your customers get larger, they're getting more value out of your product. A five-person team shouldn't necessarily pay the same amount as a fifty-person team. Per-seat pricing makes it easy to align subscription costs with organization size, allowing pricing to scale naturally as organizations grow.

For example, you might create a Plan with a $12 monthly charge per member. Smaller organizations pay less, while larger organizations are charged proportionally to their team size.

Per-seat pricing is deeply integrated with Clerk Organizations, allowing you to monetize Organization growth without building custom billing or seat management workflows.

Billing that grows with Organizations

When Organizations add new members, Clerk automatically handles seat provisioning behind the scenes. If an Organization exceeds its available seats when adding members, Clerk guides them through a checkout flow to purchase additional seats, ensuring billing stays aligned with membership. Additional seats purchased during an active billing period are prorated automatically, ensuring organizations only pay for the time those seats are in use.

At the beginning of each billing period, Clerk automatically adjusts the subscription's seat quantity to match the Organization's current membership count. This ensures billing remains aligned with the provisioned members over time and prevents organizations from paying indefinitely for unfilled seats.

Per-seat pricing can be combined with seat limits, allowing you to both charge per member and enforce a maximum Organization size.

Per-seat pricing can also be combined with a fee for the Plan itself, a "base fee", to charge a minimum fee for access to the Plan's features. You can even set an "included" number of seats that come with the base fee; Organizations will only be charged per seat after these included seats are used.

For example, a Plan can have:

  • A $20 per month base fee
  • An $8 per month per-seat fee
  • 2 included seats
  • A limit of 10 seats on the Plan
Organization sizeCostBreakdown
1$20$20 for the base fee, no seats over the 2 included
3$28$20 for the base fee, two seats included, $8 for the 1 additional seat
10$84$20 for the base fee, two seats included, $64 for the 8 additional seats

An Organization on this Plan would not be able to invite an eleventh member without changing their Plan, and would be prompted to do so when they go to invite the member.

A more capable Clerk Billing

When we launched Clerk Billing a year ago, we only supported flat fee pricing for Plans. With the recent launch of seat limits and now per-seat pricing, we hope Clerk Billing can offer a compelling experience for businesses that use a seat-based pricing model.

We're not done with Clerk Billing yet, and are continuously striving to offer more and more powerful tools to let you build the pricing model that will most accurately capture your product's value. We have a lot we're working on, and we can't wait to share it with you.

Get started with seat-based billing

  • Navigate to the New Organization plan page in the Clerk Dashboard.
  • Toggle on the Seat-based section.
  • If you'd like to set a limit, select Custom limit and enter the desired value. (You need the B2B Authentication add-on to set a limit greater than 20.)
  • If you'd like the Plan to allow an unlimited number of seats, select Unlimited members. (You need to have the B2B Authentication add-on to select this option.)
  • Toggle on the Per-seat fee section.
  • Enter the price per seat in the Cost per member seat monthly section.
  • If you'd like to include free seats in the plan, enter the desired value in the Included seats section.

You can learn more about seat-based billing in the docs.

Contributors
Lamone Armstrong
Mary Zhong
Maurício Antunes
Dylan Staley
George Vanjek
Paddy Carver
Keiran Flanigan

Share this article