Skip to main content
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.
Pick the most accurate tax category to ensure correct tax collection per region.

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.
Changing pricing on an active product affects new purchases. Existing subscriptions follow your plan‑change and proration settings.
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.
Use metadata to store identifiers from your system (e.g., accountId) so you can reconcile events and invoices later.

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 (use 0 to disable). You can override this when creating subscriptions:
The trial_period_days value must be between 0 and 10,000 days.

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.
Formulär för prenumerationsprissättning med provperiodens längd och ett valfritt provbelopp för en betald provperiod
Betalda provperioder konfigureras på produktens pris, inte per prenumeration eller checkout-session:
Betalda provperioder går också genom checkout. Provbeloppet beskattas, visas i beräkningarna för checkout-sessionen och i betalningslänkens prissättning, och Adaptive Currency-påslaget tillämpas per valuta. Förhandsgransknings-endpointen returnerar 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.
Växlingsknapp för Prevent Trial Misuse på fliken Subscriptions i inställningarna
Aktivera funktionen från fliken Subscriptions i Settings. När den är aktiverad gäller följande:
  • Kunder matchas med normaliserad e-postadress, där plusalias tas bort, så user+trial@example.com och user@example.com rä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

Det finns för närvarande inget direkt fält för att identifiera provperiodens status. Följande är en tillfällig lösning som kräver att betalningar hämtas, vilket är ineffektivt. Vi arbetar på en effektivare lösning.
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:
Denna kontroll av ett nollbelopp fungerar endast för kostnadsfria provperioder. För en betald provperiod motsvarar den första betalningen provbeloppet, inte 0. Jämför i stället den första betalningen med prenumerationens trial_amount, eller kontrollera om next_billing_date fortfarande ligger inom provperioden.

Uppdatera provperioden

Förläng provperioden genom att uppdatera next_billing_date:
Du kan inte ange next_billing_date till en tidpunkt i det förflutna. Datumet måste ligga i framtiden.

Ä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.
Du kan ändra prenumerationsplaner och uppdatera nästa faktureringsdatum direkt från Dodo Payments-dashboarden. Det ger ett snabbt sätt att justera prenumerationer för kundsupportärenden, kampanjuppgraderingar eller planmigreringar utan att göra API-anrop.
Aktivera planändringar via självbetjäning: Vill du att kunder ska kunna uppgradera eller nedgradera sina egna prenumerationer via Customer Portal? Lägg till dina prenumerationsprodukter i en Product Collection och aktivera “Allow Subscription Updates” i Subscription Settings.

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.
När en kund nedgraderar med 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.
Scenario: En kund med Basic (30/ma˚nad)uppgraderartillPro(30/månad) uppgraderar till Pro (80/månad) dag 16 i en 30-dagarscykel med prorated_immediately.
Nästa förnyelse sker 15 februari (16 januari + 30 dagar): $80.00/månad.
För mer detaljerade beräkningsexempel och specialfall, se vår fullständiga guide för uppgraderingar och nedgraderingar.
Scenario: En kund med Pro (80/ma˚nad)nedgraderartillStarter(80/månad) nedgraderar till Starter (20/månad) med difference_immediately.
Krediteringen på $60 tillämpas automatiskt på framtida förnyelser:
  • Förnyelse 1: 2020 − 20 (kreditering) = **0.00(0.00** (40 återstår i kreditering)
  • Förnyelse 2: 2020 − 20 (kreditering) = **0.00(0.00** (20 återstår i kreditering)
  • Förnyelse 3: 2020 − 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.
on_hold och failed blandas ofta ihop. on_hold är ett återställningsbart tillstånd för en redan aktiv prenumeration vars förnyelse misslyckades. failed är ett slutgiltigt tillstånd som endast inträffar när det ursprungliga skapandet av prenumerationen misslyckas — det kan inte återaktiveras.

Tillståndsmaskin

Tillståndet On Hold

En prenumeration övergår till tillståndet on_hold när:
  • En förnyelsebetalning misslyckas (otillräckliga medel, utgånget kort etc.)
  • En debitering vid planändring misslyckas
  • Auktorisering av betalningsmetoden misslyckas
När en prenumeration befinner sig i tillståndet on_hold förnyas den inte automatiskt. Du måste uppdatera betalningsmetoden för att återaktivera prenumerationen.

Återaktivera från On Hold

För att återaktivera en prenumeration från tillståndet on_hold uppdaterar du betalningsmetoden. Detta gör automatiskt följande:
  1. Skapar en debitering för återstående skulder
  2. Skapar en faktura
  3. Behandlar betalningen med den nya betalningsmetoden
  4. Återaktiverar prenumerationen till tillståndet active nä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

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.
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.
Ändra den aktiva produkten och antalet med prorateringskontroller.

API Reference

Granska alternativen för planändring.
För on-demand-prenumerationer debiterar du specifika belopp vid behov.

API Reference

Debiterar en on-demand-prenumeration.
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.
Hämta registrerad användning för modeller med mätbaserad eller hybridprissättning.

API Reference

Se API:t för användningshistorik.
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 nytt subscription_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.
Mandatgränsen kan konfigureras per merchant eller per begäran via 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.
Hantering av specialfall: Om du ger kunder förmåner, krediter eller tillgång till prenumerationsanvändning omedelbart när debiteringen initieras måste du hantera detta 48-timmarsfönster på lämpligt sätt i din applikation. Överväg att:
  • 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
Övervaka prenumerationens webhook-händelser för att följa ändringar i betalningsstatus och hantera specialfall där mandat makuleras under 48-timmarsfönstret.

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.
Senast ändrad 31 juli 2026