Quick Start Guide
Get your first checkout session running in under 5 minutes
API Reference & Live Testing
Explore the full API documentation and interactively test Checkout Session requests and responses.
Preview Checkout
Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass
confirm=true in your request, the session will only be valid for 15 minutes.Prerequisites
1
Dodo Payments Account
You’ll need an active Dodo Payments merchant account with API access.
2
API Credentials
Generate your API credentials from the Dodo Payments dashboard:
3
Products Setup
Create your products in the Dodo Payments dashboard before implementing checkout sessions.
Creating Your First Checkout Session
- Node.js SDK
- Python SDK
- REST API
API Response
All methods above return the same response structure:session_id. En dos casos se devuelven campos adicionales o menos campos:
- Se proporcionó
payment_method_id: el cargo se procesa de inmediato ycheckout_urlesnull. Usa en su lugar elpayment_iddevuelto. confirm: truecreó el pago al crear la sesión: la respuesta también incluyepayment_id,client_secretepublishable_keypara usarlos con el SDK de checkout de Dodo Payments.
El
checkout_url generado es de un solo uso y caduca en un plazo de 24 horas. No lo guardes en caché ni lo reutilices entre clientes o intentos de pago; crea una nueva sesión de checkout cada vez que necesites un enlace nuevo.1
Get the checkout URL
Extrae
checkout_url de la respuesta de la API.2
Redirect your customer
Dirige al cliente a la URL de checkout para completar su compra.
3
Handle the return
Después del pago, los clientes son redirigidos a tu
return_url con parámetros de consulta que incluyen el ID del pago o la suscripción, el estado, el correo electrónico del cliente y cualquier clave de licencia. Consulta la documentación de parámetros de return_url para ver la lista completa.Cuerpo de la solicitud
Required Fields
Campos esenciales necesarios para cada sesión de checkout
Optional Fields
Configuración adicional para personalizar tu experiencia de checkout
Campos obligatorios
array
requerido
Matriz de productos que se incluirán en la sesión de checkout. Cada producto debe tener un
product_id válido de tu panel de Dodo Payments.Campos opcionales
Configura estos campos para personalizar la experiencia de checkout y añadir lógica empresarial a tu flujo de pago.Customer Information
Customer Information
object
Información del cliente. Puedes asociar un cliente existente mediante su ID o crear un nuevo registro durante el checkout.
- Attach Existing Customer
- New Customer
Asocia un cliente existente a la sesión de checkout mediante su ID.
object
Información de la dirección de facturación para calcular correctamente los impuestos, prevenir el fraude y cumplir la normativa.
Cuando
confirm se establece en true, todos los campos de la dirección de facturación son obligatorios para crear correctamente la sesión.Payment Configuration
Payment Configuration
array
Controla qué métodos de pago están disponibles para los clientes durante el checkout. Esto ayuda a optimizarlo para mercados específicos o requisitos empresariales.Opciones comunes:
credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, ach, multibanco, bancontact_card, eps, ideal, blik, paypal. Este no es el conjunto completo; consulta la referencia de la API Create Checkout Session para ver todos los valores aceptados.Ejemplo:string
Anula la selección de moneda predeterminada con una moneda de facturación fija. Usa códigos de moneda ISO 4217.Monedas compatibles:
USD, EUR, GBP, CAD, AUD, INR y otrasEjemplo: "USD" para dólares estadounidenses, "EUR" para eurosEste campo solo tiene efecto cuando los precios adaptativos están habilitados. Si están deshabilitados, se usará la moneda predeterminada del producto.
boolean
predeterminado:"false"
Muestra los métodos de pago guardados anteriormente a los clientes recurrentes para mejorar la velocidad y la experiencia del checkout.
Session Management
Session Management
string
URL a la que se redirigirá a los clientes después de completar el pago. Dodo Payments añade los siguientes parámetros de consulta a tu URL durante la redirección:
URL de redirección de ejemplo:
string
URL a la que se redirigirá a los clientes cuando hagan clic en el botón de volver o cancelen la sesión de checkout. Si no se proporciona, el botón de volver no se mostrará.
boolean
predeterminado:"false"
Si es true, finaliza inmediatamente todos los detalles de la sesión. La API generará un error si faltan datos obligatorios.
array
Aplica uno o más códigos de descuento acumulables a la sesión de checkout. Los códigos se aplican en el orden de la matriz (el primero reduce el precio base, el segundo reduce el precio ya descontado, y así sucesivamente), hasta un máximo de 20 códigos por sesión.
El campo singular
discount_code que aparece a continuación está obsoleto, pero sigue siendo totalmente compatible; las integraciones existentes continúan funcionando sin cambios. No se puede combinar con discount_codes en la misma solicitud. Migra a discount_codes cuando te resulte conveniente para aprovechar la acumulación.string
obsoleto
Obsoleto; usa
discount_codes para las integraciones nuevas. Este campo sigue funcionando por compatibilidad con versiones anteriores, pero no se puede combinar con discount_codes en la misma solicitud.object
Pares clave-valor personalizados para almacenar información adicional sobre la sesión.
boolean
Anula el comportamiento de 3DS predeterminado del merchant para esta sesión.
boolean
predeterminado:"false"
Habilita el modo de recopilación mínima de direcciones. Cuando está habilitado, el checkout solo recopila:
- País: Siempre obligatorio para determinar los impuestos
- Código ZIP o postal: Solo en regiones donde sea necesario para calcular el impuesto sobre las ventas, el IVA o el GST
string
Método de pago guardado perteneciente al cliente asociado. Requiere
confirm: true y un customer.customer_id existente. Cuando se establece, el cargo se procesa de inmediato y checkout_url se devuelve como null; usa en su lugar el payment_id devuelto.boolean
predeterminado:"false"
Si es true, devuelve una URL de checkout abreviada en lugar de la URL de sesión completa.
string
ID de la colección de productos para el flujo de checkout basado en colecciones.
string
ID fiscal del cliente (por ejemplo, un número de IVA). Requiere
billing_address con un country.string
Nombre comercial o legal opcional asociado al ID fiscal. Cuando se proporciona junto con un
tax_id válido, se muestra en la factura en lugar del nombre personal del cliente.integer
Anula el límite mínimo del mandato a nivel de merchant (en paise de INR) para los mandatos electrónicos en INR de tarjetas indias.
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
array
Recopila información adicional de los clientes durante el checkout mediante campos de formulario personalizados. Puedes definir hasta 5 campos personalizados por sesión de checkout. Las respuestas de los clientes se incluyen en las cargas útiles de los webhooks y están disponibles mediante la API.
Las respuestas de los clientes a los campos personalizados se incluyen en:
- Webhooks:
payment.succeeded,subscription.activey otras cargas útiles de eventos relevantes contienen la matrizcustom_field_responses - Respuestas de la API: Los objetos de pago y suscripción incluyen
custom_field_responses
Subscription Configuration
Subscription Configuration
object
Configuración adicional para sesiones de checkout que contienen productos de suscripción.
Ejemplos de uso
Estos son 10 ejemplos completos que muestran diferentes configuraciones de sesiones de checkout para varios escenarios empresariales:1. Checkout sencillo de un solo producto
2. Carrito con varios productos
3. Suscripción con periodo de prueba
4. Checkout preconfirmado
Cuando
confirm se establece en true, el cliente accederá directamente a la página de checkout, omitiendo los pasos de confirmación.5. Checkout con anulación de moneda
La anulación de
billing_currency solo tiene efecto cuando Adaptive Currency está habilitado en la configuración de tu cuenta. Si Adaptive Currency está deshabilitado, este parámetro no tendrá ningún efecto.6. Métodos de pago guardados para clientes recurrentes
7. Checkout B2B con recopilación del ID fiscal
8. Checkout con tema oscuro y códigos de descuento acumulables
9. Métodos de pago regionales (UPI para India)
Para obtener información detallada sobre la configuración y las pruebas de UPI, consulta la página Métodos de pago de India.10. Checkout BNPL (compra ahora y paga después)
Para obtener información detallada sobre la configuración y las pruebas de BNPL, consulta la página Buy Now Pay Later (BNPL).11. Uso de métodos de pago existentes para checkout instantáneo
Usa el método de pago guardado de un cliente para crear una sesión de checkout que se procese de inmediato, omitiendo la recopilación del método de pago:El método de pago debe pertenecer al cliente y ser compatible con la moneda del pago. Esto permite realizar compras con un solo clic para los clientes recurrentes.
12. Enlaces cortos para URL de pago más limpias
Genera enlaces de pago abreviados y fáciles de compartir con slugs personalizados:13. Omitir la página de éxito del pago con redirección inmediata
Redirige inmediatamente a los clientes una vez completado el pago, omitiendo la página de éxito predeterminada:Cuando
redirect_immediately está habilitado, los clientes son redirigidos a tu return_url inmediatamente después de completar el pago, omitiendo por completo la página de éxito predeterminada.14. Forzar un idioma
Obliga al checkout a mostrarse en un idioma específico, anulando la detección del idioma del navegador del cliente:ar), catalán (ca), chino (zh), neerlandés (nl), inglés (en), francés (fr), alemán (de), hebreo (he), indonesio (id), italiano (it), japonés (ja), coreano (ko), malayo (ms), polaco (pl), portugués (pt), rumano (ro), ruso (ru), español (es), sueco (sv), tailandés (th), turco (tr)
15. Recopilar campos personalizados
Recopila información adicional de los clientes durante el checkout mediante campos personalizados:Las respuestas de los campos personalizados se incluyen automáticamente en las cargas útiles de los webhooks (
payment.succeeded, subscription.active, etc.) y se pueden recuperar mediante la API. Úsalas para enriquecer tu CRM, activar flujos de incorporación o personalizar la experiencia del cliente.text, number, email, url, date, dropdown, boolean
Previsualizar sesiones de checkout
Antes de crear una sesión de checkout, puedes previsualizar el desglose de precios, incluidos impuestos, descuentos y totales. Esto resulta útil para mostrar precios precisos a los clientes antes de que procedan al checkout.Cuando el carrito contiene un producto de suscripción, la respuesta de previsualización también devuelve un
next_billing_date, una previsualización de la próxima fecha de facturación, para que puedas mostrarla antes de crear la suscripción. Se calcula con respecto al momento actual: now + trial period cuando se aplica una prueba; de lo contrario, now + one payment frequency. El campo se omite en carritos exclusivamente de pago único. Es una estimación basada en el momento de la previsualización; el next_billing_date autorizado se establece cuando se activa la suscripción.La previsualización también devuelve
trial_period_days (la duración efectiva de la prueba, gratuita o de pago) e trial_amount (el cargo de prueba por unidad después de los descuentos, en las unidades menores de la moneda del precio). trial_amount solo está presente en una prueba de pago y es null en una prueba gratuita o cuando no hay prueba. Usa current_breakup para consultar el total gravado que se debe pagar hoy.- Node.js SDK
- Python SDK
Preview API Reference
Consulta la documentación completa del endpoint de previsualización.
Pasar de Dynamic Links a Checkout Sessions
Diferencias clave
Anteriormente, al crear un enlace de pago con Dynamic Links, era obligatorio proporcionar la dirección de facturación completa del cliente. Con Checkout Sessions, esto ya no es necesario. Puedes transmitir simplemente la información que tengas y nosotros nos encargaremos del resto. Por ejemplo:- Si solo conoces el país de facturación del cliente, proporciona únicamente ese dato.
- El flujo de checkout recopilará automáticamente los datos que falten antes de dirigir al cliente a la página de pago.
- Por otro lado, si ya tienes toda la información necesaria y quieres ir directamente a la página de pago, puedes proporcionar el conjunto de datos completo e incluir
confirm=trueen el cuerpo de la solicitud.
Proceso de migración
Migrar de Dynamic Links a Checkout Sessions es sencillo:1
Update your integration
Actualiza tu integración para usar el nuevo método de API o SDK.
2
Adjust request payload
Ajusta la carga útil de la solicitud según el formato de Checkout Sessions.
3
That's it!
Sí. No necesitas realizar ningún tratamiento adicional ni pasos especiales de migración.
Referencia de API relacionada
Create Checkout Session
Referencia completa de la API para crear sesiones de checkout con todos los parámetros y opciones disponibles
Preview Checkout Session
Referencia de la API para previsualizar precios, impuestos y totales antes de crear una sesión