Förutsättningar
För att integrera Dodo Payments API behöver du:- Ett Dodo Payments handelskonto
- API-uppgifter (API-nyckel och webhook hemlig nyckel) från instrumentpanelen
API-integration
Utcheckningssessioner
Använd Checkout Sessions för att sälja prenumerationsprodukter via en säker, värdhanterad kassa. Skicka din prenumerationsprodukt iproduct_cart och omdirigera kunderna till den returnerade checkout_url.
- Node.js SDK
- Python SDK
- REST API
API-svar
Följande är ett exempel på svaret:checkout_url.
Webhooks
När du integrerar prenumerationer kommer du att få webhooks för att spåra prenumerationslivscykeln. Dessa webhooks hjälper dig att hantera prenumerationsstatusar och betalningsscenarier effektivt. För att ställa in din webhook-slutpunkt, följ vår Detaljerade integrationsguide.Prenumerationseventtyper
Följande webhook-händelser spårar ändringar i prenumerationsstatus:subscription.active- Prenumerationen aktiveras framgångsrikt.subscription.updated- Prenumerationsobjektet uppdaterades (utlöses vid alla fältändringar).subscription.on_hold- Prenumerationen sätts på paus på grund av misslyckad förnyelse.subscription.failed- Skapandet av prenumerationen misslyckades under skapandet av mandatet.subscription.renewed- Prenumerationen förnyas för nästa faktureringsperiod.
Betalningsscenarier
Framgångsrik betalningsflöde När en betalning lyckas kommer du att få följande webhooks:subscription.active- Anger prenumerationsaktiveringpayment.succeeded- Bekräftar den initiala betalningen:- För omedelbar fakturering (0 provdagar): Förvänta inom 2–10 minuter
- För provdagar: när de avslutas
subscription.renewed- Indikerar att betalning dragits och förnyelse sker för nästa cykel. (I princip, när betalning dras för prenumerationsprodukter får dusubscription.renewedwebhook tillsammans medpayment.succeeded)
- Prenumerationsfel
subscription.failed- Skapandet av prenumerationen misslyckades eftersom mandatet inte kunde skapas.payment.failed- Indikerar misslyckad betalning.
- Prenumerationen pausas
subscription.on_hold- Prenumerationen sätts på paus på grund av misslyckad förnyelsebetalning eller misslyckad avgift vid planändring.- När en prenumeration pausas förnyas den inte automatiskt förrän betalningsmetoden uppdateras.
Bästa praxis: För att förenkla implementeringen rekommenderar vi att du främst spårar prenumerationsevenemang för att hantera prenumerationslivscykeln.
Hantera prenumeration på paus
När en prenumeration går in ion_hold-tillståndet måste du uppdatera betalningsmetoden för att återaktivera den. Detta avsnitt förklarar när prenumerationer pausas och hur du hanterar dem.
När prenumerationer sätts på paus
En prenumeration sätts på paus när:- Förnyelsebetalning misslyckas: Den automatiska förnyelseavgiften misslyckas på grund av otillräckliga medel, utgången kort eller bankavslag
- Avgift vid planändring misslyckas: En omedelbar avgift under planuppgradering/nedgradering misslyckas
- Behörighet för betalningsmetod misslyckas: Betalningsmetoden kan inte auktoriseras för återkommande avgifter
Återaktivera prenumerationer från paus
För att återaktivera en prenumeration frånon_hold-tillståndet, använd Update Payment Method API. Detta gör automatiskt:
- Skapar en avgift för återstående skuld
- Skapar en faktura för avgiften
- Bearbetar betalningen med den nya betalningsmetoden
- Återaktiverar prenumerationen till
active-tillstånd efter lyckad betalning
Handle subscription.on_hold webhook
När du mottar en
subscription.on_hold-webhook, uppdatera applikationens tillstånd och meddela kunden:Update payment method
När kunden är redo att uppdatera sin betalningsmetod, anropa Update Payment Method API:
Du kan också använda ett befintligt betalningsmetod-ID om kunden har sparade betalningsmetoder:
Exempel på prenumerationseventpayload
| Egenskap | Typ | Obligatorisk | Beskrivning |
|---|---|---|---|
business_id | string | Ja | Det unika identifieraren för företaget |
timestamp | string | Ja | Tidsstämpeln för när händelsen inträffade (inte nödvändigtvis samma som när den levererades) |
type | string | Ja | Typen av händelse. Se Event Types |
data | object | Ja | Huvuddatafältet. Se Data Object |
Ändra prenumerationsplaner
Du kan uppgradera eller nedgradera en prenumerationsplan med hjälp av API-slutpunkten för att ändra plan. Detta gör att du kan modifiera prenumerationens produkt, kvantitet och hantera proration.Change Plan API Reference
För detaljerad information om att ändra prenumerationsplaner, se vår Change Plan API-dokumentation.
Prorationsalternativ
När du ändrar prenumerationsplaner har du två alternativ för att hantera den omedelbara avgiften:1. prorated_immediately
- Beräknar det pro rata-belopp som baseras på den återstående tiden i den nuvarande faktureringscykeln
- Debiterar kunden endast för skillnaden mellan den gamla och den nya planen
- Under en provperiod kommer detta omedelbart att byta användaren till den nya planen och debitera kunden direkt
2. full_immediately
- Debiterar kunden hela prenumerationsbeloppet för den nya planen
- Ignorerar kvarvarande tid eller krediter från den tidigare planen
- Användbart när du vill återställa faktureringscykeln eller debitera hela beloppet oberoende av proration
3. difference_immediately
- Vid uppgradering debiteras kunden omedelbart skillnaden mellan de två planbeloppen.
- Till exempel, om den nuvarande planen är 30 dollars och kunden uppgraderar till 80 dollars, debiteras 50 dollars direkt.
- Vid nedgradering läggs det oanvända beloppet från den aktuella planen till som intern kredit och appliceras automatiskt på framtida prenumerationsförnyelser.
- Till exempel, om den nuvarande planen är 50 dollars och kunden byter till en 20 dollars-plan, krediteras resterande 30 dollars och används för nästa faktureringscykel.
Beteende
- När du anropar detta API initierar Dodo Payments omedelbart en avgift baserat på ditt valda proration-alternativ
- Om planändringen är en nedgradering och du använder
prorated_immediately, beräknas krediter automatiskt och läggs till prenumerationens kreditbalans. Dessa krediter är specifika för den prenumerationen och används endast för att kvitta framtida återkommande betalningar för samma prenumeration - Alternativet
full_immediatelykringgår kreditberäkningar och debiterar hela det nya planbeloppet
Avgiftsbehandling
- Den omedelbara avgiften som initieras vid planändring slutförs vanligtvis inom mindre än 2 minuter
- Om denna omedelbara avgift misslyckas av någon anledning, sätts prenumerationen automatiskt på paus tills problemet är löst
On-Demand Prenumerationer
On-demand-prenumerationer låter dig debitera kunder flexibelt, inte bara enligt ett fast schema. Denna funktion är tillgänglig för alla konton.
on_demand i din förfrågningskropp. Detta låter dig auktorisera en betalningsmetod utan omedelbar debitering eller ange ett anpassat startpris.
För att ta betalt för en on-demand prenumeration:
För efterföljande avgifter, använd POST /subscriptions/charge slutpunkten och specificera beloppet som ska debiteras kunden för den transaktionen.
För en komplett, steg-för-steg-guide—including request/response-exempel, säkra retry-policyer och webhook-hantering—se On-Demand Subscriptions Guide.