Prerequisites
To integrate the Dodo Payments API, you’ll need:- A Dodo Payments merchant account
- API credentials (API key and webhook secret key) from the dashboard
API Integration
Checkout Sessions
Use Checkout Sessions to sell subscription products with a secure, hosted checkout. Pass your subscription product inproduct_cart and redirect customers to the returned checkout_url.
- Node.js SDK
- Python SDK
- REST API
API Response
The following is an example of the response:checkout_url.
Webhooks
Bei der Integration von Abonnements erhalten Sie Webhooks, um den Lebenszyklus der Abonnements zu verfolgen. Diese Webhooks helfen Ihnen, den Abonnementstatus und Zahlungsszenarien effektiv zu verwalten. Um Ihren Webhook-Endpunkt einzurichten, folgen Sie bitte unserem Detaillierten Integrationshandbuch.Abonnement-Ereignistypen
Die folgenden Webhook-Ereignisse verfolgen Änderungen des Abonnementstatus:subscription.active- Abonnement wurde erfolgreich aktiviert.subscription.updated- Abonnementobjekt wurde aktualisiert (wird bei jeder Feldänderung ausgelöst).subscription.on_hold- Abonnement wird wegen fehlgeschlagener Verlängerung pausiert.subscription.failed- Abonnementerstellung schlug bei der Erstellung des Mandats fehl.subscription.renewed- Abonnement wird für den nächsten Abrechnungszeitraum erneuert.
Zahlungsszenarien
Erfolgreicher Zahlungsablauf Wenn eine Zahlung erfolgreich ist, erhalten Sie die folgenden Webhooks:subscription.active- Zeigt die Aktivierung des Abonnements anpayment.succeeded- Bestätigt die Erstzahlung:- Bei sofortiger Abrechnung (0 Testtage): Erwartet innerhalb von 2-10 Minuten
- Bei Testtagen: immer wenn diese enden
subscription.renewed- Zeigt den Zahlungsabzug und die Erneuerung für den nächsten Zyklus an. (Grundsätzlich erhalten Sie immer, wenn eine Zahlung für Abonnementprodukte abgezogen wird, densubscription.renewedWebhook zusammen mitpayment.succeeded)
- Abonnementausfall
subscription.failed- Abonnementerstellung fehlgeschlagen aufgrund eines fehlgeschlagenen Mandats.payment.failed- Zeigt fehlgeschlagene Zahlung an.
- Abonnement pausiert
subscription.on_hold- Abonnement wird aufgrund einer fehlgeschlagenen Verlängerungszahlung oder einer fehlgeschlagenen Planänderungsgebühr pausiert.- Wenn ein Abonnement pausiert, wird es nicht automatisch erneuert, bis die Zahlungsmethode aktualisiert wird.
Best Practice: Um die Implementierung zu vereinfachen, empfehlen wir vor allem, Abonnementereignisse zur Verwaltung des Abonnement-Lebenszyklus zu verfolgen.
subscription.failed vs. subscription.on_hold
Diese beiden Ereignisse sind leicht zu verwechseln, erfordern jedoch eine sehr unterschiedliche Handhabung:
Abonnement auf Pausiert behandeln
Wenn ein Abonnement in denon_hold Zustand wechselt, müssen Sie die Zahlungsmethode aktualisieren, um es zu reaktivieren. Dieser Abschnitt erklärt, wann Abonnements auf Pausiert gestellt werden und wie man sie behandelt.
Wann Abonnements auf Pausiert gestellt werden
Ein Abonnement wird pausiert, wenn:- Verlängerungszahlung fehlschlägt: Die automatische Verlängerungsgebühr schlägt aufgrund unzureichender Mittel, abgelaufener Karte oder Bankablehnung fehl
- Planänderungsgebühr fehlschlägt: Eine sofortige Gebühr während eines Plan-Upgrades/Downgrades schlägt fehl
- Zahlungsmethode-Autorisierung fehlschlägt: Die Zahlungsmethode kann nicht für wiederkehrende Gebühren autorisiert werden
Reaktivierung von Abonnements von Pausiert
Um ein Abonnement aus demon_hold Zustand zu reaktivieren, verwenden Sie die Update Payment Method API. Dies bewirkt automatisch:
- Erstellung einer Gebühr für ausstehende Beträge
- Erstellung einer Rechnung für die Gebühr
- Verarbeitung der Zahlung mit der neuen Zahlungsmethode
- Reaktivierung des Abonnements in den
activeZustand nach erfolgreicher Zahlung
1
Handle subscription.on_hold webhook
Wenn Sie einen
subscription.on_hold Webhook erhalten, aktualisieren Sie den Zustand Ihrer Anwendung und benachrichtigen Sie den Kunden:2
Update payment method
Wenn der Kunde bereit ist, seine Zahlungsmethode zu aktualisieren, rufen Sie die Update Payment Method API auf:
Sie können auch eine bestehende Zahlungsmethoden-ID verwenden, wenn der Kunde Zahlungsinformationen gespeichert hat:
3
Monitor webhook events
Nach der Aktualisierung der Zahlungsmethode sollten Sie auf diese Webhook-Ereignisse achten:
payment.succeeded- Die Gebühr für ausstehende Beträge war erfolgreichsubscription.active- Das Abonnement wurde reaktiviert
Beispieldaten für Abonnementereignisse
Abonnementpläne ändern
Sie können einen Abonnementplan mit dem API-Endpunkt zum Planwechsel upgraden oder downgraden. Dies ermöglicht Ihnen die Änderung des Produkts des Abonnements, die Menge und die Handhabung der anteiligen Abrechnung.Change Plan API Reference
Für detaillierte Informationen über den Wechsel von Abonnementplänen konsultieren Sie bitte unsere Change Plan API-Dokumentation.
Optionen für anteilige Abrechnung
Beim Wechsel von Abonnementplänen haben Sie zwei Optionen zur Handhabung der sofortigen Gebühr:1. prorated_immediately
- Berechnet den anteiligen Betrag basierend auf der verbleibenden Zeit im aktuellen Abrechnungszyklus
- Belastet den Kunden nur für die Differenz zwischen dem alten und dem neuen Plan
- Während einer Testphase wird der Benutzer sofort auf den neuen Plan umgestellt, der Kunde wird sofort belastet
2. full_immediately
- Belastet den Kunden den vollen Abonnementbetrag für den neuen Plan
- Ignoriert verbleibende Zeit oder Guthaben vom vorherigen Plan
- Nützlich, wenn Sie den Abrechnungszyklus zurücksetzen oder den vollen Betrag unabhängig von der anteiligen Abrechnung verlangen möchten
3. difference_immediately
- Beim Upgrade wird der Kunde sofort mit dem Unterschied zwischen den beiden Planbeträgen belastet.
- Beispielsweise, wenn der aktuelle Plan 30 Dollar kostet und der Kunde auf 80 Dollar wechselt, werden ihm sofort 50 Dollar berechnet.
- Bei einem Downgrade wird der ungenutzte Betrag des aktuellen Plans als internes Guthaben hinzugefügt und automatisch auf zukünftige Abonnementverlängerungen angerechnet.
- Beispielsweise, wenn der aktuelle Plan 50 Dollar beträgt und der Kunde auf einen 20 Dollar-Plan wechselt, werden die verbleibenden 30 Dollar gutgeschrieben und für den nächsten Abrechnungszyklus verwendet.
Verhalten
- Wenn Sie diese API aufrufen, initiiert Dodo Payments sofort eine Gebühr basierend auf der von Ihnen gewählten Option für anteilige Abrechnung
- Wenn die Planänderung ein Downgrade ist und Sie
prorated_immediatelyverwenden, werden Guthaben automatisch berechnet und dem Guthaben des Abonnements hinzugefügt. Diese Guthaben sind spezifisch für dieses Abonnement und werden nur zur Verrechnung zukünftiger wiederkehrender Zahlungen desselben Abonnements verwendet - Die
full_immediatelyOption umgeht die Guthabenberechnung und belastet den vollen Betrag des neuen Plans
Gebührenverarbeitung
- Die sofortige Gebühr, die bei der Planänderung initiiert wird, wird normalerweise in weniger als 2 Minuten abgeschlossen
- Wenn diese sofortige Gebühr aus irgendeinem Grund fehlschlägt, wird das Abonnement automatisch pausiert, bis das Problem behoben ist
On-Demand-Abonnements
On-Demand-Abonnements erlauben es Ihnen, Kunden flexibel zu belasten, nicht nur nach einem festen Zeitplan. Diese Funktion ist für alle Konten verfügbar.
on_demand Feld in Ihren Anfragekörper ein. Dies ermöglicht es Ihnen, eine Zahlungsmethode ohne sofortige Belastung zu autorisieren oder einen benutzerdefinierten Anfangspreis festzulegen.
Um ein On-Demand-Abonnement zu belasten:
Für nachfolgende Gebühren verwenden Sie den POST /subscriptions//charge Endpunkt und geben Sie den Betrag an, den Sie dem Kunden für diese Transaktion berechnen möchten.
Für eine vollständige, schrittweise Anleitung — einschließlich Anfrage-/Antwortbeispielen, sicheren Wiederholungsrichtlinien und Webhook-Bearbeitung — siehe den On-Demand-Abonnements-Leitfaden.
Verwandte API-Referenz
Create Subscription
API-Referenz zur Erstellung von Abonnementprodukten und Verwaltung des Abonnement-Lebenszyklus
Change Subscription Plan
API-Referenz zum Upgrade, Downgrade oder Wechsel von Abonnementplänen mit Optionen für anteilige Abrechnung
Update Payment Method
API-Referenz zur Aktualisierung von Zahlungsmethoden und Reaktivierung pausierter Abonnements
Patch Subscription
API-Referenz zur Aktualisierung von Abonnementdetails und Konfiguration