Prerequisites
To integrate the Dodo Payments API, you’ll need:- A Dodo Payments merchant account
- API Credentials (API key and webhook secret key) from dashboard
Dashboard Setup
- Navigate to the Dodo Payments Dashboard
- Ein Produkt erstellen (Einmalzahlung oder Abonnement). Abonnementprodukte müssen mit mindestens $1 (oder dem entsprechenden Betrag in der von Ihnen gewählten Währung) bepreist sein; Beträge unter diesem Mindestwert werden nicht unterstützt.
-
Generieren Sie Ihren API-Schlüssel:
- Gehen Sie zu Entwickler > API
- Detaillierte Anleitung
- Kopieren Sie den API-Schlüssel aus der Umgebung mit dem Namen DODO_PAYMENTS_API_KEY
-
Configure webhooks:
- Go to Developer > Webhooks
- Create a webhook URL for payment notifications
- Copy the webhook secret key in env
Integration
Payment Links
Wählen Sie den Integrationspfad, der zu Ihrem Anwendungsfall passt:- Checkout Sessions (empfohlen): Am besten für die meisten Integrationen geeignet. Erstellen Sie eine Session auf Ihrem Server und leiten Sie Kunden zu einem sicheren, gehosteten Checkout weiter.
- Overlay Checkout: Verwenden Sie diese Option, wenn Sie eine In-Page-Erfahrung benötigen, bei der der Checkout als modales Overlay auf Ihrer Website geöffnet wird.
- Inline Checkout: Binden Sie den Checkout direkt in Ihr Seitenlayout ein, um vollständig integrierte, markenspezifische Checkout-Erlebnisse zu ermöglichen.
- Static Payment Links: No-Code-URLs, die sofort geteilt werden können, zur schnellen Zahlungsannahme.
- Dynamic Payment Links: Programmgesteuert erstellte Links. Checkout Sessions werden jedoch empfohlen und bieten mehr Flexibilität.
- Mobile Checkout SDKs: Für native Android-, iOS-, React-Native- und Flutter-Apps. Erstellen Sie die Session wie oben beschrieben auf Ihrem Server und übergeben Sie anschließend
checkout_urlan das SDK.
Overlay Checkout und Inline Checkout sind ausschließlich browserbasiert – sie binden den Checkout in eine Webseite ein. Wenn Sie eine native mobile App entwickeln, erstellen Sie die Checkout-Session auf Ihrem Server und öffnen Sie sie stattdessen mit den
Mobile Checkout SDKs.
1. Checkout Sessions
Verwenden Sie Checkout Sessions, um einen sicheren, gehosteten Checkout für Einmalzahlungen oder Abonnements zu erstellen. Sie erstellen eine Session auf Ihrem Server und leiten den Kunden anschließend zu dem zurückgegebenencheckout_url weiter.
Checkout-Sessions sind standardmäßig 24 Stunden gültig. Wenn Sie
confirm=true übergeben, sind Sessions 15 Minuten gültig und alle erforderlichen Felder müssen angegeben werden.1
Create a checkout session
Wählen Sie Ihr bevorzugtes SDK oder rufen Sie die REST API auf.
- Node.js SDK
- Python SDK
- REST API
2
Redirect customer to checkout
Leiten Sie nach der Erstellung der Session zu
checkout_url weiter, um den gehosteten Ablauf zu starten.2. Overlay Checkout
Für ein nahtloses Checkout-Erlebnis innerhalb der Seite können Sie unsere Integration Overlay Checkout nutzen. Kunden können damit Zahlungen abschließen, ohne Ihre Website zu verlassen.3. Inline Checkout
Für vollständig integrierte Checkout-Erlebnisse, die direkt in Ihre Seite eingebettet werden, verwenden Sie unsere Integration Inline Checkout. Damit können Sie benutzerdefinierte Bestellübersichten erstellen und das Checkout-Layout vollständig kontrollieren, während Dodo Payments die Zahlungsannahme sicher abwickelt.4. Static Payment Links
Mit statischen Payment Links können Sie schnell Zahlungen annehmen, indem Sie eine einfache URL teilen. Sie können das Checkout-Erlebnis anpassen, indem Sie Query-Parameter übergeben, um Kundendaten vorauszufüllen, Formularfelder zu steuern und benutzerdefinierte Metadaten hinzuzufügen.1
Construct your payment link
Beginnen Sie mit der Basis-URL und hängen Sie Ihre Produkt-ID an:
2
Add core parameters
Fügen Sie wichtige Query-Parameter hinzu:
-
integerStandard:"1"Anzahl der zu kaufenden Artikel.
-
stringerforderlichURL, zu der nach Abschluss der Zahlung weitergeleitet wird.
Die Redirect-URL enthält Zahlungsdetails als Query-Parameter, zum Beispiel:
Wenn für das Produkt Lizenzschlüssel aktiviert sind, wird außerdem ein
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.comWenn für das Produkt Lizenzschlüssel aktiviert sind, wird außerdem ein
license_key-Parameter angehängt (bei mehreren Schlüsseln durch Kommas getrennt):https://example.com/?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com3
Pre-fill customer information (optional)
Fügen Sie Kunden- oder Abrechnungsfelder als Query-Parameter hinzu, um den Checkout zu vereinfachen.
Supported Customer Fields
Supported Customer Fields
-
stringVollständiger Name des Kunden (wird ignoriert, wenn firstName oder lastName angegeben ist).
-
stringVorname des Kunden.
-
stringNachname des Kunden.
-
stringE-Mail-Adresse des Kunden.
-
stringLand des Kunden.
-
stringStraßenadresse.
-
stringStadt.
-
stringBundesstaat oder Provinz.
-
stringPostleitzahl/ZIP-Code.
-
booleantrue oder false
4
Control form fields (optional)
Sie können bestimmte Felder deaktivieren, damit sie für den Kunden schreibgeschützt sind. Dies ist nützlich, wenn Ihnen die Kundendaten bereits vorliegen (z. B. bei angemeldeten Benutzern).
disable…-Flag auf true:- Disable Flags Table
Durch Setzen von
showDiscounts=false wird der Rabattbereich im Checkout-Formular deaktiviert und ausgeblendet. Verwenden Sie diese Option, wenn Sie verhindern möchten, dass Kunden während des Checkouts Gutschein- oder Aktionscodes eingeben.5
Add advanced controls (optional)
-
stringGibt die Zahlungswährung an. Standardmäßig wird die Währung des Abrechnungslands verwendet.
-
booleanStandard:"true"Währungsauswahl ein- oder ausblenden.
-
numberLegt den berechneten Betrag in Haupteinheiten der Währung fest (z. B.
12.5für 12,50 $). Nur für Pay What You Want-Produkte. Der Wert wird ignoriert, wenn er unter dem Mindestpreis des Produkts liegt. -
stringBenutzerdefinierte Metadatenfelder (z. B.
metadata_orderId=123).
6
Share the link
Sende den vollständigen Zahlungslink an deinen Kunden. Beim Aufrufen werden alle Query-Parameter erfasst und zusammen mit einer Sitzungs-ID gespeichert. Die URL wird anschließend vereinfacht und enthält nur noch den Sitzungsparameter (z. B.
?session=sess_1a2b3c4d). Die gespeicherten Informationen bleiben über Seitenaktualisierungen hinweg erhalten und sind während des gesamten Checkout-Prozesses zugänglich.Das Checkout-Erlebnis des Kunden ist nun auf Grundlage deiner Parameter optimiert und personalisiert.
4. Dynamische Zahlungslinks
Über einen API-Aufruf oder unser SDK mit Kundendaten erstellt. Hier ist ein Beispiel: Es gibt zwei APIs zum Erstellen dynamischer Zahlungslinks:- API für einmalige Zahlungslinks API-Referenz
- API für Zahlungslinks von Abonnements API-Referenz
Stelle sicher, dass du
payment_link = true übergibst, um den Zahlungslink zu erhalten - Node.js SDK
- Python SDK
- Go SDK
- Api Reference
Leite deine Kunden nach dem Erstellen des Zahlungslinks weiter, damit sie ihre Zahlung abschließen können.
Webhooks implementieren
Richte einen API-Endpunkt ein, der Zahlungsbenachrichtigungen empfängt. Hier ist ein Beispiel mit Next.js:Ereignisse, auf die du hören solltest
Aktivierepayload.type und verarbeite die für einen einmaligen Zahlungsablauf relevanten Ereignisse. Höre mindestens auf:
Wenn du digitale Produkte mit Lizenzschlüsseln verkaufst, verarbeite auch
license_key.created. Die vollständige Liste der Ereignisse — einschließlich Ereignissen zu Abonnements, Berechtigungen, Guthaben, Wiederherstellung und Zahlungserinnerungen — findest du im Leitfaden zu Webhook-Ereignissen.
Du kannst dieses Projekt mit einer Demo-Implementierung auf GitHub unter Verwendung von Next.js und TypeScript heranziehen.
Die Live-Implementierung findest du hier.
Wichtige Informationen zu Checkout und Währung
Checkout-Sessions laufen nach 24 Stunden ab (nach 15 Minuten, wenn
confirm: true), und jede checkout_url ist nur einmal verwendbar — erstelle für jeden Kunden und jeden Zahlungsversuch eine neue Session, anstatt einen Link wiederzuverwenden.Erneuter Kauf mit einem Klick. Übergib bei einem wiederkehrenden Kunden mit einer gespeicherten Zahlungsmethode
payment_method_id zusammen mit confirm: true, um die Zahlung sofort auszuführen und die Auswahl der Zahlungsmethode vollständig zu überspringen.Zugehörige API-Referenz
Create Checkout Session
API-Referenz zum Erstellen sicherer, gehosteter Checkout-Sessions für einmalige Zahlungen und Abonnements
Create Payment Link
API-Referenz zum programmgesteuerten Erstellen dynamischer Zahlungslinks