0Pricing
Stripe Payments & SaaS Billing Systems · Leçon

Mise en œuvre de systèmes de facturation à l’usage

Concevoir et intégrer une facturation fondée sur l’usage, dans laquelle les clients sont facturés selon leur consommation d’un service ou d’une ressource.

Mise en œuvre de systèmes de facturation à l’usage est une leçon Stripe Payments & SaaS Billing Systems gratuite sur CoddyKit. Ceci est la leçon 1 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Stripe Payments & SaaS Billing Systems, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Stripe Payments & SaaS Billing Systems comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

What is Usage-Based Billing?

Usage-based billing, also known as metered billing, charges customers based on how much they use a product or service.

Instead of a fixed monthly fee, customers pay only for their actual consumption. This model is popular for services like cloud storage, API calls, or data processing.

It offers flexibility and fairness, aligning costs directly with value received.

Core Concepts: Meters & Events

At the heart of usage-based billing are meters and events.

  • Meter: This is the specific resource or action you track. Examples include "API calls," "GB stored," or "minutes used."
  • Event: A single occurrence that increments your meter. Every time a user makes an API call, stores a file, or uses a minute, an "event" happens.

Your system needs to record and report these events.

Designing Your Usage Meter

When designing your usage-based system, first decide what to meter. What defines "usage" for your service?

  • Example: For a cloud storage service, your meter could be "gigabytes stored."
  • Granularity: How often do you report usage? Instantly? Hourly? Daily? Stripe typically aggregates usage over a billing cycle.

Clearly defining your meter ensures accurate billing.

Stripe's Metered Billing

Stripe supports usage-based billing through metered prices.

You define a product (e.g., "API Access") and then a price that specifies a cost "per unit" (e.g., $0.01 per API call). Instead of setting a fixed quantity for a subscription item, you report usage records to Stripe.

Stripe then aggregates these usage records over the billing period and charges the customer accordingly.

Product & Price Setup (Conceptual)

To set up usage-based billing in Stripe, you'd typically:

  1. Create a Product: This represents the service itself (e.g., "Cloud Storage").
  2. Create a Price: Link this price to your product. Crucially, set its recurring.usage_type to 'metered' and specify the unit_amount (cost per unit) or tiers for graduated pricing.

This tells Stripe that the price is based on reported usage.

Reporting Usage via API

Once your customer is subscribed to a metered price, you'll need to report their usage to Stripe using the API.

You'll send a Usage Record for a specific Subscription Item, indicating the quantity used. Stripe then adds this quantity to the customer's current billing cycle total.

This is usually done server-side from your application as usage events occur.

Code: Reporting Usage

Here's a simplified Java example showing how you might report usage to Stripe. You'd replace placeholders with your actual keys and IDs.

This example reports '10' units of usage for a specific subscription item.

import com.stripe.Stripe;
import com.stripe.exception.StripeException;
import com.stripe.model.UsageRecord;
import com.stripe.param.UsageRecordCreateParams;

public class Main {
  public static void main(String[] args) {
    Stripe.apiKey = "sk_test_YOUR_SECRET_KEY"; // Replace with your secret key

    String subscriptionItemId = "si_YOUR_SUBSCRIPTION_ITEM_ID"; // Get this from your subscription
    Long quantityToReport = 10L; // The amount of usage to report

    try {
      UsageRecordCreateParams params = UsageRecordCreateParams.builder()
        .setQuantity(quantityToReport)
        .setTimestamp(System.currentTimeMillis() / 1000L) // Current time in seconds
        .setAction(UsageRecordCreateParams.Action.INCREMENT) // Add to existing usage
        .build();

      UsageRecord usageRecord = UsageRecord.createOnSubscriptionItem(
        subscriptionItemId, params
      );

      System.out.println("Usage reported successfully: " + usageRecord.getId());
    } catch (StripeException e) {
      System.err.println("Error reporting usage: " + e.getMessage());
    }
  }
}

Billing Cycles & Aggregation

Stripe aggregates all usage records for a specific subscription item within a billing cycle.

When the billing cycle ends, Stripe calculates the total usage based on the configured aggregate_usage for that price. This total is then multiplied by the unit price (or applied to tiers) to determine the final charge for that period.

The invoice is then generated and finalized.

Different Aggregation Types

Stripe offers different ways to aggregate usage for a metered price:

  • sum: (Default) Adds up all reported usage quantities over the billing period. Perfect for API calls or data transfer.
  • max: Uses the highest reported usage quantity during the period. Useful for "peak usage" models, like concurrent users.
  • last_ever: Uses the last reported usage quantity. Great for "snapshot" billing, like storage used at the end of the period.

Choose the type that best fits your service.

Quick Check: Usage Billing

Which of the following scenarios is best suited for a 'last_ever' aggregation type in Stripe's usage-based billing?

Recap: Usage-Based Billing

You've learned how to design and implement usage-based billing with Stripe!

  • We covered the core concepts of meters and events.
  • Explored how Stripe uses metered prices and usage records.
  • Saw a code example for reporting usage via the API.
  • Understood different aggregation types like sum, max, and last_ever.

This model offers great flexibility for both you and your customers.

Questions Fréquemment Posées

La leçon « Mise en œuvre de systèmes de facturation à l’usage » est-elle gratuite ?

Oui — le texte complet de « Mise en œuvre de systèmes de facturation à l’usage » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Stripe Payments & SaaS Billing Systems, passe à CoddyKit PRO. Le cours Stripe Payments & SaaS Billing Systems comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Mise en œuvre de systèmes de facturation à l’usage » ?

Concevoir et intégrer une facturation fondée sur l’usage, dans laquelle les clients sont facturés selon leur consommation d’un service ou d’une ressource. Tu pratiques Stripe Payments & SaaS Billing Systems avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Stripe Payments & SaaS Billing Systems ?

Aucune expérience préalable n'est requise. Stripe Payments & SaaS Billing Systems sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 4.

Combien de temps prend la leçon « Mise en œuvre de systèmes de facturation à l’usage » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Stripe Payments & SaaS Billing Systems ?

Oui. Chaque leçon Stripe Payments & SaaS Billing Systems inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Mise en œuvre de systèmes de facturation à l’usage
  2. Configuration d’une tarification par siège et par paliers
  3. Cycles et calendriers de facturation personnalisés
  4. Tarification par volume et paliers progressifs en profondeur
← Retour à Stripe Payments & SaaS Billing Systems