Nutzung für Abrechnungszwecke mit der API aufzeichnen
Erfahren Sie, wie Sie mit der Stripe API die Nutzung aufzeichnen.
Sie müssen die Nutzungsdaten in Stripe aufzeichnen, um sicherzustellen, dass Sie Ihren Kundinnen/Kunden für jeden Abrechnungszeitraum korrekte Beträge in Rechnung stellen. Um die Nutzungsdaten aufzuzeichnen, konfigurieren Sie zuerst Ihren Zähler und senden Sie dann Zählerereignisse, die den für den Zähler konfigurierten Ereignisnamen, die Kunden-ID, einen numerischen Wert und einen Zeitstempel (optional) enthalten.
Sie können entscheiden, wie oft Sie die Nutzung bei Stripe aufzeichnen, beispielsweise direkt oder in Batches. Stripe verarbeitet Zählerereignisse asynchron, sodass die Nutzung in Zählerereignis-Zusammenfassungen aggregiert wird und anstehende Rechnungen möglicherweise kürzlich empfangene Zählerereignisse nicht sofort widerspiegeln.
Zählerereignisse erstellen
Erstellen Sie ein Zählerereignis mithilfe der API.
Idempotenz
Verwenden Sie Idempotenz-Schlüssel, um zu verhindern, dass die Nutzung aufgrund von Latenz oder anderen Problemen für jedes Ereignis mehrmals gemeldet wird. Jedes Zählerereignis entspricht einer Kennung, die Sie in Ihrer Anfrage angeben können. Wenn Sie keine Angabe machen, erstellen wir diese automatisch.
Ereignis-Zeitstempel
Der Zeitstempel muss innerhalb der letzten 35 Kalendertage und darf nicht mehr als 5 Minuten in der Zukunft liegen. Das 5-Minuten-Fenster berücksichtigt mögliche Uhrenfehler zwischen Ihrem Server und den Systemen von Stripe.
Nutzungswerte
Der numerische Nutzungswert in der Nutzlast akzeptiert nur ganzzahlige Werte. Wenn die gesamte Zyklusnutzung negativ ist, meldet Stripe die Nutzungsmenge des Rechnungspostens als 0.
Ratenbegrenzungen
Der Zählerereignis-Endpoint ermöglicht 1000 Anrufe pro Sekunde im Live-Modus und einen gleichzeitigen Anruf pro Kunde/Kundin und Zähler. Wenn Ihre Dienstleistung dieses Limit überschreiten könnte, können Sie Ihr Produkt in Beträgen „bündeln“. Wenn Sie beispielsweise pro 1000 Anfragen abrechnen, können Sie Ihr Produkt in „pro 1000 Transaktionen“ zusammenfassen und dann alle 1000 Mal 1 Nutzungsdatensatz senden.
Im Sandbox-Modus werden Aufrufe der Endpoints meter event
und meter event stream
auf das Basislimit angerechnet.
Notiz
Wenn Sie eine Connect-Plattform sind, die mithilfe des Stripe-Account
-Headers Anfragen im Namen eines verbundenen Kontos stellt, unterliegen Sie den regulären Ratenbegrenzungen von Stripe, also 100 Vorgängen pro Sekunde.
Sie können 429
-Statuscodes überwachen und einen Wiederholungsmechanismus mit einem exponentiellen Backoff-Zeitplan implementieren, um das Anfragevolumen zu verwalten.
Aufnahme von hohem Durchsatz mit höheren Ratenbegrenzungen API v2
Mit der API v2 können Sie mithilfe von Zählerereignis-Streams bis zu 10.000 Ereignisse pro Sekunde an Stripe senden. Dies funktioniert nur im Live-Modus.
Dieser Endpoint verwendet statuslose Authentifizierungssitzungen. Erstellen Sie zunächst eine Zählerereignissitzung, um ein Authentifizierungs-Token zu erhalten. Authentifizierungs-Token sind nur 15 Minuten lang gültig. Sie müssen also eine neue Zählerereignissitzung erstellen, wenn Ihr Token abläuft.
Verwenden Sie als Nächstes das zurückgegebene Authentifizierungst-Token, um Ihre Zählerereignisse mit hohem Durchsatz mit dem Zählerereignis-Stream zu erstellen.
Notiz
Aufgrund der großen Anzahl von API-Anfragen nehmen wir keine Zählerereignis-Stream-Anfragen in die Registerkarte Workbench Logs auf.
Sie können 429
-Statuscodes überwachen und einen Wiederholungsmechanismus mit einem exponentiellen Backoff-Zeitplan implementieren, um das Anfragevolumen zu verwalten.
Umgang mit Zählerereignisfehlern
Stripe verarbeitet Zählerereignisse asynchron. Wenn wir einen Fehler finden, erstellen wir eines der folgenden Ereignisse:
Ereignis | Beschreibung | Nutzlasttyp |
---|---|---|
v1. | Dieses Ereignis tritt auf, wenn ein Zähler ungültige Nutzungsereignisse aufweist. | thin |
v1. | Dieses Ereignis tritt auf, wenn Nutzungsereignisse fehlende oder ungültige Zähler-IDs aufweisen. | thin |
Achtung
Um ein Ereignisziel zu erstellen, das Thin-Ereignisse abonniert, aktivieren Sie Workbench in Ihren Entwicklereinstellungen.
Beispiel-Nutzlasten
Fehlercodes
Der reason.
stellt die Fehlerkategorisierung bereit, die den Fehler ausgelöst hat. Mögliche Fehlercodes sind:
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_
: (wird nur für den Ereignistypmeter v1.
unterstützt)billing. meter. no_ meter_ found
Ereignisse überwachen
Sie können Ereignisse überwachen, indem Sie einen Webhook-Endpoint oder eine andere Art von Ereignisziel einrichten.
Klicken Sie auf der Registerkarte Webhooks in Workbench auf Neues Ziel erstellen. Alternativ können Sie diese Vorlage verwenden, um ein neues Ziel in Workbench zu konfigurieren, bei dem die beiden Ereignistypen vorausgewählt sind.
Klicken Sie auf ** Erweiterte Optionen anzeigen ** und wählen Sie dann den Thin als Nutzlaststil.
Wählen Sie
v1.
undbilling. meter. error_ report_ triggered v1.
aus der Ereignisliste.billing. meter. no_ meter_ found Erstellen Sie einen Handler, um das Ereignis zu verarbeiten.
Testen Sie Ihren Handler, indem Sie einen lokalen Listener mit der Stripe CLI konfigurieren, um Ereignisse zum Testen an Ihren lokalen Computer zu senden, bevor Sie den Handler in der Produktionsumgebung bereitstellen. Verwenden Sie das Flag
--forward-thin-to
, um anzugeben, an welche URL diethin
-Ereignisse weitergeleitet werden sollen, und das Flag--thin-events
, um anzugeben, welche Thin-Ereignisse weitergeleitet werden sollen. Sie können alle Thin-Ereignisse mit einem Sternchen (*
) oder einer Teilmenge von Thin-Ereignissen an Ihre Anwendung weiterleiten.$ stripe listen --forward-thin-to localhost:4242/webhooks --thin-events "*"
Lösen Sie Testereignisse für Ihren Handler aus. Verwenden Sie die Trigger-Funktion, um die folgenden Befehle auszuführen, die die jeweiligen Ereignisse in Ihrem Konto zum Testen simulieren.
$ 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>
Wenn Sie Ereignisse mit einem Webhook-Endpoint verarbeiten, überprüfen Sie die Webhook-Signaturen, um Ihren Endpoint zu sichern und zu überprüfen, ob alle Anforderungen von Stripe stammen.
Ungültige Ereignisse zur erneuten Verarbeitung korrigieren und erneut senden.