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:1
Get the checkout URL
Extract the
checkout_url from the API response.2
Redirect your customer
Direct your customer to the checkout URL to complete their purchase.
3
Handle the return
After payment, customers are redirected to your
return_url with query parameters including payment/subscription ID, status, customer email, and any license keys. See the return_url parameter docs for the full list.Request Body
Required Fields
Essential fields needed for every checkout session
Optional Fields
Additional configuration to customize your checkout experience
Required Fields
Array of products to include in the checkout session. Each product must have a valid
product_id from your Dodo Payments dashboard.Optional Fields
Configure these fields to customize the checkout experience and add business logic to your payment flow.Customer Information
Customer Information
Customer information. You can either attach an existing customer using their ID or create a new customer record during checkout.
- Attach Existing Customer
- New Customer
Attach an existing customer to the checkout session using their ID.
Billing address information for accurate tax calculation, fraud prevention, and regulatory compliance.
When
confirm is set to true, all billing address fields become required for successful session creation.Payment Configuration
Payment Configuration
Control which payment methods are available to customers during checkout. This helps optimize for specific markets or business requirements.Available Options:
credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal, sunbitExample:Override the default currency selection with a fixed billing currency. Uses ISO 4217 currency codes.Supported Currencies:
USD, EUR, GBP, CAD, AUD, INR, and moreExample: "USD" for US Dollars, "EUR" for EurosThis field is only effective when adaptive pricing is enabled. If adaptive pricing is disabled, the product’s default currency will be used.
Display previously saved payment methods for returning customers, improving checkout speed and user experience.
Session Management
Session Management
URL to redirect customers after payment completion. Dodo Payments appends the following query parameters to your URL on redirect:
Example redirect URLs:
URL to redirect customers when they click the back button or cancel the checkout session. If not provided, the back button will not be displayed.
If true, finalizes all session details immediately. API will throw an error if required data is missing.
Apply one or more stacked discount codes to the checkout session. Codes are applied in array order (the first code reduces the base price, the second reduces the already-discounted price, and so on), up to a maximum of 20 codes per session.
The singular
discount_code field below is deprecated but still fully supported — existing integrations continue to work without changes. It cannot be combined with discount_codes in the same request. Migrate to discount_codes when convenient to take advantage of stacking.Deprecated — prefer
discount_codes for new integrations. This field still works for backward compatibility, but cannot be combined with discount_codes in the same request.Custom key-value pairs to store additional information about the session.
Override merchant default 3DS behaviour for this session.
Enable minimal address collection mode. When enabled, the checkout only collects:
- Country: Always required for tax determination
- ZIP/Postal code: Only in regions where it’s necessary for sales tax, VAT, or GST calculation
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
Recoge información adicional de los clientes durante el proceso de pago con campos de formulario personalizados. Puedes definir hasta 5 campos personalizados por sesión de pago. Las respuestas de los clientes están incluidas en cargas útiles de webhook y disponibles a través de la API.
Las respuestas de los clientes a campos personalizados están incluidas en:
- Webhooks:
payment.succeeded,subscription.activey otras cargas útiles de eventos relevantes contienen el arraycustom_field_responses - Respuestas de API: Los objetos de pago y suscripción incluyen
custom_field_responses
Subscription Configuration
Subscription Configuration
Configuración adicional para sesiones de pago que contienen productos de suscripción.
Ejemplos de Uso
Aquí tienes 10 ejemplos comprensivos que muestran diferentes configuraciones de sesiones de pago para varios escenarios de negocio:1. Pago de Producto Único Simple
2. Carrito de Múltiples Productos
3. Suscripción con Periodo de Prueba
4. Pago Preconfirmado
Cuando
confirm se establece en true, el cliente será llevado directamente a la página de pago, omitiendo cualquier paso de confirmación.5. Pago con Anulación de Moneda
La anulación
billing_currency solo tiene efecto cuando la moneda adaptable está habilitada en la configuración de tu cuenta. Si la moneda adaptable está deshabilitada, este parámetro no tendrá efecto.6. Métodos de Pago Guardados para Clientes que Regresan
7. Pago B2B con Colección de ID Fiscal
8. Pago en Tema Oscuro con Códigos de Descuento Apilados
9. Métodos de Pago Regionales (UPI para India)
Para información detallada sobre la configuración y pruebas de UPI, consulta la página de Métodos de Pago en India.10. BNPL (Compra Ahora, Paga Después) Pago
Para información detallada sobre la configuración y pruebas de BNPL, consulta la página de Compra Ahora, Paga Después (BNPL).11. Usando Métodos de Pago Existentes para Perfilado de Pago
Usa un método de pago guardado del cliente para crear una sesión de pago que procese inmediatamente, omitiendo la colección de método de pago:El método de pago debe pertenecer al cliente y ser compatible con la moneda del pago. Esto permite compras con un clic para clientes que regresan.
12. Enlaces Cortos para URLs de Pago Más Limpias
Genera enlaces de pago acortados y compartibles con slugs personalizados:13. Omitir la Página de Éxito de Pago con Redirección Inmediata
Redirige a los clientes inmediatamente después de completar 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 completamente la página de éxito predeterminada.14. Forzar un Idioma
Forza al pago a mostrarse en un idioma específico, sobrescribiendo la detección del idioma del navegador del cliente:ar), Catalán (ca), Chino (zh), Holandé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. Recolectando Campos Personalizados
Recoge información adicional de los clientes durante el proceso de pago usando campos personalizados:Las respuestas a los campos personalizados se incluyen automáticamente en las cargas útiles de webhook (
payment.succeeded, subscription.active, etc.) y se pueden recuperar a través de 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
Previsualización de Sesiones de Pago
Antes de crear una sesión de pago, puedes previsualizar el desglose de precios, incluidos impuestos, descuentos y totales. Esto es útil para mostrar precios precisos a los clientes antes de que procedan al pago.- Node.js SDK
- Python SDK
Preview API Reference
Consulta la documentación completa del endpoint de previsualización.
Pasar de Enlaces Dinámicos a Sesiones de Pago
Principales Diferencias
Anteriormente, al crear un enlace de pago con Enlaces Dinámicos, se requería proporcionar la dirección de facturación completa del cliente. Con las Sesiones de Pago, esto ya no es necesario. Puedes simplemente pasar la información que tengas, y nosotros nos encargamos del resto. Por ejemplo:- Si solo conoces el país de facturación del cliente, simplemente proporciona eso.
- El flujo de pago recopilará automáticamente los detalles faltantes antes de pasar al cliente a la página de pago.
- Por otro lado, si ya tienes toda la información requerida y deseas pasar directamente a la página de pago, puedes pasar el conjunto de datos completo e incluir
confirm=trueen tu cuerpo de solicitud.
Proceso de Migración
La migración de Enlaces Dinámicos a Sesiones de Pago es sencilla:1
Update your integration
Actualiza tu integración para usar el nuevo método API o SDK.
2
Adjust request payload
Ajusta la carga útil de la solicitud según el formato de Sesiones de Pago.
3
That's it!
Sí. No se necesitan manejos adicionales o pasos especiales de migración de tu parte.
Referencia de API Relacionada
Create Checkout Session
Referencia completa de la API para crear sesiones de pago con todos los parámetros y opciones disponibles
Preview Checkout Session
Referencia de API para previsualizar precios, impuestos y totales antes de crear una sesión