Passer au contenu principal
Les crédits prépayés font référence à un modèle de paiement dans lequel les clients achètent un lot de crédits à l’avance. Ces crédits sont ensuite consommés à mesure que le client utilise les ressources ou fonctionnalités de votre logiciel. Contrairement aux modèles à l’usage, les utilisateurs doivent maintenir un solde de crédit positif pour continuer à accéder aux services de votre plateforme. Une fois les crédits entièrement épuisés, l’accès d’un utilisateur est suspendu jusqu’à ce qu’il achète des crédits supplémentaires. Le modèle des crédits prépayés crée un cadre clair de paiement avant utilisation qui gagne du terrain sur diverses plateformes SaaS, en particulier celles soucieuses de réduire le risque financier. Les clients achètent généralement des forfaits de crédits via le site web d’une entreprise, en sélectionnant parmi des montants prédéfinis basés sur leurs besoins de consommation anticipés. Les entreprises mettent en œuvre des modèles de crédits prépayés à différents stades. Par exemple :
  • Startups soucieuses du risque cherchant à éliminer les défauts de paiement
  • Entreprises établies cherchant à réduire la fuite de revenus et le churn
  • Entreprises opérant sur des marchés à fort potentiel de fraude
Dans ce guide, vous apprendrez à mettre en œuvre un modèle d’affaires en crédits prépayés sur Metronome, y compris la configuration d’options de recharge automatique permettant aux utilisateurs de maintenir un service ininterrompu tout en préservant votre exigence de paiement anticipé.

Cas d’usage​

Dans ce guide, votre client Example Inc. s’inscrit sur votre plateforme en utilisant Stripe comme votre fournisseur de facturation. Ils achètent 2 000 crédits à utiliser sur votre plateforme, qui expirent après un an. Lorsque l’utilisateur d’Example Inc. clique sur purchase credits dans votre système, le paiement est immédiatement déclenché, et les crédits ne sont accordés qu’une fois le paiement confirmé comme réussi. Avec les crédits en main, ils peuvent utiliser votre système et voir leur solde de crédits diminuer en temps réel. Une fois leur solde atteint zéro, votre système doit les couper de toute utilisation supplémentaire jusqu’à ce qu’ils achètent un autre lot de crédits.

Blocs de construction Metronome​

Quel que soit le modèle commercial choisi, le travail principal de Metronome est de transformer les données de consommation en données de dépenses précises. Avant de mettre en œuvre le modèle de crédits prépayés, configurez ces objets Metronome essentiels :
  • Métriques facturables : créez une métrique facturable pour chaque unité de ce que les clients consomment en utilisant votre plateforme (comme le calcul, le stockage ou les appels API).
  • Produit : créez un produit basé sur l’usage pour chacune de vos métriques facturables afin de configurer comment vos dépenses de consommation apparaissent à vos utilisateurs. Créez également un produit fixe pour représenter les frais achetés sur crédits.
  • Grille tarifaire et tarifs : créez une grille tarifaire contenant les tarifs de consommation pour chacun des produits basés sur l’usage que vous prévoyez d’offrir à vos utilisateurs.
Pour apprendre à configurer ces objets, voir le Quickstart.

Mettre en œuvre les crédits prépayés​

Après avoir terminé ce guide, vous aurez un modèle de crédits prépayés construit dans Metronome.
Modèle de crédits prépayés

Configurer un fournisseur de facturation​

Dans le flux de crédits prépayés, Metronome facilite le paiement depuis votre fournisseur de facturation pour facturer immédiatement les clients et s’assurer que les paiements sont complétés avant que les crédits ne soient accordés. À ce titre, vous devez d’abord connecter votre fournisseur de facturation pour permettre à Metronome d’envoyer et de finaliser les factures en votre nom. Le fournisseur de facturation le plus courant dans le flux de crédits prépayés est Stripe. Pour apprendre comment connecter votre compte Stripe, voir Facturer avec Stripe.

Configurer un webhook​

Le flux de crédits prépayés repose sur la réception par votre système de notifications webhook en temps réel de Metronome. Celles-ci sont utilisées pour envoyer un signal :
  • Lorsque les utilisateurs manquent de solde, afin que votre système puisse couper leur accès à la plateforme
  • En cas de paiement réussi ou échoué, afin que votre système puisse activer ou désactiver les clients au besoin
Avant de commencer, assurez-vous d’avoir une destination de webhook configurée pour recevoir les requêtes de Metronome.

Configurer le cycle de vie des crédits​

La mise en œuvre d’un modèle de crédits prépayés sur Metronome implique de prendre des mesures à différentes parties du cycle de vie d’achat.

Inscription du client​

Lorsqu’un client s’inscrit dans votre application :
  • Assurez-vous d’avoir créé son enregistrement client dans Metronome et votre fournisseur de facturation (par exemple, Stripe).
  • Commencez son contrat pour encoder les tarifs que Metronome doit utiliser à mesure que les événements de consommation du client commencent à circuler dans le système.
Le flux de bout en bout pour acheter lors de l’utilisation de Stripe est :
  1. Un utilisateur s’inscrit pour un compte sur votre plateforme, en saisissant ses informations de carte de crédit.
  2. Vous créez l’utilisateur en tant que client dans Stripe.
  3. Vous définissez sa méthode de paiement saisie comme méthode par défaut dans Stripe.
  4. Vous créez un client dans Metronome, en liant l’identifiant client Stripe.
  5. Vous créez un contrat pour le client dans Metronome.
ASTUCENous recommandons de configurer les contrats avec une facturation au premier du mois. Bien que les utilisateurs ne soient pas facturés à terme échu dans un modèle de crédits prépayés, l’utilisation de la facturation au premier du mois facilite le regroupement des données de revenus de dépenses par limites mensuelles.
Voir cet exemple d’utilisation du point de terminaison customers pour créer un client, en liant à l’identifiant client Stripe du client :
curl https://api.metronome.com/v1/customers \  
  -H "Authorization: Bearer $TOKEN" \  
  -H "Content-Type: application/json" \  
  -d '{  
    "ingest_aliases": [  
        "team@example.com"  
    ],  
    "name": "Example, Inc.",  
    "customer_billing_provider_configurations": [  
        {  
            "billing_provider": "stripe",  
            "delivery_method": "direct_to_billing_provider",  
            "configuration": {  
                "stripe_customer_id": "cus_123",  
                "stripe_collection_method": "charge_automatically"  
            }  
        }  
    ]  
  }'
Voir cet exemple d’utilisation du point de terminaison contracts/create pour créer un contrat :
curl https://api.metronome.com/v1/contracts/create \  
  -H "Authorization: Bearer $TOKEN" \  
  -H "Content-Type: application/json" \  
  -d '{  
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",  
    "rate_card_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",  
    "starting_at": "2025-04-15T00:00:00.000Z",  
    "billing_provider_configuration": {  
        "billing_provider": "stripe",  
        "delivery_method": "direct_to_billing_provider"  
    }  
  }'
Comme les utilisateurs n’ont encore acheté aucun crédit, leur état d’entitlement par défaut dans votre système devrait être false.

Achats de crédits​

Dans un modèle de crédits prépayés, les clients doivent avoir un solde de crédits positif pour pouvoir utiliser votre système. Pour avoir un solde de crédits positif, ils doivent acheter des lots de crédits. Cela est généralement inclus dans le flux d’inscription initial, et les clients ont ensuite la possibilité d’acheter des crédits ponctuels via votre plateforme au besoin. Ce flux devrait ressembler à :
  1. L’utilisateur clique sur purchase credits dans votre plateforme avec le montant souhaité.
  2. Vous envoyez une requête API à Metronome pour faciliter le crédit prépayé de bout en bout. Metronome initie le paiement dans Stripe.
    • En cas de succès, Metronome crée un objet d’engagement pour augmenter le solde du client et envoie un webhook avec notification de paiement réussi.
    • En cas d’échec, Metronome annule l’objet d’engagement dans le système et envoie un webhook avec notification de paiement échoué.
  3. Sur paiement réussi, vous définissez l’état d’entitlement d’un client sur true pour lui permettre de commencer à dépenser.
Voir cet exemple d’utilisation du point de terminaison contracts/edit pour faciliter le crédit prépayé :
curl https://api.metronome.com/v2/contracts/edit \  
  -H "Authorization: Bearer $TOKEN" \  
  -H "Content-Type: application/json" \  
  -d '{  
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",  
    "contract_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",  
    "add_commits": [  
        {  
            "product_id": "d7abd0cd-4ae9-4db7-8676-e986a4ebd8dc",  
            "access_schedule": {  
                "schedule_items": [  
                    {  
                        "amount": 2000,  
                        "ending_before": "2025-04-01T00:00:00.000Z",  
                        "starting_at": "2026-04-01T00:00:00.000Z"  
                    }  
                ]  
            },  
            "invoice_schedule": {  
                "schedule_items": [  
                    {  
                        "amount": 2000,  
                        "timestamp": "2025-04-01T00:00:00.000Z"  
                    }  
                ]  
            },  
            "priority": 10,  
            "payment_gate_config": {  
                "payment_gate_type": "STRIPE"  
            }  
        }  
    ]  
  }'

Gérer l’entitlement​

Nous recommandons que l’état d’entitlement d’un client soit géré dans votre système et votre base de données. À son plus simple, cela pourrait être une valeur vrai/faux pour un client particulier qui est vérifiée avant qu’il ne prenne une action. Nous recommandons que cela soit maintenu dans votre système afin qu’il puisse être récupéré avec la latence dont votre système aura besoin, et qu’il soit résilient à toute défaillance entre votre système et Metronome. À un haut niveau, lorsqu’une action client est prise, voici l’état que vous devriez vérifier :
if (customer_entitled) {  
    do_action();  
    send_usage_to_metronome();  
} else {  
    error("Not enough credits");  
}
L’état d’entitlement du client devrait être informé par le fait que le client a ou non un solde actif. À ce titre, vous devriez utiliser des signaux en temps réel de Metronome pour piloter l’état de cet indicateur d’entitlement client. Le mécanisme principal que nous recommandons pour cela est de définir une alerte pour tous les clients à envoyer lorsque le solde client atteint $0. De cette façon, Metronome vous envoie un signal lorsque chaque client manque de crédits pour changer son état d’entitlement. Voici un exemple de webhook pour lorsqu’un client atteint 0. C’est votre signal pour définir customer_entitled d’un client sur false.
{  
  "id": "8d9cebd2-9c57-4a35-a468-bd73fa2ffa89",  
  "properties": {  
    "customer_id": "ac39ecc3-87ee-4d58-8ec0-24041464a5dd",  
    "alert_id": "618a4ca8-c8d9-4822-addc-bd3008eb8428",  
    "timestamp": "2025-04-07T15:08:44.865Z",  
    "threshold": 0,  
    "alert_name": "Balance low",  
    "credit_type_id": "2714e483-4ff1-48e4-9e25-ac732e8f24f2",  
    "remaining_balance": 0,  
    "triggered_by": "usage"  
  },  
  "type": "alerts.low_remaining_contract_credit_and_commit_balance_reached"  
}

Optimiser l’expérience de votre client​

Utilisez Metronome pour offrir à vos clients des expériences comme la recharge automatique et les aperçus de dépenses.

Activer la recharge automatique​

Vous pouvez offrir la recharge automatique à vos clients. Cela leur permet d’acheter automatiquement plus de crédits lorsqu’un seuil est atteint, garantissant qu’ils n’atteignent jamais un solde de $0. Par exemple, un client peut opter pour ce qui suit : lorsque mon solde atteint $5 restants, rechargez-moi à $20. S’il est mis en œuvre, ils devraient s’attendre à des incréments d’achats de crédits de $15 après l’achat initial de $20. Vous pouvez configurer le seuil de recharge automatique souhaité d’un client sur son objet contrat. Une fois configuré, Metronome gère toutes les actions de recharge de manière asynchrone en fonction de la consommation du client. Pour configurer cela, utilisez l’objet threshold_billing_configuration dans la requête de création de contrat :
curl https://api.staging.metronome.com/v1/contracts/create \  
  -H "Authorization: Bearer $TOKEN" \  
  -H "Content-Type: application/json" \  
  -d '{  
    "customer_id": "f7ed0bb0-7079-4fd1-baa8-713bf70dcb3b",  
    "rate_card_id": "8664db91-4c22-459a-b3c5-5fb11ce085fe",  
    "starting_at": "2025-04-01T00:00:00.000Z",  
    "credit_balance_threshold_configuration": {  
        "is_enabled": true,  
        "threshold_amount": 300,  
        "recharge_to_amount": 2000,  
        "payment_gate_config": {  
            "payment_gate_type": "STRIPE"  
        },  
        "commit": {  
            "product_id": "ff6c5ff2-28d9-443c-bb49-68df8191b05f"  
        }  
    }  
  }'
Une fois configuré, Metronome gère toutes les actions de recharge de manière asynchrone en fonction de la consommation du client. À mesure que les paiements se produisent, Metronome envoie des webhooks à votre système indiquant si les paiements réussissent ou échouent chez le fournisseur de facturation. En cas d’échec de paiement, Metronome définit le statut des paramètres de recharge is_enabled sur false. Pour remédier à cela, nous recommandons d’envoyer un e-mail ou une notification dans la plateforme au client lui demandant de mettre à jour ses informations de facturation. Lors de la mise à jour de ces informations, vous devriez modifier le contrat et set is_enabled à nouveau sur true, ce qui déclenche une autre recharge.

Présenter les dépenses à vos clients​

Comme l’expérience d’un client avec votre plateforme change lorsqu’il manque de crédits, vous devriez lui donner la possibilité de voir son solde mis à jour en temps réel via votre plateforme. L’API listBalances de Metronome prend en charge ces composants d’interface. Cet appel API montre comment récupérer le solde d’un client particulier :
curl https://api.metronome.com/v1/contracts/customerBalances/list \  
  -H "Authorization: Bearer $TOKEN" \  
  -H "Content-Type: application/json" \  
  -d '{  
    "customer_id": "13117714-3f05-48e5-a6e9-a66093f13b4d",  
    "id": "6162d87b-e5db-4a33-b7f2-76ce6ead4e85",  
    "include_balance": true,  
    "include_contracts_balances": true  
  }'
Cet exemple de tableau montre comment vous pourriez afficher ces informations à votre client :
Tableau de suivi des engagements
Pour voir plus de workflows courants pour afficher les données de dépenses dans votre application, voir Créer des tableaux de bord client alimentés par API.