Skip to main content
El SDK de C# proporciona a las aplicaciones .NET acceso tipado a la API REST de Dodo Payments. Cada método de la API es asíncrono y devuelve un Task, las solicitudes y respuestas son clases tipadas, y el cliente reintenta las solicitudes fallidas por ti.

Instalación

Instala el paquete desde NuGet:
El SDK requiere .NET Standard 2.0 o posterior, y también incluye una compilación para .NET 8. Funciona con ASP.NET Core, aplicaciones de consola y otros tipos de proyectos .NET. Los ejemplos de esta página usan la sintaxis de C# 12, como las expresiones de colección.

Inicio Rápido

Crea un cliente y, después, crea una sesión de checkout:
Si no estableces BearerToken, el cliente lee la variable de entorno DODO_PAYMENTS_API_KEY. Si no estableces BaseUrl ni DODO_PAYMENTS_BASE_URL, el cliente se conecta al modo live. Para usar el modo test, consulta Entornos. Una clave de API del modo test solo funciona en el modo test.
Guarda las claves de API en variables de entorno, secretos de usuario o Azure Key Vault. Nunca las incluyas directamente en el código fuente ni las confirmes en el control de versiones.

Funciones principales

Async/Await

Cada método de la API devuelve un Task y acepta un CancellationToken opcional.

Strong Typing

Clases tipadas para solicitudes y respuestas, con anotaciones de tipos de referencia anulables.

Smart Retries

Dos reintentos de forma predeterminada, con retroceso exponencial, para errores de conexión y códigos de estado que permiten reintentos.

Error Handling

Una clase de excepción para cada error HTTP habitual, con el código de estado y el cuerpo de la respuesta.

Configuración

Variables de entorno

Guarda tu clave de API en una variable de entorno:
.env
Un cliente creado con new() lee su configuración del entorno:
El cliente lee estas variables de entorno cuando no estableces la propiedad correspondiente: Si no se establece BearerToken ni DODO_PAYMENTS_API_KEY, el cliente lanza DodoPaymentsInvalidDataException. WebhookKey contiene tu secreto de firma de webhook, pero el SDK de C# no tiene ningún método que verifique las firmas de webhook. Para verificarlas, sigue la guía de Webhooks.

Configuración manual

Establece propiedades en el cliente para sobrescribir las variables de entorno:

Entornos

De forma predeterminada, el cliente se conecta al modo live (https://live.dodopayments.com). Para usar el modo test (https://test.dodopayments.com), establece BaseUrl en EnvironmentUrl.TestMode:

Reintentos

El SDK reintenta los errores de conexión y las respuestas con los estados 408, 409, 429 o 500 y superiores. De forma predeterminada, realiza dos reintentos con retroceso exponencial. Establece MaxRetries para cambiar el número de reintentos o establécelo en 0 para desactivar los reintentos:

Tiempos de espera

Cada intento de solicitud agota el tiempo de espera después de 1 minuto de forma predeterminada. El tiempo de espera no incluye los reintentos. Establece Timeout para cambiarlo:

Sobrescrituras por solicitud

Para cambiar la configuración de una sola llamada, llama a WithOptions en el cliente o en un servicio. Devuelve una copia modificada que comparte el mismo grupo de conexiones, y el cliente original no cambia:

Operaciones habituales

Los ejemplos de esta sección usan el client de Inicio rápido.

Crear una sesión de checkout

Crea una sesión de checkout y, después, redirige al cliente al CheckoutUrl devuelto:
Cada URL de checkout funciona una vez y caduca después de 24 horas. Para consultar todas las opciones de sesión, consulta Sesiones de checkout.

Gestionar clientes

Crea un cliente con una dirección de correo electrónico y un nombre y, después, recupéralo por su ID:
Customers.Retrieve también acepta el ID como cadena, por ejemplo client.Customers.Retrieve("cus_123").

Gestionar suscripciones

Crea una suscripción y, después, cárgala si es una suscripción bajo demanda.
POST /subscriptions (el método Subscriptions.Create del SDK) está obsoleto. Sigue funcionando para integraciones existentes, pero las nuevas integraciones deben crear suscripciones mediante una sesión de checkout.
Billing solo requiere Country, un código de país ISO de dos letras. Customer acepta un AttachExistingCustomer para asociar un cliente existente o un NewCustomer para crear uno. Charge es para suscripciones bajo demanda, y ProductPrice está expresado en la unidad monetaria más pequeña.

Gestión de errores

Cuando la API devuelve un estado de error, el SDK lanza una subclase de DodoPaymentsApiException, que tiene las propiedades StatusCode y ResponseBody. La clase de excepción depende del código de estado. Todas las excepciones 4xx heredan de DodoPayments4xxException. Un estado 4xx sin una clase propia, como 409, lanza DodoPayments4xxException. DodoPaymentsUnexpectedStatusCodeException cubre los estados fuera de los rangos 4xx y 5xx. El SDK también lanza estas excepciones:
  • DodoPaymentsIOException: Un error de E/S o de red.
  • DodoPaymentsInvalidDataException: El SDK no pudo interpretar los datos de respuesta, por ejemplo, porque falta una propiedad obligatoria.
  • DodoPaymentsException: La clase base de todas las excepciones del SDK.

Paginación

Los métodos de listado devuelven una página de resultados. Puedes iterar sobre cada elemento o avanzar por las páginas manualmente.

Paginación automática

Paginate devuelve un IAsyncEnumerable que obtiene la página siguiente cuando la necesita:

Paginación manual

Para trabajar con una página a la vez, lee Items y, después, llama a HasNext() y Next():
Para establecer el tamaño de página, pasa un PaymentListParams del espacio de nombres DodoPayments.Client.Models.Payments, por ejemplo client.Payments.List(new PaymentListParams { PageSize = 50 }).

Integración con ASP.NET Core

Registra un cliente como singleton en el contenedor de inyección de dependencias y lee la clave de API desde la configuración:
Program.cs
Añade la clave a tu configuración, por ejemplo en appsettings.json:
appsettings.json
En desarrollo, guarda la clave con secretos de usuario en lugar de hacerlo en appsettings.json:

Recursos

NuGet Package

Versiones del paquete y comandos de instalación.

GitHub Repository

Código fuente, versiones y ejemplos.

API Reference

Cada endpoint, parámetro y respuesta.

Discord Community

Haz preguntas y conversa con otros desarrolladores.

Soporte

Para obtener ayuda con el SDK de C#:
Última modificación el 26 de septiembre de 2026