Weiter zum Inhalt
Konto erstellen
oder
anmelden
Das Logo der Stripe-Dokumentation
/
KI fragen
Konto erstellen
Anmelden
Jetzt starten
Zahlungen
Umsatz
Plattformen und Marktplätze
Geldmanagement
Entwicklerressourcen
Übersicht
Versionierung
Änderungsprotokoll
Aktualisieren Sie Ihre API-Version
Ihre SDK-Version aktualisieren
Essentials
SDKs
API
    Übersicht
    API v2
      Abhängige Antwortwerte v2 einbeziehen
    Ratenbegrenzungen
    Authentifizierung
    API-Schlüssel
    Angeben des Anfrage-Kontexts
    Domains und IP-Adressen
    Anfragen stellen
    Antworten erweitern
    Paginierung
    Objekte suchen
    Lokalisieren von Inhalten
    Tests und Daten
    Metadaten
    Testen Sie Ihre Anwendung
    Fehlerbehandlung
    Umgang mit Fehlern
    Fehlercodes
Tests
Stripe-CLI
Beispiel-Projekte
Tools
Stripe Dashboard
Workbench
Entwickler-Dashboard
Stripe Shell
Stripe für Visual Studio Code
Funktionen
Arbeitsabläufe
Ereignisziele
Stripe-StatuswarnungenHochgeladene Dateien
KI-Lösungen
Agent-Toolkit
Model Context ProtocolAgentische KI-SaaS-Billing-Workflows aufbauen
Sicherheit und Datenschutz
Sicherheit
Stripebot-Webcrawler
Datenschutz
Extend Stripe
Erstellen Sie Stripe-Apps
Verwenden Sie Apps von Stripe
Partner
Partner-Ecosystem
Partner-Zertifizierung
StartseiteEntwicklerressourcenAPI

API v2-Übersicht

Informationen zum Verhalten der APIs im v2-Namespace.

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
Zugriff auf APIsVerwenden 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.
Senden Sie Daten an die APIAnfragen verwenden Formularcodierung (application/x-www-form-urlencoded) und Antworten verwenden JSON-Codierung (application/json).Anfrage und Antworten verwenden JSON-Codierung (application/json).

Testen Sie Ihre Integration

Validieren Sie APIs im Namespace /v1 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 Test-Modus wird nicht unterstützt.

Mehr erfahren: Sandboxes

Idempotente Anfragen senden

Falls 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 Header Idempotency-Key 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

Empfangen Sie Ereignisse von Stripe

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 Thin-Ereignisse, die eine minimale, nicht versionierte Push-Nutzlast enthalten.

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

Mehr erfahren: Ereignisziele

Paginieren 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 Token page 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.

Rufen Sie durch Erweiterung zusätzliche Daten ab

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.

Verwalten Sie MetadatenEntfernen 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 Namespace /v2:

Verwenden Sie API v2 mit der Stripe-CLI

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.

Schließen Sie Stripe-Version ohne SDK oder CLI ein

Alle API-Anfragen an den API-/v2-Namespace müssen den Header Stripe-Version 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/event_destinations \ -H "Authorization: Bearer {{YOUR_API_KEY}}" \ -H "Stripe-Version: 2024-09-30.acacia" \

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
Node.js
Python
.NET
Ruby
PHP
Gehen Sie zu
No results
import com.stripe.StripeClient; StripeClient stripe = new StripeClient("{{YOUR_API_KEY}}"); // Call a v2 API EventDestination eventDestination = stripe.v2().core().eventDestinations().retrieve("ed_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/event_destinations # Call a v1 API curl https://api.stripe.com/v1/charges -d amount=2000 -d currency=usd

Listenpaginierung

APIs im Namespace /v2 (z. B. GET /v2/core/event_destinations) 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 nutzen. Wenn Sie hingegen unsere SDKs nutzen, müssen Sie diese URLs nicht verwenden, da die SDKs die automatische Paginierung automatisch verarbeiten.

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

Java
Node.js
Python
.NET
Ruby
PHP
Gehen Sie zu
No results
StripeClient stripe = new StripeClient("{{YOUR_API_KEY}}"); EventDestinationListParams params = EventDestinationListParams.builder().build(); for (EventDestination eventDestination : stripe.v2().core().eventDestinations().list(params).autoPagingIterable()) { // process event destination 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 Idempotenz-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.
  • Wenn Folgendes zutrifft, werden zwei Anfragen als idempotent betrachtet:
    • 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
Node.js
Python
.NET
Ruby
PHP
Gehen Sie zu
No results
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 Header Idempotency-Key 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>

Einschränkungen

  • Der Test-Modus 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