Prerequisites
To integrate the Dodo Payments API, you’ll need:- A Dodo Payments merchant account
- API Credentials (API key and webhook secret key) from dashboard
Dashboard Setup
- Navigate to the Dodo Payments Dashboard
- Crea un producto (pago único o suscripción). Los productos de suscripción deben tener un precio mínimo de $1 (o el equivalente en la moneda elegida); no se admiten importes inferiores a este mínimo.
-
Generate your API key:
- Go to Developer > API
- Detailed Guide
- Copy the API key the in env named DODO_PAYMENTS_API_KEY
-
Configure webhooks:
- Go to Developer > Webhooks
- Create a webhook URL for payment notifications
- Copy the webhook secret key in env
Integration
Payment Links
Elige el flujo de integración que se adapte a tu caso de uso:- Checkout Sessions (recomendado): ideal para la mayoría de las integraciones. Crea una sesión en tu servidor y redirige a los clientes a un checkout seguro y alojado.
- Overlay Checkout: úsalo cuando necesites una experiencia dentro de la página que abra el checkout como una ventana modal superpuesta en tu sitio.
- Inline Checkout: inserta el checkout directamente en el diseño de tu página para ofrecer experiencias de checkout totalmente integradas y con tu marca.
- Static Payment Links: URL sin código, compartibles al instante, para recopilar pagos rápidamente.
- Dynamic Payment Links: enlaces creados mediante programación. Sin embargo, se recomiendan Checkout Sessions, ya que ofrecen mayor flexibilidad.
- Mobile Checkout SDKs: para aplicaciones nativas de Android, iOS, React Native y Flutter. Crea la sesión en tu servidor como se indicó anteriormente y, a continuación, pasa
checkout_urlal SDK.
Overlay Checkout e Inline Checkout solo funcionan en navegadores: insertan el checkout en una
página web. Si estás creando una aplicación móvil nativa, crea la sesión de checkout en
tu servidor y ábrela con los
Mobile Checkout SDKs.
1. Checkout Sessions
Usa Checkout Sessions para crear una experiencia de checkout segura y alojada para pagos únicos o suscripciones. Crea una sesión en tu servidor y, a continuación, redirige al cliente alcheckout_url devuelto.
Las sesiones de checkout son válidas durante 24 horas de forma predeterminada. Si pasas
confirm=true, las sesiones son válidas durante 15 minutos y se deben proporcionar todos los campos obligatorios.1
Create a checkout session
Elige tu SDK preferido o llama a la REST API.
- Node.js SDK
- Python SDK
- REST API
2
Redirect customer to checkout
Después de crear la sesión, redirige al
checkout_url para iniciar el flujo alojado.2. Overlay Checkout
Para disfrutar de una experiencia de checkout fluida dentro de la página, consulta nuestra integración de Overlay Checkout, que permite a los clientes completar los pagos sin salir de tu sitio web.3. Inline Checkout
Para ofrecer experiencias de checkout totalmente integradas e insertadas directamente en tu página, usa nuestra integración de Inline Checkout. Esto te permite crear resúmenes de pedidos personalizados y controlar por completo el diseño del checkout, mientras Dodo Payments gestiona de forma segura la recopilación de pagos.4. Static Payment Links
Los enlaces de pago estáticos te permiten aceptar pagos rápidamente compartiendo una URL sencilla. Puedes personalizar la experiencia de checkout pasando query parameters para rellenar previamente los datos del cliente, controlar los campos del formulario y añadir metadata personalizada.1
Construct your payment link
Comienza con la URL base y añade tu ID de producto:
2
Add core parameters
Incluye los query parameters esenciales:
-
integerpredeterminado:"1"Número de artículos que se comprarán.
-
stringrequeridoURL a la que se redirigirá después de completar el pago.
La URL de redirección incluirá los datos del pago como query parameters, por ejemplo:
Si el producto tiene habilitadas las claves de licencia, también se añadirá un parámetro
https://example.com/?payment_id=pay_ts2ySpzg07phGeBZqePbH&status=succeeded&email=customer%40example.comSi el producto tiene habilitadas las claves de licencia, también se añadirá un parámetro
license_key (separado por comas cuando haya varias claves):https://example.com/?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com3
Pre-fill customer information (optional)
Añade campos del cliente o de facturación como query parameters para agilizar el checkout.
Supported Customer Fields
Supported Customer Fields
-
stringNombre completo del cliente (se ignora si se proporciona firstName o lastName).
-
stringNombre del cliente.
-
stringApellidos del cliente.
-
stringDirección de correo electrónico del cliente.
-
stringPaís del cliente.
-
stringDirección postal.
-
stringCiudad.
-
stringEstado o provincia.
-
stringCódigo postal/ZIP.
-
booleantrue o false
4
Control form fields (optional)
Puedes deshabilitar campos específicos para que sean de solo lectura para el cliente. Esto resulta útil cuando ya tienes los datos del cliente (por ejemplo, usuarios que han iniciado sesión).
disable… correspondiente en true:- Disable Flags Table
Establecer
showDiscounts=false deshabilitará y ocultará la sección de descuentos del formulario de checkout. Úsalo si quieres impedir que los clientes introduzcan códigos de cupón o promocionales durante el checkout.5
Add advanced controls (optional)
-
stringEspecifica la moneda del pago. De forma predeterminada, usa la moneda del país de facturación.
-
booleanpredeterminado:"true"Muestra u oculta el selector de moneda.
-
integerImporte en centavos (solo para precios Pay What You Want).
-
stringCampos de metadata personalizada (por ejemplo,
metadata_orderId=123).
6
Share the link
Envía el enlace de pago completado a tu cliente. Cuando lo visite, todos los query parameters se recopilarán y almacenarán con un ID de sesión. A continuación, la URL se simplificará para incluir únicamente el parámetro de sesión (por ejemplo,
?session=sess_1a2b3c4d). La información almacenada persiste al actualizar la página y está disponible durante todo el proceso de checkout.La experiencia de checkout del cliente ahora será más sencilla y personalizada según tus parámetros.
4. Dynamic Payment Links
Se crean mediante una llamada a la API o nuestro SDK con los datos del cliente. Este es un ejemplo: Hay dos API para crear enlaces de pago dinámicos:- API de enlaces de pago único referencia de la API
- API de enlaces de pago de suscripción referencia de la API
Asegúrate de pasar
payment_link = true para obtener el enlace de pago - Node.js SDK
- Python SDK
- Go SDK
- Api Reference
Después de crear el enlace de pago, redirige a tus clientes para que completen el pago.
Implementación de Webhooks
Configura un endpoint de API para recibir notificaciones de pago. Este es un ejemplo con Next.js:Eventos que debes escuchar
Activapayload.type y gestiona los eventos relevantes para un flujo de pago único. Como mínimo, escucha los siguientes:
Si vendes productos digitales con claves de licencia, gestiona también
license_key.created. Para consultar la lista completa de eventos, incluidos los eventos de suscripción, entitlement, crédito, recuperación y dunning, consulta la guía de eventos de Webhook.
Puedes consultar este proyecto con una implementación de demostración en GitHub usando Next.js y TypeScript.
Puedes consultar la implementación activa aquí.
Aspectos clave sobre Checkout y Currency
Las sesiones de checkout caducan en 24 horas (15 minutos cuando se usa
confirm: true), y cada checkout_url es de un solo uso: genera una sesión nueva para cada cliente y cada intento de pago en lugar de reutilizar un enlace.Compra recurrente con un clic. Para un cliente recurrente con un método de pago guardado, pasa
payment_method_id junto con confirm: true para realizar el cobro al instante y omitir por completo la selección del método.Referencia de API relacionada
Create Checkout Session
Referencia de API para crear sesiones de checkout seguras y alojadas para pagos únicos y suscripciones
Create Payment Link
Referencia de API para crear enlaces de pago dinámicos mediante programación