Usage-based billing

Usage-based billing software for seats, usage and everything in between

Usage-based billing charges customers for what they actually consume — API calls, messages, tokens, gigabytes — measured each billing period and invoiced in arrears. Bunny billing is usage-based billing software for B2B SaaS: meter any unit through the API, rate it against flat, tiered, volume or banded pricing, and invoice it next to seats and platform fees on one subscription.

Bunny is SaaS billing, CPQ and RevOps in one platform, so the usage rate your rep negotiated on the quote is the rate on the invoice.

A real invoice

One platform fee. A busy month. Still one clear bill.

This is the deal your sales team keeps signing, and the invoice your finance team keeps rebuilding by hand. Here it is in Bunny.

What you negotiated

Platform fee, billed monthly $1,000
Included API calls 100,000
Negotiated overage rate $0.01 per call
They used 125,000 calls in March + $250
March invoice, before tax $1,250

Then they expand in month seven

The allowance changes, the rate stays, the term co-terms and the next invoice is still right. That is the part spreadsheets get wrong.

Bring us your own pricing →

Usage billing comes with the PLG plan; negotiated quotes come with SLG. Builders can start in the developer documentation.

Metering

How does usage get into Bunny?

Any countable thing in your product can be a meter. Define it once as a feature with a unit — API calls, messages, seats, tokens, documents processed — then report usage against it from your app. That is the whole integration.

  • API and SDKs Send usage with the featureUsageCreate GraphQL mutation, or the helpers in Bunny’s Node.js and Ruby SDKs. Send one record per event, or a daily or monthly total — whatever your pipeline already produces. Records can be corrected or removed with featureUsageUpdate and featureUsageDelete.
  • The usage records table Finance can inspect every record by account, plan and feature, and add usage by hand when a one-off needs billing.
  • A window before the bill run Bill runs start after 8:15 a.m. in each entity’s own timezone, which gives your pipeline hours to land the last records of the period before invoices are cut.

New to the plumbing? Read what usage metering involves and how metered billing turns raw counts into charges.

Report usage · GraphQL
mutation {
  featureUsageCreate(attributes: {
    subscriptionId: "123456"
    featureCode: "api_calls"
    quantity: 2500
    usageAt: "2026-03-14T09:00:00Z"
  }) {
    errors
  }
}

Pick how the period’s records are counted

Sum
Add every record up. Messages sent, API calls, tokens.
Max
Bill the peak. Concurrent users, storage high-water mark.
Last
Bill the final reading. Monthly active users counted at period end.
Average
Bill the mean of all readings. Fair for usage that swings day to day.
Rating

How is usage priced once it’s counted?

Rating is where most usage billing goes wrong — the right quantity at the wrong rate. In Bunny every usage charge carries its own pricing model, and the rate on the subscription is the one the customer signed.

Usage pricing models in Bunny, priced for 25,000 API calls
Model How it prices 25,000 calls costs
Flat One rate per unit: $0.010 a call $250
Tiered Each tier priced on its own: first 10,000 at $0.010, the rest at $0.008 $100 + $120 = $220
Volume The tier you reach prices every unit: over 10,000 means all at $0.008 $200
Bands The quantity picks a fixed price: 10,001–50,000 calls is $199 $199

Negotiated rates

Override the usage rate on the quote for one customer. The catalog stays clean and the rate follows the subscription into renewal.

Minimums

Set a minimum quantity on a usage charge so a quiet month still bills the floor you agreed.

Usage discounts

Discount the usage charge on a subscription, separately from any discount on the platform fee.

Sub-cent prices

Price units to four or six decimal places for messages, events and tokens, and still show a readable invoice.

Hybrid pricing

Seats plus usage, on one subscription

Pure pay-as-you-go is rare in B2B. Most SaaS contracts are a platform fee or seats, an included allowance, and overage above it. Procurement gets a predictable number; you get upside when the customer grows.

A Bunny price list can carry any number of one-time, recurring and usage-based charges. Recurring charges bill in advance at the start of the period. Usage charges bill in arrears at the end. Put a seat charge and a usage charge on the same plan and you have hybrid pricing without a second system or a second invoice.

Committed spend works the same way: the commitment is a recurring charge, and a tiered usage charge with a free first tier rates everything above it as overage. Need a floor on usage itself? Set a minimum on the usage charge.

Committed + overage, three plans

Committed plus overage plans modelled as a recurring charge and a tiered usage charge
Charge Small Medium Large
Monthly fee, in advance $20 $40 $80
Requests included 100 250 500
Extra requests, in arrears $0.25 $0.22 $0.20

In Bunny: a recurring flat charge plus a tiered usage charge, free up to the allowance. A Medium customer who makes 300 requests pays $40 + 50 × $0.22 = $51.

AI and token pricing

Can you bill AI products by token, credit or request?

Yes. AI products meter whatever maps to their compute cost — tokens, credits, generations, minutes — and the unit tends to change as the models do. Bunny treats each one as just another usage charge, so changing what you meter is a catalog change, not a rebuild.

Price the unit you sell

Meter single tokens at six decimal places, or report usage in thousands of tokens and price per 1K. Either way the invoice reads the way your pricing page does.

Rates that step down

Tiered usage pricing lowers the per-token rate as volume grows, while the seat fee for the admin console stays flat on the same subscription.

Allowances enterprise will sign

Sell a monthly credit allowance as a recurring charge and rate consumption above it as overage. Procurement gets its fixed number; heavy users still pay for what they burn.

Change the meter, keep the contracts

A new pricing model is a new price list. Existing customers keep billing on the terms they signed until a renewal or upgrade quote moves them.

Usage customers can see

The customer portal shows current-period usage as a sparkline, with the current and past few periods a click away. Fewer “why is my bill higher?” tickets.

Pricing an AI product?

Our guide to usage-based pricing models covers per-unit, tiered, hybrid and credit models with real examples, and how to bill each one.

Invoicing

From meter to invoice, without the month-end scramble

Usage is only known once the period closes, which is exactly when finance has the least time. Bunny gives you ways to see the invoice before the customer does.

Preview next month’s invoice today

Invoice preview renders what an account’s next invoice will look like from the usage recorded so far — ideal for testing a new price list before it goes live.

Draft invoices for the big accounts

Turn on draft invoices for an account and nothing is emailed until you approve it. If records were missing, add them, regenerate the invoice and release it.

One invoice, every charge

Last period’s usage in arrears and next period’s recurring fees in advance land on one invoice, with tax calculated per charge through the Avalara integration and payment collected through Stripe.

Usage revenue in the numbers

Every account carries MRR, ARR and monthly usage revenue. Revenue charts stack usage on top of recurring, movements show usage increases and decreases, and the invoice forecast projects usage from history.

The hidden complexity of usage-based pricing

Usage data must be collected, aggregated, and rated according to flexible pricing models. It then needs to appear clearly on invoices and stay aligned with finance, sales, and customer expectations. Without the right infrastructure, usage-based pricing quickly becomes complex and fragile.
And if you’re not offering usage-based pricing at all, you may be leaving revenue on the table.
Usage-based billing
Usage flow

The best of both worlds: recurring + usage-based

Bunny supports both recurring and usage-based pricing models. By combining them, you’re positioning yourself stronger. 
A subscription can have any number of recurring and usage-based charges. Mix recurring and usage-based to support committed and overages scenarios. Override pricing on quotes. Integrate discounts or renewal uplifts. Build powerful renewals for long-term growth.
Optiply
“Switching to Bunny was a game-changer. It's SaaS billing done right - simple, powerful and truly going for automation”
Sander van den Broek
CTO & Founder, Optiply
Free trial

The RevOps expert your team never had.

Ask it anything about your book of business, and it answers from your live data. Point it at the renewal that needs a quote and it drafts one. All the digging, none of the digging.
  • Type "send upgrade quotes to all starter plan accounts" — done in seconds
  • Know which renewals need you this month, while there is still time to do something about it
  • Find every overdue invoice in one question, instead of one account at a time
Try free for 30 days

No credit card required. Cancel anytime.

FAQ

Frequently asked questions

What is usage-based billing software?
Usage-based billing software collects usage records from your product, aggregates them each billing period, prices them against the customer's contracted rates and puts the result on an invoice. Bunny does all four and also handles the recurring side of the contract, so seats, platform fees and usage bill on one subscription and one invoice.
How do I send usage data to Bunny?
Report usage records with the featureUsageCreate GraphQL mutation or the helpers in Bunny's Node.js and Ruby SDKs. Each record carries a quantity, a feature code, the subscription and a timestamp. Records can also be added by hand in the usage records table, and corrected or removed through the API.
Which pricing models can usage charges use?
Flat, tiered, volume and banded pricing. You also choose how the period's records are counted: the sum, the maximum, the last reading or the average. Usage charges can have a minimum quantity and their own discounts, and prices can go to four or six decimal places.
Can a subscription combine recurring and usage-based charges?
Yes. A price list can carry any number of one-time, recurring and usage-based charges. Recurring charges bill in advance and usage bills in arrears, on the same invoice, so seat-plus-usage and committed spend with overage are one subscription.
Can usage-based prices be negotiated per customer?
Yes. Pricing can be overridden on the quote for one customer, with discounts or renewal uplifts on the same deal. The catalog stays clean and the negotiated rate carries through to the renewal quote.
Can I bill AI usage by token or credit?
Yes. Tokens, credits, requests or any other countable unit can be a usage-based charge. Price per token at up to six decimals, or report in thousands and price per 1K. A monthly credit allowance works as a recurring charge with overage rated as usage above it.
How do I check a usage invoice before the customer sees it?
Use invoice preview to see an account's next invoice from the usage recorded so far, and turn on draft invoices for accounts where you want to approve every invoice. If records were late, add them and regenerate the draft before releasing it.
Does usage revenue show up in SaaS metrics?
Yes. Accounts carry MRR, ARR and monthly usage revenue, revenue charts stack usage on top of recurring revenue, and the invoice forecast projects usage from historic numbers.