Introduction
Dub is a powerful link management platform that helps you create, share, and track short links. By integrating Dodo Payments with Dub, you can automatically track sale conversion events when customers complete purchases, enabling you to measure the ROI of your marketing campaigns and referral programs. A “sale” event is recorded in Dub when a customer:- Completes a one-time payment
- Subscribes to a paid plan
- Makes a recurring subscription payment
This integration requires a Dub account with conversion tracking enabled on your links.
How It Works
Dub tracks visitors through a unique click ID (dub_id) stored in a cookie when users click your Dub short links. To attribute sales to your links, you need to:
- Capture Dub’s click ID from the
dub_idcookie when creating checkout sessions - Store the click ID in your payment metadata along with the customer’s external ID
- Send sale data to Dub when payments succeed using their Track API
Prerequisites
Before setting up this integration, ensure you have:- A Dub account with a workspace
- Conversion tracking enabled for your links
- Your Dub API key (available in your Dub dashboard under Settings → API Keys)
Getting Started
1
Enable Conversion Tracking in Dub
In your Dub dashboard, enable conversion tracking for the links you want to track sales for. This allows Dub to record sale events when customers complete purchases.
Learn more about enabling conversion tracking in the Dub documentation.
2
Get Your Dub API Key
Navigate to your Dub dashboard → Settings → API Keys and create a new API key with
conversions.write scope.3
Capture Click ID in Checkout
When creating a checkout session, capture the Dub click ID from the cookie and add it to your payment metadata.
4
Send Sale Data via Webhook
Configure a webhook to send sale data to Dub’s Track API when payments succeed.
5
Done!
Sale conversion events will now appear in your Dub analytics dashboard with full attribution to your links.
Implementation Guide
Step 1: Add Click ID and Customer ID to Checkout Metadata
When creating a checkout session, capture the Dub click ID from the cookie and include it in your payment metadata along with your customer’s external ID.Los ejemplos a continuación utilizan
POST /payments, que está obsoleto. Sigue funcionando para integraciones existentes, pero las nuevas integraciones deben usar Checkout Sessions (POST /checkouts); metadata se envía de la misma manera.Paso 2: Envía los datos de ventas a Dub
Configura un endpoint de webhook para enviar los datos de ventas a la Track API de Dub cuando los pagos se realicen correctamente.1
Open the Webhook Section
En tu panel de Dodo Payments, ve a Webhooks → + Add Endpoint y expande el menú desplegable de integraciones.

2
Select Dub
Selecciona la tarjeta de integración de Dub.
3
Enter API Key
Introduce tu clave de API de Dub en el campo de configuración.

4
Configure Transformation
Edita el código de transformación para dar formato a los datos de pago para la Track Sale API de Dub.
5
Test & Create
Realiza pruebas con payloads de ejemplo y haz clic en Create para activar la integración.
Ejemplos de código de transformación
Seguimiento básico de ventas
Registra las ventas cuando los pagos se realicen correctamente:basic_sale.js
Seguimiento de ventas de suscripciones
Registra tanto las suscripciones iniciales como los pagos recurrentes:subscription_sale.js
Seguimiento de ventas sin impuestos
Envía a Dub únicamente el importe antes de impuestos para realizar un seguimiento preciso de los ingresos:sale_without_tax.js
Seguimiento de ventas con nombres de eventos personalizados
Usa nombres de eventos personalizados para categorizar distintos tipos de ventas:custom_events.js
Alternativa: implementación del lado del cliente
Si prefieres realizar el seguimiento de las ventas desde tu servidor en lugar de usar webhooks, puedes llamar directamente a la Track API de Dub después de un pago exitoso:Prácticas recomendadas
- Incluye siempre el ID de clic en los metadatos: Sin el ID de clic, Dub no puede atribuir los ingresos a tus enlaces
- Usa los ID externos de forma coherente: Pasa el mismo ID de cliente que utilizas en tu sistema para obtener análisis precisos a nivel de cliente
- Gestiona correctamente el tráfico orgánico: Establece
webhook.cancel = truecuando no haya un ID de clic para evitar llamadas API innecesarias - Realiza pruebas con pagos de ejemplo: Verifica que la integración funcione correctamente antes de ponerla en producción
- Supervisa tu panel de Dub: Comprueba que las ventas aparezcan correctamente con la atribución adecuada
Notas importantes
- Formato del importe: Dub espera los importes en centavos (por ejemplo, $10.00 = 1000)
- Moneda: Usa códigos de moneda ISO 4217 (USD, EUR, GBP, etc.)
- Pruebas gratuitas: Los pagos de $0 no se registran como ventas
- Reembolsos: Considera realizar un seguimiento de los reembolsos por separado si es necesario para informar los ingresos con precisión
Solución de problemas
Sales not appearing in Dub
Sales not appearing in Dub
- Verifica que tu clave de API de Dub sea correcta y tenga el alcance
conversions.write - Comprueba que
dub_click_idse capture y almacene en los metadatos del pago - Asegúrate de que la transformación del webhook dé el formato correcto al payload
- Verifica que el webhook se active en eventos
payment.succeeded - Confirma que el seguimiento de conversiones esté habilitado para tus enlaces de Dub
Revenue attribution not working
Revenue attribution not working
- Confirma que los usuarios hagan clic en tus enlaces cortos de Dub antes del checkout
- Verifica que la cookie
dub_idse establezca correctamente en tu dominio - Comprueba que los ID de clic coincidan entre la creación del checkout y la finalización del pago
- Asegúrate de capturar el ID de clic antes de crear la sesión de checkout
Transformation errors
Transformation errors
- Valida que la estructura JSON coincida con el formato de la Track Sale API de Dub
- Comprueba que todos los campos obligatorios (
clickId,externalId,amount) estén presentes - Asegúrate de que el importe esté expresado en centavos (entero, no decimal)
- Verifica que la URL del endpoint de API sea correcta:
https://api.dub.co/track/sale - Prueba la transformación con payloads de webhook de ejemplo
Duplicate sales being tracked
Duplicate sales being tracked
- Asegúrate de realizar el seguimiento únicamente en eventos
payment.succeeded, no enpayment.processing - Usa valores
invoiceIdúnicos para cada venta - Para las suscripciones, añade marcas de tiempo o el período de facturación para evitar duplicados en las renovaciones
Recursos adicionales
Dub Conversions Documentation
Obtén más información sobre las funciones de seguimiento de conversiones y análisis de Dub.
Dub Track Sale API
Consulta la referencia completa de la API para el endpoint Track Sale de Dub.
Dub Dashboard
Accede a tu panel de Dub para consultar los análisis de conversiones y los datos de atribución.
Webhook Events Guide
Obtén información sobre todos los eventos de webhook disponibles de Dodo Payments.
¿Necesitas ayuda? Contacta con el equipo de soporte de Dodo Payments en support@dodopayments.com para obtener ayuda con la integración.