Saltar al contenido principal

Nuevas Características

1. Reintentos de Pago de Suscripción

Los pagos de renovación de suscripción fallidos ahora pueden ser reintentados automáticamente para recuperar ingresos, sin requerir integración. Actívalo desde Configuración → Recuperación, establece un periodo de recuperación, y Dodo Payments reintenta la renovación en un horario inteligente hasta que tenga éxito o el periodo termine.
Página de Configuraciones de Recuperación con el interruptor para activar Reintentos de Pago y un campo de Ventana de Recuperación (días)
ConfiguraciónDescripciónPredeterminado
Activar Reintentos de PagoReintentar automáticamente los pagos de renovación de suscripción fallidos para recuperar ingresos.Desactivado (opt-in)
Ventana de recuperación (días)Cuánto tiempo seguir intentando un pago fallido antes de rendirse (1–30).13
Cómo funciona
  1. Un pago de renovación de suscripción falla y la suscripción pasa a on_hold.
  2. Si el rechazo es reintentable (un rechazo suave como fondos insuficientes o un error de red temporal), el siguiente intento se programa automáticamente.
  3. Los reintentos se realizan fuera de sesión en un horario escalonado, limitado por tu ventana de recuperación.
  4. En el primer reintento exitoso, la suscripción vuelve a active y la siguiente fecha de facturación se adelanta de manera normal.
Horario de reintentos Los reintentos retroceden progresivamente, anclados al momento en que se creó la factura fallida. Se hacen hasta 8 intentos, siempre que entren dentro de tu ventana de recuperación:
IntentoRetraso después del anterior
112 horas
224 horas
348 horas
472 horas
596 horas
6120 horas
77 días
87 días
Solo se reintentan los rechazos suaves (p. ej. fondos insuficientes, rechazo genérico, errores de procesamiento o red). Los rechazos duros terminan inmediatamente la cadena de reintentos, ya que reintentarlos no cambiará el resultado.
Esto complementa las herramientas de recuperación existentes — Subscription Dunning envía un correo al cliente para actualizar su método de pago, mientras que Payment Retries reintenta silenciosamente el existente. Funcionan bien juntos. Más información: Reintentos de Pago de Suscripción | Subscription Dunning

2. Configuración de Prorrateo Empresarial

Ahora puedes establecer el comportamiento predeterminado de actualización y degradación una vez a nivel empresarial en lugar de pasar parámetros de prorrateo en cada cambio de plan. Estos valores predeterminados se aplican siempre que un cliente cambia su plan desde el portal del cliente, y puedes anularlos por colección de productos.
Configuraciones predeterminadas de comportamiento de actualización y degradación en el panel con controles separados para actualizaciones, degradaciones y fallas de pago
Cada dirección (actualización y degradación) tiene dos controles independientes, además de una política de fallo de pago compartida:
ConfiguraciónCampoPredeterminado (actualización)Predeterminado (degradación)
Cuándo inicia el nuevo planeffective_at_on_upgrade / effective_at_on_downgradeimmediatelynext_billing_date
Cómo se cobra al clienteproration_billing_mode_on_upgrade / proration_billing_mode_on_downgradedifference_immediatelydifference_immediately
Si el pago del cliente fallaon_payment_failureapply_changeapply_change
Cuándo inicia el nuevo plan (effective_at)
ValorComportamiento
immediatelyEl cliente pasa al nuevo plan de inmediato.
next_billing_dateEl cliente permanece en su plan actual hasta la próxima fecha de facturación, luego cambia al nuevo.
Cómo se cobra al cliente (proration_billing_mode)
ValorComportamiento
prorated_immediatelyCobrar ahora una cantidad prorrateada, basada en el tiempo restante en el ciclo de facturación actual.
full_immediatelyCobrar el precio completo del nuevo plan ahora mismo.
difference_immediatelyCobrar solo la diferencia de precio entre el nuevo plan y el actual.
do_not_billNo cobrar nada ahora. Cualquier ajuste se aplica en la próxima factura.
Si el pago del cliente falla (on_payment_failure)
ValorComportamiento
prevent_changeMantener al cliente en su plan actual si el pago no se procesa.
apply_changePasar al cliente al nuevo plan incluso si el pago no se procesa. Puedes cobrar el monto más tarde.
Excepciones por colección Cada colección de productos puede anular cualquiera de estos valores predeterminados. Cada campo es independiente — déjalo en Heredar de la empresa para seguir el valor predeterminado de la empresa, o establece un valor explícito para anularlo solo para esa colección.
Sección de anulación del comportamiento de actualización y degradación en una colección de productos, con cada campo por defecto en 'Heredar de la empresa'
Cada configuración se resuelve en este orden:
per-request value (Change Plan API) → collection field (if set) → business field → system default
Un valor por solicitud pasado a la API de Cambio de Plan (proration_billing_mode, effective_at, on_payment_failure) siempre tiene prioridad sobre los valores predeterminados de la colección y la empresa. Las nuevas configuraciones solo cambian lo que sucede cuando no se suministra un valor explícito, que es el caso para todos los cambios de plan en el portal del cliente.
Más información: Actualización y Degradación de Suscripción | Colecciones de Productos

3. Recoger Nombre de Empresa para Facturas B2B

Los clientes B2B ahora pueden tener su nombre comercial legal en la factura en lugar del nombre personal del comprador. Cuando se proporciona un ID Fiscal válido al finalizar la compra, también puedes recopilar el asociado customer_business_name para que la factura refleje la entidad compradora.
Página de pago con el interruptor 'Comprando como empresa' activado, mostrando los campos Nombre de Empresa y Número de ID Fiscal
Cuando el cliente selecciona Comprando como empresa al finalizar la compra, se le solicita tanto un Nombre de Empresa como un Número de ID Fiscal. El nombre de la empresa aparece en la factura solo cuando se cumplen las tres condiciones:
  1. La transacción es B2B (b2b = true)
  2. Se presenta un tax_id
  3. Se proporciona un customer_business_name no vacío
De lo contrario, se usa el nombre personal del cliente. Recogiéndolo al finalizar la compra Configura customer_business_name directamente, y/o habilita allow_customer_editing_business_name para permitir que el cliente lo ingrese o edite en la página de pago junto a su ID Fiscal:
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  customer: { email: 'buyer@acme.com' },
  tax_id: 'GB123456789',
  customer_business_name: 'Acme Corp Ltd',
  feature_flags: {
    allow_tax_id: true,
    allow_customer_editing_business_name: true // let the customer enter/edit it
  },
  return_url: 'https://yoursite.com/return'
});
Dónde se aplica
SuperficieCampoNotas
Sesiones de Pagocustomer_business_name, feature_flags.allow_customer_editing_business_nameMáx. 250 caracteres; la bandera por defecto es false
Pagoscustomer_business_nameMáx. 250 caracteres
Suscripcionescustomer_business_nameEstablecer o borrar vía PATCH /subscriptions/{id}
customer_business_name no se puede configurar sin un tax_id. Enviar un nombre comercial sin un ID Fiscal es rechazado. Borrar el tax_id también borra el nombre comercial, ya que están acoplados en la factura.
El espacio en blanco circundante se recorta, y los valores que solo contienen espacio en blanco se tratan como un claro explícito, por lo que los datos almacenados siempre coinciden con lo que se ve en la factura.
Más información: Pagos B2B | Gestión de Facturas | Sesión de Pago

Correcciones de Errores y Mejoras

  • Correcciones de errores menores y mejoras de estabilidad en toda la plataforma.
Last modified on June 9, 2026