Enregistrement de l'usage pour la facturation à l'aide de l'API
Découvrez comment enregistrer l'usage à l'aide de l'API Stripe.
Vous devez enregistrer l’utilisation dans Stripe pour vous assurer de facturer à vos clients les montants exacts à chaque période de facturation. Pour enregistrer l’utilisation, commencez par configurer votre dispositif de mesure, puis envoyez les événements de mesure qui incluent le nom de l’événement configuré sur le dispositif, l’ID du client, la valeur numérique et un horodatage (facultatif).
Vous pouvez décider de la fréquence à laquelle vous enregistrez l’usage dans Stripe, par exemple au fur et à mesure ou par lots. Stripe traite les événements de mesure de manière asynchrone. L’usage compilé dans des récapitulatifs d’événements de mesure et sur les factures à venir peut donc ne pas refléter immédiatement les derniers événements de mesure.
Créer des événements de mesure de la consommation
Créez un événement de mesure à l’aide de l’API.
Idempotence
Utilisez les clés d’idempotence pour éviter d’envoyer des données d’usage plus d’une fois en cas de latence ou d’autres problèmes. Chaque événement de mesure correspond à un identifiant que vous pouvez préciser dans votre requête (sinon, nous en générons un automatiquement).
Horodatage des événements
Assurez-vous que l’horodatage est compris dans les 35 derniers jours calendaires et qu’il ne se situe pas plus de 5 minutes dans le futur. La fenêtre de 5 minutes sert en cas de décalage entre l’horloge de votre serveur et celle des systèmes de Stripe.
Valeurs d’utilisation
La valeur numérique de l’utilisation dans la charge utile n’accepte que les nombres entiers. Si la consommation globale au cours du cycle est négative, Stripe indique que la quantité d’utilisation du poste de facture est égale à 0.
Limites de débit
L’endpoint d’événement de mesure autorise un maximum de 1 000 appels par seconde en mode production, et un appel simultané par client et par mesure. Si votre service est susceptible de dépasser cette limite, vous pouvez créer des produits groupés en fonction des volumes. Par exemple, si vous facturez par lot de 1 000 requêtes, vous pourriez définir un produit correspondant à 1 000 transactions et envoyer 1 enregistrement d’usage par lot de 1 000.
Dans les environnements de test, les appels à l’endpoint meter event
et meter event stream
sont pris en compte dans la limite de base.
Remarque
Si vous êtes une plateforme Connect qui fait des demandes au nom d’un compte connecté en utilisant l’en-tête Stripe-Account
, vous êtes soumis à la limite de débit normale de Stripe, qui est de 100 opérations par seconde.
Vous pouvez surveiller les codes d’état 429
et implémenter un mécanisme de relance avec un délai d’attente qui augmente de manière exponentielle pour gérer le volume de requêtes.
Ingestion à haut débit avec des seuils plus élevés API v2
Avec l’API v2, vous pouvez envoyer jusqu’à 10 000 événements par seconde à Stripe en utilisant les flux d’événements de mesure. Cela fonctionne uniquement en mode production.
Cet endpoint utilise des sessions d’authentification sans état. Tout d’abord, créez une session d’événement de mesure pour recevoir un token d’authentification. Les tokens d’authentification ne sont valables que 15 minutes. Vous devez donc créer une nouvelle session d’événement de mesure à l’expiration de votre token.
Ensuite, utilisez le token d’authentification renvoyé pour créer vos événements de mesure à haut débit avec l’API Meter Event Stream.
Remarque
En raison du volume important de requêtes API, nous n’incluons pas les requêtes de flux d’événements de mesure dans l’onglet Workbench Logs.
Vous pouvez surveiller les codes d’état 429
et implémenter un mécanisme de relance avec un délai d’attente qui augmente de manière exponentielle pour gérer le volume de requêtes.
Gérer les erreurs relatives aux événements de mesure de la consommation
Stripe traite les événements de mesure de manière asynchrone. Si nous trouvons une erreur, nous créons l’un des événements suivants :
Événement | Description | Type de charge utile |
---|---|---|
v1. | Cet événement se produit quand une mesure compte des événements d’usage non valide. | thin |
v1. | Cet événement se produit quand des événements d’usage comptent des ID de mesure manquants ou non valide. | thin |
Avertissement
Pour créer une destination d’événement abonnée aux événements légers, activez Workbench dans vos paramètres de développement.
Exemples de charges utiles
Codes d’erreur
reason.
: indique la catégorie d’erreur déclenchée. Les codes d’erreur possibles sont les suivants :
meter_
event_ customer_ not_ found meter_
event_ no_ customer_ defined meter_
event_ dimension_ count_ too_ high archived_
meter timestamp_
too_ far_ in_ past timestamp_
in_ future meter_
event_ value_ not_ found meter_
event_ invalid_ value no_
(pris en charge uniquement pour le type d’événementmeter v1.
)billing. meter. no_ meter_ found
Écouter les événements
Vous pouvez écouter des événements en configurant un endpoint de webhook ou un autre type de destination d’événement.
Dans l’onglet Webhooks de Workbench, cliquez sur Créer une destination. Vous pouvez également utiliser ce modèle pour configurer une nouvelle destination dans Workbench avec les deux types d’événements présélectionnés.
Cliquez sur Afficher les options avancées, puis sélectionnez le style de charge utile Léger.
Sélectionnez
v1.
etbilling. meter. error_ report_ triggered v1.
dans la liste des événements.billing. meter. no_ meter_ found Créez un gestionnaire pour traiter l’événement.
Testez votre gestionnaire en configurant un écouteur local avec la CLI Stripe afin d’envoyer les événements à votre machine locale à des fins de test avant de déployer le gestionnaire en mode production. Utilisez le flag
--forward-thin-to
afin de spécifier l’URL vers laquelle transférer les événementsthin
, et le flag--thin-events
pour spécifier les événements thin à transférer. Vous pouvez transférer tous les événements thin avec un astérisque (*
), ou un sous-ensemble des événements thin vers votre application.$ stripe listen --forward-thin-to localhost:4242/webhooks --thin-events "*"
Déclenchez des événements de test dans votre gestionnaire. Utilisez la fonction de déclenchement pour exécuter les commandes suivantes, qui simulent les événements respectifs dans votre compte à des fins de test.
$ stripe trigger v1.billing.meter.error_report_triggered --api-key <your-secret-key> $ stripe trigger v1.billing.meter.no_meter_found --api-key <your-secret-key>
Si vous traitez des événements avec un endpoint de webhook, vérifiez les signatures de webhook pour sécuriser votre endpoint et vous assurer que toutes les requêtes proviennent de Stripe.
Corrigez et renvoyez les événements non valides afin qu’ils soient traités à nouveau.