Skip to main content
Le SDK Rust offre un accès pratique et orienté async à l’API REST de Dodo Payments à partir d’applications écrites en Rust. Il propose des requêtes et réponses fortement typées, des assistants de pagination intégrés, et des délais et environnements configurables.

Installation

Ajoutez le SDK à votre projet avec Cargo :
Ou ajoutez-le manuellement à votre Cargo.toml :
Le SDK nécessite Rust 1.75 ou plus récent, exploitant les fonctionnalités modernes async pour des performances optimales.

Démarrage rapide

Le client lit par défaut votre clé API à partir de la variable d’environnement DODO_PAYMENTS_API_KEY. Initialisez le client et créez votre première session de paiement :
Stockez toujours vos clés API en toute sécurité en utilisant des variables d’environnement. Ne les codez jamais en dur dans votre code source.

Fonctionnalités principales

Async First

Basé sur Tokio et reqwest avec support async/await tout au long

Strong Typing

Requêtes et réponses fortement typées pour une sécurité à la compilation

Auto-Pagination

Diffusez chaque élément à travers les pages ou avancez une page à la fois

Configurable

Configurez des environnements, délais et URLs de base par client

Configuration

Variables d’environnement

Par défaut, Client::from_env() lit votre clé API à partir de la variable d’environnement DODO_PAYMENTS_API_KEY et utilise l’URL de base par défaut sauf si vous la définissez avec DODO_PAYMENTS_BASE_URL :
Vous pouvez aussi configurer le client explicitement. Client::new retourne un Result, alors déverrouillez-le avec ? dans une fonction qui retourne dodopayments::Result :

Environnements

L’URL de base par défaut est https://live.dodopayments.com. Sélectionnez un autre environnement avec l’énumération Environment au lieu de coder les URLs en dur :
Pour continuer à lire la clé API depuis DODO_PAYMENTS_API_KEY via from_env() tout en visant un environnement non par défaut, remplacez-le dans la configuration :

Délais

Le délai par défaut des requêtes est de 30 secondes. Remplacez-le par client :

Opérations courantes

Créer une session de paiement

Générez une session de paiement :

Gérer les clients

Créez et récupérez les informations des clients :

Gérer les abonnements

Créez et gérez des abonnements récurrents :
POST /subscriptions (the SDK’s subscriptions.create method) est obsolète. Il fonctionne toujours pour les intégrations existantes, mais les nouvelles intégrations doivent créer des abonnements via une Checkout Session.
billing nécessite au minimum le code ISO country à deux lettres. customer est une énumération CustomerRequest — transmettez AttachExisting pour un client existant ou New pour un nouveau client. Les champs de montant tels que product_price sont exprimés dans la plus petite unité monétaire (par exemple, 2500 = 25,00 $ USD).

Facturation à l’utilisation

Ingérer des événements d’utilisation

Suivez les événements personnalisés :

Lister les événements d’utilisation

Pagination

Les endpoints de liste renvoient une page typée dont le champ items contient la page actuelle de résultats. Parcourez tous les éléments de toutes les pages avec into_stream :
Vous pouvez aussi avancer d’une page à la fois avec get_next_page :

Gestion des erreurs

Chaque méthode renvoie un dodopayments::Result<T>. Les échecs sont représentés par l’énumération dodopayments::Error. Faites une correspondance sur cette énumération pour gérer les erreurs d’API distinctement des erreurs de transport :

Endpoints non documentés

Pour appeler un endpoint qui n’est pas encore exposé en tant que méthode typée, utilisez le builder bas niveau request, qui applique l’authentification et l’URL de base :

Ressources

GitHub Repository

Afficher le code source et contribuer

Crates.io

Afficher le crate publié et les versions

API Reference

Documentation complète de l’API

Discord Community

Obtenir de l’aide et échanger avec les développeurs

Assistance

Besoin d’aide avec le SDK Rust ?

Contribuer

Les contributions sont les bienvenues ! Consultez les instructions de contribution pour commencer.
Dernière modification le 17 août 2026