Skip to main content

Quick Start Guide

Get your first checkout session running in under 5 minutes

API Reference & Live Testing

Explore the full API documentation and interactively test Checkout Session requests and responses.

Preview Checkout

Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass confirm=true in your request, the session will only be valid for 15 minutes.
Engångslänkar: checkout_url som returneras av API:et kan inte återanvändas och upphör att gälla inom 24 timmar (eller 15 minuter när confirm=true). Den är avsedd för att en enskild kund ska slutföra en betalning. Generera en ny checkout-session för varje kund och varje betalningsförsök i stället för att dela eller återanvända en länk.

Förutsättningar

1

Dodo Payments Account

Du behöver ett aktivt Merchant-konto hos Dodo Payments med API-åtkomst.
2

API Credentials

Generera dina API-autentiseringsuppgifter från Dodo Payments-dashboarden:
3

Products Setup

Skapa dina produkter i Dodo Payments-dashboarden innan du implementerar checkout-sessioner.

Skapa din första checkout-session

API-svar

Alla metoder ovan returnerar samma svarsstruktur:
Endast session_id garanteras finnas med. Två fall returnerar ytterligare eller färre fält:
  • payment_method_id angavs — debiteringen behandlas omedelbart och checkout_url är null. Använd i stället den returnerade payment_id.
  • confirm: true skapade betalningen när sessionen skapades — svaret innehåller även payment_id, client_secret och publishable_key för användning med Dodo Payments checkout SDK.
Den genererade checkout_url kan endast användas en gång och upphör att gälla inom 24 timmar. Cachelagra eller återanvänd den inte mellan kunder eller betalningsförsök — skapa en ny checkout-session när du behöver en ny länk.
1

Get the checkout URL

Hämta checkout_url från API-svaret.
2

Redirect your customer

Skicka kunden till checkout-URL:en för att slutföra köpet.
Alternativa integrationsalternativ: I stället för att omdirigera kan du bädda in checkout direkt på sidan med Overlay Checkout (modal överlagring) eller Inline Checkout (helt inbäddad). I en inbyggd mobilapp skickar du samma URL till Mobile Checkout SDKs för Android, iOS, React Native eller Flutter. Alla dessa använder samma checkout-session-URL.
3

Handle the return

Efter betalningen omdirigeras kunderna till din return_url med frågeparametrar som bland annat innehåller betalnings-/prenumerations-ID, status, kundens e-postadress och eventuella licensnycklar. Se dokumentationen för parametrarna i return_url för en fullständig lista.

Request Body

Required Fields

Obligatoriska fält som behövs för varje checkout-session

Optional Fields

Ytterligare konfiguration för att anpassa checkout-upplevelsen

Obligatoriska fält

array
obligatorisk
Array med produkter som ska inkluderas i checkout-sessionen. Varje produkt måste ha ett giltigt product_id från din Dodo Payments-dashboard.
Blandad checkout: Du kan kombinera engångsbetalningsprodukter och prenumerationsprodukter i samma checkout-session. Det möjliggör användningsfall som startavgifter tillsammans med prenumerationer, hårdvarupaket med SaaS och mycket mer.
Hitta dina produkt-ID:n: Du hittar produkt-ID:n i din Dodo Payments-dashboard under Products → View Details eller genom att använda List Products API.

Valfria fält

Konfigurera dessa fält för att anpassa checkout-upplevelsen och lägga till affärslogik i ditt betalningsflöde.
object
Kundinformation. Du kan antingen koppla en befintlig kund med deras ID eller skapa en ny kundpost under checkout.
Koppla en befintlig kund till checkout-sessionen med deras ID.
object
Faktureringsadress för korrekt skatteberäkning, förebyggande av bedrägerier och efterlevnad av regelverk.
När confirm anges till true blir alla fält för faktureringsadress obligatoriska för att sessionen ska kunna skapas.
array
Styr vilka betalningsmetoder som är tillgängliga för kunder under checkout. Detta hjälper dig att optimera för specifika marknader eller affärskrav.Vanliga alternativ: credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, ach, multibanco, bancontact_card, eps, ideal, blik, paypal. Detta är inte hela uppsättningen – se API-referensen för Create Checkout Session för alla accepterade värden.
Viktigt: Inkludera alltid credit och debit som reservalternativ för att förhindra checkout-fel när önskade betalningsmetoder inte är tillgängliga.
Exempel:
string
Åsidosätt standardvalet av valuta med en fast faktureringsvaluta. Använder ISO 4217-valutakoder.Valutor som stöds: USD, EUR, GBP, CAD, AUD, INR och flerExempel: "USD" för amerikanska dollar, "EUR" för euro
Detta fält har endast effekt när adaptiv prissättning är aktiverad. Om adaptiv prissättning är inaktiverad används produktens standardvaluta.
boolean
standard:"false"
Visa tidigare sparade betalningsmetoder för återkommande kunder, vilket förbättrar checkout-hastigheten och användarupplevelsen.
string
URL dit kunderna omdirigeras efter att betalningen har slutförts. Dodo Payments lägger till följande frågeparametrar i din URL vid omdirigering:Exempel på omdirigerings-URL:er:
Använd frågeparametrarna license_key och email för att visa licensnycklar eller skicka en bekräftelse direkt på din retursida utan att behöva göra ett extra API-anrop.
string
URL dit kunderna omdirigeras när de klickar på bakåtknappen eller avbryter checkout-sessionen. Om den inte anges visas ingen bakåtknapp.
Ange en cancel_url för att ge kunderna ett tydligt sätt att återvända till din webbplats utan att slutföra köpet. Detta förbättrar checkout-upplevelsen och minskar friktionen.
boolean
standard:"false"
Om true slutförs alla sessionsuppgifter omedelbart. API:t genererar ett fel om obligatoriska uppgifter saknas.
array
Tillämpa en eller flera staplade rabattkoder på checkout-sessionen. Koderna tillämpas i arrayordning (den första koden minskar grundpriset, den andra minskar det redan rabatterade priset och så vidare), med högst 20 koder per session.
Det enskilda fältet discount_code nedan är föråldrat men stöds fortfarande fullt ut — befintliga integrationer fortsätter att fungera utan ändringar. Det kan inte kombineras med discount_codes i samma begäran. Migrera till discount_codes när det passar för att kunna använda stapling.
string
föråldrad
Föråldrat — använd helst discount_codes för nya integrationer. Fältet fungerar fortfarande av bakåtkompatibilitetsskäl men kan inte kombineras med discount_codes i samma begäran.
object
Egna nyckel-värde-par för att lagra ytterligare information om sessionen.
boolean
Åsidosätt handlarens standardbeteende för 3DS för denna session.
boolean
standard:"false"
Aktivera läget för insamling av minimal adress. När det är aktiverat samlar checkout endast in:
  • Land: Alltid obligatoriskt för skattebestämning
  • ZIP-/postnummer: Endast i regioner där det behövs för beräkning av sales tax, VAT eller GST
Detta minskar checkout-friktionen avsevärt genom att onödiga formulärfält tas bort.
Aktivera minimal adress för snabbare slutförande av checkout. Fullständig adressinsamling är fortfarande tillgänglig för företag som behöver fullständiga faktureringsuppgifter.
string
En sparad betalningsmetod som tillhör den kopplade kunden. Kräver confirm: true och en befintlig customer.customer_id. När den anges behandlas debiteringen omedelbart och checkout_url returneras som null — använd i stället den returnerade payment_id.
Om true returneras en förkortad checkout-URL i stället för den fullständiga sessions-URL:en.
string
Produktinsamlings-ID för den samlingsbaserade checkout-processen.
string
Skatte-ID för kunden (till exempel ett VAT-nummer). Kräver billing_address med en country.
string
Valfritt företags- eller juridiskt namn som är kopplat till skatte-ID:t. När det anges tillsammans med en giltig tax_id visas det på fakturan i stället för kundens personliga namn.
integer
Åsidosätt handlarens mandatgolv på nivå för INR (i paise) för INR-e-mandat på indiska kort.
object
Anpassa checkout-gränssnittets utseende och beteende.
object
Konfigurera specifika funktioner och beteenden för checkout-sessionen.
array
Samla in ytterligare information från kunder under checkout med anpassade formulärfält. Du kan definiera upp till 5 anpassade fält per checkout-session. Kundernas svar inkluderas i webhook-payloads och är tillgängliga via API:t.
Kundernas svar på anpassade fält inkluderas i:
  • Webhooks: payment.succeeded, subscription.active och andra relevanta händelsepayloads innehåller arrayen custom_field_responses
  • API-svar: Betalnings- och prenumerationsobjekt innehåller custom_field_responses
object
Ytterligare konfiguration för checkout-sessioner som innehåller prenumerationsprodukter.

Användningsexempel

Här är 10 omfattande exempel som visar olika konfigurationer av checkout-sessioner för olika affärsscenarier:

1. Enkel checkout med en produkt

2. Varukorg med flera produkter

3. Prenumeration med provperiod

4. Förbekräftad checkout

När confirm anges till true skickas kunden direkt till checkout-sidan, förbi alla bekräftelsesteg.

5. Checkout med åsidosättning av valuta

Åsidosättningen billing_currency får endast effekt när adaptiv valuta är aktiverad i kontoinställningarna. Om adaptiv valuta är inaktiverad har denna parameter ingen effekt.

6. Sparade betalningsmetoder för återkommande kunder

7. B2B-checkout med insamling av skatte-ID

8. Checkout med mörkt tema och staplade rabattkoder

9. Regionala betalningsmetoder (UPI för Indien)

Detaljerad information om konfiguration och testning av UPI finns på sidan India Payment Methods.

10. BNPL-checkout (Buy Now Pay Later)

Detaljerad information om konfiguration och testning av BNPL finns på sidan Buy Now Pay Later (BNPL).

11. Använda befintliga betalningsmetoder för omedelbar checkout

Använd en kunds sparade betalningsmetod för att skapa en checkout-session som behandlas omedelbart och hoppa över insamlingen av betalningsmetod:
När payment_method_id används måste confirm anges till true och en befintlig customer_id tillhandahållas. Betalningsmetoden valideras för kompatibilitet med betalningens valuta. Eftersom debiteringen behandlas omedelbart returneras checkout_url som null — använd i stället den returnerade payment_id.
Betalningsmetoden måste tillhöra kunden och vara kompatibel med betalningsvalutan. Detta möjliggör köp med ett klick för återkommande kunder.

12. Korta länkar för renare betalnings-URL:er

Generera förkortade, delningsbara betalningslänkar med anpassade sluggar:
Korta länkar passar perfekt för SMS, e-post eller delning i sociala medier. De är lättare att komma ihåg och skapar större förtroende hos kunderna än långa URL:er.

13. Hoppa över sidan för lyckad betalning med omedelbar omdirigering

Omdirigera kunderna direkt efter att betalningen har slutförts och hoppa över standardsidan för lyckad betalning:
Använd redirect_immediately: true när du har en anpassad lyckad-sida som ger en bättre användarupplevelse än standardsidan för lyckad betalning. Detta är särskilt användbart för mobilappar och inbäddade checkout-flöden.
När redirect_immediately är aktiverat omdirigeras kunderna till din return_url direkt efter att betalningen har slutförts, vilket helt hoppar över standardsidan för lyckad betalning.

14. Tvinga fram ett språk

Tvinga checkout att visas på ett specifikt språk och åsidosätt kundens webbläsarbaserade språkinställning:
Använd force_language när du känner till kundens önskade språk (till exempel från kontoinställningarna) eller när du riktar dig mot specifika regionala marknader.
Språk som stöds: Arabiska (ar), katalanska (ca), kinesiska (zh), nederländska (nl), engelska (en), franska (fr), tyska (de), hebreiska (he), indonesiska (id), italienska (it), japanska (ja), koreanska (ko), malajiska (ms), polska (pl), portugisiska (pt), rumänska (ro), ryska (ru), spanska (es), svenska (sv), thailändska (th), turkiska (tr)

15. Samla in anpassade fält

Samla in ytterligare information från kunder under checkout med anpassade fält:
Svar på anpassade fält inkluderas automatiskt i webhook-payloads (payment.succeeded, subscription.active och så vidare) och kan hämtas via API:t. Använd dem för att berika ditt CRM, utlösa onboarding-flöden eller anpassa kundupplevelsen.
Tillgängliga fälttyper: text, number, email, url, date, dropdown, boolean

Förhandsgranska checkout-sessioner

Innan du skapar en checkout-session kan du förhandsgranska prisuppdelningen, inklusive skatter, rabatter och totalsummor. Detta är användbart för att visa korrekta priser för kunderna innan de går vidare till checkout.
När varukorgen innehåller en prenumerationsprodukt returnerar förhandsgranskningssvaret även en next_billing_date — en förhandsgranskning av det kommande faktureringsdatumet, så att du kan visa det innan prenumerationen skapas. Det beräknas i förhållande till nu: now + trial period när en provperiod gäller, annars now + one payment frequency. Fältet utelämnas för varukorgar som endast innehåller engångsköp. Detta är en uppskattning baserad på tiden för förhandsgranskningen; det auktoritativa next_billing_date anges när prenumerationen aktiveras.
Förhandsgranskningen returnerar även trial_period_days (den effektiva provperiodens längd, kostnadsfri eller betald) och trial_amount (debiteringen per enhet under provperioden efter rabatter, i prisvalutans minsta enheter). trial_amount finns endast för en betald provperiod och är null för en kostnadsfri provperiod eller ingen provperiod. Använd current_breakup för den beskattade totalsumma som faktiskt ska betalas idag.

Preview API Reference

Visa den fullständiga dokumentationen för förhandsgranskningsendpointen.

Viktiga skillnader

Tidigare, när du skapade en betalningslänk med Dynamic Links, var du tvungen att ange kundens fullständiga faktureringsadress. Med Checkout Sessions är detta inte längre nödvändigt. Du kan helt enkelt skicka den information du har, så hanterar vi resten. Till exempel:
  • Om du bara känner till kundens faktureringsland anger du bara det.
  • Checkout-flödet samlar automatiskt in de uppgifter som saknas innan kunden skickas till betalningssidan.
  • Om du däremot redan har all obligatorisk information och vill hoppa direkt till betalningssidan kan du skicka hela datauppsättningen och inkludera confirm=true i request body.

Migreringsprocess

Att migrera från Dynamic Links till Checkout Sessions är enkelt:
1

Update your integration

Uppdatera din integration så att den använder den nya API- eller SDK-metoden.
2

Adjust request payload

Anpassa request payload enligt formatet för Checkout Sessions.
3

That's it!

Ja. Inga ytterligare åtgärder eller särskilda migreringssteg krävs från din sida.

Relaterad API-referens

Create Checkout Session

Fullständig API-referens för att skapa checkout-sessioner med alla tillgängliga parametrar och alternativ

Preview Checkout Session

API-referens för att förhandsgranska priser, skatter och totalsummor innan en session skapas
Senast ändrad 17 augusti 2026