Skip to main content

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.
Single-Use Links: The checkout_url is not reusable. Generate a fresh session for each customer and payment attempt rather than sharing or reusing a link.

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

API Response

All methods return:
Only 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:
Instead of redirecting, you can embed checkout directly in your page using Overlay Checkout (modal), Inline Checkout (embedded), or Mobile SDKs (native apps). All consume the same session URL.

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.
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

object
Kundinformation. Du kan antingen koppla en befintlig kund med hjälp av kundens ID eller skapa en ny kundpost under checkout.
object
Faktureringsadress för korrekt skatteberäkning, bedrägeriförebyggande och regelefterlevnad.När confirm: true blir alla fält för faktureringsadress obligatoriska.
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.
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 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.
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_id kan anges för att behandla debiteringen omedelbart
  • Sessionen löper ut efter 15 minuter i stället för 24 timmar
  • En befintlig customer_id krävs om payment_method_id anges
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
Detta minskar checkout-friktionen avsevärt genom att onödiga formulärfält tas bort.
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.
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.
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. Kundsvar 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

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.
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: true för att gå direkt till betalningssidan.
Migreringen är enkel: uppdatera din integration så att den använder Checkout Sessions API eller SDK-metod, anpassa request-payloaden till Checkout Sessions-formatet och du är klar. Ingen ytterligare hantering behövs.

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
Senast ändrad 26 september 2026