Quick Start
Create your first checkout session in under 5 minutes
API Reference
Full API documentation and interactive testing
Preview Endpoint
Calculate pricing and taxes before creating a session
Session Validity: Checkout sessions expire after 24 hours by default, or 15 minutes when
confirm: true.Prerequisites
You need:- An active Dodo Payments merchant account
- API credentials from Developer → API Keys in the dashboard
- At least one product created in Products
Creating Your First Checkout Session
- Node.js SDK
- Python SDK
- REST API
API Response
All methods return:session_id is guaranteed to be present. When payment_method_id is provided, the charge processes immediately and checkout_url is null. Use the returned payment_id instead.
When confirm: true, the payment is created at session-creation time, and the response also includes payment_id, client_secret, and publishable_key for use with the Dodo Payments checkout SDK.
Redirect Your Customer
1
Extract the checkout URL
Get
checkout_url from the API response.2
Redirect to checkout
Send your customer to the URL:Alternatively, open in a new window:
3
Handle the return
After payment, customers are redirected to your
return_url with query parameters:Example redirect:
Kontrollera sessionsstatus
För att kontrollera en sessions status anropar du Get Checkout Session (GET /checkouts/{id}). Svaret innehåller sessionens id, created_at, customer_email och customer_name, samt payment_id och payment_status. Båda betalningsfälten är null medan kunden fortfarande anger sina uppgifter. När kunden har skickat in betalningen innehåller payment_status betalningens status, till exempel succeeded, failed eller processing. Använd webhooks som källa till sanning för leverans.
Request Body
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 dashboard.Du kan kombinera engångsbetalningsprodukter och prenumerationsprodukter i samma session.Valfria fält
Customer Information
Customer Information
object
Kundinformation. Du kan antingen koppla en befintlig kund med hjälp av kundens ID eller skapa en ny kundpost under checkout.
- Attach Existing Customer
- Create New Customer
object
Faktureringsadress för korrekt skatteberäkning, bedrägeriförebyggande och regelefterlevnad.När
confirm: true blir alla fält för faktureringsadress obligatoriska.Payment Configuration
Payment Configuration
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, gcash, ali_pay_hk, fps, touch_n_go, paypalSe Create Checkout Session API reference för en fullständig lista.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 euroDet här fältet 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 för snabbare checkout och bättre användarupplevelse.
Session Management
Session Management
string
URL dit kunder omdirigeras efter slutförd betalning. Dodo Payments lägger till query-parametrar i din URL vid omdirigeringen (se omdirigeringstabellen ovan).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å retursidan utan att behöva göra ett extra API-anrop.string
URL dit kunder 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.boolean
standard:"false"
Om true slutförs alla sessionsuppgifter omedelbart. API:et returnerar ett fel om obligatoriska uppgifter saknas.När
confirm: true:- Alla fält för faktureringsadress blir obligatoriska
payment_method_idkan anges för att behandla debiteringen omedelbart- Sessionen löper ut efter 15 minuter i stället för 24 timmar
- En befintlig
customer_idkrävs ompayment_method_idanges
array
Tillämpa en eller flera staplade rabattkoder på checkout-sessionen. Koderna tillämpas i arrayordning (den första koden minskar startpriset, den andra minskar det redan rabatterade priset och så vidare), upp till högst 20 koder per session.När Purchasing Power Parity är aktiverat är startpriset det PPP-justerade beloppet, inte baspriset.Det enskilda
discount_code-fältet nedan är föråldrat men stöds fortfarande fullt ut. Det kan inte kombineras med discount_codes i samma request.string
föråldrad
Föråldrat — använd helst
discount_codes för nya integrationer. Det här fältet fungerar fortfarande av bakåtkompatibilitetsskäl, men kan inte kombineras med discount_codes i samma request.object
Anpassade nyckel-värde-par för att lagra ytterligare information om sessionen.
boolean
Åsidosätt handlarens standardbeteende för 3DS för den här sessionen.
boolean
standard:"false"
Aktivera läge 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
string
En sparad betalningsmetod som tillhör den kopplade kunden. Kräver
confirm: true och en befintlig customer.customer_id. Betalningsmetoden valideras för kompatibilitet med betalningens valuta. När den anges behandlas debiteringen omedelbart och checkout_url returneras som null. Använd i stället den returnerade payment_id.boolean
standard:"false"
Om true returneras en förkortad checkout-URL i stället för den fullständiga sessions-URL:en.
string
Produktkollektions-ID för den kollektionsbaserade checkout-flowen. När du anger det ska du skicka en tom
product_cart-array. Rabattkoder kan inte tillämpas i förväg när sessionen skapas. Se Product Collections.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, med högst 250 tecken. När det anges tillsammans med ett giltigt
tax_id visas det på fakturan i stället för kundens personliga namn.integer
Åsidosätt handlarens mandatgräns (i INR-paise) för INR-e-mandat på indiska kort.Mandatbeloppet som skickas till betalningsförmedlaren är
max(this_floor, actual_billing_amount), så detta är i praktiken det kundinriktade auktoriseringstaket när faktureringen är lägre. Om värdet inte anges används handlarens inställning. Om inte heller den är angiven används systemets standardvärde på ₹15,000.UI Customization
UI Customization
object
Anpassa checkout-gränssnittets utseende och beteende.
Feature Flags
Feature Flags
object
Konfigurera specifika funktioner och beteenden för checkout-sessionen.
Custom Fields
Custom Fields
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. Kundsvar inkluderas i webhook-payloads och är tillgängliga via API:et.
- Webhooks:
payment.succeeded,subscription.activeoch andra relevanta event-payloads innehåller arrayencustom_field_responses - API-svar: Betalnings- och prenumerationsobjekt innehåller
custom_field_responses
Subscription Configuration
Subscription Configuration
object
Ytterligare konfiguration för checkout-sessioner som innehåller prenumerationsprodukter.
Användningsexempel
Enkel checkout för en produkt
Varukorg med flera produkter
Prenumeration med provperiod
Förbekräftad checkout
Checkout med åsidosättning av valuta
Sparade betalningsmetoder för återkommande kunder
B2B-checkout med insamling av skatte-ID
Checkout med mörkt tema och staplade rabattkoder
Regionala betalningsmetoder (UPI för Indien)
Detaljerad information om UPI-konfiguration och testning finns på sidan India Payment Methods.BNPL-checkout (Buy Now Pay Later)
Detaljerad information om BNPL-konfiguration och testning finns på sidan Buy Now Pay Later (BNPL).Omedelbar checkout med befintlig betalningsmetod
Kortlänkar för renare betalnings-URL:er
Hoppa över sidan för betalningsbekräftelse med omedelbar omdirigering
Tvinga fram ett språk
Samla in anpassade fält
Förhandsgranska checkout-sessioner
Använd endpointen Preview Checkout Session för att beräkna priser, skatter och totalsummor innan du skapar en session. Detta är användbart när du vill visa korrekt prisinformation på din webbplats.Det förhandsgranskade
current_breakup.subtotal återspeglar redan Purchasing Power Parity och Charm Pricing när de gäller för produkten.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 (provperiodens debitering per enhet efter rabatter, i prisvalutans mindre enheter). trial_amount finns endast för en paid trial och är null för en kostnadsfri provperiod eller ingen provperiod. Använd current_breakup för det skatteinkluderade totalbelopp som faktiskt ska betalas idag.- Node.js SDK
- Python SDK
- REST API
Migrera från Dynamic Links
Om du använder Dynamic Links erbjuder Checkout Sessions större flexibilitet. Med Dynamic Links var du tvungen att ange kundens fullständiga faktureringsadress. Med Checkout Sessions kan du skicka den information du har, så samlar checkout-flödet in resten. Exempel:- Ange endast kundens faktureringsland, så samlar checkout in de återstående uppgifterna.
- Eller ange all information och sätt
confirm: trueför att gå direkt till betalningssidan.
Relaterade resurser
Overlay Checkout
Öppna checkout som en modal överlagring på din sida
Inline Checkout
Bädda in checkout direkt på din sida
Mobile Integration
Integrera checkout i inbyggda mobilappar
Webhooks
Lyssna efter betalnings- och prenumerationshändelser
Payment Methods
Betalningsmetoder som stöds per region
Subscriptions
Återkommande fakturering och prenumerationshantering