Prerequisites
To integrate the Dodo Payments API, you’ll need:- A Dodo Payments merchant account
- API Credentials (API key and webhook secret key) from dashboard
Dashboard Setup
- Navigate to the Dodo Payments Dashboard
- Skapa en produkt (engångsbetalning eller prenumeration). Prenumerationsprodukter måste ha ett pris på minst $1 (eller motsvarande i den valda valutan); belopp under denna miniminivå stöds inte.
-
Generate your API key:
- Go to Developer > API
- Detailed Guide
- Copy the API key the in env named DODO_PAYMENTS_API_KEY
-
Configure webhooks:
- Go to Developer > Webhooks
- Create a webhook URL for payment notifications
- Copy the webhook secret key in env
Integration
Payment Links
Välj den integrationsväg som passar ditt användningsfall:- Checkout Sessions (rekommenderas): Bäst för de flesta integrationer. Skapa en session på din server och omdirigera kunder till en säker, värdbaserad checkout.
- Overlay Checkout: Använd detta när du behöver en upplevelse på sidan där checkout öppnas som ett modalt överlägg på din webbplats.
- Inline Checkout: Bädda in checkout direkt i sidans layout för en helt integrerad och varumärkesanpassad checkout-upplevelse.
- Static Payment Links: Kodfria, direkt delbara URL:er för snabb insamling av betalningar.
- Dynamic Payment Links: Länkar som skapas programmatiskt. Checkout Sessions rekommenderas dock eftersom de ger större flexibilitet.
- Mobile Checkout SDKs: För inbyggda Android-, iOS-, React Native- och Flutter-appar. Skapa sessionen på din server enligt ovan och skicka sedan
checkout_urltill SDK:t.
Overlay och Inline Checkout är endast för webbläsare — de bäddar in checkout på en webbsida. Om du bygger en inbyggd mobilapp ska du skapa checkout-sessionen på din server och öppna den med Mobile Checkout SDKs i stället.
1. Checkout Sessions
Använd Checkout Sessions för att skapa en säker, värdbaserad checkout-upplevelse för engångsbetalningar eller prenumerationer. Du skapar en session på din server och omdirigerar sedan kunden till den returneradecheckout_url.
Checkout-sessioner är som standard giltiga i 24 timmar. Om du skickar
confirm=true är sessionerna giltiga i 15 minuter och alla obligatoriska fält måste anges.1
Create a checkout session
Välj önskat SDK eller anropa REST API.
- Node.js SDK
- Python SDK
- REST API
2
Redirect customer to checkout
Efter att sessionen har skapats omdirigerar du till
checkout_url för att starta det värdbaserade flödet.2. Overlay Checkout
För en smidig checkout-upplevelse på sidan kan du utforska vår integration för Overlay Checkout, som gör det möjligt för kunder att slutföra betalningar utan att lämna din webbplats.3. Inline Checkout
För helt integrerade checkout-upplevelser som bäddas in direkt på sidan använder du vår integration för Inline Checkout. Då kan du skapa anpassade ordersammanfattningar och ha full kontroll över checkout-layouten, medan Dodo Payments hanterar betalningsinsamlingen på ett säkert sätt.4. Static Payment Links
Med statiska betalningslänkar kan du snabbt ta emot betalningar genom att dela en enkel URL. Du kan anpassa checkout-upplevelsen genom att skicka query-parametrar för att förifylla kunduppgifter, styra formulärfält och lägga till anpassade metadata.1
Construct your payment link
Börja med bas-URL:en och lägg till ditt produkt-ID:
2
Add core parameters
Inkludera viktiga query-parametrar:
-
integerstandard:"1"Antal artiklar som ska köpas.
-
stringobligatoriskURL dit kunden ska omdirigeras efter att betalningen har slutförts.
Omdirigerings-URL:en innehåller betalningsuppgifter som query-parametrar, till exempel:
Om produkten har licensnycklar aktiverade läggs även en
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.comOm produkten har licensnycklar aktiverade läggs även en
license_key-parameter till (kommaseparerad för flera nycklar):https://example.com/?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com3
Pre-fill customer information (optional)
Lägg till kund- eller faktureringsfält som query-parametrar för att förenkla checkout.
Supported Customer Fields
Supported Customer Fields
4
Control form fields (optional)
Du kan inaktivera specifika fält så att de blir skrivskyddade för kunden. Detta är användbart när du redan har kundens uppgifter (t.ex. för inloggade användare).
disable…-flagga på true:- Disable Flags Table
Om du ställer in
showDiscounts=false inaktiveras och döljs rabattsektionen i checkout-formuläret. Använd detta om du vill förhindra att kunder anger kupong- eller kampanjkoder under checkout.5
Add advanced controls (optional)
-
stringAnger betalningsvalutan. Standardvärdet är faktureringslandets valuta.
-
booleanstandard:"true"Visa eller dölj valutaväljaren.
-
numberFastställer det debiterade beloppet i större valutaenheter (t.ex.
12.5för 12,50 USD). Gäller endast Pay What You Want-produkter. Värdet ignoreras om det understiger produktens minimipris. -
stringAnpassade metadatafält (t.ex.
metadata_orderId=123).
6
Share the link
Skicka den färdiga betalningslänken till din kund. När kunden besöker länken samlas alla frågeparametrar in och lagras med ett sessions-ID. URL:en förenklas sedan till att endast innehålla sessionsparametern (t.ex.
?session=sess_1a2b3c4d). Den lagrade informationen finns kvar vid siduppdateringar och är tillgänglig under hela checkoutprocessen.Kundens checkoutupplevelse är nu smidigare och personanpassad utifrån dina parametrar.
4. Dynamiska betalningslänkar
Skapas via ett API-anrop eller vårt SDK med kunduppgifter. Här är ett exempel: Det finns två API:er för att skapa dynamiska betalningslänkar:- One-time Payment Link API API-referens
- Subscription Payment Link API API-referens
Se till att du skickar
payment_link = true för att få betalningslänken - Node.js SDK
- Python SDK
- Go SDK
- Api Reference
När du har skapat betalningslänken omdirigerar du dina kunder så att de kan slutföra betalningen.
Implementera webhooks
Konfigurera en API-slutpunkt för att ta emot betalningsaviseringar. Här är ett exempel med Next.js:Händelser att lyssna efter
Aktiverapayload.type och hantera de händelser som är relevanta för ett engångsbetalningsflöde. Lyssna som minst efter:
Om du säljer digitala produkter med licensnycklar ska du även hantera
license_key.created. En fullständig lista över händelser — inklusive händelser för prenumerationer, rättigheter, krediter, återställning och kravhantering — finns i guide till webhookhändelser.
Du kan hänvisa till detta projekt med en demoimplementation på GitHub som använder Next.js och TypeScript.
Du kan se den aktiva implementationen här.
Viktigt att känna till om Checkout och valutor
Checkoutsessioner upphör efter 24 timmar (15 minuter när
confirm: true), och varje checkout_url är avsett att användas en gång — skapa en ny session för varje kund och betalningsförsök i stället för att återanvända en länk.Återkommande köp med ett klick. För en återkommande kund med en sparad betalningsmetod skickar du
payment_method_id tillsammans med confirm: true för att debitera direkt och helt hoppa över valet av metod.Relaterad API-referens
Create Checkout Session
API-referens för att skapa säkra, hostade checkoutsessioner för engångsbetalningar och prenumerationer
Create Payment Link
API-referens för att programmatiskt skapa dynamiska betalningslänkar