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 uppfylla minimibeloppet för prenumerationer för den valuta kunden betalar i: $1.00 för USD. Andra valutor än USD, EUR och GBP måste också vara värda minst $1.00. 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.
  • SDK:n för ditt språk. Node.js SDK kräver Node.js 20 eller senare, Python SDK kräver Python 3.9 eller senare och Go SDK kräver Go 1.22 eller senare. cURL-exemplen behöver ingen SDK.
Webhook-exemplet använder också paketet standardwebhooks. Installera det med npm install standardwebhooks.

Välj en integrationsväg

Overlay- och inline-checkout körs endast på en webbsida. I en inbyggd mobilapp skapar du checkout-sessionen på din server och öppnar dess checkout_url med en mobil checkout-SDK. Om du vill att en kodagent ska bygga integrationen åt dig installerar du Agent Plugin.

Checkout Sessions

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 fungerar 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, se den fullständiga guiden för Checkout Sessions och API Reference.

Hantera fel

När en begäran misslyckas returnerar API:t en HTTP-statuskod och en JSON-body med en code och en message. Basera din felhantering på code, inte på message. Information om varje kod, dess orsak och hur den åtgärdas finns i Error Codes. En misslyckad betalning rapporteras separat: betalningens status är failed, dess error_code anger orsaken och du får en payment.failed webhook. Information om huruvida du bör försöka igen finns i Handle Payment Failures. 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 förifyller kunduppgifter 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 vid en siduppdatering.

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. API:t Checkout Sessions använder return_url för samma ändamål.URL som kunden omdirigeras 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 hindra kunder från att ange 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 API:t Checkout Sessions använder den minsta valutaenheten (1250 är $12.50). Se Dynamic Pricing.
string
Anpassade metadatafält, till exempel metadata_orderId=123.

Förifyll kunduppgifter

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 hindra kunder från att ändra förifylld information inaktiverar du ett fält genom att ange dess värde och ställa in 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)

Slutpunkterna 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-slutpunkt

Gå till Developer → Webhooks i dashboarden och lägg till din slutpunkts-URL. Kopiera slutpunktens 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 på payment.succeeded från webhooken, inte från webbläsarens omdirigering. Omdirigeringen kan missas om kunden stänger fliken, medan webhooken försöks skickas igen tills den bekräftas.
Om du säljer produkter med licensnycklar ska du även hantera license_key.created. Den fullständiga listan över händelser, inklusive prenumerations-, entitlement-, kredit-, återställnings- och kravhanteringshändelser, finns i Webhook Event Guide. Ett komplett Next.js- och TypeScript-exempel finns i demo-arkivet och dess live-distribution.

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 i. 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, eller endast country och zipcode när minimal_address är true. 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 ett modalt overlay på sidan.

Inline Checkout

Bädda in checkout direkt i sidlayouten.

Subscription Integration

Konfigurera återkommande fakturering.

Webhook Event Guide

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

API Reference

API-dokumentation för Checkout Sessions.
Senast ändrad 8 oktober 2026