Voraussetzungen
Um die Dodo Payments API zu integrieren, benötigen Sie:- Ein Dodo Payments Händlerkonto
- API-Anmeldeinformationen (API-Schlüssel und Webhook-Geheimschlüssel) aus dem Dashboard
API-Integration
Checkout-Sitzungen
Verwende Checkout Sessions, um Abonnementprodukte über einen sicheren, gehosteten Checkout zu verkaufen. Übergebe dein Abonnementprodukt inproduct_cart und leite Kunden zu dem zurückgegebenen checkout_url weiter.
- Node.js SDK
- Python SDK
- REST API
API-Antwort
Die folgende ist ein Beispiel für die Antwort:checkout_url weiter.
Webhooks
Bei der Integration von Abonnements erhalten Sie Webhooks, um den Lebenszyklus des Abonnements zu verfolgen. Diese Webhooks helfen Ihnen, Abonnementzustände 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- Das Abonnement wird erfolgreich aktiviert.subscription.updated- Das Abonnementobjekt wurde aktualisiert (tritt bei jeder Feldänderung auf).subscription.on_hold- Das Abonnement wird aufgrund eines fehlgeschlagenen Verlängerungsversuchs pausiert.subscription.failed- Die Erstellung des Abonnements schlug während der Mandatserstellung fehl.subscription.renewed- Das Abonnement wird für den nächsten Abrechnungszeitraum verlängert.
Zahlungsszenarien
Erfolgreicher Zahlungsfluss 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 Tage Testzeitraum): Erwartet innerhalb von 2–10 Minuten
- Bei Testzeitraum: Sobald dieser endet
subscription.renewed- Zeigt die Abbuchung und Verlängerung für den nächsten Zyklus an. (Grundsätzlich erhältst du jedes Mal, wenn eine Zahlung für Abonnementprodukte abgebucht wird,subscription.renewedWebhook zusammen mitpayment.succeeded)
- Abonnementfehler
subscription.failed- Die Erstellung des Abonnements schlug fehl, weil das Mandat nicht erstellt werden konnte.payment.failed- Zeigt eine fehlgeschlagene Zahlung an.
- Abonnement pausiert
subscription.on_hold- Das Abonnement wird aufgrund einer fehlgeschlagenen Verlängerungszahlung oder einer fehlgeschlagenen Planänderungsabbuchung pausiert.- Wenn ein Abonnement pausiert ist, erneuert es sich nicht automatisch, bis die Zahlungsmethode aktualisiert wurde.
Best Practice: Um die Implementierung zu vereinfachen, empfehlen wir, hauptsächlich Abonnementereignisse zur Verwaltung des Abonnementlebenszyklus zu verfolgen.
Umgang mit Abonnements auf Hold
Wenn ein Abonnement den Zustandon_hold erreicht, musst du die Zahlungsmethode aktualisieren, um es wieder zu aktivieren. Dieser Abschnitt erklärt, wann Abonnements pausieren und wie du damit umgehst.
Wann Abonnements auf Hold gehen
Ein Abonnement wird auf Hold gesetzt, wenn:- Erneuerungszahlung schlägt fehl: Die automatische Erneuerungsgebühr schlägt aufgrund unzureichender Mittel, abgelaufener Karte oder Bankablehnung fehl
- Planänderungsgebühr schlägt fehl: Eine sofortige Gebühr während des Upgrades/Downgrades des Plans schlägt fehl
- Zahlungsmethodenautorisierung schlägt fehl: Die Zahlungsmethode kann für wiederkehrende Gebühren nicht autorisiert werden
Reaktivierung von Abonnements aus dem Hold-Zustand
Um ein Abonnement aus dem Zustandon_hold wieder zu aktivieren, verwende die Update Payment Method API. Diese führt automatisch Folgendes aus:
- Erstellt eine Belastung für ausstehende Beträge
- Generiert eine Rechnung für die Belastung
- Verarbeitet die Zahlung mit der neuen Zahlungsmethode
- Reaktiviert das Abonnement in den Zustand
activebei erfolgreicher Zahlung
Handle subscription.on_hold webhook
Wenn du einen
subscription.on_hold Webhook erhältst, aktualisiere den Anwendungszustand und benachrichtige den Kunden:Update payment method
Wenn der Kunde bereit ist, seine Zahlungsmethode zu aktualisieren, rufe die Update Payment Method API auf:
Du kannst auch eine vorhandene Zahlungsarten-ID verwenden, wenn der Kunde Zahlungsarten gespeichert hat:
Beispiel für das Abonnementereignis-Payload
| Eigenschaft | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
business_id | string | Ja | Die eindeutige Kennung des Unternehmens |
timestamp | string | Ja | Der Zeitstempel, wann das Ereignis stattfand (nicht unbedingt identisch mit dem Lieferzeitpunkt) |
type | string | Ja | Die Art des Ereignisses. Siehe Event Types |
data | object | Ja | Die Hauptdaten. Siehe Data Object |
Ändern von Abonnementplänen
Sie können einen Abonnementplan über den API-Endpunkt zum Ändern des Plans upgraden oder downgraden. Dies ermöglicht es Ihnen, das Produkt des Abonnements, die Menge zu ändern und die Proratisierung zu handhaben.Change Plan API Reference
Für detaillierte Informationen zur Änderung von Abonnementplänen konsultiere bitte unsere Change Plan API-Dokumentation.
Proratisierungsoptionen
Beim Ändern 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 Abrechnungszeitraum
- Belastet den Kunden nur für die Differenz zwischen dem alten und neuen Plan
- Während einer Testphase wird der Nutzer sofort auf den neuen Plan umgestellt, und der Kunde wird sofort belastet
2. full_immediately
- Belastet den Kunden mit dem vollen Abonnementbetrag für den neuen Plan
- Ignoriert verbleibende Zeit oder Guthaben aus dem vorherigen Plan
- Nützlich, wenn du den Abrechnungszeitraum zurücksetzen oder den vollen Betrag unabhängig von der Pro-Rata-Berechnung berechnen möchtest
3. difference_immediately
- Beim Upgrade wird der Kunde sofort mit der Differenz zwischen den beiden Planbeträgen belastet.
- Wenn der aktuelle Plan beispielsweise 30 Dollar kostet und der Kunde auf einen 80-Dollar-Plan upgradet, werden ihm sofort 50 Dollar belastet.
- Beim Downgrade wird der ungenutzte Betrag aus dem aktuellen Plan als internes Guthaben hinzugefügt und automatisch bei zukünftigen Abonnementverlängerungen angerechnet.
- Wenn der aktuelle Plan zum Beispiel 50 Dollar kostet und der Kunde auf einen 20-Dollar-Plan wechselt, werden die verbleibenden 30 Dollar gutgeschrieben und für den nächsten Abrechnungszeitraum verwendet.
Verhalten
- Wenn du diese API aufrufst, initiiert Dodo Payments sofort eine Belastung basierend auf deiner ausgewählten Pro-rata-Option
- Wenn die Planänderung ein Downgrade ist und du
prorated_immediatelyverwendest, werden die Guthaben automatisch berechnet und dem Guthabenkonto 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 Option
full_immediatelyumgeht die Guthabenberechnung und belastet den gesamten neuen Planbetrag
Gebührenverarbeitung
- Die sofortige Gebühr, die bei der Planänderung initiiert wird, wird normalerweise in weniger als 2 Minuten verarbeitet
- Wenn diese sofortige Gebühr aus irgendeinem Grund fehlschlägt, wird das Abonnement automatisch auf Hold gesetzt, bis das Problem behoben ist
On-Demand-Abonnements
On-Demand-Abonnements ermöglichen es dir, Kunden flexibel zu belasten und nicht nur nach einem festen Zeitplan. Dieses Feature ist für alle Konten verfügbar.
on_demand in deinem Request-Body hinzu. Dadurch kannst du eine Zahlungsmethode autorisieren, ohne sofort zu belasten, oder einen benutzerdefinierten Einstiegspreis festlegen.
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 der Kunde für diese Transaktion belastet werden soll.
Für einen vollständigen, schrittweisen Leitfaden—including Request/Response-Beispiele, sichere Retry-Strategien und Webhook-Handling—siehe den On-Demand Subscriptions Guide.