Saltar al contenido principal
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:
billing requiere al menos el código ISO country de dos letras. customer es una enumeración CustomerRequest — pasa AttachExisting para un cliente existente o New para uno nuevo. Los campos de cantidad como product_price están en la denominación de moneda más baja (por ejemplo, 2500 = $25.00 USD).

Facturación Basada en Uso

Ingestar Eventos de Uso

Rastrea eventos personalizados:

Listar Eventos de Uso

Paginación

Las funciones de listado devuelven una página tipada cuyo campo items contiene la página actual de resultados. Recorre cada elemento a través de todas las páginas con into_stream:
O avanza una página a la vez con get_next_page:

Manejo de Errores

Cada método devuelve un dodopayments::Result<T>. Los fallos se representan mediante la enumeración dodopayments::Error. Haz un match en él para manejar los errores de API de manera distinta a los errores de transporte:

Endpoints No Documentados

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

Recursos

GitHub Repository

Ver código fuente y contribuir

Crates.io

Ver el crate publicado y sus versiones

API Reference

Documentación completa de la API

Discord Community

Obtén ayuda y conéctate con desarrolladores

Soporte

¿Necesitas ayuda con el SDK de Rust?

Contribuyendo

¡Damos la bienvenida a las contribuciones! Revisa las directrices de contribución para comenzar.
Última modificación el 26 de junio de 2026