Quick Start Guide
Get your first checkout session running in under 5 minutes
API Reference & Live Testing
Explore the full API documentation and interactively test Checkout Session requests and responses.
Preview Checkout
Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass
confirm=true in your request, the session will only be valid for 15 minutes.Prerequisites
1
Dodo Payments Account
You’ll need an active Dodo Payments merchant account with API access.
2
API Credentials
Generate your API credentials from the Dodo Payments dashboard:
3
Products Setup
Create your products in the Dodo Payments dashboard before implementing checkout sessions.
Creating Your First Checkout Session
- Node.js SDK
- Python SDK
- REST API
API Response
All methods above return the same response structure:session_id ist garantiert vorhanden. In zwei Fällen werden zusätzliche oder weniger Felder zurückgegeben:
payment_method_idwurde angegeben — die Zahlung wird sofort verarbeitet undcheckout_urlistnull. Verwende stattdessen das zurückgegebenepayment_id.confirm: truehat die Zahlung zum Zeitpunkt der Sitzungserstellung erstellt — die Antwort enthält außerdempayment_id,client_secretundpublishable_keyzur Verwendung mit dem Dodo Payments Checkout SDK.
Das generierte
checkout_url kann nur einmal verwendet werden und läuft innerhalb von 24 Stunden ab. Speichere es nicht zwischen und verwende es nicht für andere Kunden oder Zahlungsversuche erneut — erstelle jedes Mal eine neue Checkout-Sitzung, wenn du einen neuen Link benötigst.1
Get the checkout URL
Extrahiere
checkout_url aus der API-Antwort.2
Redirect your customer
Leite deinen Kunden zur Checkout-URL weiter, um den Kauf abzuschließen.
3
Handle the return
Nach der Zahlung werden Kunden zu deiner
return_url weitergeleitet. Die Query-Parameter enthalten unter anderem die Zahlungs-/Abonnement-ID, den Status, die E-Mail-Adresse des Kunden und alle Lizenzschlüssel. Eine vollständige Liste findest du in der Dokumentation zu den return_url-Parametern.Request Body
Required Fields
Für jede Checkout-Sitzung erforderliche Pflichtfelder
Optional Fields
Zusätzliche Konfiguration zur Anpassung deines Checkout-Erlebnisses
Erforderliche Felder
array
erforderlich
Array der Produkte, die in die Checkout-Sitzung aufgenommen werden sollen. Jedes Produkt muss über eine gültige
product_id aus deinem Dodo Payments-Dashboard verfügen.Optionale Felder
Konfiguriere diese Felder, um das Checkout-Erlebnis anzupassen und Geschäftslogik zu deinem Zahlungsablauf hinzuzufügen.Customer Information
Customer Information
object
Kundeninformationen. Du kannst entweder einen bestehenden Kunden über seine ID anhängen oder während des Checkouts einen neuen Kundendatensatz erstellen.
- Attach Existing Customer
- New Customer
Hänge einen bestehenden Kunden mithilfe seiner ID an die Checkout-Sitzung an.
object
Informationen zur Rechnungsadresse für eine korrekte Steuerberechnung, Betrugsprävention und Einhaltung gesetzlicher Vorschriften.
Wenn
confirm auf true gesetzt ist, werden alle Felder der Rechnungsadresse für die erfolgreiche Sitzungserstellung erforderlich.Payment Configuration
Payment Configuration
array
Steuere, welche Zahlungsmethoden Kunden während des Checkouts zur Verfügung stehen. Dies hilft, den Checkout für bestimmte Märkte oder geschäftliche Anforderungen zu optimieren.Gängige Optionen:
credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, ach, multibanco, bancontact_card, eps, ideal, blik, paypal. Dies ist nicht die vollständige Liste – alle akzeptierten Werte finden Sie in der API-Referenz für Create Checkout Session.Beispiel:string
Überschreibe die standardmäßige Währungsauswahl mit einer festen Abrechnungswährung. Verwendet ISO-4217-Währungscodes.Unterstützte Währungen:
USD, EUR, GBP, CAD, AUD, INR und weitereBeispiel: "USD" für US-Dollar, "EUR" für EuroDieses Feld ist nur wirksam, wenn adaptive pricing aktiviert ist. Wenn adaptive pricing deaktiviert ist, wird die Standardwährung des Produkts verwendet.
boolean
Standard:"false"
Zeige zuvor gespeicherte Zahlungsmethoden für wiederkehrende Kunden an, um Checkout-Geschwindigkeit und Benutzererlebnis zu verbessern.
Session Management
Session Management
string
URL, zu der Kunden nach Abschluss der Zahlung weitergeleitet werden. Dodo Payments hängt bei der Weiterleitung die folgenden Query-Parameter an deine URL an:
Beispiel-Weiterleitungs-URLs:
string
URL, zu der Kunden weitergeleitet werden, wenn sie auf die Zurück-Schaltfläche klicken oder die Checkout-Sitzung abbrechen. Wenn sie nicht angegeben ist, wird die Zurück-Schaltfläche nicht angezeigt.
boolean
Standard:"false"
Wenn true, werden alle Sitzungsdetails sofort finalisiert. Die API gibt einen Fehler aus, wenn erforderliche Daten fehlen.
array
Wende einen oder mehrere aufeinanderfolgende Rabattcodes auf die Checkout-Sitzung an. Codes werden in Array-Reihenfolge angewendet (der erste Code reduziert den Grundpreis, der zweite den bereits rabattierten Preis usw.), bis zu maximal 20 Codes pro Sitzung.
Das einzelne Feld
discount_code unten ist veraltet, wird aber weiterhin vollständig unterstützt — bestehende Integrationen funktionieren unverändert. Es kann in derselben Anfrage nicht mit discount_codes kombiniert werden. Migriere bei Gelegenheit zu discount_codes, um von der Verkettung zu profitieren.string
veraltet
Veraltet — verwende für neue Integrationen bevorzugt
discount_codes. Dieses Feld funktioniert aus Gründen der Abwärtskompatibilität weiterhin, kann aber in derselben Anfrage nicht mit discount_codes kombiniert werden.object
Benutzerdefinierte Schlüssel-Wert-Paare zum Speichern zusätzlicher Informationen zur Sitzung.
boolean
Überschreibe das standardmäßige 3DS-Verhalten des Händlers für diese Sitzung.
boolean
Standard:"false"
Aktiviere den Modus zur Erfassung einer minimalen Adresse. Wenn aktiviert, erfasst der Checkout nur:
- Land: Für die Steuerbestimmung immer erforderlich
- ZIP-/Postleitzahl: Nur in Regionen, in denen sie für die Berechnung von sales tax, VAT oder GST erforderlich ist
string
Eine gespeicherte Zahlungsmethode des angehängten Kunden. Erfordert
confirm: true und eine vorhandene customer.customer_id. Wenn gesetzt, wird die Zahlung sofort verarbeitet und checkout_url als null zurückgegeben — verwende stattdessen das zurückgegebene payment_id.boolean
Standard:"false"
Wenn true, wird eine verkürzte Checkout-URL anstelle der vollständigen Sitzungs-URL zurückgegeben.
string
Produktkollektions-ID für den sammlungsbasierten Checkout-Ablauf.
string
Steuer-ID des Kunden (z. B. eine Umsatzsteuer-ID). Erfordert
billing_address mit einer country.string
Optionaler geschäftlicher oder rechtlicher Name, der mit der Steuer-ID verknüpft ist. Zusammen mit einer gültigen
tax_id wird er auf der Rechnung anstelle des persönlichen Namens des Kunden angezeigt.integer
Überschreibe den Mandatsmindestbetrag auf Händlerebene (in INR-Paise) für INR-E-Mandate auf indischen Karten.
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
array
Erfasse während des Checkouts mithilfe benutzerdefinierter Formularfelder zusätzliche Informationen von Kunden. Du kannst bis zu 5 benutzerdefinierte Felder pro Checkout-Sitzung definieren. Kundenantworten sind in Webhook-Payloads enthalten und über die API verfügbar.
Kundenantworten auf benutzerdefinierte Felder sind enthalten in:
- Webhooks:
payment.succeeded,subscription.activeund andere relevante Event-Payloads enthalten das Arraycustom_field_responses - API-Antworten: Zahlungs- und Abonnementobjekte enthalten
custom_field_responses
Subscription Configuration
Subscription Configuration
object
Zusätzliche Konfiguration für Checkout-Sitzungen mit Abonnementprodukten.
Anwendungsbeispiele
Hier sind 10 umfassende Beispiele für verschiedene Checkout-Sitzungskonfigurationen in unterschiedlichen Geschäftsszenarien:1. Einfacher Checkout mit einem Produkt
2. Warenkorb mit mehreren Produkten
3. Abonnement mit Testzeitraum
4. Vorbestätigter Checkout
Wenn
confirm auf true gesetzt ist, wird der Kunde direkt zur Checkout-Seite weitergeleitet und alle Bestätigungsschritte werden übersprungen.5. Checkout mit Währungsüberschreibung
Die Überschreibung
billing_currency wird nur wirksam, wenn adaptive currency in deinen Kontoeinstellungen aktiviert ist. Wenn adaptive currency deaktiviert ist, hat dieser Parameter keine Wirkung.6. Gespeicherte Zahlungsmethoden für wiederkehrende Kunden
7. B2B-Checkout mit Erfassung der Steuer-ID
8. Checkout mit dunklem Theme und verketteten Rabattcodes
9. Regionale Zahlungsmethoden (UPI für Indien)
Ausführliche Informationen zur Konfiguration und zum Testen von UPI findest du auf der Seite India Payment Methods.10. BNPL-Checkout (Jetzt kaufen, später bezahlen)
Ausführliche Informationen zur Konfiguration und zum Testen von BNPL findest du auf der Seite Buy Now Pay Later (BNPL).11. Vorhandene Zahlungsmethoden für einen sofortigen Checkout verwenden
Verwende die gespeicherte Zahlungsmethode eines Kunden, um eine Checkout-Sitzung zu erstellen, die sofort verarbeitet wird und die Erfassung der Zahlungsmethode überspringt:Die Zahlungsmethode muss dem Kunden gehören und mit der Zahlungswährung kompatibel sein. Dadurch werden Käufe mit einem Klick für wiederkehrende Kunden ermöglicht.
12. Kurzlinks für übersichtlichere Zahlungs-URLs
Erstelle verkürzte, teilbare Zahlungslinks mit benutzerdefinierten Slugs:13. Zahlungsbestätigungsseite überspringen und sofort weiterleiten
Leite Kunden unmittelbar nach Abschluss der Zahlung weiter und überspringe die standardmäßige Bestätigungsseite:Wenn
redirect_immediately aktiviert ist, werden Kunden unmittelbar nach Abschluss der Zahlung zu deiner return_url weitergeleitet und die standardmäßige Bestätigungsseite vollständig übersprungen.14. Sprache erzwingen
Erzwinge die Anzeige des Checkouts in einer bestimmten Sprache und überschreibe damit die Spracherkennung des Kundenbrowsers:ar), Katalanisch (ca), Chinesisch (zh), Niederländisch (nl), Englisch (en), Französisch (fr), Deutsch (de), Hebräisch (he), Indonesisch (id), Italienisch (it), Japanisch (ja), Koreanisch (ko), Malaiisch (ms), Polnisch (pl), Portugiesisch (pt), Rumänisch (ro), Russisch (ru), Spanisch (es), Schwedisch (sv), Thailändisch (th), Türkisch (tr)
15. Benutzerdefinierte Felder erfassen
Erfasse während des Checkouts mithilfe benutzerdefinierter Felder zusätzliche Informationen von Kunden:Antworten auf benutzerdefinierte Felder werden automatisch in Webhook-Payloads (
payment.succeeded, subscription.active usw.) aufgenommen und können über die API abgerufen werden. Verwende sie, um dein CRM anzureichern, Onboarding-Abläufe auszulösen oder das Kundenerlebnis anzupassen.text, number, email, url, date, dropdown, boolean
Checkout-Sitzungen in der Vorschau anzeigen
Vor dem Erstellen einer Checkout-Sitzung kannst du die Preisaufschlüsselung einschließlich Steuern, Rabatten und Gesamtsummen in einer Vorschau anzeigen. Dies ist nützlich, um Kunden genaue Preise anzuzeigen, bevor sie zum Checkout fortfahren.Wenn der Warenkorb ein Abonnementprodukt enthält, gibt die Vorschauantwort außerdem eine
next_billing_date zurück — eine Vorschau des bevorstehenden Abrechnungsdatums, damit du es vor der Erstellung des Abonnements anzeigen kannst. Sie wird relativ zum aktuellen Zeitpunkt berechnet: now + trial period, wenn ein Testzeitraum gilt, andernfalls now + one payment frequency. Bei Warenkörben, die nur Einmalprodukte enthalten, wird das Feld weggelassen. Es handelt sich um eine auf den Vorschauzeitpunkt bezogene Schätzung; die maßgebliche next_billing_date wird beim Aktivieren des Abonnements festgelegt.Die Vorschau gibt außerdem
trial_period_days (die effektive Dauer des kostenlosen oder kostenpflichtigen Testzeitraums) und trial_amount (die Testgebühr pro Einheit nach Rabatten in den kleinsten Einheiten der Preiswährung) zurück. trial_amount ist nur bei einem kostenpflichtigen Testzeitraum vorhanden und bei einem kostenlosen oder fehlenden Testzeitraum null. Verwende current_breakup für die tatsächlich heute fällige, versteuerte Gesamtsumme.- Node.js SDK
- Python SDK
Preview API Reference
Vollständige Dokumentation des Vorschau-Endpunkts anzeigen.
Von Dynamic Links zu Checkout-Sitzungen wechseln
Wesentliche Unterschiede
Bisher musstest du beim Erstellen eines Zahlungslinks mit Dynamic Links die vollständige Rechnungsadresse des Kunden angeben. Mit Checkout-Sitzungen ist das nicht mehr erforderlich. Du kannst einfach alle Informationen übergeben, die dir vorliegen, und wir kümmern uns um den Rest. Zum Beispiel:- Wenn du nur das Rechnungsland des Kunden kennst, gib einfach dieses an.
- Der Checkout-Ablauf erfasst die fehlenden Daten automatisch, bevor der Kunde zur Zahlungsseite weitergeleitet wird.
- Wenn du hingegen bereits alle erforderlichen Informationen hast und direkt zur Zahlungsseite wechseln möchtest, kannst du den vollständigen Datensatz übergeben und
confirm=truein deinen Request Body aufnehmen.
Migrationsprozess
Die Migration von Dynamic Links zu Checkout-Sitzungen ist unkompliziert:1
Update your integration
Aktualisiere deine Integration, damit sie die neue API- oder SDK-Methode verwendet.
2
Adjust request payload
Passe die Request-Payload an das Format der Checkout-Sitzungen an.
3
That's it!
Ja. Auf deiner Seite sind keine zusätzlichen Maßnahmen oder besonderen Migrationsschritte erforderlich.
Verwandte API-Referenz
Create Checkout Session
Vollständige API-Referenz zum Erstellen von Checkout-Sitzungen mit allen verfügbaren Parametern und Optionen
Preview Checkout Session
API-Referenz zur Vorschau von Preisen, Steuern und Gesamtsummen vor dem Erstellen einer Sitzung