Skip to main content
El SDK de Rust proporciona acceso conveniente y orientado a asincronía a la API REST de Dodo Payments desde aplicaciones escritas en Rust. Ofrece solicitudes y respuestas fuertemente tipadas, auxiliares de paginación integrados, y límites de tiempo y entornos configurables.

Instalación

Agrega el SDK a tu proyecto con Cargo:
O agrégalo manualmente a tu Cargo.toml:
El SDK requiere Rust 1.75 o posterior, aprovechando características modernas asincrónicas para un rendimiento óptimo.

Inicio Rápido

El cliente lee tu clave API del entorno de la variable DODO_PAYMENTS_API_KEY por defecto. Inicializa el cliente y crea tu primera sesión de pago:
Siempre almacena tus claves API de forma segura usando variables de entorno. Nunca las codifiques directamente en tu código fuente.

Características Principales

Async First

Construido sobre Tokio y reqwest con soporte async/await en todo momento

Strong Typing

Solicitudes y respuestas fuertemente tipadas para seguridad en tiempo de compilación

Auto-Pagination

Recorre cada elemento a través de páginas o avanza una página a la vez

Configurable

Configura entornos, límites de tiempo, y URLs base por cliente

Configuración

Variables de Entorno

Por defecto, Client::from_env() lee tu clave API de la variable de entorno DODO_PAYMENTS_API_KEY y utiliza la URL base predeterminada a menos que configures DODO_PAYMENTS_BASE_URL:
También puedes configurar el cliente explícitamente. Client::new devuelve un Result, así que desenvuélvelo con ? dentro de una función que devuelva dodopayments::Result:

Entornos

La URL base predeterminada es https://live.dodopayments.com. Selecciona otro entorno con la enumeración Environment en lugar de codificar URLs directamente:
Para seguir leyendo la clave API de DODO_PAYMENTS_API_KEY a través de from_env() mientras apuntas a un entorno diferente al predeterminado, sobrescríbelo en la configuración:

Límites de Tiempo

El tiempo de espera predeterminado para solicitudes es de 30 segundos. Sobrescríbelo por cliente:

Operaciones Comunes

Crear una Sesión de Pago

Genera una sesión de pago:

Gestionar Clientes

Crea y recupera información de clientes:

Manejar Suscripciones

Crea y gestiona suscripciones recurrentes:
POST /subscriptions (el método subscriptions.create del SDK) está obsoleto. Sigue funcionando para las integraciones existentes, pero las integraciones nuevas deben crear suscripciones mediante una Checkout Session.
billing requiere como mínimo el código ISO de dos letras country. customer es un enum CustomerRequest; pasa AttachExisting para un cliente existente o New para uno nuevo. Los campos de importe, como product_price, se expresan en la denominación más baja de la moneda (por ejemplo, 2500 = 25,00 USD).

Facturación basada en el uso

Ingerir eventos de uso

Registra eventos personalizados:

Enumerar eventos de uso

Paginación

Los endpoints de lista devuelven una página tipada cuyo campo items contiene la página actual de resultados. Transmite cada elemento de todas las páginas con into_stream:
O avanza una página a la vez con get_next_page:

Gestión de errores

Cada método devuelve un dodopayments::Result<T>. Los fallos se representan mediante el enum dodopayments::Error. Compruébalo para gestionar los errores de la API de forma diferenciada de los errores de transporte:

Endpoints no documentados

Para llamar a un endpoint que aún no esté expuesto como método tipado, usa el builder de bajo nivel request, que aplica la autenticación y la URL base:

Recursos

GitHub Repository

Ver el código fuente y contribuir

Crates.io

Ver el crate publicado y sus versiones

API Reference

Documentación completa de la API

Discord Community

Obtener ayuda y conectar con desarrolladores

Soporte

¿Necesitas ayuda con el Rust SDK?

Contribuciones

¡Damos la bienvenida a las contribuciones! Consulta las directrices para contribuir para comenzar.
Última modificación el 17 de agosto de 2026