Hoppa till huvudinnehåll

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Checkout page
Dodo Payments checkout är en konverteringsoptimerad, globalt kompatibel kassasida utformad för digitala produkter och SaaS-företag. Den stödjer flera valutor, språk, skatter, rabatter, tillägg och affärsanpassade efterlevnadsrutiner.

Checkout Sessions API

Skapa värdtjänstkassasessioner programmässigt.

Preview Checkout

Beräkna priser och skatter innan du skapar en session.

Payment Methods

Stödda betalningsmetoder och konfigurationsalternativ.

Adaptiv Valuta

Adaptiv Valuta gör det möjligt för kunder att betala i sin föredragna lokala valuta, vilket förbättrar förtroendet och konverteringsgraden.

Hur Det Fungerar

  1. Aktivera: Aktivera adaptiv valuta från Inställningar → Företag
  2. Välj: Kunder kan byta valuta direkt vid kassan
  3. Konvertera: Priser konverteras dynamiskt med realtids FX-kurser
  4. Visa: Slutgiltigt belopp visas tydligt före betalning
Currency selector on checkout

Adaptive Currency

Läs mer om stödda valutor, växlingsavgifter och hantering av återbetalningar.

Flerspråkig Kassa

Dodo Payments stöder flera språk på kassasidan, vilket gör det möjligt för kunder att slutföra betalningar på ett språk de är bekväma med.
Language selector on checkout

Nyckelhöjdpunkter

  • Språk väljare tillgänglig direkt vid kassan
  • UI-text, etiketter och systemmeddelanden är lokaliserade
  • Förbättrar tillgänglighet och internationell konvertering

Stödda Språk

Kassan stöder 21 språk:
LanguageCode
Arabicar
Catalanca
Chinesezh
Dutchnl
Englishen
Frenchfr
Germande
Hebrewhe
Indonesianid
Italianit
Japaneseja
Koreanko
Malayms
Polishpl
Portuguesept
Romanianro
Russianru
Spanishes
Swedishsv
Thaith
Turkishtr
Du kan tvinga ett specifikt språk i kassan genom att ange force_language-parametern när du skapar en kassasession. Se Checkout Sessions API för detaljer.

Automatisk skatteberäkning

Skatter beräknas automatiskt baserat på kundens faktureringsadress, vilket säkerställer efterlevnad av moms, GST och försäljningsskatter utan manuell konfigurering.

Hur skatteberäkning fungerar

1

Location Detection

Skatteregler tillämpas baserat på kundens land (och region där det är tillämpligt).
2

Dynamic Updates

Skattebelopp uppdateras automatiskt när:
  • Land ändras
  • Adress uppdateras
3

Transparent Display

Den slutliga skatteredovisningen visas tydligt innan betalning.
Skatteberäkningen är helt automatiserad. Ingen manuell konfiguration krävs för standard digitala varor och SaaS-produkter.

Stöd för företagsmomssnummer

För registrerade företag tillåter kassan kunder att ange sitt företagsmomssnummer (t.ex. VAT/GST-nummer).

Vad händer när ett momsnummer anges

  • Skattebehörighet valideras i realtid
  • Tillämpliga skattebefrielser eller omvänd betalningsskyldighet tillämpas
  • Skattebelopp uppdateras omedelbart i kassan
Business Tax ID entry on checkout
Detta är särskilt användbart för B2B SaaS och digitala tjänster där företagskunder kan vara berättigade till skattebefrielser.

Rabattkoder

Kunder kan använda rabatt- eller kampanjkoder som du skapat i instrumentpanelen direkt på kassasidan.

Kassaupplevelse

  1. Kunden anger rabattkoden
  2. Rabatten valideras omedelbart
  3. Uppdaterat pris och besparing visas tydligt
Discount code entry on checkout

API-integrering

Förhandsapplicera en eller flera staplade rabattkoder eller aktivera rabattinmatningsfältet:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_codes: ['WELCOME20'], // Pre-apply one or more codes (max 20, applied in order)
  feature_flags: {
    allow_discount_code: true // Show discount input field
  },
  return_url: 'https://yoursite.com/return'
});
discount_codes accepterar en array med upp till 20 koder som staplas i ordning. Det enda discount_code-fältet är föråldrat men fungerar fortfarande — befintliga integrationer behöver inte ändras omedelbart. Migrera till discount_codes när det är lämpligt för att använda stapling och den rikare svarformen.

Discount Codes

Lär dig hur du skapar och hanterar rabattkoder.

Validate Discount by Code

Slå upp och validera rabatter med hjälp av kodnamn.

Smart Address Collection

Kassan stödjer flexibel adressinmatning för snabbare slutförande.

Tillgängliga Alternativ

AlternativBeskrivning
Google Address AutofillSnabb val med autokomplettering
Manuell InmatningFull kontroll för kompletta adresser
LandsvalStyr skatte- och efterlevnadslogik
Adressinsamling balanserar hastighet, noggrannhet och global täckning för att maximera konvertering samtidigt som den säkerställer efterlevnad.

Insamling av Telefonnummer

Kontrollera om telefonnumret syns i kassan — och om det är obligatoriskt — genom att använda funktionsflaggor under sessionskontrollen.
FlaggaStandardBeteende
allow_phone_number_collectiontrueVisar telefonnummerfältet i kassasidan
require_phone_numberfalseGör telefonnummerfältet obligatoriskt (formulärvalidering gäller ett icke-tomt värde)
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  feature_flags: {
    allow_phone_number_collection: true,
    require_phone_number: true
  },
  return_url: 'https://yoursite.com/return'
});
require_phone_number: true krävs allow_phone_number_collection: true. API:et avvisar sessioner där telefoninsamling är inaktiverad medan telefonnummer är obligatoriskt.
Använd require_phone_number för B2B SaaS, reglerade branscher eller alla flöden där du behöver en verifierad kontaktkanal för support, bedrägerigranskning eller efterlevnad.

Anpassade Fält

Samla in ytterligare information från kunder vid utcheckning genom att definiera anpassade formulärfält. Detta är användbart för att samla in data som företagsnamn, teamstorlek, hänvisningskälla eller annan företagspecifik information.

Tillgängliga Fälttyper

TypBeskrivning
textEnkel textrad
numberNumeriskt inmatningsfält
emailE-postadress med validering
urlURL med validering
dateDatumväljare
dropdownVälj från fördefinierade alternativ
booleanJa/Nej-omkopplare

Exempel

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  custom_fields: [
    {
      key: 'company_name',
      label: 'Company Name',
      field_type: 'text',
      required: true
    },
    {
      key: 'team_size',
      label: 'Team Size',
      field_type: 'dropdown',
      required: true,
      options: ['1-10', '11-50', '51-200', '200+']
    }
  ],
  return_url: 'https://yoursite.com/return'
});
Kundsvar inkluderades automatiskt i webhook-payloads (payment.succeeded, subscription.active) och API-svar via custom_field_responses-arrayen. Du kan definiera upp till 5 anpassade fält per utcheckningssession.

Custom Fields Guide

Läs mer om konfiguration av anpassade fält och åtkomst till svar.

Integritetspolicy och Godkännande av Villkor

För att säkerställa juridisk och regelefterlevande tydlighet:
Detta hjälper till att uppfylla globala konsumentskydds- och dataskyddskrav inklusive GDPR-efterlevnad.

Insamling Checkout

Produktkollektioner möjliggör en enhetlig checkout-upplevelse där kunder kan se och välja bland flera relaterade produkter (t.ex. Starter, Pro, Enterprise-planer) i ett enda utcheckningsflöde.

Hur det Fungerar

  1. Alla produkter visas: Kunder ser alla aktiva produkter i kollektionen
  2. Första produkten förvald: Den första produkten i kollektionen är automatiskt vald
  3. Jämför alternativen: Kunder kan jämföra priser och funktioner innan de väljer
  4. Endast ett val: Efter att ha valt en produkt fortsätter checkout med standardbetalningsflödet

Skapa en Insamlingskassa

const session = await client.checkoutSessions.create({
  product_collection_id: 'pdc_abc123',
  product_cart: [], // Required: pass an empty array for collection checkout
  return_url: 'https://yoursite.com/return'
});
När du använder product_collection_id, passera en tom product_cart-array. Rabattkoder kan inte förappliceras vid sessionsskapande.

Product Collections

Lär dig hur du skapar och hanterar produktkollektioner för en enhetlig checkout-upplevelse.

Konfiguration av Kassasession

Kontrollera kassabeteendet med hjälp av Checkout Sessions API:et:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customer: {
    email: 'customer@example.com',
    name: 'Jane Doe'
  },
  billing_currency: 'EUR', // Set specific currency
  discount_codes: ['PROMO10'],
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return',
  cancel_url: 'https://yoursite.com/pricing', // Optional: where to redirect on cancel
  metadata: {
    order_ref: 'ORD-12345'
  }
});
Efter betalning omdirigeras kunder till din return_url med query-parameterar automatiskt bifogade — inklusive payment_id eller subscription_id, status, email, och license_key (om tillämpligt). Se Checkout Sessions guide för hela listan.

Checkout Sessions API

Komplett API-referens för kassasessioner.

Checkout Integration Guide

Steg-för-steg guide till att integrera checkout.

Anpassning av Kassatema

Anpassa kassasidans utseende för att matcha ditt varumärke genom att använda customization.theme_config-parametern när du skapar en kassasession via API:et. Konfigurera färger, typsnitt, hörnradier och knapptext för både ljus och mörkt läge.
Anpassad temakassasida

Design & Theme Customization

Konfigurera teman visuellt från instrumentpanelen med förbyggda teman, typografi, färger och liveförhandsvisning.
Detta avsnitt täcker server-side API-temakonfiguration med customization.theme_config. Om du använder Checkout SDK (overlay eller inline checkout), se sektionerna för temaanpassning i Overlay Checkout eller Inline Checkout som använder camelCase-egenskaper (t.ex., bgPrimary istället för bg_primary).

Tema Konfigurationsalternativ

EgenskapBeskrivning
lightFärgkonfiguration för ljus läge
darkFärgkonfiguration för mörkt läge
font_primary_urlURL för primärt typsnitt
font_secondary_urlURL för sekundärt typsnitt
font_sizeTeckenstorlek: xs, sm, md, lg, xl, 2xl
font_weightTeckenvikt: normal, medium, bold, extraBold
radiusHörnradie för UI-element (t.ex., 4px, 0.5rem, 8px)
pay_button_textAnpassad text för betalningsknappen (t.ex., “Complete Purchase”, “Subscribe Now”)

Färgkonfiguration (Ljust/Mörkt Läge)

Varje läge (light och dark) stödjer följande färgegenskaper:
EgenskapBeskrivning
bg_primaryPrimär bakgrundsfärg
bg_secondarySekundär bakgrundsfärg
text_primaryPrimär textfärg
text_secondarySekundär textfärg
text_placeholderPlatshållartextfärg
text_errorFärg för feltext
text_successFärg för lyckotext
border_primaryPrimär kantfärg
border_secondarySekundär kantfärg
button_primaryPrimär knapplagt färg
button_primary_hoverPrimär knopphov färg
button_secondarySekundär knapplag färg
button_secondary_hoverSekundär knapphov färg
button_text_primaryPrimär knapptextfärg
button_text_secondarySekundär knapptextfärg
input_focus_borderKantfärg vid inmatningsfokus
Alla färgfält accepterar standard CSS-färgformat:
  • Hex: #fff, #ffffff, #ffffffff
  • RGB/RGBA: rgb(255, 255, 255), rgba(255, 255, 255, 0.5)
  • HSL/HSLA: hsl(120, 100%, 50%), hsla(120, 100%, 50%, 0.5)
  • Namngivna färger: red, blue, transparent

Exempel

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customization: {
    theme_config: {
      // Custom fonts
      font_primary_url: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap',
      font_size: 'md',
      font_weight: 'medium',
      radius: '8px',
      pay_button_text: 'Complete Purchase',
      
      // Light mode colors
      light: {
        bg_primary: '#ffffff',
        bg_secondary: '#f5f5f5',
        text_primary: '#1a1a1a',
        text_secondary: '#666666',
        button_primary: '#0066ff',
        button_primary_hover: '#0052cc',
        button_text_primary: '#ffffff',
        border_primary: '#e0e0e0'
      },
      
      // Dark mode colors
      dark: {
        bg_primary: '#1a1a1a',
        bg_secondary: '#2d2d2d',
        text_primary: '#ffffff',
        text_secondary: '#a0a0a0',
        button_primary: '#3385ff',
        button_primary_hover: '#4d99ff',
        button_text_primary: '#ffffff',
        border_primary: '#404040'
      }
    }
  },
  return_url: 'https://yoursite.com/return'
});
Du behöver inte specificera alla färgegenskaper. Eventuella ospecificerade egenskaper kommer att använda standardtema värden.
Last modified on May 22, 2026