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.
-
Generate your API key:
- Go to Developer > API
- Detailed Guide
- Copy the API key the in env named 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)
6
Share the link
Senden Sie den fertigen Payment Link an Ihren Kunden. Beim Aufruf werden alle Query-Parameter erfasst und mit einer Session-ID gespeichert. Anschließend wird die URL vereinfacht und enthält nur noch den Session-Parameter (z. B.
?session=sess_1a2b3c4d). Die gespeicherten Informationen bleiben bei Seitenaktualisierungen erhalten und sind während des gesamten Checkout-Prozesses zugänglich.Das Checkout-Erlebnis des Kunden ist nun anhand Ihrer Parameter optimiert und personalisiert.
4. Dynamic Payment Links
Wird über einen API-Aufruf oder unser SDK mit Kundendaten erstellt. Hier ist ein Beispiel: Es gibt zwei APIs zum Erstellen dynamischer Payment Links:- API für Einmalzahlungs-Payment-Links API reference
- API für Abonnement-Payment-Links API reference
Stellen Sie sicher, dass Sie
payment_link = true übergeben, um den Payment Link zu erhalten - Node.js SDK
- Python SDK
- Go SDK
- Api Reference
Leiten Sie Ihre Kunden nach der Erstellung des Payment Links weiter, damit sie ihre Zahlung abschließen können.
Webhooks implementieren
Richten Sie einen API-Endpunkt ein, der Zahlungsbenachrichtigungen empfängt. Hier ist ein Beispiel mit Next.js:Ereignisse, auf die Sie hören sollten
Aktivieren Siepayload.type und verarbeiten Sie die für einen Einmalzahlungsablauf relevanten Ereignisse. Hören Sie mindestens auf:
Wenn Sie digitale Produkte mit Lizenzschlüsseln verkaufen, verarbeiten Sie außerdem
license_key.created. Die vollständige Liste der Ereignisse – einschließlich Abonnement-, Berechtigungs-, Guthaben-, Wiederherstellungs- und Mahnverfahren-Ereignissen – finden Sie im Leitfaden zu Webhook-Ereignissen.
Sie können dieses Projekt mit einer Demo-Implementierung auf GitHub unter Verwendung von Next.js und TypeScript verwenden.
Die Live-Implementierung können Sie hier aufrufen.
Wichtige Informationen zu Checkout und Währung
Checkout-Sessions laufen nach 24 Stunden ab (nach 15 Minuten, wenn
confirm: true), und jedes checkout_url ist nur einmal verwendbar. Erstellen Sie für jeden Kunden und jeden Zahlungsversuch eine neue Session, anstatt einen Link wiederzuverwenden.Wiederholter Kauf mit einem Klick. Übergeben Sie bei einem wiederkehrenden Kunden mit einer gespeicherten Zahlungsmethode
payment_method_id zusammen mit confirm: true, um die Zahlung sofort einzuziehen und die Auswahl der Zahlungsmethode vollständig zu überspringen.Zugehörige API Reference
Create Checkout Session
API-Referenz zum Erstellen sicherer, gehosteter Checkout-Sessions für Einmalzahlungen und Abonnements
Create Payment Link
API-Referenz zum programmgesteuerten Erstellen dynamischer Payment Links