Checkout Sessions
Erstelle einen sicheren, gehosteten Checkout für einmalige Zahlungen und Abonnements.
Payment Links
Teile eine URL, um Zahlungen ohne Code zu erfassen.
Webhooks
Empfange Zahlungsereignisse und erfülle Bestellungen.
API Reference
Vollständige Endpoint-Dokumentation und Live-Tests.
Voraussetzungen
Bevor du beginnst, benötigst du:- Ein Dodo Payments-Konto.
- Mindestens ein Produkt. Erstelle es unter Products im Dashboard. Ein Abonnementprodukt mit einem Preis ungleich null muss mit mindestens $1 oder dem entsprechenden Betrag in seiner Währung bepreist sein. Ein $0-Abonnement wird ebenfalls unterstützt.
- Einen API-Schlüssel. Erstelle ihn unter Developer → API Keys und speichere ihn in der Umgebungsvariable
DODO_PAYMENTS_API_KEY. Erstelle den Schlüssel während der Entwicklung im Testmodus: Die Beispiele auf dieser Seite verwenden den Testmodus, und ein Testmodus-Schlüssel funktioniert nur im Testmodus. Siehe Authentication.
Integrationspfad auswählen
Overlay- und Inline-Checkout funktionieren nur auf einer Webseite. Erstelle in einer nativen mobilen App die Checkout-Sitzung auf deinem Server und öffne deren
checkout_url mit einem Mobile-Checkout-SDK.
Damit ein Coding-Agent diese Integration für dich erstellt, installiere das Agent Plugin.
Checkout-Sitzungen
Erstelle ein sicheres, gehostetes Checkout-Erlebnis. Du erstellst eine Sitzung auf deinem Server und leitest den Kunden anschließend zur zurückgegebenencheckout_url weiter.
Checkout-Sitzung erstellen
- Node.js SDK
- Python SDK
- cURL
Zum Checkout weiterleiten
Leite den Kunden nach dem Erstellen einer Sitzung zurcheckout_url weiter:
Payment Links
Ein Payment Link ist eine URL, die den Checkout für ein Produkt öffnet, sodass du Zahlungen ohne Code erfassen kannst. Query-Parameter füllen Kundendaten vorab aus und steuern das Checkout-Formular. Wenn ein Kunde den Link öffnet, speichert der Checkout die Parameter in einer Sitzung und verkürzt die URL zu einemsession-Parameter, sodass sie bei einer Seitenaktualisierung erhalten bleiben.
Statische Payment Links
Ein statischer Payment Link ist eine URL, die du einmal erstellst und mehrfach teilst. Die Basis-URL lautet:integer
Standard:"1"
Anzahl der zu kaufenden Artikel.
string
erforderlich
Payment Links verwenden
redirect_url. Die Checkout Sessions API verwendet für denselben Zweck return_url.URL, zu der nach der Zahlung weitergeleitet wird. Dodo Payments fügt die Zahlungsdetails als Query-Parameter hinzu, zum Beispiel https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com. Wenn das Produkt Lizenzschlüssel ausstellt, wird zusätzlich ein license_key-Parameter mit mehreren durch Kommas getrennten Schlüsseln angehängt.string
Gibt die Zahlungswährung an. Standardmäßig wird die Währung des Rechnungslandes verwendet.
boolean
Standard:"true"
Währungsselector ein- oder ausblenden.
boolean
Standard:"true"
Rabattbereich ein- oder ausblenden. Auf
false setzen, damit Kunden keine Gutscheincodes eingeben können.number
Legt den berechneten Betrag in den Haupteinheiten der Währung fest, zum Beispiel
12.5 für $12.50. Funktioniert nur mit Pay-What-You-Want-Produkten und wird ignoriert, wenn der Wert unter dem Mindestpreis des Produkts liegt.string
Benutzerdefinierte Metadatenfelder, zum Beispiel
metadata_orderId=123.Kundeninformationen vorab ausfüllen
Füge Kundenfelder als Query-Parameter hinzu, um den Checkout zu vereinfachen:string
Vollständiger Name des Kunden (wird ignoriert, wenn firstName oder lastName angegeben ist).
string
Vorname des Kunden.
string
Nachname des Kunden.
string
E-Mail-Adresse des Kunden.
string
Land des Kunden (ISO-3166-1-Alpha-2-Code).
string
Straßenadresse.
string
Stadt.
string
Bundesland oder Provinz.
string
Postleitzahl oder ZIP-Code.
Formularfelder deaktivieren
Um zu verhindern, dass Kunden vorausgefüllte Informationen ändern, deaktiviere ein Feld, indem du seinen Wert übergibst und das entsprechendedisable...-Flag auf true setzt:
Beispiel für einen statischen Payment Link
Dynamische Payment Links (veraltet)
Bei bestehenden Integrationen, die dynamische Payment Links verwenden, übergibpayment_link: true an Create One-Time Payment oder Create Subscription, um einen Link zu erstellen. Die folgenden Beispiele erstellen einen Link für eine einmalige Zahlung. Informationen zu Abonnements findest du im Subscription Integration Guide.
- Node.js SDK
- Python SDK
- Go SDK
Webhooks
Webhooks informieren deinen Server, wenn eine Zahlung erfolgreich ist oder fehlschlägt, damit du die Bestellung erfüllen kannst.Webhook-Endpoint erstellen
Gehe im Dashboard zu Developer → Webhooks und füge deine Endpoint-URL hinzu. Kopiere das Signaturgeheimnis des Endpoints in die UmgebungsvariableDODO_PAYMENTS_WEBHOOK_KEY.
Hier ist ein Beispiel mit Next.js:
app/api/webhooks/dodo/route.ts
Abzuhörende Ereignisse
Höre in einem Zahlungsablauf für eine einmalige Zahlung mindestens diese Ereignisse ab:
Wenn du Produkte mit Lizenzschlüsseln verkaufst, verarbeite auch
license_key.created. Die vollständige Liste der Ereignisse, einschließlich Abonnement-, Berechtigungs-, Guthaben-, Wiederherstellungs- und Mahnungsereignissen, findest du im Webhook Event Guide.
Ein vollständiges Beispiel mit Next.js und TypeScript findest du im Demo-Repository und in dessen Live-Bereitstellung.
Währung und Rechnungsadresse
Um in einer bestimmten Währung abzurechnen, übergibbilling_currency und billing_address.country, wenn du die Checkout-Sitzung erstellst. Wenn du sie weglässt, wählt Adaptive Currency Währung und Land anhand der IP-Adresse des Kunden aus, was möglicherweise nicht der Währung entspricht, in der du abrechnen möchtest.
Beträge für Pay What You Want werden in der Basiswährung des Produkts angegeben, die USD, GBP oder EUR sein muss. Um einen festen Betrag in einer anderen Währung zu erfassen, verwende Adaptive Currency, das deinen Basispreis zu aktuellen Wechselkursen umrechnet, oder Localized Pricing, das einen festen Preis pro Währung festlegt. Localized Pricing funktioniert nicht mit Pay What You Want.
Wiederholter Kauf mit einem Klick
Um einem wiederkehrenden Kunden mit einer gespeicherten Zahlungsmethode eine Zahlung zu berechnen, übergib derenpayment_method_id zusammen mit confirm: true. payment_method_id wird nur akzeptiert, wenn confirm true ist. Außerdem musst du customer_id des bestehenden Kunden übergeben. Da confirm true ist, musst du außerdem ein vollständiges billing_address übergeben. Die Sitzung belastet die gespeicherte Zahlungsmethode direkt und gibt daher keine checkout_url zurück. Verwende Webhooks, um zu erfahren, ob die Zahlung erfolgreich war.
Verwandte Seiten
Checkout Sessions
Vollständiger Leitfaden mit erweiterten Anpassungsoptionen.
Overlay Checkout
Checkout als modales Overlay auf deiner Seite einbetten.
Inline Checkout
Checkout direkt in das Layout deiner Seite einbetten.
Subscription Integration
Wiederkehrende Abrechnung einrichten.
Webhook Event Guide
Vollständige Liste aller Webhook-Ereignisse.
API Reference
Dokumentation zur Checkout Sessions API.