Blog
/
Guides

Billing Management: What It Is and How It Works

What billing management is, the five core functions of a billing management system, and where standard processes break down under usage-based pricing.

Sara NelissenSara Nelissen
Written by
Sara Nelissen
Last updated
July 22, 2026
read time
6
minutes
What billing management is, the five core functions of a billing management system, and where standard processes break down under usage-based pricing.

Table of contents

Our cancellation and invoicing flows were built by two different engineers months apart, and neither checked the other's state before running.

A customer canceled on the 3rd of the month. The invoicing job still ran on the 1st because its logic didn't account for a cancellation that had already occurred. The dispute came in before the bug report did.

That kind of failure is exactly what billing management, done properly, exists to prevent.

What is billing management?

Billing management is the set of processes and systems a business uses to generate, deliver, collect, and reconcile charges accurately and on time. It covers everything from creating an invoice to handling a failed payment to reconciling what was collected against what was billed.

Done well, billing management keeps cash flow predictable and keeps customers from getting invoices that don't match what they agreed to. When done poorly, it produces exactly the kind of mismatch described above, where you have two systems that disagree about what a customer owes.

The 3 most common billing models

Most billing runs on three basic models, and many systems support a combination of all three.

1. One-time charges

One-time charges cover a single event, such as a setup fee, activation charge, or one-off purchase. There's no billing cycle, proration, or ongoing balance to manage. The charge happens once, and the billing system's work is complete.

2. Recurring charges

Recurring charges are billed on a fixed schedule where the standard subscription fee is billed monthly or annually, regardless of how much the customer uses the product during that period. 

This is the model most billing management systems were originally built around, with predictable amounts, predictable timing, and proration rules for mid-cycle upgrades or downgrades.

3. Usage charges

Usage charges grow with consumption and are billed after the fact. Billing is calculated from usage accumulated throughout the billing period.

This model requires the billing system to have accurate usage data before it can generate a charge. That data comes from somewhere upstream, like metering, event tracking, and aggregation, none of which billing management generates on its own.

What does a billing management system include?

A billing management system includes five core functions, even when a single tool handles all of them.

Function What it does
Invoicing Generates and delivers invoices based on the customer's plan and billing cycle
Payment collection Processes payments, retries failed charges, and manages payment methods
Dunning Follows up on failed or overdue payments before an account goes delinquent
Account and subscription changes Applies upgrades, downgrades, and cancellations, and adjusts billing accordingly
Reporting and reconciliation Tracks what was billed, what was collected, and where the two don't match

Most of these functions assume the inputs feeding them are already correct. When they're not, usage data that's late, duplicated, or misaligned, the problem shows up here first, even though it didn't start here.

Billing management vs. subscription management

The main difference between billing management and subscription management is scope. 

Subscription management covers the customer lifecycle from plan selection through cancellation, including trials, upgrades, and downgrades.

Billing management handles the mechanics of turning what a customer owes into an actual invoice, payment, and collected charge.

Billing management Subscription management
Core question How does this charge get generated, delivered, and collected? What should this customer be charged for, and when does that change?
Covers Invoicing, payment collection, dunning, reconciliation Plan selection, trials, upgrades, downgrades, cancellations
Role Execution layer Decision layer

In practice, most systems handle parts of both, and the split between them is not always clean. 

Knowing which is which helps when something breaks. A bug in subscription management puts a customer on the wrong plan, while a bug in billing management produces the wrong invoice even when the underlying plan is correct.

Who owns billing management at an AI company?

For a flat-subscription product, billing management is handled almost entirely by finance and RevOps. Invoices are predictable, payment amounts are fixed, and the billing system rarely needs input from engineering beyond the initial integration.

That changes once usage and credits come into play. An invoice with a usage component needs line-item detail that traces back to product events, beyond just a plan name and a total. 

Dunning logic that used to check a fixed amount now has to account for a continuously changing balance. Engineering ends up owning a meaningful share of billing management at that point, because the inputs billing depends on now live inside the product itself.

What integration requires from engineering

Most billing management systems communicate through webhooks. Events like invoice.created, payment_failed, and subscription.updated fire whenever something changes on the billing side, and handling these correctly is where most of the actual engineering work is needed.

A payment_failed webhook typically looks something like this:

{

  "event": "payment_failed",

  "account_id": "acct_88213",

  "invoice_id": "inv_4471",

  "amount_due": 249.00,

  "attempt_count": 2,

  "next_retry_at": "2026-07-18T09:00:00Z"

}

Processing this correctly requires a few things. First, the handler needs to be idempotent, since webhook providers generally guarantee at-least-once delivery, meaning the same event can arrive twice.

The product's internal view of the account, whether it's marked active, past due, or suspended, needs to update based on this event and stay aligned with what the billing system currently thinks.

And because webhooks can arrive out of order, the handler needs to check attempt_count or a timestamp instead of assuming events show up in the sequence they were generated.

Integration anti-patterns

I've seen the same three integration mistakes come up across different teams, different stacks, and the same root cause.

  1. Treating billing state as always current. The billing system's state is really eventually consistent as opposed to instantaneous, which can leave a product showing access as active for several seconds or minutes after a payment has already failed.
  2. Not handling out-of-order webhook delivery. A subscription.updated event can overwrite a more recent state with an older one if it happens to arrive last, unless the handler checks a timestamp or sequence number first.
  3. Hardcoding proration around discrete plan changes. Logic built around a customer moving from Basic to Pro breaks the moment usage or credits are part of the pricing, since there's no single moment a plan changes the way there is with a fixed tier.

These failures are common when teams treat a billing integration as a one-time setup. In practice, it is an ongoing contract between two systems that keep changing.

Where standard processes break under usage-based pricing

Standard billing processes break under usage-based pricing because they assume fixed amounts and discrete plan changes. Usage-based pricing is continuous instead.

Proration creates a similar challenge. Standard logic calculates the difference when a customer moves between discrete plans during a billing cycle. Usage-based pricing changes continuously as consumption grows, which requires a running calculation throughout the period.

Unifying the broader billing management lifecycle

As billing becomes more complicated, most of the friction doesn't come from any single function breaking. It comes from the functions not sharing the same source of truth.

Multiple billing providers are introduced through acquisitions or new product lines. Product and pricing configuration lives in a spreadsheet separate from what billing charges.

Entitlements and user access get managed in yet another system entirely. Each piece works on its own, and none of them agree with each other.

A few capabilities address this directly:

  • Stack-wide integration, so entitlements and usage stay in sync across your whole revenue stack. That means billing, CPQ, CRM, and data warehouses.
  • A centralized product catalog keeps pricing and packaging configuration in one place across every billing system.
  • User and entitlement management, so access decisions are tied to the same account data that billing already depends on.
  • Self-service customer portals letting customers view and manage their usage, plan, and billing details without opening a support ticket.

This works alongside the core billing management functions covered earlier, addressing the fragmentation that arises when a company runs more than one product, billing provider, or customer-facing surface.

The layer above billing management

The proration and dunning problems above share a root cause. Billing management operates after usage has already happened and decides what to charge based on consumption that has already occurred. It doesn't make a real-time call on whether a request should be allowed. 

That decision runs before billing management ever sees the event.

Stigg is the usage runtime for AI products. Entitlements, credits, usage limits, and spend governance are enforced synchronously in the request path. That's the layer that billing management depends on but doesn't provide on its own.

  • Synchronous entitlement checks are enforced in the request path, so access decisions happen before a request completes.
  • Credit and usage tracking that feeds accurate, event-level detail into invoicing, instead of a single lump-sum total.
  • Support for complex tenancy, per-user, per-team, per-product, per-department, each with its own limits and owners.
  • BYOC deployment for teams with data residency requirements, running the enforcement layer inside your own cloud.
  • Compatible with your existing billing stack, including Stripe and Zuora, so adopting this doesn't mean replacing what's already working.

You don't have to adopt all of this at once. You start with the one piece your billing stack can't cover, whether that's credits, entitlement checks, or governance, and add the rest as you need it.

Everything upstream of the invoice is where the real decisions get made. See the Stigg docs for details on entitlements and usage-based governance.

FAQs

1. What is a billing management system?

A billing management system is software that automates processes such as generating invoices, processing payments, retrying failed charges, and reconciling billed amounts with collected amounts.

2. Is billing management enough for AI or usage-based products?

Not entirely. Billing management handles invoicing and collection well, but AI products with continuous, high-volume usage typically need an additional layer for real-time entitlement enforcement and spend governance.

3. Can billing management prevent overages in real time?

No, not on its own. Billing management generates invoices and processes payments after usage has already occurred; stopping an overage before it happens requires a separate real-time entitlements or enforcement layer.

4. Does billing management include usage limits?

Billing management can track usage for invoicing purposes, but enforcing a hard limit, blocking a request once a customer hits their cap, is typically handled by a separate entitlements system rather than the billing system itself.

5. What's the difference between billing management and entitlement management?

The main difference between billing management and entitlement management is timing. Billing management handles charges after usage occurs, while entitlement management decides whether a specific request is allowed before it happens.

Latest news.

One email per month.
From engineers, for engineers.

Thank you! Your submission has been received.
Oops! Something went wrong while submitting the form.