Subscriptions let you sell ongoing access with automated renewals. Use flexible billing cycles, free trials, plan changes, and add‑ons to tailor pricing for each customer.
Upgrade & Downgrade
Control plan changes with proration and quantity updates.
On‑Demand Subscriptions
Authorize a mandate now and charge later with custom amounts.
Customer Portal
Let customers manage plans, billing, and cancellations.
Subscription Webhooks
React to lifecycle events like created, renewed, and canceled.
What Are Subscriptions?
Subscriptions are recurring products customers purchase on a schedule. They’re ideal for:- SaaS licenses: Apps, APIs, or platform access
- Memberships: Communities, programs, or clubs
- Digital content: Courses, media, or premium content
- Support plans: SLAs, success packages, or maintenance
Key Benefits
- Predictable revenue: Recurring billing with automated renewals
- Flexible cycles: Monthly, annual, custom intervals, and trials
- Plan agility: Proration for upgrades and downgrades
- Add‑ons and seats: Attach optional, quantifiable upgrades
- Seamless checkout: Hosted checkout and customer portal
- Developer-first: Clear APIs for creation, changes, and usage tracking
Creating Subscriptions
Create subscription products in your Dodo Payments dashboard, then sell them through checkout or your API. Separating products from active subscriptions lets you version pricing, attach add‑ons, and track performance independently.Subscription product creation
Configure the fields in the dashboard to define how your subscription sells, renews, and bills. The sections below map directly to what you see in the creation form.Product details
- Product Name (required): The display name shown in checkout, customer portal, and invoices.
- Product Description (required): A clear value statement that appears in checkout and invoices.
- Product Image (required): PNG/JPG/WebP up to 3 MB. Used on checkout and invoices.
- Brand: Associate the product with a specific brand for theming and emails.
- Tax Category (required): Choose the category (for example, SaaS) to determine tax rules.
Pricing
- Tipo de precio: Elige Subscription (esta guía). Las alternativas son Single Payment y Usage Based Billing.
- Precio (obligatorio): Precio recurrente base con moneda. El precio debe ser de al menos $1 (o el equivalente en la moneda elegida). No se admiten importes inferiores a este mínimo y la suscripción no funcionará.
- Descuento aplicable (%): Descuento porcentual opcional aplicado al precio base; se refleja en el checkout y las facturas.
- Repetir pago cada (obligatorio): Intervalo de las renovaciones, por ejemplo, cada 1 Month. Selecciona la frecuencia (meses o años) y la cantidad.
- Periodo de suscripción (obligatorio): Plazo total durante el que la suscripción permanece activa (por ejemplo, 10 Years). Una vez finalizado este periodo, las renovaciones se detienen salvo que se amplíe.
- Días del periodo de prueba (obligatorio): Define la duración de la prueba en días. Usa 0 para desactivar las pruebas. El primer cobro se realiza automáticamente cuando termina la prueba.
- Importe de prueba: Cargo inicial opcional para una prueba de pago. Déjalo sin establecer para una prueba gratuita. Consulta Pruebas de pago.
- Seleccionar complemento: Añade hasta 10 complementos que los clientes pueden comprar junto con el plan base.
Add‑ons are ideal for quantifiable extras such as seats or storage. You can control allowed quantities and proration behavior when customers change them.
Advanced settings
- Tax Inclusive Pricing: Display prices inclusive of applicable taxes. Final tax calculation still varies by customer location.
- Generate license keys: Issue a unique key to each customer after purchase. See the License Keys guide.
- Digital Product Delivery: Deliver files or content automatically after purchase. Learn more in Digital Product Delivery.
- Metadata: Attach custom key–value pairs for internal tagging or client integrations. See Metadata.
Subscription Trials
Las pruebas permiten a los clientes evaluar una suscripción antes de pagar el precio recurrente completo. Una prueba puede ser gratuita, sin ningún cargo hasta que finalice, o de pago, con un importe reducido cobrado por adelantado. En ambos casos, el precio completo comienza en la primera renovación después de que termina la prueba.Configuring Trials
Set Trial Period Days in the product pricing section (use0 to disable). You can override this when creating subscriptions:
Pruebas de pago
Las pruebas no tienen que ser gratuitas. Define un Importe de prueba en el precio recurrente de un producto de suscripción para cobrar una tarifa inicial reducida durante el periodo de prueba. El precio recurrente completo se aplica en la primera renovación.
trial_amount y trial_period_days para que puedas mostrar el importe adeudado hoy antes de crear la suscripción.
Las pruebas gratuitas no cambian. Dejar Importe de prueba sin establecer mantiene el comportamiento existente: el primer cargo es
0 y el precio completo se cobra cuando termina la prueba.Prevención del uso indebido de pruebas
Prevenir el uso indebido de pruebas impide que los clientes reclamen pruebas repetidamente para el mismo negocio. Cuando está activado, un cliente que ya haya canjeado una prueba pasa automáticamente a una compra de pago sin prueba, en lugar de recibir una prueba nueva.
- Los clientes se comparan mediante un correo electrónico normalizado, eliminando los alias con signo más, por lo que
user+trial@example.comyuser@example.comse consideran la misma persona. - Los canjes se registran en la activación de la prueba, por lo que un cliente que cancele el mismo día igualmente habrá consumido su prueba.
- Los clientes existentes se incorporan usando sus pruebas históricas por correo electrónico, de modo que los usuarios de pruebas anteriores se reconocen inmediatamente.
La configuración está desactivada de forma predeterminada. Consulta Configuración de suscripciones para ver la lista completa de controles de suscripciones a nivel empresarial.
Detección del estado de una prueba
Para determinar si una suscripción de prueba gratuita está en periodo de prueba, recupera la lista de pagos de la suscripción. Si existe exactamente un pago con importe 0, la suscripción está en periodo de prueba:Actualización del periodo de prueba
Amplía la prueba actualizandonext_billing_date:
Cambios del plan de suscripción
Los cambios de plan permiten mejorar o reducir suscripciones, ajustar cantidades o migrar a productos diferentes. Según el modo de prorrateo que selecciones, un cambio puede activar un cargo inmediato, crear un crédito o no aplicar ningún ajuste de facturación.Product Collections
Agrupa productos relacionados en colecciones para habilitar rutas fluidas de mejora y reducción en el Customer Portal.
Modos de prorrateo
Elige cómo se factura a los clientes cuando cambian de plan:Comparación rápida de los cuatro modos de prorrateo:
prorated_immediately
Cobra un importe prorrateado según el tiempo restante del ciclo de facturación actual. Ideal para una facturación justa que tenga en cuenta el tiempo no utilizado.
difference_immediately
Cobra inmediatamente la diferencia de precio (mejora) o añade crédito para futuras renovaciones (reducción). Ideal para situaciones sencillas de mejora o reducción.
Los créditos de las reducciones que usan
difference_immediately están vinculados al ámbito de la suscripción y se aplican automáticamente a futuras renovaciones. Son distintos de las ventajas de Credit-Based Billing.difference_immediately, el valor no utilizado se convierte en un crédito vinculado a la suscripción que compensa automáticamente futuras renovaciones:
full_immediately
Cobra inmediatamente el importe completo del nuevo plan, ignorando el tiempo restante. Ideal para reiniciar los ciclos de facturación.
do_not_bill
Cambia al nuevo plan sin ningún ajuste de facturación. No hay cargos de prorrateo ni créditos: el cliente simplemente pasa al nuevo plan. Ideal para migraciones de cortesía, cambios a planes gratuitos o situaciones en las que quieras asumir la diferencia de coste.
Example: Prorated upgrade calculation
Example: Prorated upgrade calculation
Escenario: Un cliente del plan Basic (80/mes) el día 16 de un ciclo de 30 días usando Próxima renovación el 15 de febrero (16 de enero + 30 días): $80.00/mes.
prorated_immediately.Example: Downgrade credit calculation
Example: Downgrade credit calculation
Escenario: Un cliente del plan Pro (20/mes) usando El crédito de $60 se aplica automáticamente a futuras renovaciones:
difference_immediately.- Renovación 1: 20 (crédito) = **40 de crédito)
- Renovación 2: 20 (crédito) = **20 de crédito)
- Renovación 3: 20 (crédito) = $0.00 (crédito agotado)
- Renovación 4: $20.00 (precio completo)
Obtén más información sobre la gestión de créditos en la guía de mejoras y reducciones.
Cambiar de plan con complementos
Modifica los complementos al cambiar de plan. Los complementos se incluyen en los cálculos de prorrateo:Los cambios de plan activan cargos inmediatos. Los cargos fallidos pueden mover la suscripción al estado
on_hold. Haz seguimiento de los cambios mediante eventos de webhook subscription.plan_changed.Vista previa de los cambios de plan
Antes de confirmar un cambio de plan, previsualiza el cargo exacto y la suscripción resultante:Preview Change Plan API
Previsualiza los cambios de plan antes de confirmarlos.
Estados de la suscripción
Una suscripción pasa por un conjunto definido de estados durante su vida útil. Esta tabla sirve de referencia para cada estado, qué lo provoca y cómo (o si) puedes recuperarlo.Máquina de estados
Estado en espera
Una suscripción entra en el estadoon_hold cuando:
- Falla un pago de renovación (fondos insuficientes, tarjeta caducada, etc.)
- Falla un cargo por cambio de plan
- Falla la autorización del método de pago
Reactivación desde el estado en espera
Para reactivar una suscripción desde el estadoon_hold, actualiza el método de pago. Esto automáticamente:
- Crea un cargo por las cantidades pendientes
- Genera una factura
- Procesa el pago usando el nuevo método de pago
- Reactiva la suscripción al estado
activecuando el pago se realiza correctamente
Después de actualizar correctamente el método de pago de una suscripción
on_hold, recibirás eventos de webhook payment.succeeded seguidos de subscription.active.Eventos de webhook por transición
Cada transición emite un webhook para que puedas gestionar la lógica de las ventajas sin realizar consultas periódicas:Subscription Webhook Payloads
Consulta el esquema completo de carga útil para los eventos del ciclo de vida de las suscripciones.
Gestión de API
Create subscriptions
Create subscriptions
Usa
POST /subscriptions para crear suscripciones mediante programación a partir de productos, con pruebas y complementos opcionales.API Reference
Consulta la API de creación de suscripciones.
Update subscriptions
Update subscriptions
Usa
PATCH /subscriptions/{id} para actualizar cantidades, cancelar en la próxima fecha de facturación o modificar metadatos.API Reference
Descubre cómo actualizar los detalles de una suscripción.
Change plans (proration)
Change plans (proration)
Cambia el producto activo y las cantidades con controles de prorrateo.
API Reference
Revisa las opciones de cambio de plan.
On‑demand charges
On‑demand charges
Para suscripciones bajo demanda, cobra importes específicos cuando sea necesario.
API Reference
Cobra una suscripción bajo demanda.
List and retrieve
List and retrieve
Usa
GET /subscriptions para listar todas las suscripciones y GET /subscriptions/{id} para recuperar una.API Reference
Consulta las API de listado y recuperación.
Usage history
Usage history
Obtén el uso registrado para modelos de precios medidos o híbridos.
API Reference
Consulta la API del historial de uso.
Update payment method
Update payment method
Actualiza el método de pago de una suscripción. En las suscripciones activas, esto actualiza el método de pago para futuras renovaciones. En las suscripciones en estado
on_hold, reactiva la suscripción creando un cargo por las cantidades pendientes.Al generar un nuevo enlace de método de pago (el tipo de solicitud New), puedes pasar allowed_payment_method_types para restringir los métodos de pago que el cliente ve en esa página. Los clientes nunca verán un método que no esté en la lista, aunque incluir un método no garantiza que aparezca (la disponibilidad también depende de factores como la ubicación del cliente y la configuración de tu negocio).API Reference
Descubre cómo actualizar métodos de pago y reactivar suscripciones.
Casos de uso comunes
- SaaS y API: Acceso por niveles con complementos para puestos o uso
- Contenido y medios: Acceso mensual con pruebas introductorias
- Planes de soporte B2B: Contratos anuales con complementos de soporte premium
- Herramientas y plugins: Claves de licencia y versiones publicadas
Ejemplos de integración
Sesiones de checkout (suscripciones)
Al crear sesiones de checkout, incluye tu producto de suscripción y los complementos opcionales:Cambios de plan con prorrateo
Mejora o reduce una suscripción y controla el comportamiento del prorrateo:Cancelar en la próxima fecha de facturación
Programa una cancelación que entre en vigor al final del periodo de facturación actual:Ampliar el periodo de suscripción
Amplía la duración de una suscripción pasando un nuevosubscription_period_count y subscription_period_interval a PATCH /subscriptions/{id}. La fecha de caducidad de la suscripción se vuelve a calcular a partir del nuevo número y el intervalo; por ejemplo, para conceder a un cliente tiempo adicional en su plan actual:
El periodo de una suscripción solo se puede aumentar, nunca acortar.
Suscripciones bajo demanda
Crea una suscripción bajo demanda y cobra más adelante según sea necesario:Actualizar el método de pago de una suscripción activa
Actualiza el método de pago de una suscripción activa:Reactivar una suscripción desde on_hold
Reactiva una suscripción que quedó en espera debido a un pago fallido:Suscripciones con mandatos conformes con RBI
Las suscripciones de UPI y tarjetas de India operan conforme a las normativas de RBI (Reserve Bank of India), con requisitos específicos para los mandatos:Límites de los mandatos
El tipo y el importe del mandato dependen del cargo recurrente de tu suscripción:- Cargos inferiores al umbral del mandato (₹15,000 de forma predeterminada): Creamos un mandato bajo demanda por el importe del umbral. El importe de la suscripción se cobra periódicamente según la frecuencia de la suscripción, hasta el límite del mandato.
- Cargos iguales o superiores al umbral del mandato: Creamos un mandato de suscripción (o un mandato bajo demanda) por el importe exacto de la suscripción.
mandate_min_amount_inr_paise (paise de INR). El importe registrado en el banco es max(mandate_floor, billing_amount); por tanto, el umbral se convierte efectivamente en el límite de autorización que ve el cliente cuando la facturación es inferior.
Para obtener información detallada sobre los mandatos conformes con RBI y el umbral configurable de los mandatos para métodos de pago de India, consulta la página Métodos de pago de India.
Consideraciones sobre mejoras y reducciones
Importante: Al mejorar o reducir suscripciones, considera detenidamente los límites de los mandatos:- Si una mejora o reducción da como resultado un importe de cargo superior a Rs 15,000 y supera el límite de pago bajo demanda existente, el cargo de la transacción puede fallar.
- En esos casos, el cliente puede tener que actualizar su método de pago o volver a cambiar la suscripción para establecer un mandato nuevo con el límite correcto.
Autorización para cargos de importe elevado
Para cargos de suscripción de Rs 15,000 o más:- El banco solicitará al cliente que autorice la transacción.
- Si el cliente no autoriza la transacción, esta fallará y la suscripción se pondrá en espera.
Retraso de procesamiento de 48 horas
Cronología del procesamiento: Los cargos recurrentes de las tarjetas de India y las suscripciones de UPI siguen un patrón de procesamiento específico:- Los cargos se inician en la fecha programada según la frecuencia de la suscripción.
- La deducción real de la cuenta del cliente solo se produce después de 48 horas desde el inicio del pago.
- Esta ventana de 48 horas puede ampliarse hasta 2-3 horas adicionales según las respuestas de la API del banco.
Ventana de cancelación del mandato
Durante la ventana de procesamiento de 48 horas:- Los clientes pueden cancelar el mandato mediante sus aplicaciones bancarias.
- Si un cliente cancela el mandato durante este periodo, la suscripción permanecerá activa (es un caso límite específico de las suscripciones de tarjetas de India y UPI AutoPay).
- Sin embargo, la deducción real puede fallar y, en ese caso, pondremos la suscripción en espera.
- Retrasar la activación de ventajas hasta la confirmación del pago
- Implementar periodos de gracia o acceso temporal
- Supervisar el estado de la suscripción para detectar cancelaciones de mandatos
- Gestionar los estados de suscripción en espera en la lógica de tu aplicación
Prácticas recomendadas
- Comienza con niveles claros: 2–3 planes con diferencias evidentes
- Comunica los precios: Muestra los totales, el prorrateo y la próxima renovación
- Usa las pruebas con criterio: Convierte clientes mediante la incorporación, no solo mediante el tiempo
- Aprovecha los complementos: Mantén sencillos los planes base y ofrece extras
- Prueba los cambios: Valida los cambios de plan y el prorrateo en modo de prueba
Las suscripciones son una base flexible para los ingresos recurrentes. Empieza de forma sencilla, prueba exhaustivamente y realiza iteraciones según las métricas de adopción, abandono y expansión.