Skip to main content

Checkout Sessions

Skapa en säker, hostad checkout för engångsbetalningar och prenumerationer.

Payment Links

Dela en URL för att ta emot betalningar utan kod.

Webhooks

Lyssna efter betalningshändelser och leverera beställningar.

API Reference

Fullständig endpoint-dokumentation och testning live.

Förutsättningar

Innan du börjar behöver du:
  • Ett Dodo Payments-konto.
  • Minst en produkt. Skapa den under Products i dashboarden. En prenumerationsprodukt med ett pris som inte är noll måste ha ett pris på minst $1, eller motsvarande i produktens valuta. En prenumeration på $0 stöds också.
  • En API-nyckel. Skapa den under Developer → API Keys och lagra den i miljövariabeln DODO_PAYMENTS_API_KEY. Skapa nyckeln i testläge medan du bygger: exemplen på den här sidan använder testläge, och en nyckel i testläge fungerar endast mot testläge. Se Authentication.

Välj en integrationsväg

Overlay och inline checkout körs endast på en webbsida. I en native-mobilapp skapar du checkout-sessionen på din server och öppnar dess checkout_url med ett mobilt checkout-SDK. Om du vill att en kodningsagent ska bygga denna integration åt dig installerar du Agent Plugin.

Checkout-sessioner

Skapa en säker, hostad checkout-upplevelse. Du skapar en session på din server och omdirigerar sedan kunden till den returnerade checkout_url.
Varje checkout_url kan användas en gång och upphör att gälla efter 24 timmar, eller efter 15 minuter när du skickar confirm: true. Med confirm: true måste du också ange alla obligatoriska fält. Skapa en ny session för varje kund och varje betalningsförsök.

Skapa en checkout-session

Omdirigera till checkout

När du har skapat en session omdirigerar du kunden till checkout_url:
För avancerad anpassning kan du läsa den fullständiga guiden om Checkout Sessions och API Reference.

Betalningslänkar

En betalningslänk är en URL som öppnar checkout för en produkt, så att du kan ta emot betalningar utan att skriva kod. Frågeparametrar fyller i kunduppgifter i förväg och styr checkout-formuläret. När en kund öppnar länken lagrar checkout parametrarna i en session och förkortar URL:en till en session-parameter, så att de finns kvar när sidan uppdateras.

Statiska betalningslänkar

En statisk betalningslänk är en URL som du skapar en gång och delar flera gånger. Bas-URL:en är:
Lägg till frågeparametrar för att anpassa checkout:
integer
standard:"1"
Antal artiklar som ska köpas.
string
obligatorisk
Betalningslänkar använder redirect_url. Checkout Sessions API använder return_url för samma ändamål.URL att omdirigera till efter betalningen. Dodo Payments lägger till betalningsuppgifterna som frågeparametrar, till exempel https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.com. Om produkten utfärdar licensnycklar läggs även en license_key-parameter till, med flera nycklar separerade med kommatecken.
string
Anger betalningsvalutan. Standardvärdet är faktureringslandets valuta.
boolean
standard:"true"
Visa eller dölj valutaväljaren.
boolean
standard:"true"
Visa eller dölj rabattsektionen. Ange false för att förhindra att kunder anger kupongkoder.
number
Låser det debiterade beloppet, i större valutaenheter, till exempel 12.5 för $12.50. Fungerar endast med Pay What You Want-produkter och ignoreras om beloppet understiger produktens minimipris.
paymentAmount använder större valutaenheter (12.5 är $12.50). Fältet product_cart[].amount i Checkout Sessions API använder den minsta valutaenheten (1250 är $12.50). Se Dynamic Pricing.
string
Anpassade metadatafält, till exempel metadata_orderId=123.

Fyll i kunduppgifter i förväg

Lägg till kundfält som frågeparametrar för att förenkla checkout:
string
Kundens fullständiga namn (ignoreras om firstName eller lastName anges).
string
Kundens förnamn.
string
Kundens efternamn.
string
Kundens e-postadress.
string
Kundens land (ISO 3166-1 alpha-2-kod).
string
Gatuadress.
string
Ort.
string
Delstat eller provins.
string
Postnummer eller ZIP-kod.

Inaktivera formulärfält

För att förhindra att kunder ändrar förifylld information inaktiverar du ett fält genom att ange dess värde och sätta motsvarande disable...-flagga till true:

Exempel på statisk betalningslänk

Inaktivering av fält förhindrar oavsiktliga ändringar och säkerställer datakonsistens.

Dynamiska betalningslänkar (föråldrade)

Endpointsen POST /payments och POST /subscriptions är föråldrade. Använd Checkout Sessions i stället för nya integrationer.
För befintliga integrationer som använder dynamiska betalningslänkar skickar du payment_link: true till Create One-Time Payment eller Create Subscription för att skapa en länk. Exemplen nedan skapar en betalningslänk för en engångsbetalning. För prenumerationer, se Subscription Integration Guide.

Webhooks

Webhooks meddelar din server när en betalning lyckas eller misslyckas, så att du kan leverera beställningen.

Skapa en webhook-endpoint

Gå till Developer → Webhooks i dashboarden och lägg till din endpoint-URL. Kopiera endpointens signeringshemlighet till miljövariabeln DODO_PAYMENTS_WEBHOOK_KEY. Här är ett exempel med Next.js:
app/api/webhooks/dodo/route.ts
Vår webhook-implementation följer specifikationen Standard Webhooks.

Händelser att lyssna efter

Lyssna åtminstone efter dessa händelser i ett flöde för engångsbetalningar:
Leverera alltid baserat på payment.succeeded från webhooken, inte på webbläsarens omdirigering. Omdirigeringen kan missas om kunden stänger fliken, medan webhooken försöks igen tills den bekräftas.
Om du säljer produkter med licensnycklar ska du även hantera license_key.created. En fullständig lista över händelser, inklusive prenumerations-, behörighets-, kredit-, återställnings- och kravhanteringshändelser, finns i Webhook Event Guide. För ett komplett Next.js- och TypeScript-exempel, se demo repository och dess live deployment.

Valuta och faktureringsadress

Om du vill debitera i en specifik valuta skickar du billing_currency och billing_address.country när du skapar checkout-sessionen. Om du utelämnar dem väljer Adaptive Currency valuta och land från kundens IP-adress, vilket kanske inte är den valuta du avser att debitera. Belopp för Pay What You Want anges i produktens basvaluta, som måste vara USD, GBP eller EUR. Om du vill ta emot ett fast belopp i en annan valuta använder du Adaptive Currency, som konverterar ditt baspris enligt aktuella växelkurser, eller Localized Pricing, som anger ett fast pris per valuta. Localized Pricing fungerar inte med Pay What You Want.

Köp igen med ett klick

Om du vill debitera en återkommande kund med en sparad betalningsmetod skickar du dess payment_method_id tillsammans med confirm: true. payment_method_id accepteras endast när confirm är true, och du måste även skicka den befintliga kundens customer_id. Eftersom confirm är true måste du även skicka en fullständig billing_address. Sessionen debiterar den sparade betalningsmetoden direkt och returnerar därför ingen checkout_url. Använd webhooks för att se om betalningen lyckades.

Relaterade sidor

Checkout Sessions

Fullständig guide med avancerade anpassningsalternativ.

Overlay Checkout

Bädda in checkout som en modal överliggande vy på sidan.

Inline Checkout

Bädda in checkout direkt i sidans layout.

Subscription Integration

Konfigurera återkommande debitering.

Webhook Event Guide

Fullständig lista över alla webhook-händelser.

API Reference

API-dokumentation för Checkout Sessions.
Senast ändrad 26 september 2026