Hoppa till huvudinnehåll

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.

Prerequisites

1

Dodo Payments Account

You’ll need an active Dodo Payments merchant account with API access.
2

API Credentials

Generate your API credentials from the Dodo Payments dashboard:
3

Products Setup

Create your products in the Dodo Payments dashboard before implementing checkout sessions.

Creating Your First Checkout Session

API Response

All methods above return the same response structure:
1

Get the checkout URL

Extract the checkout_url from the API response.
2

Redirect your customer

Direct your customer to the checkout URL to complete their purchase.
Alternative Integration Options: Instead of redirecting, you can embed the checkout directly in your page using Overlay Checkout (modal overlay) or Inline Checkout (fully embedded). Both options use the same checkout session URL.
3

Handle the return

After payment, customers are redirected to your return_url with query parameters including payment/subscription ID, status, customer email, and any license keys. See the return_url parameter docs for the full list.

Request Body

Required Fields

Essential fields needed for every checkout session

Optional Fields

Additional configuration to customize your checkout experience

Required Fields

product_cart
array
obligatorisk
Array of products to include in the checkout session. Each product must have a valid product_id from your Dodo Payments dashboard.
Mixed Checkout: You can combine one-time payment products and subscription products in the same checkout session. This enables powerful use cases like setup fees with subscriptions, hardware bundles with SaaS, and more.
Find Your Product IDs: You can find product IDs in your Dodo Payments dashboard under Products → View Details, or by using the List Products API.

Optional Fields

Configure these fields to customize the checkout experience and add business logic to your payment flow.
customer
object
Customer information. You can either attach an existing customer using their ID or create a new customer record during checkout.
Attach an existing customer to the checkout session using their ID.
billing_address
object
Billing address information for accurate tax calculation, fraud prevention, and regulatory compliance.
When confirm is set to true, all billing address fields become required for successful session creation.
allowed_payment_method_types
array
Control which payment methods are available to customers during checkout. This helps optimize for specific markets or business requirements.Available Options: credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal, sunbit
Critical: Always include credit and debit as fallback options to prevent checkout failures when preferred payment methods are unavailable.
Example:
billing_currency
string
Override the default currency selection with a fixed billing currency. Uses ISO 4217 currency codes.Supported Currencies: USD, EUR, GBP, CAD, AUD, INR, and moreExample: "USD" for US Dollars, "EUR" for Euros
This field is only effective when adaptive pricing is enabled. If adaptive pricing is disabled, the product’s default currency will be used.
show_saved_payment_methods
boolean
standard:"false"
Display previously saved payment methods for returning customers, improving checkout speed and user experience.
return_url
string
URL to redirect customers after payment completion. Dodo Payments appends the following query parameters to your URL on redirect:Example redirect URLs:
Use the license_key and email query parameters to display license keys or send a confirmation immediately on your return page, without needing an extra API call.
cancel_url
string
URL to redirect customers when they click the back button or cancel the checkout session. If not provided, the back button will not be displayed.
Set a cancel_url to give customers a clear way to return to your site without completing the purchase. This improves the checkout experience and reduces friction.
confirm
boolean
standard:"false"
If true, finalizes all session details immediately. API will throw an error if required data is missing.
discount_codes
array
Apply one or more stacked discount codes to the checkout session. Codes are applied in array order (the first code reduces the base price, the second reduces the already-discounted price, and so on), up to a maximum of 20 codes per session.
The singular discount_code field below is deprecated but still fully supported — existing integrations continue to work without changes. It cannot be combined with discount_codes in the same request. Migrate to discount_codes when convenient to take advantage of stacking.
discount_code
string
föråldrad
Deprecated — prefer discount_codes for new integrations. This field still works for backward compatibility, but cannot be combined with discount_codes in the same request.
metadata
object
Custom key-value pairs to store additional information about the session.
force_3ds
boolean
Override merchant default 3DS behaviour for this session.
minimal_address
boolean
standard:"false"
Enable minimal address collection mode. When enabled, the checkout only collects:
  • Country: Always required for tax determination
  • ZIP/Postal code: Only in regions where it’s necessary for sales tax, VAT, or GST calculation
This significantly reduces checkout friction by eliminating unnecessary form fields.
Enable minimal address for faster checkout completion. Full address collection remains available for businesses that require complete billing details.
customization
object
Customize the appearance and behavior of the checkout interface.
feature_flags
object
Configure specific features and behaviors for the checkout session.
custom_fields
array
Samla in ytterligare information från kunder under kassan med anpassade formulärfält. Du kan definiera upp till 5 anpassade fält per kassasession. 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 händelse-payloads innehåller custom_field_responses fältet
  • API-svar: Betalnings- och prenumerationsobjekt inkluderar custom_field_responses
subscription_data
object
Ytterligare konfiguration för kassasessioner som innehåller prenumerationsprodukter.

Användnings Exempel

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

1. Enkel Produktkassa

2. Flera Produkter i Varukorgen

3. Prenumeration med Proveriod

4. Förkonfirmerad Kassa

När confirm är inställt på true, kommer kunden att tas direkt till kassasidan, och eventuella bekräftelsesteg förbikopplas.

5. Kassa med Valutaöverskrivning

billing_currency överskrivning träder i kraft endast när adaptiv valuta är aktiverad i dina kontoinställningar. Om adaptiv valuta är avaktiverad, kommer denna parameter inte att ha någon effekt.

6. Sparade Betalningsmetoder för Återkommande Kunder

7. B2B Kassa med Insamling av Skatte-ID

8. Mörkt Tema Kassa med Staplade Rabattkoder

9. Regionala Betalningsmetoder (UPI för Indien)

För detaljerad information om UPI-konfiguration och testning, se sidan India Payment Methods.

10. BNPL (Buy Now Pay Later) Kassa

För detaljerad information om BNPL-konfiguration och testning, se sidan Buy Now Pay Later (BNPL).

11. Använda Befintliga Betalningsmetoder för Omedelbar Kassa

Använd en kunds sparade betalningsmetod för att skapa en kassasession som behandlas omedelbart, och hoppar över samlingen av betalningsmetoder:
När du använder payment_method_id, måste confirm ställas in på true och en befintlig customer_id måste tillhandahållas. Betalningsmetoden verifieras för behörighet med betalningens valuta.
Betalningsmetoden måste tillhöra kunden och vara kompatibel med betalningens valuta. Detta möjliggör ett-klicks köp för återkommande kunder.

12. Kortlänkar för Renare Betalnings-URLer

Generera förkortade, delbara betalningslänkar med anpassade slugs:
Kortlänkar är perfekta för SMS, e-post eller sociala medier. De är lättare att komma ihåg och skapar mer förtroende hos kunder jämfört med långa URLer.

13. Hoppa över Betalningsframgångssida med Omedelbar Omdirigering

Omdirigera kunder omedelbart efter betalningsslutförande, hoppa över standardsidan för betalningsframgång:
Använd redirect_immediately: true när du har en anpassad framgångssida som ger en bättre användarupplevelse än standardsidan för betalningsframgång. Detta är särskilt användbart för mobilappar och inbäddade kassaflöden.
När redirect_immediately är aktiverad, omdirigeras kunden till din return_url direkt efter betalningsslutförande, och hoppar över standardsidan för betalningsframgång helt.

14. Tvinga språkval

Tvinga kassan att visa på ett specifikt språk och ignorera kundens webbläsares språkinställningar:
Använd force_language när du känner till kundens föredragna språk (t.ex. från deras kontoinställningar) eller när du riktar dig mot specifika regionala marknader.
Stödda språk: 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), Malayiska (ms), Polska (pl), Portugisiska (pt), Rumänska (ro), Ryska (ru), Spanska (es), Svenska (sv), Thailändska (th), Turkiska (tr)

15. Insamling av Anpassade Fält

Samla in ytterligare information från kunder under kassan med anpassade fält:
Anpassade fält svar inkluderas automatiskt i webhook-payloads (payment.succeeded, subscription.active, etc.) 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örhandsvisning av Kassasessioner

Innan du skapar en kassasession kan du förhandsgranska prisuppdelningen inklusive skatter, rabatter och summor. Detta är användbart för att visa kunderna korrekta priser innan de går vidare till kassan.

Preview API Reference

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

Flytta från Dynamiska Länkar till Kassasessioner

Nyckelskillnader

Tidigare, när du skapade en betalningslänk med Dynamiska Länkar, krävdes det att du angav kundens kompletta faktureringsadress. Med Kassasessioner är detta inte längre nödvändigt. Du kan helt enkelt skicka in den information du har, så tar vi hand om resten. Till exempel:
  • Om du bara känner till kundens faktureringland, ange bara det.
  • Kassaflödet kommer automatiskt att samla in de saknade detaljerna innan kunden flyttas till betalningssidan.
  • Å andra sidan, om du redan har all nödvändig information och vill gå direkt till betalningssidan, kan du skicka hela datasetet och inkludera confirm=true i kroppens begäran.

Migrationsprocess

Att flytta från Dynamiska Länkar till Kassasessioner är enkelt:
1

Update your integration

Uppdatera din integration för att använda den nya API- eller SDK-metoden.
2

Adjust request payload

Justera begärandens payload enligt Kassasessionernas format.
3

That's it!

Ja. Ingen ytterligare hantering eller speciella migrationssteg behövs från din sida.

Relaterad API-Referens

Create Checkout Session

Komplett API-referens för att skapa kassasessioner med alla tillgängliga parametrar och alternativ

Preview Checkout Session

API-referens för att förhandsgranska priser, skatter och summor innan du skapar en session
Senast ändrad 9 juli 2026