Skip to main content

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.
Single-Use Links: The checkout_url returned by the API is not reusable and expires within 24 hours (or 15 minutes when confirm=true). It is intended for a single customer to complete one payment. Generate a fresh checkout session for each customer and each payment attempt rather than sharing or reusing a link.

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

API Response

All methods above return the same response structure:
Nur session_id ist garantiert vorhanden. In zwei Fällen werden zusätzliche oder weniger Felder zurückgegeben:
  • payment_method_id wurde angegeben — die Zahlung wird sofort verarbeitet und checkout_url ist null. Verwende stattdessen das zurückgegebene payment_id.
  • confirm: true hat die Zahlung zum Zeitpunkt der Sitzungserstellung erstellt — die Antwort enthält außerdem payment_id, client_secret und publishable_key zur 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.
Alternative Integrationsoptionen: Anstatt weiterzuleiten, kannst du den Checkout mit Overlay Checkout (modal als Overlay) oder Inline Checkout (vollständig eingebettet) direkt in deine Seite einbetten. Übergebe in einer nativen mobilen App dieselbe URL an die Mobile Checkout SDKs für Android, iOS, React Native oder Flutter. Alle diese Optionen verwenden dieselbe Checkout-Sitzungs-URL.
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.
Gemischter Checkout: Du kannst Einmalzahlungsprodukte und Abonnementprodukte in derselben Checkout-Sitzung kombinieren. Dadurch werden leistungsstarke Anwendungsfälle wie Einrichtungsgebühren mit Abonnements, Hardwarepakete mit SaaS und vieles mehr ermöglicht.
Produkt-IDs finden: Produkt-IDs findest du in deinem Dodo Payments-Dashboard unter Products → View Details oder über die List Products API.

Optionale Felder

Konfiguriere diese Felder, um das Checkout-Erlebnis anzupassen und Geschäftslogik zu deinem Zahlungsablauf hinzuzufügen.
object
Kundeninformationen. Du kannst entweder einen bestehenden Kunden über seine ID anhängen oder während des Checkouts einen neuen Kundendatensatz erstellen.
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.
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.
Wichtig: Gib credit und debit immer als Ausweichoptionen an, um Checkout-Fehler zu vermeiden, wenn bevorzugte Zahlungsmethoden nicht verfügbar sind.
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 Euro
Dieses 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.
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:
Verwende die Query-Parameter license_key und email, um Lizenzschlüssel anzuzeigen oder sofort eine Bestätigung auf deiner Rückgabeseite zu senden, ohne einen zusätzlichen API-Aufruf zu benötigen.
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.
Lege eine cancel_url fest, damit Kunden eindeutig zu deiner Website zurückkehren können, ohne den Kauf abzuschließen. Dies verbessert das Checkout-Erlebnis und reduziert Reibung.
boolean
Standard:"false"
Wenn true, werden alle Sitzungsdetails sofort finalisiert. Die API gibt einen Fehler aus, wenn erforderliche Daten fehlen.
array
Wenden Sie einen oder mehrere gestapelte Rabattcodes auf die Checkout-Sitzung an. Die Codes werden in Array-Reihenfolge angewendet (der erste Code reduziert den Ausgangspreis, der zweite reduziert den bereits rabattierten Preis usw.), bis zu einem Maximum von 20 Codes pro Sitzung. Wenn Purchasing Power Parity aktiviert ist, entspricht der Ausgangspreis dem um PPP angepassten Betrag und nicht dem Basispreis.
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
Dies reduziert Reibung beim Checkout erheblich, da unnötige Formularfelder entfallen.
Aktiviere die minimale Adresse für einen schnelleren Checkout-Abschluss. Die vollständige Adresserfassung bleibt für Unternehmen verfügbar, die vollständige Rechnungsdaten benötigen.
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.
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.
object
Passe das Erscheinungsbild und Verhalten der Checkout-Oberfläche an.
object
Konfiguriere bestimmte Funktionen und Verhaltensweisen für die Checkout-Sitzung.
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.active und andere relevante Event-Payloads enthalten das Array custom_field_responses
  • API-Antworten: Zahlungs- und Abonnementobjekte enthalten custom_field_responses
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:
Bei Verwendung von payment_method_id muss confirm auf true gesetzt und eine vorhandene customer_id angegeben werden. Die Zahlungsmethode wird auf ihre Eignung für die Währung der Zahlung geprüft. Da die Zahlung sofort verarbeitet wird, wird checkout_url als null zurückgegeben — verwende stattdessen das zurückgegebene payment_id.
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.
Erstelle verkürzte, teilbare Zahlungslinks mit benutzerdefinierten Slugs:
Kurzlinks eignen sich ideal zum Teilen per SMS, E-Mail oder sozialen Medien. Sie sind leichter zu merken und schaffen mehr Vertrauen bei Kunden als lange URLs.

13. Zahlungsbestätigungsseite überspringen und sofort weiterleiten

Leite Kunden unmittelbar nach Abschluss der Zahlung weiter und überspringe die standardmäßige Bestätigungsseite:
Verwende redirect_immediately: true, wenn du eine benutzerdefinierte Bestätigungsseite mit einer besseren Benutzererfahrung als die standardmäßige Zahlungsbestätigungsseite hast. Dies ist besonders für mobile Apps und eingebettete Checkout-Abläufe nützlich.
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:
Verwende force_language, wenn du die bevorzugte Sprache deines Kunden kennst (z. B. aus den Kontoeinstellungen) oder bestimmte regionale Märkte ansprichst.
Unterstützte Sprachen: Arabisch (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.
Verfügbare Feldtypen: 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.
Die angezeigte Vorschau von current_breakup.subtotal berücksichtigt bereits Purchasing Power Parity und Charm Pricing, sofern diese auf das Produkt angewendet werden.
Wenn der Warenkorb ein Abonnementprodukt enthält, gibt die Vorschauantwort außerdem ein next_billing_date zurück – eine Vorschau des bevorstehenden Abrechnungsdatums, damit Sie es anzeigen können, bevor das Abonnement erstellt wird. Es wird relativ zum aktuellen Zeitpunkt berechnet: now + trial period, wenn ein Testzeitraum gilt, andernfalls now + one payment frequency. Bei Warenkörben, die ausschließlich einmalige Käufe enthalten, wird das Feld nicht angegeben. Dies ist eine auf dem Zeitpunkt der Vorschau basierende Schätzung; das maßgebliche next_billing_date wird festgelegt, sobald das Abonnement aktiviert wird.
Die Vorschau gibt außerdem trial_period_days (die effektive Dauer des Testzeitraums, kostenlos oder kostenpflichtig) und trial_amount (die Gebühr pro Einheit für den Testzeitraum nach Abzügen in den kleinsten Einheiten der Preiswährung) zurück. trial_amount ist nur bei einem kostenpflichtigen Testzeitraum vorhanden und bei einem kostenlosen Testzeitraum oder keinem Testzeitraum null. Verwenden Sie current_breakup für den tatsächlich heute fälligen Gesamtbetrag einschließlich Steuern.

Preview API Reference

Sehen Sie sich die vollständige Dokumentation zum Vorschau-Endpunkt an.

Wichtige Unterschiede

Bisher mussten Sie beim Erstellen eines Zahlungslinks mit Dynamic Links die vollständige Rechnungsadresse des Kunden angeben. Bei Checkout Sessions ist dies nicht mehr erforderlich. Sie können einfach die Informationen übermitteln, die Ihnen vorliegen, und wir kümmern uns um den Rest. Zum Beispiel:
  • Wenn Sie nur das Rechnungsland des Kunden kennen, geben Sie einfach dieses an.
  • Der Checkout-Ablauf erfasst die fehlenden Angaben automatisch, bevor der Kunde zur Zahlungsseite weitergeleitet wird.
  • Wenn Sie hingegen bereits alle erforderlichen Informationen haben und direkt zur Zahlungsseite weiterleiten möchten, können Sie den vollständigen Datensatz übermitteln und confirm=true in den Request Body aufnehmen.

Migrationsprozess

Die Migration von Dynamic Links zu Checkout Sessions ist unkompliziert:
1

Update your integration

Aktualisieren Sie Ihre Integration, damit sie die neue API- oder SDK-Methode verwendet.
2

Adjust request payload

Passen Sie die Request-Payload entsprechend dem Format von Checkout Sessions an.
3

That's it!

Ja. Auf Ihrer Seite sind keine zusätzlichen Maßnahmen oder besonderen Migrationsschritte erforderlich.

Zugehörige API-Referenz

Create Checkout Session

Vollständige API-Referenz zum Erstellen von Checkout Sessions mit allen verfügbaren Parametern und Optionen

Preview Checkout Session

API-Referenz zur Vorschau von Preisen, Steuern und Gesamtbeträgen vor dem Erstellen einer Sitzung
Zuletzt geändert am 26. August 2026