Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Entwickler-Tools
Jetzt starten
Zahlungen
Finanzautomatisierung
Jetzt starten
Zahlungen
Finanzautomatisierung
Plattformen und Marktplätze
Geldmanagement
Übersicht
Versionierung
Änderungsprotokoll
Aktualisieren Sie Ihre API-Version
Ihre SDK-Version aktualisieren
Entwickler-Tools
SDKs
API
    API v2
    API-Schlüssel
    Stripe-Context-Header
    Tägliches Änderungsprotokoll
    Ratenbegrenzungen
    Automatische Tests
    Metadaten
    Erweiterung der Antworten
    Paginierung
    Domains und IP-Adressen
    Suchen
    Lokalisierung
    Fehlerbehandlung
    Fehlercodes
Tests
Workbench
Ereignisziele
Arbeitsabläufe
Stripe-CLI
Stripe Shell
Entwickler-Dashboard
Agent-Toolkit
Stripe-StatuswarnungenBuild with LLMsStripe für Visual Studio CodeHochgeladene Dateien
Sicherheit
Sicherheit
Extend Stripe
Stripe-Apps
Stripe Connectors
Partner
Partner-Ecosystem
Partner-Zertifizierung
StartseiteEntwickler-ToolsAPI

API v2-Übersicht

Informationen zum Verhalten der APIs im v2-Namespace.

Seite kopieren

Die Stripe-API bietet zwei Namespaces, die verschiedene Sätze von Endpoints enthalten:

  • API v1: Der /v1-Namespace umfasst den größten Teil der bestehenden Stripe API .
  • API v2: Der /v2-Namespace enthält Endpoints, die /v2-Designmuster verwenden.

Wesentliche Unterschiede zwischen dem v1- und dem v2-Namespace

API v1API v2
Auf APIs zugreifenVerwenden Sie geheime und eingeschränkte Zugriffsschlüssel, um auf APIs im Namespace /v1 zuzugreifen.Sie können nur mit Geheimschlüsseln auf APIs im Namespace /v2 zugreifen.
Daten an die API sendenAnfragen verwenden Formularcodierung (application/x-www-form-urlencoded) und Antworten verwenden JSON-Codierung (application/json).Anfrage und Antworten verwenden JSON-Codierung (application/json).

Ihre Integration testen

Überprüfen Sie APIs im /v1-Namespace mithilfe von Sandboxes, einer isolierten Umgebung. Darüber hinaus können Sie den Test-Modus verwenden, um Ihre Integration zu testen.

Validieren Sie APIs im Namespace /v2 mithilfe von Sandboxes, einer isolierten Umgebung. Der Testmodus wird nicht unterstützt.

Mehr erfahren: Sandboxes

Idempotente Anfragen senden

Wenn die API die Anfrage bereits verarbeitet hat, gibt sie die zuvor gespeicherte Anfrage zurück, wenn der Header Idempotency-Key mit einem eindeutigen Bezeichner versehen wird.

Wenn der Idempotency-Key-Header mit einer eindeutigen Kennung versehen wird, wiederholt die API alle fehlgeschlagenen Anfragen, ohne dass unerwünschte Folgen auftreten (jede unwesentliche Änderung oder beobachtbares Verhalten, die/das als Ergebnis eines API-Aufrufs stattfindet).

Mehr erfahren: Idempotenz

Ereignisse von Stripe empfangen

Die meisten Ereignisse, die von APIs im Namespace /v1 ausgegeben werden, enthalten eine Momentaufnahme eines API-Objekts in ihrer Nutzlast. Einige APIs im Namespace /v1 generieren schlanke Ereignisse, die eine minimale, nicht versionierte Push-Nutzlast enthalten.

Ereignisse, die von APIs im Namespace /v2 ausgegeben werden, sind schlanke Ereignisse.

Mehr erfahren: Ereignisziele

Paginierung durch eine Liste

Geben Sie die ID eines Objekts als Startelement für Listen-API-Anfragen an. Verwenden Sie die Eigenschaften starting_after, ending_before und has_more aus der API-Antwort, um durch eine Liste zu paginieren.

Geben Sie das page-Token für Listen-API-Anfragen an. Verwenden Sie die Eigenschaften previous_page_url und next_page_url in der API-Antwort, um durch eine Liste zu paginieren.

Mehr erfahren: Listenpaginierung

Konsistenzgarantien für ListenDie Listen der obersten Ebene sind sofort konsistent (mit höherer Latenz beim Rendern). Einige untergeordnete Listen sind letztendlich konsistent.Listen sind letztendlich standardmäßig konsistent und haben eine geringere Latenz.

Abrufen zusätzlicher Daten mit Erweiterung

Verwenden Sie den Parameter expand, um IDs für zugehörige API-Objekte mit vollständig erweiterten untergeordneten Objekten zu ersetzen.

Mehr erfahren: Antworten erweitern

Der Parameter expand wird nicht unterstützt. Einige APIs in diesem Namespace können mithilfe des Parameters „include“ zusätzliche Felder in ihren Antworten bereitstellen.

Metadaten verwaltenEntfernen Sie ein Schlüssel-Wert-Paar, indem Sie den Wert auf eine leere Zeichenfolge setzen.Entfernen Sie ein Schlüssel-Wert-Paar, indem Sie den Wert auf null setzen.

SDKs, die API v2 unterstützen

Alle serverseitigen SDKs unterstützen APIs im /v2-Namespace.

API v2 mit der Stripe CLI verwenden

Verwenden Sie Stripe-Auslöser und Stripe-Überwachung, um die Handhabung von Ereignissen Ihrer Integration zu testen. Sie können mit der Stripe-CLI nicht auf APIs im Namespace /v2 zugreifen.

SDK-, CLI- und API -Versionierung

SDKs und die Stripe CLI enthalten automatisch eine API-Version für alle Anfragen. Nachdem Sie Ihre SDK- oder CLI-Version aktualisiert haben, aktualisiert Stripe gleichzeitig die API-Version Ihrer Anfragen und Antworten.

Stripe-Version ohne SDK oder CLI einschließen

Alle API-Anfragen an den API-/v2-Namespace müssen den Stripe-Version-Header enthalten, um die zugrunde liegende API-Version anzugeben.

Eine Curl-Anfrage mit der API-Version 2024-09-30.acacia sieht beispielsweise wie folgt aus:

Command Line
curl -G https://api.stripe.com/v2/core/events \ -H "Authorization: Bearer {{YOUR_API_KEY}}" \ -H "Stripe-Version: 2024-09-30.acacia" \ -d object_id=fa_123

Verwenden von APIs aus den v1- und v2-Namespaces in derselben Integration

Sie können jede Kombination von APIs im Namespace /v1 oder /v2 in derselben Integration verwenden.

Java
import com.stripe.StripeClient; StripeClient stripe = new StripeClient("{{YOUR_API_KEY}}"); // Call a v2 API Event event = stripe.v2().core().events().retrieve("evt_123"); // Call a v1 API Customer customer = stripe.customers().retrieve("cus_123");

Wenn Sie weder ein offizielles SDK noch die CLI verwenden, nehmen Sie immer den Namespace in den URL-Pfad für Ihre API-Aufrufe auf. Beispiel:

Command Line
# Call a v2 API curl https://api.stripe.com/v2/core/events?object_id=mtr_123 # Call a v1 API curl https://api.stripe.com/v1/charges -d amount=2000 -d currency=usd

Listenpaginierung

APIs im Namespace /v2 (zum Beispiel GET /v2/core/events) enthalten eine andere Paginierungsschnittstelle als diejenigen im Namespace /v1.

  • Die Eigenschaft previous_page_url gibt eine URL zum Aufrufen der nächsten Seite der Liste zurück. Wenn es keine vorherigen Seiten gibt, ist der Wert null.
  • Die Eigenschaft next_page_url gibt eine URL zurück, um die nächste Seite der Liste abzurufen. Wenn keine Seiten mehr vorhanden sind, ist der Wert null.

Sie können diese URLs verwenden, um Anfragen zu stellen, ohne unsere SDKs zu verwenden. Wenn Sie jedoch unsere SDKs verwenden, müssen Sie diese URLs nicht verwenden, da die SDKs die automatische Paginierung durchführen.

Sie können die Listenfilter nach der ersten Anfrage nicht mehr ändern.

Java
StripeClient stripe = new StripeClient("{{YOUR_API_KEY}}"); EventListParams params = EventListParams.builder() .setObjectId("mtr_123") .build(); for (Event event : stripe.v2().core().events().list(params).autoPagingIterable()) { // process event object }

Idempotenz

Die APIs im /v2-Namespace bieten eine verbesserte Unterstützung für das Idempotenz-Verhalten. So werden unbeabsichtigte Nebeneffekte verhindert, wenn Anfragen mehrfach mit demselben Idempotenz-Schlüssel ausgeführt werden. Wenn die API zwei Anfragen mit demselben Idempotenz-Schlüssel erhält:

  • Wenn die erste Anfrage erfolgreich war, überspringt die API neue Änderungen und gibt eine aktualisierte Antwort zurück.
  • Wenn die erste Anfrage fehlgeschlagen ist (oder teilweise fehlgeschlagen ist), führt die API die fehlgeschlagenen Anfragen erneut aus und gibt die neue Antwort zurück.
  • In dem seltenen Fall, dass eine idempotente Wiedergabe nicht mehr erfolgreich sein kann, gibt die API eine Fehlermeldung mit dem Grund für das Fehlschlagen zurück.

Zwei Anfragen werden als idempotent betrachtet, wenn Folgendes auf sie zutrifft:

  • Verwenden Sie denselben Idempotenz-Schlüssel für dieselbe API
  • Sie finden im Geltungsbereich desselben Kontos oder derselben Sandbox statt
  • Finden innerhalb der letzten 30 Tage der jeweils anderen statt

Um einen Idempotency-Schlüssel anzugeben, verwenden Sie den Header Idempotency-Key und geben einen eindeutigen Wert an, der den Vorgang darstellt (wir empfehlen eine UUID). Wenn kein Schlüssel angegeben wird, generiert Stripe automatisch eine UUID für Sie.

Alle API-API v2-Anfragen des Typs POST und DELETE akzeptieren Idempotenz-Schlüssel und verhalten sich idempotent. GET-Anfragen sind per Definition idempotent, sodass das Senden eines Idempotenz-Schlüssels keine Auswirkung hat.

Idempotenz-Unterschiede zwischen API v1 und API v2

Es gibt einige wichtige Idempotenz-Unterschiede zwischen API v1 und API v2:

  • API v1 unterstützt nur die idempotente Wiedergabe für POST-Anfragen. API v2 unterstützt alle POST- und DELETE-Anfragen.
  • Zwei Anfragen werden als idempotent betrachtet, wenn:
    • API v1, wenn sie denselben Idempotenz-Schlüssel verwenden und innerhalb von 24 Stunden auftreten.
    • API v2, wenn sie denselben Idempotenz-Schlüssel verwenden, auf dieselbe API zugreifen, im Rahmen des Kontos oder der Sandbox auftreten und innerhalb von 30 Tagen erfolgen.
  • Wenn Sie den gleichen Idempotenz-Schlüssel für zwei Anfragen angeben:
    • API v1 gibt immer die zuvor gespeicherte Antwort auf die erste API-Anfrage zurück, selbst wenn diese falsch war.
    • API v2 versucht, alle fehlgeschlagenen Anfragen zu wiederholen, ohne dass Nebeneffekte auftreten (jegliche unwesentliche Änderung oder beobachtbares Verhalten, die/das als Ergebnis eines API -Aufrufs auftreten) und eine aktualisierte Antwort zu liefern.

Idempotente Anfragen durchführen

Geben Sie mithilfe des SDK in API-Anfragen einen Idempotenz-Schlüssel mit der Eigenschaft idempotencyKey an.

So stellen Sie beispielsweise eine API-Anfrage mit einem bestimmten Idempotenz-Schlüssel:

Java
StripeClient stripe = new StripeClient("{{YOUR_API_KEY}}"); String idempotencyKey = "unique-idempotency-key"; Example result = stripe.v2().examples().create( ExampleCreateParams.builder() .setName("My example") .build(), RequestOptions.builder() .setIdempotencyKey(idempotencyKey) .build());

Wenn Sie weder ein SDK noch eine CLI verwenden, können Anfragen den Idempotency-Key-Header enthalten:

Command Line
curl https://api.stripe.com/v2/examples \ -H "Authorization: Bearer {{YOUR_API_KEY}}" \ -H "Stripe-Version: {{STRIPE_API_VERSION}}" \ -H "Idempotency-Key: unique-idempotency-key" \ -d <JSON request body>

Beschränkungen

  • Der Testmodus unterstützt /v2 nicht. Sie können jedoch eine Sandbox verwenden, um in diesem Namespace zu testen.
  • Derzeit generiert Stripe nur Thin-Ereignisse mit den /v2-Endpoints und Ressourcen.
  • Sie können nur Anforderungsprotokolle sehen, die von API v2 in Workbench generiert wurden, nicht im Entwickler-Dashboard.
War diese Seite hilfreich?
JaNein
Benötigen Sie Hilfe? Kontaktieren Sie den Kundensupport.
Nehmen Sie an unserem Programm für frühzeitigen Zugriff teil.
Schauen Sie sich unser Änderungsprotokoll an.
Fragen? Sales-Team kontaktieren.
LLM? Lesen Sie llms.txt.
Unterstützt von Markdoc