Skip to main content
Rust SDK ger bekväm, async-first tillgång till Dodo Payments REST API från applikationer skrivna i Rust. Det erbjuder starkt typade requests och svar, inbyggda pagineringshjälpare och konfigurerbara tidsgränser och miljöer.

Installation

Lägg till SDK till ditt projekt med Cargo:
Eller lägg till det manuellt i din Cargo.toml:
SDK kräver Rust 1.75 eller senare och använder moderna async-funktioner för optimal prestanda.

Snabbstart

Klienten läser din API-nyckel från miljövariabeln DODO_PAYMENTS_API_KEY som standard. Initiera klienten och skapa din första checkout-session:
Förvara alltid dina API-nycklar säkert med miljövariabler. Hårdkoda dem aldrig i din källkod.

Kärnfunktioner

Async First

Byggd på Tokio och reqwest med async/await-stöd genomgående

Strong Typing

Starkt typade requests och svar för säkerhet vid kompilering

Auto-Pagination

Strömma varje objekt över sidor eller gå vidare en sida i taget

Configurable

Konfigurera miljöer, tidsgränser och bas-URL:er per klient

Konfiguration

Miljövariabler

Som standard läser Client::from_env() din API-nyckel från miljövariabeln DODO_PAYMENTS_API_KEY och använder standard bas-URL om du inte ställer in DODO_PAYMENTS_BASE_URL:
Du kan också konfigurera klienten explicit. Client::new returnerar en Result, så avkoda den med ? inuti en funktion som returnerar dodopayments::Result:

Miljöer

Standard bas-URL är https://live.dodopayments.com. Välj en annan miljö med enum Environment istället för att hårdkoda URL:er:
För att fortsätta läsa API-nyckeln från DODO_PAYMENTS_API_KEY via from_env() när du riktar in dig på en icke-standardmiljö, åsidosätt den i konfigurationen:

Tidsgränser

Standard tidsgräns för förfrågningar är 30 sekunder. Åsidosätt det per klient:

Vanliga operationer

Skapa en Checkout-session

Generera en checkout-session:

Hantera Kunder

Skapa och hämta kundinformation:

Hantera Prenumerationer

Skapa och hantera återkommande prenumerationer:
POST /subscriptions (SDK:ets subscriptions.create-metod) är föråldrad. Den fungerar fortfarande för befintliga integrationer, men nya integrationer bör skapa prenumerationer via en Checkout Session.
billing kräver minst den tvåbokstavs ISO country-koden. customer är en CustomerRequest-enum — skicka AttachExisting för en befintlig kund eller New för en ny. Beloppsfält som product_price anges i valutans minsta valör (t.ex. 2500 = 25,00 USD).

Förbrukningsbaserad fakturering

Inhämta användningshändelser

Spåra anpassade händelser:

Lista användningshändelser

Paginering

List-endpoints returnerar en typad sida vars items-fält innehåller den aktuella resultatsidan. Strömma varje objekt över alla sidor med into_stream:
Eller gå fram en sida i taget med get_next_page:

Felhantering

Varje metod returnerar en dodopayments::Result<T>. Fel representeras av dodopayments::Error-enumtypen. Matcha mot den för att hantera API-fel separat från transportfel:

Ej dokumenterade endpoints

Om du vill anropa en endpoint som ännu inte är tillgänglig som en typad metod använder du byggverktyget på låg nivå, request, som tillämpar autentisering och bas-URL:

Resurser

GitHub Repository

Visa källkoden och bidra

Crates.io

Visa det publicerade paketet och versionerna

API Reference

Komplett API-dokumentation

Discord Community

Få hjälp och få kontakt med utvecklare

Support

Behöver du hjälp med Rust SDK?

Bidra

Vi välkomnar bidrag! Läs riktlinjerna för bidrag för att komma igång.
Senast ändrad 17 augusti 2026