Skip to main content

Introducción

Conecta Dodo Payments a GoHighLevel (GHL) para vender desde tus funnels, sitios web, emails y SMS de GHL, y gestionar los pedidos con la automatización de GHL. GHL es una plataforma de CRM y marketing con funnels, sitios web, email y SMS, y automatización (Workflows). GHL no incluye Dodo Payments como procesador de pagos integrado, por lo que debes conectar ambos servicios de una de estas tres formas. Elige una según el nivel de integración que quieras para el checkout y cuánto código puedas escribir. Todos los métodos gestionan el fulfillment de la misma manera: Dodo Payments envía eventos de webhook a un workflow de Inbound Webhook de GHL, que etiqueta al contacto, concede acceso y envía confirmaciones.

Elige tu método

Los tres métodos se diferencian en el código que necesitan y en dónde paga el cliente:
Si eres nuevo en Dodo Payments, empieza con el método A (Payment Links). No requiere código y funciona para cualquier usuario de GHL. Los métodos B y C necesitan un backend que cree checkout sessions, por lo que son adecuados para equipos que se sienten cómodos trabajando con código.

Requisitos previos

Antes de empezar, necesitas:
  • Una cuenta de Dodo Payments con al menos un product.
  • Una cuenta de GoHighLevel con un funnel, sitio web o workflow.
  • Acceso a Developer → Webhooks en el dashboard de Dodo Payments y a Developer → API Keys si necesitas una API key.
  • Para los métodos B y C: un pequeño backend o endpoint serverless que cree checkout sessions.
GHL requiere un connected domain para publicar un funnel. Mientras lo construyes, usa Preview del funnel para probarlo. El JavaScript personalizado (métodos B y C) generalmente solo se ejecuta en la página publicada en un dominio real, no en Preview.

Fulfillment con Webhooks (todos los métodos)

El workflow de webhook es la capa de automatización. Configúralo una vez y funcionará con cualquier método de checkout.
1

Create the Workflow

En tu sub-account de GHL, abre Automation en el menú izquierdo. Se abrirá en la pestaña Workflows. Haz clic en Create workflow y selecciona Start from Scratch.
2

Add the Inbound Webhook Trigger

En el builder, haz clic en Add new trigger. En el panel Add trigger, busca webhook y selecciona Inbound webhook, que aparece en Triggers → Events. Copia la Webhook URL que se genere.
3

Register the Webhook in Dodo Payments

En el dashboard de Dodo Payments, ve a Developer → Webhooks y haz clic en Add endpoint. Pega la URL del GHL Inbound Webhook en Endpoint URL y haz clic en Create endpoint. Después, proporciona a GHL un payload de ejemplo del que pueda mapear campos, como el email del cliente, el producto, el importe y el status. Puedes hacer una compra de prueba o abrir la pestaña Testing del endpoint, seleccionar un tipo de evento y hacer clic en Send example.
4

Add Fulfillment Actions

En el workflow de GHL, añade acciones para el evento, como find/create contact by email, add a tag, grant course/membership access y send a confirmation email. Después, Publish el workflow.
Dodo Payments procesa los pagos, por lo que no aparecen en la pestaña Payments de GHL. Regístralos en GHL con el workflow de webhook anterior. Concede acceso desde el webhook, no desde la redirección del navegador, porque el cliente puede cerrar la pestaña antes de que se complete la redirección.
Añade un payment link de Dodo Payments a cualquier botón de GHL, llamada a la acción del funnel, botón de la página de pedido, email o SMS. Los clientes pagan en el checkout alojado de Dodo Payments. Para consultar las funciones compatibles con el checkout, visita Checkout Features.
1

Create a Product and Copy Its Payment Link

En el dashboard de Dodo Payments, ve a Products y haz clic en Add Product. Define el name y el price, elige one-time o subscription y guarda el producto. En la fila del producto, haz clic en Share y después en Copy payment link. El enlace tiene el formato https://checkout.dodopayments.com/buy/{product_id}.
2

Add the Link to Your GHL Button

Edita tu funnel o página web y selecciona el Buy / Checkout button. Define su acción como Open URL / Website y pega tu payment link.
3

Set a Success Page (Optional)

Para devolver a los clientes a tu funnel después del pago, introduce tu página de agradecimiento de GHL en Redirect URL, dentro de la hoja Share del producto, antes de copiar el enlace. El enlace incluirá ese valor como parámetro redirect_url.
Los query parameters de los payment links pueden rellenar y bloquear datos del cliente, o añadir tracking. Por ejemplo, pasa un ID de funnel u oferta como parámetro metadata_* y recupéralo desde el webhook. Consulta Static Payment Links para ver todos los parámetros.

Método B: Overlay Checkout (código personalizado)

El método B abre el checkout de Dodo Payments como un modal overlay en tu página de GHL, utilizando el Checkout SDK desde un CDN. Necesita un backend que cree una checkout session y devuelva su checkoutUrl.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Este paso es obligatorio. El SDK necesita una URL de checkout session y crear una session requiere tu secret API key. GHL solo aloja páginas y no puede hacer esta llamada server-side por ti. Nunca llames a la Create Checkout Session API desde el navegador, porque expondrías tu secret key en el código fuente de la página. Por tanto, el checkout overlay e inline no pueden funcionar únicamente con GHL: necesitas un backend bajo tu control que cree la session y devuelva solo la URL.Cualquier backend pequeño funciona: una función serverless (Cloudflare Workers, Vercel Functions, AWS Lambda, Supabase Edge Functions y similares) o un endpoint en un servidor que ya administres. La lógica es la misma en todas las plataformas: recibir la solicitud, llamar a la API de Dodo Payments con tu secret key y devolver checkout_url.Ejemplo de la lógica del handler, que debes adaptar a tu plataforma:
Guarda tu API key como secret en la variable de entorno DODO_PAYMENTS_API_KEY de la plataforma en la que hagas el deploy y nunca la incluyas en el código. Permite solicitudes desde tu dominio de GHL (CORS) y sirve el endpoint desde un dominio bajo tu control, por ejemplo https://api.example.com/create-checkout. Cuando pases al live mode, cambia la URL a https://live.dodopayments.com/checkouts.
2

Add a Custom Code Element in the GHL Page Builder

Abre el paso de tu funnel o la página web en el page builder de GHL y, después:
  1. Haz clic en el icono + situado en la esquina superior izquierda del builder para abrir Quick Add.
  2. Selecciona Elements en la lista de categorías de la izquierda.
  3. Busca Custom Code (también aparece como HTML) y arrástralo hasta la página.
  4. Pega el código siguiente en el editor de código del elemento y guárdalo.
3

Publish and Test on Your Domain

El JavaScript personalizado normalmente solo se ejecuta en la página publicada en tu dominio conectado y puede no ejecutarse en Preview. Publica la página y haz clic en Pay Now para confirmar que se abre el overlay.

Método C: Inline (Embedded) Checkout

El método C integra el formulario de checkout dentro de tu página de GHL, sin redirección ni popup. Utiliza el mismo SDK con un elemento contenedor en el que se monta. Al igual que el método B, necesita un backend para crear la session.
1

Create a Backend Endpoint That Calls the Checkout Sessions API

Este paso es obligatorio, igual que para el checkout overlay. Crear una session requiere tu secret API key, por lo que debe hacerse en un servidor y GHL no puede hacerlo por sí solo. Reutiliza el endpoint del backend de la sección Overlay Checkout anterior: cualquier función serverless pequeña o servidor bajo tu control que llame a la Create Checkout Session API y devuelva { checkoutUrl }.
2

Add a Container and SDK via Custom Code

En el page builder de GHL:
  1. Haz clic en el icono + situado en la esquina superior izquierda del builder para abrir Quick Add.
  2. Selecciona Elements en la lista de categorías de la izquierda.
  3. Busca Custom Code (también aparece como HTML) y arrástralo hasta la página donde quieras que aparezca el formulario de checkout.
  4. Pega el código siguiente en el editor de código del elemento y guárdalo.
3

Verify Your Domain for Wallets (Apple Pay)

Para ofrecer Apple Pay en inline checkout, verifica tu dominio. En el dashboard de Dodo Payments, ve a Settings → Payment Methods y haz clic en Manage domains en la fila de Apple Pay. Descarga el archivo de asociación de dominio, alójalo en tu dominio y registra el dominio. Apple Pay no está disponible en overlay checkout (Approach B).Un dominio alojado por GHL no puede alojar el archivo de asociación de dominio. Apple Pay en inline checkout necesita un dominio bajo tu control que pueda servir /.well-known/apple-developer-merchantid-domain-association. En páginas alojadas por GHL, usa el hosted checkout de Payment Links (Approach A) o no uses Apple Pay.
Inline checkout es la opción más compleja en GHL. Requiere código personalizado, un backend, una página publicada en un dominio real y, para Apple Pay, la verificación del dominio. Si no necesitas un formulario completamente integrado, usa Approach A o B.

Eventos que se deben gestionar

Suscribe el endpoint de GHL a los eventos en los que actúa tu workflow. La tabla sugiere una acción de GHL para cada uno: Los eventos de pagos y suscripciones incluyen el correo electrónico del cliente en data.customer.email. Usa la acción de GHL find/create contact by email para asociar el pago con el contacto correcto. Para cada evento, consulta la Webhook Event Guide.

Pruebas y puesta en producción

1

Test in Test Mode

Mantén desactivado el interruptor de Live Mode en la barra lateral de Dodo Payments para trabajar en test mode. Completa una compra con la tarjeta de prueba 4242 4242 4242 4242 (fecha de vencimiento 06/32, CVV 123) y confirma que el workflow de GHL se ejecuta y aplica la etiqueta o el acceso.
2

Go Live

Activa el interruptor de Live Mode y añade la URL del GHL Inbound Webhook como endpoint en live mode. El resto de los cambios depende de tu enfoque:
  • Payment Links (A): Sustituye el enlace por el enlace de pago live del producto.
  • Overlay checkout (B): Dirige tu backend a https://live.dodopayments.com/checkouts con tu clave de API live y establece mode en "live" en la llamada Initialize del SDK.
  • Inline checkout (C): Realiza los mismos cambios que para overlay checkout, ya que utiliza el mismo endpoint del backend y la misma inicialización del SDK.
Después, realiza una compra real de principio a fin para confirmar la configuración.

Consejos

Considera el webhook como la fuente de verdad para conceder acceso. Actúa sobre payment.succeeded o subscription.active, no sobre la redirección del navegador.
Un GHL Inbound Webhook no puede verificar el encabezado webhook-signature. Para que solo los eventos genuinos de Dodo Payments activen el fulfillment en GHL, dirige el endpoint del webhook de Dodo Payments a tu propio backend, verifica allí cada evento (Webhooks) y, después, reenvíalo a la URL del GHL Inbound Webhook.

Solución de problemas

Comprueba que el endpoint del webhook de Dodo Payments apunta a la URL correcta del GHL Inbound Webhook, que el workflow está publicado y que el trigger capturó un payload de muestra, de modo que exista el mapeo de campos.
Normalmente, el JavaScript personalizado solo se ejecuta en la página publicada en un dominio real, no en Preview. Confirma que la página está publicada, que el SDK <script> se cargó y que checkoutUrl es una URL de sesión válida de tu backend.
Comprueba que tu workflow utiliza find/create contact by email y que el campo de correo electrónico está mapeado desde el payload del webhook.
Esto es normal. Dodo Payments procesa los pagos, por lo que debes registrarlos en GHL mediante el workflow del webhook.
Última modificación el 28 de septiembre de 2026