Skip to main content

Quick Start

Create your first checkout session in under 5 minutes

API Reference

Full API documentation and interactive testing

Preview Endpoint

Calculate pricing and taxes before creating a session
Session Validity: Checkout sessions expire after 24 hours by default, or 15 minutes when confirm: true.
Single-Use Links: The checkout_url is not reusable. Generate a fresh session for each customer and payment attempt rather than sharing or reusing a link.

Prerequisites

You need:
  • An active Dodo Payments merchant account
  • API credentials from Developer → API Keys in the dashboard
  • At least one product created in Products

Creating Your First Checkout Session

API Response

All methods return:
Only session_id is guaranteed to be present. When payment_method_id is provided, the charge processes immediately and checkout_url is null. Use the returned payment_id instead. When confirm: true, the payment is created at session-creation time, and the response also includes payment_id, client_secret, and publishable_key for use with the Dodo Payments checkout SDK.

Redirect Your Customer

1

Extract the checkout URL

Get checkout_url from the API response.
2

Redirect to checkout

Send your customer to the URL:
Alternatively, open in a new window:
3

Handle the return

After payment, customers are redirected to your return_url with query parameters:Example redirect:
Instead of redirecting, you can embed checkout directly in your page using Overlay Checkout (modal), Inline Checkout (embedded), or Mobile SDKs (native apps). All consume the same session URL.

Sitzungsstatus prüfen

Um den Status einer Sitzung zu prüfen, rufen Sie Get Checkout Session (GET /checkouts/{id}) auf. Die Antwort enthält id, created_at, customer_email und customer_name der Sitzung sowie payment_id und payment_status. Beide Zahlungsfelder sind null, solange der Kunde noch seine Daten eingibt. Nachdem der Kunde die Zahlung übermittelt hat, enthält payment_status den Zahlungsstatus, z. B. succeeded, failed oder processing. Verwenden Sie Webhooks als maßgebliche Quelle für die Erfüllung.

Anfragetext

Erforderliche Felder

array
erforderlich
Array von Produkten, die in die Checkout-Sitzung aufgenommen werden sollen. Jedes Produkt muss eine gültige product_id aus Ihrem Dashboard haben.Sie können Produkte mit einmaliger Zahlung und Abonnementprodukte in derselben Sitzung kombinieren.
Ihre Produkt-IDs finden: Produkt-IDs finden Sie in Ihrem Dodo Payments-Dashboard unter Products → View Details oder über die List Products API.

Optionale Felder

object
Kundeninformationen. Sie können entweder einen bestehenden Kunden anhand seiner ID anhängen oder während des Checkouts einen neuen Kundendatensatz erstellen.
object
Rechnungsadressinformationen für eine genaue Steuerberechnung, Betrugsprävention und die Einhaltung gesetzlicher Vorschriften.Wenn confirm: true, werden alle Felder der Rechnungsadresse erforderlich.
array
Steuern Sie, welche Zahlungsmethoden Kunden während des Checkouts verwenden können. Dies hilft bei der Optimierung für bestimmte Märkte oder geschäftliche Anforderungen.Häufige Optionen: credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, ach, multibanco, bancontact_card, eps, ideal, blik, gcash, ali_pay_hk, fps, touch_n_go, paypalDie vollständige Liste finden Sie in der Create Checkout Session API reference.
Fügen Sie credit und debit immer als Fallback-Optionen hinzu, um Checkout-Fehler zu vermeiden, wenn bevorzugte Zahlungsmethoden nicht verfügbar sind.
Beispiel:
string
Überschreiben Sie 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 Preisgestaltung aktiviert ist. Wenn die adaptive Preisgestaltung deaktiviert ist, wird die Standardwährung des Produkts verwendet.
boolean
Standard:"false"
Zeigen Sie zuvor gespeicherte Zahlungsmethoden für wiederkehrende Kunden an, um Checkout-Geschwindigkeit und Benutzererfahrung zu verbessern.
string
URL, an die Kunden nach Abschluss der Zahlung weitergeleitet werden. Dodo Payments fügt Ihrer URL bei der Weiterleitung Query-Parameter hinzu (siehe die obige Weiterleitungstabelle).Beispiele für Weiterleitungs-URLs:
Verwenden Sie die Query-Parameter license_key und email, um Lizenzschlüssel anzuzeigen oder direkt auf Ihrer Rückkehrseite eine Bestätigung zu senden, ohne einen zusätzlichen API-Aufruf zu benötigen.
string
URL, an die 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.Legen Sie eine cancel_url fest, um Kunden eine klare Möglichkeit zu geben, zu Ihrer Website zurückzukehren, ohne den Kauf abzuschließen.
boolean
Standard:"false"
Wenn true, werden alle Sitzungsdetails sofort finalisiert. Die API gibt einen Fehler aus, wenn erforderliche Daten fehlen.Wenn confirm: true:
  • Werden alle Felder der Rechnungsadresse erforderlich
  • Kann payment_method_id angegeben werden, um die Belastung sofort zu verarbeiten
  • Läuft die Sitzung nach 15 Minuten statt nach 24 Stunden ab
  • Ist ein vorhandenes customer_id erforderlich, wenn payment_method_id angegeben wird
array
Wenden Sie einen oder mehrere gestapelte Rabattcodes auf die Checkout-Sitzung an. Codes werden in Array-Reihenfolge angewendet (der erste Code reduziert den Ausgangspreis, der zweite den bereits reduzierten Preis usw.), bis zu maximal 20 Codes pro Sitzung.Wenn Purchasing Power Parity aktiviert ist, ist der Ausgangspreis der PPP-angepasste Betrag und nicht der Basispreis.
Das einzelne Feld discount_code unten ist veraltet, wird aber weiterhin vollständig unterstützt. Es kann in derselben Anfrage nicht mit discount_codes kombiniert werden.
string
veraltet
Veraltet – Verwenden Sie 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 über die Sitzung.
boolean
Überschreiben Sie das standardmäßige 3DS-Verhalten des Händlers für diese Sitzung.
boolean
Standard:"false"
Aktivieren Sie den Modus zur Erfassung einer minimalen Adresse. Wenn aktiviert, erfasst der Checkout nur:
  • Land: Immer für die Steuerbestimmung erforderlich
  • ZIP-/Postleitzahl: Nur in Regionen, in denen sie für die Berechnung von Umsatzsteuer, VAT oder GST erforderlich ist
Dies reduziert die Reibung beim Checkout erheblich, da unnötige Formularfelder entfernt werden.
string
Eine gespeicherte Zahlungsmethode des angehängten Kunden. Erfordert confirm: true und ein vorhandenes customer.customer_id. Die Zahlungsmethode wird auf ihre Eignung für die Währung der Zahlung geprüft. Wenn gesetzt, wird die Belastung sofort verarbeitet und checkout_url als null zurückgegeben. Verwenden Sie stattdessen das zurückgegebene payment_id.
Wenn true, wird eine verkürzte Checkout-URL statt der vollständigen Sitzungs-URL zurückgegeben.
string
ID der Produktsammlung für den sammlungsbasierten Checkout-Ablauf. Wenn Sie sie festlegen, übergeben Sie ein leeres product_cart-Array. Rabattcodes können bei der Sitzungserstellung nicht vorab angewendet werden. Siehe Product Collections.
string
Steuer-ID des Kunden (z. B. eine VAT-Nummer). Erfordert billing_address mit einem country.
string
Optionaler geschäftlicher oder rechtlicher Name, der mit der Steuer-ID verknüpft ist, mit bis zu 250 Zeichen. Wird er zusammen mit einem gültigen tax_id angegeben, erscheint er auf der Rechnung anstelle des persönlichen Namens des Kunden.
integer
Überschreiben Sie den Mandatsgrenzwert auf Händlerebene (in INR-Paise) für INR-E-Mandate auf indischen Karten.Der an den Prozessor gesendete Mandatsbetrag ist max(this_floor, actual_billing_amount). Damit ist dies effektiv die kundenorientierte Autorisierungsobergrenze, wenn der Abrechnungsbetrag niedriger ist. Wenn der Wert nicht gesetzt ist, gilt die Händlereinstellung; wenn auch diese nicht gesetzt ist, gilt der Systemstandard von ₹15,000.
object
Passen Sie das Erscheinungsbild und Verhalten der Checkout-Oberfläche an.
object
Konfigurieren Sie bestimmte Funktionen und Verhaltensweisen für die Checkout-Sitzung.
array
Erfassen Sie während des Checkouts mit benutzerdefinierten Formularfeldern zusätzliche Informationen von Kunden. Sie können bis zu 5 benutzerdefinierte Felder pro Checkout-Sitzung definieren. Kundenantworten werden in Webhook-Payloads aufgenommen und sind über die API verfügbar.
Kundenantworten auf benutzerdefinierte Felder sind enthalten in:
  • Webhooks: payment.succeeded, subscription.active und andere relevante Event-Payloads enthalten das custom_field_responses-Array
  • API-Antworten: Zahlungs- und Abonnementobjekte enthalten custom_field_responses
object
Zusätzliche Konfiguration für Checkout-Sitzungen mit Abonnementprodukten.

Anwendungsbeispiele

Einfacher Checkout mit einem Produkt

Warenkorb mit mehreren Produkten

Abonnement mit Testzeitraum

Vorbestätigter Checkout

Checkout mit Währungsüberschreibung

Gespeicherte Zahlungsmethoden für wiederkehrende Kunden

B2B-Checkout mit Erfassung der Tax ID

Checkout mit dunklem Theme und gestapelten Rabattcodes

Regionale Zahlungsmethoden (UPI für Indien)

Ausführliche Informationen zur Konfiguration und zum Testen von UPI finden Sie auf der Seite India Payment Methods.

BNPL-Checkout (Jetzt kaufen, später bezahlen)

Ausführliche Informationen zur Konfiguration und zum Testen von BNPL finden Sie auf der Seite Buy Now Pay Later (BNPL).

Sofortiger Checkout mit vorhandener Zahlungsmethode

Zahlungsbestätigungsseite überspringen und sofort weiterleiten

Sprache erzwingen

Benutzerdefinierte Felder erfassen

Checkout-Sitzungen in der Vorschau anzeigen

Verwenden Sie den Endpunkt Preview Checkout Session, um Preise, Steuern und Gesamtsummen vor der Erstellung einer Sitzung zu berechnen. Dies ist nützlich, um genaue Preisinformationen auf Ihrer Website anzuzeigen.
Die in der Vorschau angezeigte current_breakup.subtotal berücksichtigt bereits Purchasing Power Parity und Charm Pricing, sofern diese auf das Produkt zutreffen.
Wenn der Warenkorb ein Abonnementprodukt enthält, gibt die Vorschauantwort außerdem eine next_billing_date zurück – eine Vorschau des bevorstehenden Abrechnungsdatums, damit Sie es anzeigen können, bevor das Abonnement erstellt wird. Sie wird relativ zur aktuellen Zeit 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 weggelassen. Dies ist eine auf dem Zeitpunkt der Vorschau basierende Schätzung; die maßgebliche next_billing_date wird festgelegt, wenn das Abonnement aktiviert wird.
Die Vorschau gibt außerdem trial_period_days (die effektive Länge des kostenlosen oder kostenpflichtigen Testzeitraums) und trial_amount (die ermäßigte Gebühr pro Einheit für den Testzeitraum in den Untereinheiten der Preiswährung) zurück. trial_amount ist nur bei einem paid trial vorhanden und bei einem kostenlosen Testzeitraum oder keinem Testzeitraum null. Verwenden Sie current_breakup für den tatsächlich heute fälligen, versteuerten Gesamtbetrag.
Wenn Sie Dynamic Links verwenden, bieten Checkout-Sitzungen mehr Flexibilität. Bei Dynamic Links mussten Sie die vollständige Rechnungsadresse des Kunden angeben. Bei Checkout-Sitzungen können Sie beliebige verfügbare Informationen übergeben; der Checkout-Ablauf erfasst die übrigen Daten. Zum Beispiel:
  • Geben Sie nur das Rechnungsland des Kunden an, und der Checkout erfasst die übrigen Daten.
  • Oder geben Sie alle Informationen an und setzen Sie confirm: true, um direkt zur Zahlungsseite zu springen.
Die Migration ist unkompliziert: Aktualisieren Sie Ihre Integration, um die Checkout Sessions API oder SDK-Methode zu verwenden, passen Sie die Anfrage-Payload an das Format der Checkout-Sitzungen an, und schon sind Sie fertig. Es ist keine zusätzliche Verarbeitung erforderlich.

Verwandte Ressourcen

Overlay Checkout

Checkout als modales Overlay auf Ihrer Seite öffnen

Inline Checkout

Checkout direkt in Ihre Seite einbetten

Mobile Integration

Checkout in nativen mobilen Apps integrieren

Webhooks

Auf Zahlungs- und Abonnementereignisse hören

Payment Methods

Unterstützte Zahlungsmethoden nach Region

Subscriptions

Wiederkehrende Abrechnung und Abonnementverwaltung
Zuletzt geändert am 26. September 2026