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.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
- Node.js SDK
- Python SDK
- REST API
API Response
All methods return: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:
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.Optionale Felder
Customer Information
Customer Information
object
Kundeninformationen. Sie können entweder einen bestehenden Kunden anhand seiner ID anhängen oder während des Checkouts einen neuen Kundendatensatz erstellen.
- Attach Existing Customer
- Create New Customer
object
Rechnungsadressinformationen für eine genaue Steuerberechnung, Betrugsprävention und die Einhaltung gesetzlicher Vorschriften.Wenn
confirm: true, werden alle Felder der Rechnungsadresse erforderlich.Payment Configuration
Payment Configuration
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.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.
Session Management
Session Management
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_idangegeben werden, um die Belastung sofort zu verarbeiten - Läuft die Sitzung nach 15 Minuten statt nach 24 Stunden ab
- Ist ein vorhandenes
customer_iderforderlich, wennpayment_method_idangegeben 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
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.boolean
Standard:"false"
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.UI Customization
UI Customization
object
Passen Sie das Erscheinungsbild und Verhalten der Checkout-Oberfläche an.
Feature Flags
Feature Flags
object
Konfigurieren Sie bestimmte Funktionen und Verhaltensweisen für die Checkout-Sitzung.
Custom Fields
Custom Fields
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.
- Webhooks:
payment.succeeded,subscription.activeund andere relevante Event-Payloads enthalten dascustom_field_responses-Array - API-Antworten: Zahlungs- und Abonnementobjekte enthalten
custom_field_responses
Subscription Configuration
Subscription Configuration
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
Kurzlinks für übersichtlichere Zahlungs-URLs
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.- Node.js SDK
- Python SDK
- REST API
Migration von Dynamic Links
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.
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