Hoppa till huvudinnehåll
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:
billing kräver minst den tvåbokstaviga ISO-koden country. customer är en CustomerRequest enum — pass AttachExisting för en befintlig kund eller New för en ny. Beloppsfält som product_price är i den lägsta valutadenominationen (t.ex., 2500 = $25.00 USD).

Användningsbaserad Fakturering

Samla in Användningshändelser

Spåra anpassade händelser:

Lista Användningshändelser

Paginering

Listendpunkter returnerar en typad sida vars items-fält håller den aktuella sidan av resultat. Strömma varje objekt över alla sidor med into_stream:
Eller gå vidare en sida i taget med get_next_page:

Felhantering

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

Odokumenterade Endpunkter

För att anropa en endpunkt som ännu inte exponeras som en typad metod, använd den låg-nivå request-byggaren, som tillämpar autentisering och bas-URL:

Resurser

GitHub Repository

Visa källkod och bidra

Crates.io

Visa det publicerade packet och versionerna

API Reference

Komplett API-dokumentation

Discord Community

Få hjälp och anslut med utvecklare

Support

Behöver du hjälp med Rust SDK?

Bidra

Vi välkomnar bidrag! Kolla in bidragsriktlinjerna för att komma igång.
Senast ändrad 26 juni 2026