Nuevas funcionalidades
1. Códigos de descuento: descuentos por Amount, programación y reglas de elegibilidad
Los códigos de descuento ya no se limitan a porcentajes. Ahora un código puede deducir un importe fijo, comenzar según una programación, aplicar un precio diferente por moneda y restringir quién puede canjearlo. Descuentos por Amount Configuratype en flat para deducir un importe fijo en lugar de un porcentaje. La deducción se acumula para todo el carrito en vez de aplicarse a cada artículo de línea.

currency_options permite que un mismo código funcione correctamente con todas las monedas en las que vendes. Cada entrada establece, para una sola moneda, el descuento máximo (la deducción en sí para un código Amount, un límite para un código Percentage) y el valor mínimo del carrito. Un descuento Amount requiere al menos una opción de moneda con un valor predeterminado resoluble; las opciones de moneda siguen siendo opcionales para los descuentos Percentage.
Elegibilidad de clientes
customer_eligibility controla quién puede canjear un código:

GET /discounts/{discount_id}/customers para enumerar los clientes asociados, POST /discounts/{discount_id}/customers para asociarlos y DELETE /discounts/{discount_id}/customers/{customer_id} para desvincular uno.
Programación y límites por cliente
Configura starts_at para programar el lanzamiento futuro de un código; si lo dejas sin configurar, el código se mantendrá activo de inmediato y debe ser estrictamente anterior a expires_at. Usa per_customer_usage_limit para limitar la frecuencia con la que un mismo cliente puede canjear un código, como un límite independiente que no puede superar el usage_limit general.
El valor mínimo del carrito siempre se mide con respecto a los precios originales del carrito, nunca al total acumulado a mitad de una combinación. Por lo tanto, el orden de combinación nunca cambia si se alcanza un mínimo.
2. Una experiencia de webhooks renovada
La sección de webhooks del dashboard se ha reconstruido como una experiencia nativa que reemplaza el portal integrado. Ahora todo se encuentra dentro del dashboard, con tablas, filtros y navegación coherentes, y funciona correctamente en dispositivos móviles.- Endpoints: crea y edita endpoints en un panel lateral, selecciona tipos de eventos desde un árbol con búsqueda y consulta de un vistazo la tasa de errores de las últimas 24 horas.
- Actividad y logs: observa los intentos de entrega a lo largo del tiempo en el gráfico Actividad de entrega, explora los mensajes entregados y abre una página de detalles del mensaje para inspeccionar el payload y cada intento de entrega, junto con su código de respuesta y duración. Desde allí puedes reproducir cada intento.
- Catálogo de eventos: explora todos los tipos de eventos que envía Dodo Payments, junto con su esquema y un payload de ejemplo.
- Resumen del endpoint: estadísticas de entrega de las últimas 24 horas, el signing secret para consultar o rotar y el historial de reproducciones.
- Pruebas: envía un evento de ejemplo a un endpoint para verificar tu receptor antes de entrar en producción.
- Avanzado: limita la velocidad de entrega, administra los encabezados personalizados enviados con cada solicitud a ese endpoint y edita su transformación.
- Reproducción masiva: en un endpoint, recupera mensajes fallidos, reproduce los que nunca se enviaron o reproduce un intervalo filtrado.
- Alertas por correo electrónico: una nueva pestaña de Configuración donde puedes enumerar las direcciones que deben recibir un correo cuando las entregas a un endpoint comiencen a fallar. Separa varias direcciones con comas y déjalo vacío para desactivar las alertas.
Este cambio solo afecta al dashboard. Tus endpoints existentes, signing secrets, verificación de firmas, nombres de eventos y payloads no cambian; no se requiere trabajo de integración.
3. Cash App Pay para suscripciones
Cash App Pay ahora puede respaldar una suscripción recurrente, no solo un pago único. Está disponible en checkouts de EE. UU. facturados en USD, junto con las opciones de tarjeta existentes. Más información: Billeteras digitales4. SEPA Direct Debit
SEPA Direct Debit ya está disponible en toda la eurozona, lo que permite a los clientes pagar directamente desde su cuenta bancaria en lugar de usar una tarjeta. Se ofrece en checkouts en EUR para pagos únicos. Más información: Métodos de pago europeos5. Mensajes de error de pago más claros
Cuando un pago falla, tú y tu cliente ahora ven un texto redactado específicamente para la situación en lugar del texto sin procesar del procesador. Cada error se resuelve mediante una taxonomía de 46 códigos de error unificados, cada uno asignado a dos audiencias:- Tú ves un encabezado y una acción recomendada en el pago, para saber si debes pedirle al cliente que vuelva a intentarlo, se ponga en contacto con su banco o use otra tarjeta.
error_messageen el objeto Payment ahora contiene este texto cuandoerror_codees un código unificado reconocido. - Tu cliente ve una explicación en lenguaje sencillo en la pantalla de error del checkout, en Customer Portal y en los correos electrónicos de dunning; por ejemplo, “El código de seguridad de tu tarjeta (CVC) no parece correcto. Vuelve a introducirlo e inténtalo de nuevo.”
6. Permite que los clientes cancelen sus propias suscripciones
Permitir la cancelación de suscripciones ahora es una configuración de primer nivel en la pestaña Suscripciones de la configuración del dashboard y se aplica de principio a fin. Cuando la desactivas, Customer Portal deshabilita el botón de cancelación y la API rechaza la cancelación iniciada por el cliente con un403, tanto para la cancelación inmediata como para el flujo de “cancelar en la próxima fecha de facturación”. Antes, la configuración solo ocultaba el botón, por lo que un cliente decidido aún podía cancelar mediante la API.
La configuración está habilitada de forma predeterminada. Tus propias cancelaciones mediante la API del merchant y el dashboard nunca se ven afectadas, y un cliente siempre puede revocar una cancelación que ya haya programado.
Más información: Customer Portal | Suscripciones
7. Webhooks de payouts
Ahora recibes webhooks para tus propios payouts, de modo que puedes conciliarlos en tus sistemas contables sin hacer polling.payout.created se emitía anteriormente como payout.not_initiated. Si un endpoint existente filtra por payout.not_initiated, actualiza el filtro a payout.created para que siga coincidiendo. El campo status del payload sigue informando not_initiated en esta etapa.8. Cambia tu correo electrónico de inicio de sesión desde el dashboard
Ahora puedes cambiar la dirección de correo electrónico con la que inicias sesión sin contactar con soporte. La pestaña Cuenta se ha rediseñado e incluye una nueva sección Cambiar correo electrónico, con un botón Cambiar correo electrónico que inicia el proceso. La verificación se realiza en dos pasos: enviamos un código a tu dirección actual para confirmar que eres tú y, después, un segundo código a tu dirección nueva para confirmar que tienes control sobre ella. Una vez verificadas ambas:- Iniciarás sesión con la nueva dirección a partir de ese momento. La dirección anterior dejará de funcionar para contraseñas, magic links y códigos enviados por correo electrónico.
- Cualquier proveedor de identidad vinculado, como el inicio de sesión de Google o GitHub, se desvinculará y deberá volver a conectarse.
- Tu contraseña, negocios, acceso del equipo y estado de verificación no cambian.
- Se envía una notificación a tu dirección anterior para que un cambio inesperado nunca pase desapercibido.
9. Analytics: nuevos widgets y mejoras
Sobre la base de la renovación de Analytics v3, esta versión incorpora nuevas visualizaciones y perfecciona las existentes.- Los ingresos por país ahora se muestran en un mapa coroplético de ancho completo, con la lista de países ordenada a su lado; la tarjeta se puede compartir como el resto.
- Gráficos de tendencias rediseñados con cursor de precisión al pasar el ratón, una etiqueta de fecha desplazable en el eje x y un tooltip compacto.
- Nuevos preajustes de fecha: Últimos 30 días reemplaza a Últimas 4 semanas y Últimos 6 meses se añade a la lista.
- Tus filtros se conservan. El preajuste de fecha y el modo de comparación ahora persisten por negocio y te siguen entre dispositivos, en lugar de restablecerse a los valores predeterminados en cada sesión.
- Los clientes principales se identifican por nombre, con el correo electrónico como alternativa.
- Los ingresos por país ahora devuelven hasta los 150 principales países.
Mejoras y correcciones de errores
10. Filtra los pagos por moneda
GET /payments acepta un parámetro de consulta opcional currency, para que puedas enumerar solo los pagos liquidados en una moneda determinada; por ejemplo, GET /payments?currency=EUR. El mismo filtro está disponible en la tabla Payments del dashboard.
Más información: Enumerar pagos
11. El plazo de respuesta a disputas se amplía a 10 días
Ahora tienes 10 días para responder a una disputa después de su creación, frente a los 4 días anteriores. La cuenta atrás de la disputa en tu dashboard y la fecha límite de respuesta devuelta por la API reflejan el plazo ampliado. Más información: Disputas12. Formularios más claros para cuentas bancarias de payouts
Añadir una cuenta bancaria para payouts es menos ambiguo. Las etiquetas de los campos, las descripciones y los tooltips ahora se adaptan al tipo de negocio, por lo que el nombre del titular de la cuenta y el del beneficiario dejan de parecer duplicados para los empresarios individuales. Si eliges Otro como banco, puedes escribir el nombre libremente; el código bancario nacional de China aparece etiquetado como CNAPS, y la página de payouts sigue visible en modo de prueba para que puedas acceder a tus cuentas vinculadas desde cualquiera de los dos modos. Más información: Proceso de payoutsOtras correcciones y mejoras
- Los créditos por cambios de plan se revierten cuando falla un pago. Los créditos de prorrateo emitidos durante un cambio de plan de suscripción ya no permanecen si el pago resultante no tiene éxito.
- Las facturas de pruebas pagadas muestran el cargo de la prueba, no el precio recurrente habitual.
- Los descuentos porcentuales respetan el valor mínimo del carrito, medido con respecto al precio base y no al total acumulado; además, el tiempo de espera de bloqueo de un descuento ahora devuelve un código de error distinto en lugar de un
503genérico. - Eliminar un método de pago ya eliminado ahora tiene éxito en lugar de devolver un error, lo que hace que la llamada sea idempotente de forma segura.
- Se ha corregido la moneda utilizada para el mínimo del mandato de India al actualizar el método de pago de una suscripción.
- Las entradas del ledger de crédito que superan los límites permitidos se rechazan con un
400tipado en lugar de fallar posteriormente. - Los productos Pay-what-you-want admiten un importe fijo en enlaces de checkout compartidos, y los ID de entitlement se muestran en el panel de detalles del entitlement.
- Correcciones de Analytics: series de valor de vida del cliente, add-ons incluidos en MRR, ausencia de comparación de periodos en intervalos de todo el tiempo, series que se detienen en el bucket actual y etiquetas de intervalo y comparación más claras.
- Correcciones menores de errores y mejoras de estabilidad en toda la plataforma.