Saltar al contenido principal
Página de pago
La pasarela de pago de Dodo Payments está optimizada para la conversión y cumple con normativas globales, diseñada para productos digitales y empresas SaaS. Admite múltiples divisas, idiomas, impuestos, descuentos, complementos y flujos de cumplimiento orientados a negocios.

Moneda Adaptativa

La Moneda Adaptativa permite a los clientes pagar en su moneda local preferida, mejorando la confianza y las tasas de conversión.

Cómo Funciona

  1. Habilitar: Habilita la Moneda Adaptativa desde la Configuración de tu Negocio
  2. Seleccionar: Los clientes pueden cambiar de moneda directamente en el pago
  3. Convertir: Los precios se convierten dinámicamente utilizando tasas de cambio en tiempo real
  4. Mostrar: El monto final a pagar se muestra de manera transparente antes del pago
Selector de moneda en el checkout

Adaptive Currency

Obtén más información sobre las divisas compatibles, las tarifas de conversión y el manejo de reembolsos.

Pago en Múltiples Idiomas

Dodo Payments soporta múltiples idiomas en la página de pago, permitiendo a los clientes completar pagos en un idioma con el que se sientan cómodos.
Selector de idioma en el checkout

Puntos Clave

  • Selector de idioma disponible directamente en el pago
  • Texto de la interfaz, etiquetas y mensajes del sistema están localizados
  • Mejora la accesibilidad y la conversión internacional

Idiomas Soportados

La página de pago admite 21 idiomas:
IdiomaCódigo
Árabear
Catalánca
Chinozh
Neerlandésnl
Inglésen
Francésfr
Alemánde
Hebreohe
Indonesioid
Italianoit
Japonésja
Coreanoko
Malayoms
Polacopl
Portuguéspt
Rumanoro
Rusoru
Españoles
Suecosv
Tailandésth
Turcotr
Puedes forzar un idioma específico en el checkout configurando el parámetro force_language al crear una sesión de checkout. Consulta la API de sesiones de checkout para más detalles.

Cálculo automático de impuestos

Los impuestos se calculan automáticamente en función de la ubicación de facturación del cliente, garantizando el cumplimiento de los requisitos de GST, IVA e impuestos sobre las ventas sin configuración manual.

Cómo funciona el cálculo de impuestos

1

Location Detection

Las reglas fiscales se aplican según el país del cliente (y la región cuando corresponde).
2

Dynamic Updates

El monto del impuesto se actualiza automáticamente cuando:
  • Cambia el país
  • Se actualiza la dirección
3

Transparent Display

El desglose final de impuestos se muestra claramente antes del pago.
El cálculo de impuestos está totalmente automatizado. No se requiere configuración manual para bienes digitales estándar y productos SaaS.

Soporte para identificaciones fiscales de empresas

Para empresas registradas, el checkout permite que los clientes ingresen su identificación fiscal empresarial (por ejemplo, número de IVA/GST).

Qué sucede cuando se ingresa una identificación fiscal

  • Se valida la elegibilidad fiscal en tiempo real
  • Se aplican exenciones de impuestos o reglas de inversión del sujeto pasivo según corresponda
  • El monto del impuesto se actualiza instantáneamente en el checkout
Ingreso de la identificación fiscal empresarial en el checkout
Esto es especialmente útil para SaaS B2B y servicios digitales donde los clientes empresariales pueden ser elegibles para exenciones fiscales.

Códigos de descuento

Los clientes pueden aplicar códigos de descuento o promocionales que hayas creado en el panel directamente en la página de checkout.

Experiencia en el checkout

  1. El cliente introduce el código de descuento
  2. El descuento se valida al instante
  3. El precio actualizado y los ahorros se muestran claramente
Ingreso del código de descuento en el checkout

Integración con la API

Aplica previamente un código de descuento o habilita el campo de entrada para descuentos:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_code: 'WELCOME20', // Pre-apply a code
  feature_flags: {
    allow_discount_code: true // Show discount input field
  },
  return_url: 'https://yoursite.com/return'
});

Discount Codes

Aprende cómo crear y administrar códigos de descuento.

Validate Discount by Code

Busca y valida descuentos utilizando los nombres de código.

Recolección inteligente de direcciones

El checkout admite entradas de direcciones flexibles para una finalización más rápida.

Opciones disponibles

OpciónDescripción
Autocompletar de direcciones de GoogleSelección rápida con autocompletado
Entrada manualControl total para direcciones completas
Selección de paísImpulsa la lógica de impuestos y cumplimiento
La recopilación de direcciones equilibra velocidad, precisión y cobertura global para maximizar la conversión asegurando el cumplimiento.

Campos personalizados

Recopila información adicional de los clientes durante el checkout definiendo campos de formulario personalizados. Esto es útil para obtener datos como nombre de la empresa, tamaño del equipo, fuente de referencia o cualquier otra información específica del negocio.

Tipos de campo disponibles

TipoDescripción
textEntrada de texto de una sola línea
numberEntrada numérica
emailDirección de correo electrónico con validación
urlURL con validación
dateSelector de fecha
dropdownSelección de opciones predefinidas
booleanAlternar Sí/No

Ejemplo

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  custom_fields: [
    {
      key: 'company_name',
      label: 'Company Name',
      field_type: 'text',
      required: true
    },
    {
      key: 'team_size',
      label: 'Team Size',
      field_type: 'dropdown',
      required: true,
      options: ['1-10', '11-50', '51-200', '200+']
    }
  ],
  return_url: 'https://yoursite.com/return'
});
Las respuestas de los clientes se incluyen automáticamente en las cargas útiles de los webhooks (payment.succeeded, subscription.active) y en las respuestas de la API a través del array custom_field_responses. Puedes definir hasta 5 campos personalizados por sesión de pago.

Custom Fields Guide

Aprende más sobre la configuración de campos personalizados y cómo acceder a las respuestas.

Aceptación de la política de privacidad y términos

Para garantizar la transparencia legal y de cumplimiento:
Esto ayuda a cumplir con los requisitos globales de protección del consumidor y privacidad de datos, incluida la conformidad con el RGPD.

Checkout de colecciones

Las colecciones de productos permiten una experiencia de checkout unificada donde los clientes pueden ver y seleccionar múltiples productos relacionados (por ejemplo, planes Starter, Pro, Enterprise) en un solo proceso de pago.

Cómo funciona

  1. Todos los productos se muestran: los clientes ven cada producto activo en la colección
  2. El primer producto se preselecciona: el primer producto de la colección se selecciona automáticamente
  3. Comparar opciones: los clientes pueden comparar precios y funciones antes de elegir
  4. Selección única: tras seleccionar un producto, el checkout continúa con el flujo de pago estándar

Crear un checkout de colección

const session = await client.checkoutSessions.create({
  product_collection_id: 'pdc_abc123',
  product_cart: [], // Required: pass an empty array for collection checkout
  return_url: 'https://yoursite.com/return'
});
Al usar product_collection_id, pasa un array product_cart vacío. No se pueden aplicar códigos de descuento previamente al crear la sesión.

Product Collections

Aprende cómo crear y administrar colecciones de productos para experiencias de checkout unificadas.

Configuración de la sesión de checkout

Controla el comportamiento del checkout usando la API de sesiones de checkout:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customer: {
    email: 'customer@example.com',
    name: 'Jane Doe'
  },
  billing_currency: 'EUR', // Set specific currency
  discount_code: 'PROMO10',
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return',
  metadata: {
    order_ref: 'ORD-12345'
  }
});
Después del pago, los clientes se redirigen a tu return_url con los parámetros de consulta agregados automáticamente, incluidos payment_id o subscription_id, status, email y license_key (si procede). Consulta la guía de sesiones de checkout para la lista completa.

Personalización del tema del checkout

Personaliza la apariencia de la página de checkout para que coincida con tu marca usando el parámetro customization.theme_config al crear una sesión de checkout mediante la API. Configura colores, tipografías, radio de bordes y texto del botón para los modos claro y oscuro.
Página de checkout con tema personalizado

Design & Theme Customization

Configura los temas visualmente desde el panel con temas predefinidos, tipografías, colores y vista previa en vivo.
Esta sección abarca la configuración del tema en el lado del servidor con customization.theme_config. Si estás usando el Checkout SDK (overlay o inline checkout), consulta las secciones de personalización del tema en Overlay Checkout o Inline Checkout que emplean propiedades en camelCase (por ejemplo, bgPrimary en lugar de bg_primary).

Opciones de configuración del tema

PropiedadDescripción
lightConfiguración de colores para el modo claro
darkConfiguración de colores para el modo oscuro
font_primary_urlURL de la fuente primaria
font_secondary_urlURL de la fuente secundaria
font_sizeTamaño de fuente: xs, sm, md, lg, xl, 2xl
font_weightGrosor de fuente: normal, medium, bold, extraBold
radiusRadio de borde para elementos de la interfaz (por ejemplo, 4px, 0.5rem, 8px)
pay_button_textTexto personalizado para el botón de pago (por ejemplo, “Completar compra”, “Suscribirse ahora”)

Configuración de color (modo claro/oscuro)

Cada modo (light e dark) admite las siguientes propiedades de color:
PropiedadDescripción
bg_primaryColor de fondo primario
bg_secondaryColor de fondo secundario
text_primaryColor de texto primario
text_secondaryColor de texto secundario
text_placeholderColor de texto de marcador de posición
text_errorColor de texto de error
text_successColor de texto de éxito
border_primaryColor de borde primario
border_secondaryColor de borde secundario
button_primaryColor de fondo del botón primario
button_primary_hoverColor de desplazamiento del botón primario
button_secondaryColor de fondo del botón secundario
button_secondary_hoverColor de desplazamiento del botón secundario
button_text_primaryColor de texto del botón primario
button_text_secondaryColor de texto del botón secundario
input_focus_borderColor del borde enfocado del input
Todos los campos de color aceptan formatos estándar de CSS:
  • Hex: #fff, #ffffff, #ffffffff
  • RGB/RGBA: rgb(255, 255, 255), rgba(255, 255, 255, 0.5)
  • HSL/HSLA: hsl(120, 100%, 50%), hsla(120, 100%, 50%, 0.5)
  • Colores con nombre: red, blue, transparent

Ejemplo

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customization: {
    theme_config: {
      // Custom fonts
      font_primary_url: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap',
      font_size: 'md',
      font_weight: 'medium',
      radius: '8px',
      pay_button_text: 'Complete Purchase',
      
      // Light mode colors
      light: {
        bg_primary: '#ffffff',
        bg_secondary: '#f5f5f5',
        text_primary: '#1a1a1a',
        text_secondary: '#666666',
        button_primary: '#0066ff',
        button_primary_hover: '#0052cc',
        button_text_primary: '#ffffff',
        border_primary: '#e0e0e0'
      },
      
      // Dark mode colors
      dark: {
        bg_primary: '#1a1a1a',
        bg_secondary: '#2d2d2d',
        text_primary: '#ffffff',
        text_secondary: '#a0a0a0',
        button_primary: '#3385ff',
        button_primary_hover: '#4d99ff',
        button_text_primary: '#ffffff',
        border_primary: '#404040'
      }
    }
  },
  return_url: 'https://yoursite.com/return'
});
No es necesario especificar todas las propiedades de color. Las propiedades no especificadas utilizarán los valores predeterminados del tema.