Subscriptions let you sell ongoing access with automated renewals. Use flexible billing cycles, free trials, plan changes, and add‑ons to tailor pricing for each customer.
Upgrade & Downgrade
Control plan changes with proration and quantity updates.
On‑Demand Subscriptions
Authorize a mandate now and charge later with custom amounts.
Customer Portal
Let customers manage plans, billing, and cancellations.
Subscription Webhooks
React to lifecycle events like created, renewed, and canceled.
What Are Subscriptions?
Subscriptions are recurring products customers purchase on a schedule. They’re ideal for:- SaaS licenses: Apps, APIs, or platform access
- Memberships: Communities, programs, or clubs
- Digital content: Courses, media, or premium content
- Support plans: SLAs, success packages, or maintenance
Key Benefits
- Predictable revenue: Recurring billing with automated renewals
- Flexible cycles: Monthly, annual, custom intervals, and trials
- Plan agility: Proration for upgrades and downgrades
- Add‑ons and seats: Attach optional, quantifiable upgrades
- Seamless checkout: Hosted checkout and customer portal
- Developer-first: Clear APIs for creation, changes, and usage tracking
Creating Subscriptions
Create subscription products in your Dodo Payments dashboard, then sell them through checkout or your API. Separating products from active subscriptions lets you version pricing, attach add‑ons, and track performance independently.Subscription product creation
Configure the fields in the dashboard to define how your subscription sells, renews, and bills. The sections below map directly to what you see in the creation form.Product details
- Product Name (required): The display name shown in checkout, customer portal, and invoices.
- Product Description (required): A clear value statement that appears in checkout and invoices.
- Product Image (required): PNG/JPG/WebP up to 3 MB. Used on checkout and invoices.
- Brand: Associate the product with a specific brand for theming and emails.
- Tax Category (required): Choose the category (for example, SaaS) to determine tax rules.
Pricing
- Pricing Type: Välj Subscription (den här guiden). Alternativen är Single Payment och Usage Based Billing.
- Price (obligatoriskt): Baspris för återkommande betalningar med valuta. Priset måste vara minst $1 (eller motsvarande i den valda valutan). Belopp under detta minimum stöds inte och prenumerationen kommer inte att fungera.
- Discount Applicable (%): Valfri procentuell rabatt som tillämpas på baspriset och visas i checkout och fakturor.
- Repeat payment every (obligatoriskt): Intervall för förnyelser, till exempel varje månad. Välj periodicitet (månader eller år) och antal.
- Subscription Period (obligatoriskt): Den totala period som prenumerationen förblir aktiv (till exempel 10 år). När perioden löper ut stoppas förnyelserna om den inte förlängs.
- Trial Period Days (obligatoriskt): Ange provperiodens längd i dagar. Använd 0 för att inaktivera provperioder. Den första debiteringen sker automatiskt när provperioden löper ut.
- Trial Amount: Valfri förskottsdebitering för en betald provperiod. Lämna fältet tomt för en kostnadsfri provperiod. Se Betalda provperioder.
- Select add‑on: Lägg till upp till 10 tillägg som kunder kan köpa tillsammans med basplanen.
Add‑ons are ideal for quantifiable extras such as seats or storage. You can control allowed quantities and proration behavior when customers change them.
Advanced settings
- Tax Inclusive Pricing: Display prices inclusive of applicable taxes. Final tax calculation still varies by customer location.
- Generate license keys: Issue a unique key to each customer after purchase. See the License Keys guide.
- Digital Product Delivery: Deliver files or content automatically after purchase. Learn more in Digital Product Delivery.
- Metadata: Attach custom key–value pairs for internal tagging or client integrations. See Metadata.
Subscription Trials
Provperioder låter kunder utvärdera en prenumeration innan de betalar hela det återkommande priset. En provperiod kan vara kostnadsfri, vilket innebär att inget debiteras förrän provperioden löper ut, eller betald, vilket innebär att ett reducerat belopp debiteras i förskott. I båda fallen börjar fullprisdebiteringen vid den första förnyelsen efter att provperioden löpt ut.Configuring Trials
Set Trial Period Days in the product pricing section (use0 to disable). You can override this when creating subscriptions:
Betalda provperioder
Provperioder behöver inte vara kostnadsfria. Ange ett Trial Amount på den återkommande prisnivån för en prenumerationsprodukt för att debitera en reducerad förskottsavgift under provperioden. Därefter tar det fullständiga återkommande priset över vid den första förnyelsen.
trial_amount och trial_period_days så att du kan visa beloppet som ska betalas idag innan prenumerationen skapas.
Kostnadsfria provperioder fungerar som tidigare. Om du lämnar Trial Amount tomt behålls det befintliga beteendet, där den första debiteringen är
0 och hela priset debiteras när provperioden löper ut.Förhindra missbruk av provperioder
Prevent Trial Misuse hindrar kunder från att upprepade gånger göra anspråk på provperioder för samma företag. När funktionen är aktiverad omvandlas en kund som redan har löst in en provperiod automatiskt till ett betalt köp utan provperiod, i stället för att få en ny provperiod.
- Kunder matchas med normaliserad e-postadress, där plusalias tas bort, så
user+trial@example.comochuser@example.comräknas som samma person. - Inlösen registreras när provperioden aktiveras, så en kund som säger upp samma dag har ändå förbrukat sin provperiod.
- Befintliga kunder fylls i retroaktivt från sina historiska provperioder via e-post, så tidigare provperiodsanvändare identifieras omedelbart.
Inställningen är inaktiverad som standard. Se Subscription Settings för en fullständig lista över prenumerationskontroller på företagsnivå.
Identifiera provperiodens status
För att avgöra om en prenumeration med kostnadsfri provperiod befinner sig i provperioden hämtar du listan över prenumerationens betalningar. Om det finns exakt en betalning med beloppet 0 befinner sig prenumerationen i provperioden:Uppdatera provperioden
Förläng provperioden genom att uppdateranext_billing_date:
Ändringar av prenumerationsplaner
Med planändringar kan du uppgradera eller nedgradera prenumerationer, justera antal eller migrera till andra produkter. Beroende på vilket prorateringsläge du väljer kan en ändring utlösa en omedelbar debitering, skapa en kreditering eller inte medföra någon faktureringsjustering.Product Collections
Gruppera relaterade produkter i samlingar för att aktivera smidiga uppgraderings- och nedgraderingsflöden i Customer Portal.
Prorateringslägen
Välj hur kunder debiteras när de ändrar plan:Snabb jämförelse av de fyra prorateringslägena:
prorated_immediately
Debiterar ett proraterat belopp baserat på återstående tid i den aktuella faktureringscykeln. Passar bäst för rättvis debitering som tar hänsyn till oanvänd tid.
difference_immediately
Debiterar prisskillnaden omedelbart (vid uppgradering) eller lägger till en kreditering för framtida förnyelser (vid nedgradering). Passar bäst för enkla uppgraderings- och nedgraderingsscenarier.
Krediteringar från nedgraderingar med
difference_immediately är kopplade till prenumerationen och tillämpas automatiskt på framtida förnyelser. De skiljer sig från rättigheter i Credit-Based Billing.difference_immediately blir det oanvända värdet en prenumerationsbunden kreditering som automatiskt kvittas mot framtida förnyelser:
full_immediately
Debiterar hela beloppet för den nya planen omedelbart och bortser från återstående tid. Passar bäst för att återställa faktureringscykler.
do_not_bill
Byter till den nya planen utan någon faktureringsjustering. Inga prorateringsdebiteringar och inga krediteringar — kunden går helt enkelt över till den nya planen. Passar bäst för byten som goodwill, kostnadsfria planbyten eller scenarier där du vill absorbera kostnadsskillnaden.
Example: Prorated upgrade calculation
Example: Prorated upgrade calculation
Scenario: En kund med Basic (80/månad) dag 16 i en 30-dagarscykel med Nästa förnyelse sker 15 februari (16 januari + 30 dagar): $80.00/månad.
prorated_immediately.Example: Downgrade credit calculation
Example: Downgrade credit calculation
Scenario: En kund med Pro (20/månad) med Krediteringen på $60 tillämpas automatiskt på framtida förnyelser:
difference_immediately.- Förnyelse 1: 20 (kreditering) = **40 återstår i kreditering)
- Förnyelse 2: 20 (kreditering) = **20 återstår i kreditering)
- Förnyelse 3: 20 (kreditering) = $0.00 (krediteringen är förbrukad)
- Förnyelse 4: $20.00 (fullpris)
Läs mer om hur krediteringar hanteras i guiden för uppgraderingar och nedgraderingar.
Ändra planer med tillägg
Ändra tillägg när du byter plan. Tillägg inkluderas i prorateringsberäkningarna:Planändringar utlöser omedelbara debiteringar. Misslyckade debiteringar kan flytta prenumerationen till statusen
on_hold. Följ ändringar via webhook-händelserna subscription.plan_changed.Förhandsgranska planändringar
Förhandsgranska den exakta debiteringen och den resulterande prenumerationen innan du genomför en planändring:Preview Change Plan API
Förhandsgranska planändringar innan du genomför dem.
Prenumerationstillstånd
En prenumeration går igenom en definierad uppsättning statusar under sin livstid. Den här tabellen är referensen för varje status, vad som orsakar den och hur (eller om) du kan återställa den.Tillståndsmaskin
Tillståndet On Hold
En prenumeration övergår till tillståndeton_hold när:
- En förnyelsebetalning misslyckas (otillräckliga medel, utgånget kort etc.)
- En debitering vid planändring misslyckas
- Auktorisering av betalningsmetoden misslyckas
Återaktivera från On Hold
För att återaktivera en prenumeration från tillståndeton_hold uppdaterar du betalningsmetoden. Detta gör automatiskt följande:
- Skapar en debitering för återstående skulder
- Skapar en faktura
- Behandlar betalningen med den nya betalningsmetoden
- Återaktiverar prenumerationen till tillståndet
activenär betalningen lyckats
När betalningsmetoden för en prenumeration i tillståndet
on_hold har uppdaterats får du webhook-händelserna payment.succeeded följt av subscription.active.Webhook-händelser efter övergång
Varje övergång genererar en webhook så att du kan styra logiken för åtkomsträttigheter utan polling:Subscription Webhook Payloads
Visa det fullständiga payload-schemat för prenumerationens livscykelhändelser.
API-hantering
Create subscriptions
Create subscriptions
Använd
POST /subscriptions för att programmatiskt skapa prenumerationer från produkter, med valfria provperioder och tillägg.API Reference
Visa API:t för att skapa prenumerationer.
Update subscriptions
Update subscriptions
Använd
PATCH /subscriptions/{id} för att uppdatera antal, säga upp vid nästa faktureringsdatum eller ändra metadata.API Reference
Läs mer om hur du uppdaterar prenumerationsuppgifter.
Change plans (proration)
Change plans (proration)
Ändra den aktiva produkten och antalet med prorateringskontroller.
API Reference
Granska alternativen för planändring.
On‑demand charges
On‑demand charges
För on-demand-prenumerationer debiterar du specifika belopp vid behov.
API Reference
Debiterar en on-demand-prenumeration.
List and retrieve
List and retrieve
Använd
GET /subscriptions för att lista alla prenumerationer och GET /subscriptions/{id} för att hämta en enskild prenumeration.API Reference
Bläddra bland API:er för listning och hämtning.
Usage history
Usage history
Hämta registrerad användning för modeller med mätbaserad eller hybridprissättning.
API Reference
Se API:t för användningshistorik.
Update payment method
Update payment method
Uppdatera betalningsmetoden för en prenumeration. För aktiva prenumerationer uppdaterar detta betalningsmetoden för framtida förnyelser. För prenumerationer i tillståndet
on_hold återaktiverar detta prenumerationen genom att skapa en debitering för återstående skulder.När du genererar en ny länk för betalningsmetod (begärandetypen New) kan du skicka med allowed_payment_method_types för att begränsa vilka betalningsmetoder kunden ser på sidan. Kunder ser aldrig en metod som inte finns i listan, men att inkludera en metod garanterar inte att den visas (tillgängligheten beror fortfarande på faktorer som kundens plats och dina företagsinställningar).API Reference
Läs mer om hur du uppdaterar betalningsmetoder och återaktiverar prenumerationer.
Vanliga användningsområden
- SaaS och API:er: Nivåbaserad åtkomst med tillägg för platser eller användning
- Innehåll och medier: Månadsåtkomst med introducerande provperioder
- B2B-supportplaner: Årsavtal med premiumtillägg för support
- Verktyg och plugins: Licensnycklar och versionshanterade utgåvor
Integrationsexempel
Checkout-sessioner (prenumerationer)
När du skapar checkout-sessioner inkluderar du din prenumerationsprodukt och valfria tillägg:Planändringar med proratering
Uppgradera eller nedgradera en prenumeration och styr prorateringsbeteendet:Säg upp vid nästa faktureringsdatum
Schemalägg en uppsägning som träder i kraft i slutet av den aktuella faktureringsperioden:Förläng prenumerationsperioden
Förläng hur länge en prenumeration löper genom att skicka ett nyttsubscription_period_count och subscription_period_interval till PATCH /subscriptions/{id}. Prenumerationens utgångsdatum beräknas om utifrån det nya antalet och intervallet — till exempel för att ge en kund extra tid på sin nuvarande plan:
En prenumerationsperiod kan endast förlängas, aldrig förkortas.
On-demand-prenumerationer
Skapa en on-demand-prenumeration och debitera senare vid behov:Uppdatera betalningsmetod för aktiv prenumeration
Uppdatera betalningsmetoden för en aktiv prenumeration:Återaktivera prenumeration från on_hold
Återaktivera en prenumeration som pausades på grund av en misslyckad betalning:Prenumerationer med RBI-kompatibla mandat
UPI- och indiska kortprenumerationer omfattas av RBI-regler (Reserve Bank of India) med särskilda mandatkrav:Mandatgränser
Mandattypen och beloppet beror på prenumerationens återkommande debitering:- Debiteringar under mandatgränsen (standard ₹15,000): Vi skapar ett on-demand-mandat för gränsbeloppet. Prenumerationsbeloppet debiteras periodiskt enligt prenumerationens frekvens, upp till mandatgränsen.
- Debiteringar på eller över mandatgränsen: Vi skapar ett prenumerationsmandat (eller on-demand-mandat) för exakt prenumerationsbelopp.
mandate_min_amount_inr_paise (INR paise). Beloppet som registreras hos banken är max(mandate_floor, billing_amount) — därför blir gränsen i praktiken kundens högsta godkända belopp när debiteringen är lägre.
För detaljerad information om RBI-kompatibla mandat och den konfigurerbara mandatgränsen för indiska betalningsmetoder, se sidan India Payment Methods.
Överväganden vid upp- och nedgradering
Viktigt: Ta hänsyn till mandatgränserna när du uppgraderar eller nedgraderar prenumerationer:- Om en uppgradering eller nedgradering leder till ett debiteringsbelopp som överstiger Rs 15,000 och överskrider den befintliga on-demand-betalningsgränsen kan transaktionsdebiteringen misslyckas.
- I sådana fall kan kunden behöva uppdatera sin betalningsmetod eller ändra prenumerationen igen för att skapa ett nytt mandat med rätt gräns.
Auktorisering för debiteringar med högt värde
För prenumerationsdebiteringar på Rs 15,000 eller mer:- Kunden uppmanas av sin bank att auktorisera transaktionen.
- Om kunden inte auktoriserar transaktionen misslyckas den och prenumerationen pausas.
48 timmars fördröjning vid behandling
Behandlingstidslinje: Återkommande debiteringar för indiska kort- och UPI-prenumerationer följer ett särskilt behandlingsmönster:- Debiteringar initieras på det schemalagda datumet enligt prenumerationens frekvens.
- Den faktiska dragningen från kundens konto sker först 48 timmar efter att betalningen initierats.
- Detta 48-timmarsfönster kan förlängas med upp till ytterligare 2–3 timmar, beroende på svar från bankens API.
Fönster för makulering av mandat
Under det 48 timmar långa behandlingsfönstret:- Kunder kan makulera mandatet via sina bankappar.
- Om en kund makulerar mandatet under denna period förblir prenumerationen aktiv (ett specialfall som endast gäller indiska kort- och UPI AutoPay-prenumerationer).
- Den faktiska dragningen kan dock misslyckas, och i så fall försätter vi prenumerationen i tillståndet on hold.
- Fördröja aktiveringen av förmåner tills betalningen har bekräftats
- Införa respitperioder eller tillfällig åtkomst
- Övervaka prenumerationsstatus för makuleringar av mandat
- Hantera pausade prenumerationstillstånd i applikationslogiken
Bästa praxis
- Börja med tydliga nivåer: 2–3 planer med uppenbara skillnader
- Kommunicera prissättningen: Visa totalsummor, proratering och nästa förnyelse
- Använd provperioder genomtänkt: Konvertera med onboarding, inte bara med tid
- Utnyttja tillägg: Håll basplanerna enkla och sälj extra funktioner separat
- Testa ändringar: Validera planändringar och proratering i testläge
Prenumerationer är en flexibel grund för återkommande intäkter. Börja enkelt, testa noggrant och iterera utifrån mätvärden för användning, kundbortfall och expansion.