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:
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å din sida med Overlay Checkout (modal överlagring) eller Inline Checkout (fullständigt 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 query-parametrar som bland annat innehåller betalnings-/prenumerations-ID, status, kundens e-postadress och eventuella licensnycklar. Se dokumentationen för parametrarna för return_url för den fullständiga listan.

Request Body

Required Fields

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

Optional Fields

Ytterligare konfiguration för att anpassa din checkout-upplevelse

Obligatoriska fält

array
obligatorisk
Array med produkter som ska ingå 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. Detta 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, bedrägeribekämpning och efterlevnad av regelverk.
När confirm är inställd på 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.Tillgängliga alternativ: credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal
Viktigt: Inkludera alltid credit och debit som reservalternativ för att förhindra checkout-fel när föredragna betalningsmetoder inte är tillgängliga.
Exempel:
string
Åsidosätt det förvalda valutaalternativet med en fast faktureringsvaluta. Använder ISO 4217-valutakoder.Valutor som stöds: USD, EUR, GBP, CAD, AUD, INR med fleraExempel: "USD" för amerikanska dollar, "EUR" för euro
Detta fält fungerar endast 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 och förbättra checkout-hastigheten och användarupplevelsen.
string
URL dit kunderna omdirigeras efter att betalningen har slutförts. Dodo Payments lägger till följande query-parametrar i din URL vid omdirigeringen:Exempel på omdirigerings-URL:er:
Använd query-parametrarna 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 anges slutförs alla sessionsdetaljer omedelbart. API:et returnerar 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), upp till 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 request. Migrera till discount_codes när det passar för att dra nytta av stapling.
string
föråldrad
Föråldrat — använd helst discount_codes för nya integrationer. Detta fält fungerar fortfarande för bakåtkompatibilitet men kan inte kombineras med discount_codes i samma request.
object
Egna nyckel-värde-par för lagring av ytterligare information om sessionen.
boolean
Åsidosätt handlarens standardbeteende för 3DS för den här sessionen.
boolean
standard:"false"
Aktivera läget för minimal adressinsamling. När det är aktiverat samlar checkout endast in:
  • Land: Krävs alltid för skatteberäkning
  • 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 kompletta faktureringsuppgifter.
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:et.
Kundsvar på anpassade fält inkluderas i:
  • Webhooks: payment.succeeded, subscription.active och andra relevanta event-payloads 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 är inställd på true skickas kunden direkt till checkout-sidan utan bekräftelsesteg.

5. Checkout med åsidosättning av valuta

Åsidosättningen billing_currency börjar endast gälla när adaptiv valuta är aktiverad i dina kontoinställningar. 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)

Mer information om UPI-konfiguration och testning finns på sidan India Payment Methods.

10. BNPL-checkout (Buy Now Pay Later)

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

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

Använd en kunds sparade betalningsmetod för att skapa en checkout-session som behandlas omedelbart utan att samla in betalningsmetoden:
När payment_method_id används måste confirm vara inställd på true och en befintlig customer_id måste anges. Betalningsmetoden valideras för kompatibilitet med betalningens valuta.
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 delning via SMS, e-post eller sociala medier. De är lättare att komma ihåg och skapar större kundförtroende än långa URL:er.

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

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

14. Tvinga ett språk

Tvinga checkout att visas på ett specifikt språk och åsidosätt kundens webbläsarspråk:
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 med flera) och kan hämtas via API:et. 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 kundvagnen 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 kundvagnar som endast innehåller engångsprodukter. Detta är en uppskattning baserad på tidpunkten 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 (provperiodens avgift per enhet 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 i dag.

Preview API Reference

Visa den fullständiga dokumentationen för förhandsgransknings-endpointen.

Flytta från dynamiska länkar till checkout-sessioner

Viktiga skillnader

Tidigare, när du skapade en betalningslänk med Dynamic Links, behövde du ange kundens fullständiga faktureringsadress. Med checkout-sessioner ä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 endast känner till kundens faktureringsland anger du bara det.
  • Checkout-flödet samlar automatiskt in de uppgifter som saknas innan kunden går vidare till betalningssidan.
  • Om du däremot redan har all obligatorisk information och vill gå direkt till betalningssidan kan du skicka hela datamängden och inkludera confirm=true i request body.

Migreringsprocess

Migreringen från Dynamic Links till checkout-sessioner är enkel:
1

Update your integration

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

Adjust request payload

Justera request-payloaden enligt formatet för checkout-sessioner.
3

That's it!

Ja. Du behöver inte göra någon ytterligare hantering eller vidta några särskilda migreringssteg.

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 31 juli 2026