Skip to main content
Dodo CLI gestiona tus recursos de Dodo Payments, responde preguntas sobre tu cuenta con un asistente de IA integrado, crea sesiones de checkout y prueba webhooks, todo desde tu terminal. Usa su TUI interactiva o ejecuta subcomandos directos desde scripts.

Características

  • TUI interactiva: Ejecuta dodo sin argumentos para abrir la interfaz interactiva, con una paleta de comandos, historial y notificaciones en tiempo real.
  • Asistente de IA integrado: Haz preguntas o realiza acciones en lenguaje natural con /ai. El asistente ejecuta dodopayments-mcp localmente y no requiere configuración adicional.
  • Credenciales cifradas: Las claves de API se almacenan en ~/.dodopayments/config.json, cifradas con AES-256-GCM y una clave derivada de tu máquina. No se almacenan credenciales en texto plano en el disco.
  • Actualización automática: CLI comprueba si hay nuevas versiones al iniciarse y te notifica en la TUI. Para instalaciones con npm y Bun, ejecuta /update para actualizar directamente.
  • Herramientas para webhooks: Reenvía webhooks del modo de prueba a tu servidor local o envía payloads de webhook simulados sin conexión.
  • Scaffolding: Añade rutas de facturación a proyectos de Next.js, Express y Better Auth con dodo init.

Instalación

En macOS o Linux, instala el binario de la versión más reciente con el script de instalación:
El script verifica el binario comparándolo con las sumas de comprobación SHA-256 de la versión. Instala dodo en el primer directorio con permisos de escritura entre /usr/local/bin, ~/.local/bin y ~/bin, o en ~/.local/bin si ninguno permite escritura. Para instalar una versión específica, establece la variable de entorno DODO_VERSION con su tag. Para elegir el directorio, establece DODO_INSTALL_DIR.

Instalar con NPM o Bun

Si tienes Node.js o Bun, instala globalmente el paquete dodopayments-cli. Las instalaciones mediante gestores de paquetes obtienen la versión publicada más reciente:
Los subcomandos directos, como dodo login, se ejecutan en Node.js 18 o posterior. Cuando instalas mediante un gestor de paquetes, la TUI interactiva también necesita Bun. Los binarios de versión no necesitan ningún runtime.

Instalación manual (no requiere Node ni Bun)

Para instalar sin ejecutar un script remoto, descarga el binario tú mismo.
1

Download the Binary

Descarga el binario para tu plataforma desde la versión de GitHub más reciente.
2

Rename the Binary to dodo

3

Move It to a Directory on Your PATH

En Windows, mover el archivo a C:\Windows\System32 requiere privilegios de administrador.
4

(Optional) Verify the Download

Cada versión publica un archivo SHA256SUMS.txt. Descárgalo junto al binario y, después, verifica el binario:

Autenticación

Inicia sesión con una clave de API antes de ejecutar comandos que lean o modifiquen tu cuenta. Para iniciar sesión con un subcomando directo, pasa la clave y su modo, test o live:
O, desde la TUI interactiva:
El flujo de inicio de sesión de la TUI:
  1. Abre en tu navegador la página Developer → API Keys del dashboard.
  2. Te solicita que pegues tu clave de API.
  3. Te pide que elijas Test Mode o Live Mode.
Ambos comandos verifican la clave mediante una solicitud a la API y, después, la almacenan cifrada en ~/.dodopayments/config.json.
La clave de cifrado se deriva de tu máquina, por lo que las credenciales almacenadas solo funcionan en esa máquina. Si actualizas desde v3.0.x, que almacenaba las claves en el llavero del sistema operativo, ejecuta de nuevo dodo login. Las claves del archivo anterior en texto plano ~/.dodopayments/api-key se migran automáticamente y el archivo se elimina.

Cambiar de modo y cerrar sesión

Puedes mantener iniciadas al mismo tiempo una clave del modo de prueba y una clave del modo activo. Para cambiar el modo activo en la TUI, ejecuta /switch. Para eliminar las claves almacenadas:
En el modo directo, pasa test, live o all. En la TUI, /logout te pide que elijas All accounts, Test Mode o Live Mode y, después, que confirmes.

Uso

Puedes usar CLI en dos modos.

1. TUI interactiva (recomendado)

Ejecuta dodo sin argumentos para abrir la interfaz interactiva:
Escribe / para abrir la paleta de comandos. El texto que no empieza por / se envía al asistente de IA.

2. Subcomandos directos

Ejecuta un comando sin abrir la TUI:
Por ejemplo:
Las tablas de referencia siguientes muestran todos los comandos en formato de modo directo. En la TUI, sustituye dodo por /; por ejemplo, /payments list 1. Los comandos marcados como solo TUI son asistentes interactivos. En el modo directo, muestran un mensaje que indica que debes abrir la TUI.

Asistente de IA

Haz preguntas sobre tu cuenta o realiza acciones en lenguaje natural. El asistente ejecuta dodopayments-mcp en tu máquina, por lo que no requiere configuración adicional ni un flujo de OAuth. Llama a la API de Dodo Payments desde tu máquina usando la clave almacenada y envía tus indicaciones al modelo de lenguaje. En el modo directo, ejecuta dodo ai seguido de tu pregunta. Ejemplos en la TUI:
El asistente usa tu modo activo (modo de prueba o modo activo) y solo funciona con los datos de ese modo.

Scaffolding de proyectos

dodo init añade rutas de facturación de Dodo Payments a un proyecto existente. Escribe los archivos de rutas, instala el paquete adaptador correspondiente @dodopayments/* y añade las variables DODO_PAYMENTS_* que falten a tu archivo .env con valores de marcador de posición. Omite los archivos y las variables que ya existen y se ejecuta sin iniciar sesión.
Para el scaffolding de Better-Auth, puedes pasar una lista de plugins separados por comas para generarlos: checkout, portal, usage y webhooks. Si no pasas una lista, genera los cuatro.
Si tu proyecto tiene un directorio src/, el scaffolder escribe los archivos dentro de él. Elige el comando de instalación a partir del archivo de bloqueo de tu proyecto (bun, pnpm o yarn) y usa npm cuando no encuentra ninguno.

Referencia de comandos

Estos comandos requieren una clave de API con sesión iniciada. Los comandos de listado aceptan un número de página opcional, cuyo valor predeterminado es 1, y muestran hasta 100 elementos por página.

Productos

Gestiona tu catálogo de productos.

Pagos

Ver las transacciones de pago.

Clientes

Gestiona tus clientes.

Descuentos

Gestiona los códigos de descuento.

Licencias

Ver las claves de licencia. El comando se escribe licences.

Addons

Gestiona los complementos de productos.

Reembolsos

Ver la información de los reembolsos.

Checkout

Crear sesiones de checkout alojadas.

Webhooks

CLI tiene dos herramientas de webhook para desarrollo: un listener que reenvía webhooks del modo de prueba a tu servidor local y un trigger que envía payloads de webhook simulados a cualquier endpoint. En el modo directo, los argumentos son obligatorios. En la TUI, ejecuta /wh listen o /wh trigger sin argumentos para abrir un asistente interactivo.

Escuchar webhooks

Reenvía en tiempo real los webhooks de tu cuenta de Dodo Payments a tu servidor de desarrollo local.
dodo wh listen requiere una clave de API de Test Mode. Las claves de Live Mode no son compatibles con el flujo de escucha.
1

Enter Your Local Endpoint URL

Pasa la URL local que debe recibir los webhooks, por ejemplo http://localhost:3000/webhook. En el asistente de la TUI, CLI te la solicita.
2

Automatic Setup

Si tu cuenta no tiene un endpoint de webhook para el servidor de retransmisión de CLI, CLI crea uno. El endpoint aparece en Developer → Webhooks. Después, CLI abre una conexión WebSocket con el servidor de retransmisión para recibir eventos en tiempo real.
3

Receive and Forward

Cuando se activa un evento de webhook, por ejemplo debido a un pago de prueba o a un cambio de suscripción, CLI reenvía el payload y los headers a tu endpoint local como una solicitud POST. Registra el tipo de evento y la respuesta de tu endpoint, y envía la respuesta al servidor de retransmisión.
El listener conserva los headers originales del webhook (webhook-id, webhook-signature, webhook-timestamp) al reenviarlos a tu endpoint local, para que puedas probar la lógica de verificación de firmas.
El relay y la CLI analizan el cuerpo JSON y lo serializan de nuevo antes de reenviarlo. Si el cuerpo reenviado difiere byte por byte del original, por ejemplo, en el formato de los números, la verificación de la firma falla aunque los encabezados permanezcan intactos.

Activar webhooks de prueba

Envía un payload de webhook simulado a cualquier endpoint sin crear transacciones reales.
Los eventos activados no están firmados: la solicitud no incluye los headers webhook-id, webhook-signature ni webhook-timestamp. Durante las pruebas, analízalos con el método no verificado (unsafeUnwrap en TypeScript, unsafe_unwrap en Python, UnsafeUnwrap en Go) en lugar de unwrap, y vuelve a cambiar a unwrap antes de pasar a producción.
En el modo directo, el payload usa ID de marcador de posición y datos de clientes de ejemplo. El asistente /wh trigger de la TUI te guía por los siguientes pasos:
  1. Establecer una URL de endpoint de destino.
  2. Introducir opcionalmente un Business ID, Product ID, Metadata (un objeto JSON), Customer email y Customer ID para el payload. Los campos vacíos usan valores de marcador de posición.
  3. Seleccionar un evento para enviar desde un menú interactivo. Puedes enviar varios eventos seguidos. Elige exit para terminar.
dodo wh trigger no requiere iniciar sesión. Funciona como un generador local y sin conexión de payloads de webhook.

Eventos de webhook compatibles

dodo wh trigger puede enviar payloads simulados para 46 de los 48 tipos de eventos que entrega Dodo Payments. No admite subscription.past_due ni subscription.unpaused. Pasa el nombre del evento exactamente como aparece en la lista: Tres nombres de trigger difieren del type de evento en el payload que envían: payment.success envía payment.succeeded, refund.success envía refund.succeeded y licence.created envía license_key.created.
Las estructuras de los payloads simulados siguen los esquemas correspondientes de la referencia de la API. Consulta Eventos de webhook para saber qué significa cada evento y cuándo lo emite Dodo Payments en producción.
payout.created se emite mientras el payout aún muestra un estado not_initiated, por lo que el payload simulado también lo refleja. Consulta Eventos de payout para conocer el ciclo de vida completo del payout.

Variables de entorno

Esta variable cambia la forma en que dodo wh listen se conecta:

Actualizaciones

CLI comprueba si hay una versión más reciente al iniciarse y muestra una notificación en la barra de estado cuando está disponible. Para actualizar una instalación de npm o Bun desde la TUI, ejecuta:
/update no puede actualizar un binario de versión. Para las instalaciones binarias, incluida la del script de instalación, enlaza en su lugar a la versión más reciente de GitHub. Para actualizar desde tu shell, vuelve a ejecutar el comando con el que instalaste:

Recursos

GitHub Repository

Código fuente y versiones.

npm Package

El paquete dodopayments-cli en el registro de npm.

Soporte

Última modificación el 26 de septiembre de 2026