> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dodo CLI

> La interfaz de línea de comandos oficial para Dodo Payments: gestiona recursos, ejecuta consultas potenciadas por IA, crea sesiones de pago y prueba webhooks desde tu terminal.

Administra tus recursos de Dodo Payments, ejecuta consultas potenciadas por IA en tu cuenta, crea sesiones de pago y prueba webhooks, todo desde la terminal. El CLI viene con un TUI interactivo, un asistente de IA incorporado impulsado por MCP y pruebas de webhooks sin conexión.

<Frame>
  <iframe className="w-full aspect-video rounded-md" src="https://www.youtube.com/embed/gwtvQsANbW4" title="Dodo CLI | Dodo Payments" frameBorder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowFullScreen />
</Frame>

## Características

* **TUI interactivo**: lanza `dodo` sin argumentos para abrir la interfaz interactiva completa con paleta de comandos, historial y notificaciones en vivo.
* **Asistente de IA incorporado**: haz preguntas o realiza acciones en inglés simple con `/ai`. Sin configuración adicional, se ejecuta `dodopayments-mcp` localmente.
* **Seguro por defecto**: las claves API se almacenan en el almacén secreto de tu sistema operativo (macOS Keychain, Windows Credential Vault, Linux libsecret). Sin configuración en texto plano en el disco.
* **Actualización automática**: el CLI verifica la existencia de nuevas versiones al inicio y te notifica en la aplicación. Ejecuta `/update` para actualizar en el lugar.
* **Herramientas para webhooks**: escucha webhooks en vivo o dispara cargas útiles sin conexión para desarrollo local.

## Instalación

Instala el CLI en una línea en macOS o Linux:

```bash theme={null}
curl -fsSL https://dodopayments.com/install.sh | sh
```

### Instalar con npm o Bun

Si ya tienes Node o Bun, las instalaciones del gestor de paquetes siempre obtienen la última versión:

<CodeGroup>
  ```bash npm theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

### Instalación manual (no se requiere Node / Bun)

Si prefieres no canalizar un script remoto a `sh`, descarga el binario tú mismo.

<Steps>
  <Step title="Download the binary">
    Descarga el binario para tu plataforma desde la última [versión de GitHub](https://github.com/dodopayments/dodopayments-cli/releases).

    | Plataforma            | Binario                    |
    | --------------------- | -------------------------- |
    | macOS (Apple Silicon) | `dodo-cli-darwin-arm64`    |
    | macOS (Intel)         | `dodo-cli-darwin-x64`      |
    | Linux (x86\_64)       | `dodo-cli-linux-x64`       |
    | Linux (arm64)         | `dodo-cli-linux-arm64`     |
    | Windows (x86\_64)     | `dodo-cli-windows-x64.exe` |
  </Step>

  <Step title="Rename the binary to `dodo`">
    <CodeGroup>
      ```bash Linux / macOS theme={null}
      mv ./dodo-cli-* ./dodo && chmod +x ./dodo
      ```

      ```powershell Windows theme={null}
      ren .\dodo-cli-windows-x64.exe .\dodo.exe
      ```
    </CodeGroup>
  </Step>

  <Step title="Move it to a directory on your PATH">
    <CodeGroup>
      ```bash Linux / macOS theme={null}
      sudo mv ./dodo /usr/local/bin/
      ```

      ```powershell Windows theme={null}
      move .\dodo.exe C:\Windows\System32\dodo.exe
      ```
    </CodeGroup>

    <Info>
      En Windows, mover a `C:\Windows\System32` requiere privilegios de administrador.
    </Info>
  </Step>

  <Step title="(Optional) Verify the download">
    Cada versión publica un `SHA256SUMS.txt`. Verifica tu descarga con:

    ```bash theme={null}
    shasum -a 256 -c SHA256SUMS.txt
    ```
  </Step>
</Steps>

## Autenticación

Antes de utilizar comandos autenticados, inicia sesión con tu clave API:

```bash theme={null}
dodo login
```

O, desde el TUI interactivo:

```text theme={null}
/login
```

El flujo de inicio de sesión:

1. Abre tu navegador en la página de Claves API de Dodo Payments.
2. Te pide que pegues tu Clave API.
3. Te solicita elegir un entorno, **Modo de prueba** o **Modo en vivo**.
4. Almacena las credenciales en el almacén de secretos de tu sistema operativo (Keychain en macOS, Credential Vault en Windows, libsecret en Linux).

<Info>
  Dado que las credenciales se almacenan en el almacén de secretos del sistema operativo, es posible que se te solicite tu **contraseña del dispositivo** la primera vez que el CLI lee o escribe credenciales. Si estás actualizando desde una versión anterior, cualquier clave API en texto plano existente será **migrada al almacén secreto y el archivo heredado eliminado** automáticamente.
</Info>

### Cambiar modos y cerrar sesión

Puedes mantener una clave **Modo de prueba** y una clave **Modo en vivo** autenticadas al mismo tiempo. Para borrar las credenciales:

<CodeGroup>
  ```bash Direct theme={null}
  dodo logout
  ```

  ```text TUI theme={null}
  /logout
  ```
</CodeGroup>

El flujo de cierre de sesión te permite elegir entre **Todas las cuentas**, **Modo de prueba** o **Modo en vivo** de forma independiente.

## Uso

Puedes usar el CLI en dos modos.

### 1. TUI interactivo (recomendado)

Ejecuta `dodo` sin argumentos para iniciar la interfaz interactiva completa:

```bash theme={null}
dodo
```

Escribe `/` para abrir la paleta de comandos, o simplemente comienza a escribir; todo lo que no sea un comando de barra se envía al asistente de IA.

| Comando   | Descripción                                                         |
| --------- | ------------------------------------------------------------------- |
| `/help`   | Mostrar la referencia de comandos                                   |
| `/update` | Verificar e instalar una actualización del CLI                      |
| `/login`  | Autenticar con una clave API                                        |
| `/logout` | Cerrar sesión de uno o todos los entornos                           |
| `/clear`  | Limpiar la pantalla del TUI                                         |
| `/exit`   | Salir del TUI (también: escribe `exit`, o presiona `Esc` dos veces) |

### 2. Subcomandos directos

Ejecuta comandos directamente sin entrar en el TUI:

```bash theme={null}
dodo <category> <sub-command> [args...]
```

Por ejemplo:

```bash theme={null}
dodo payments list 1
dodo customers create
dodo wh trigger
```

Las tablas de referencia a continuación muestran cada comando. En el TUI, prefijalos con `/`; en el modo directo, elimina el `/`.

## Asistente de IA

Haz preguntas o toma acciones en lenguaje natural. El asistente usa `dodopayments-mcp` ejecutándose localmente: no se requiere configuración adicional ni flujo de OAuth, y tu tráfico de IA no sale de tu máquina excepto para comunicarte con el proveedor del modelo.

| Comando                       | Descripción                                                      |
| ----------------------------- | ---------------------------------------------------------------- |
| `/ai <query>`                 | Haz una pregunta o da una instrucción al asistente de IA         |
| *(cualquier texto sin barra)* | Se envía al asistente de IA por defecto mientras estás en el TUI |

Ejemplos:

```text theme={null}
how much revenue did I make this week?
/ai create a new customer named Acme Inc.
/ai find my last failed payment
```

<Tip>
  El asistente respeta tu entorno activo (Prueba / En vivo), por lo que solo opera sobre los datos del entorno en el que estás actualmente autenticado.
</Tip>

## Estructura del Proyecto

`dodo init` estructura las rutas de facturación de Dodo Payments directamente en un proyecto existente. Genera los archivos de ruta de plantilla, instala el paquete de adaptador correspondiente `@dodopayments/*`, y escribe de manera segura las variables de entorno `DODO_PAYMENTS_*` en tu `.env` (solo agrega variables que no estén ya presentes). El comando se ejecuta **sin iniciar sesión**.

```bash theme={null}
dodo init <framework>
```

| Estructura              | Descripción                                                                                                                                       |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dodo init nextjs`      | Estructurar rutas de facturación del App Router de Next.js (checkout, portal del cliente, y manejadores de webhook) usando `@dodopayments/nextjs` |
| `dodo init express`     | Estructurar rutas de facturación del servidor Express usando `@dodopayments/express`                                                              |
| `dodo init better-auth` | Estructurar una configuración del plugin Better-Auth usando `@dodopayments/better-auth`                                                           |

Para la estructura de Better-Auth puedes pasar una lista de plugins separada por comas para generar (por defecto todos): `checkout`, `portal`, `usage`, `webhooks`.

```bash theme={null}
# Scaffold every Better-Auth plugin (default)
dodo init better-auth

# Scaffold only specific plugins
dodo init better-auth checkout,portal
```

<Info>
  El estructurador detecta automáticamente un directorio `src/` y ajusta las rutas de salida en consecuencia, y detecta automáticamente tu gestor de paquetes (`bun`, `pnpm`, `yarn`, o `npm`) para ejecutar el comando de instalación correcto.
</Info>

## Referencia de Comandos

### Productos

Administra tu catálogo de productos.

| Comando                     | Descripción                                      |
| --------------------------- | ------------------------------------------------ |
| `dodo products list <page>` | Listar productos                                 |
| `dodo products create`      | Abrir el panel de control para crear un producto |
| `dodo products info <id>`   | Ver detalles de un producto específico           |

### Pagos

Ver transacciones de pago.

| Comando                     | Descripción                                  |
| --------------------------- | -------------------------------------------- |
| `dodo payments list <page>` | Listar pagos                                 |
| `dodo payments info <id>`   | Obtener información sobre un pago específico |

### Clientes

Administra tu base de clientes.

| Comando                      | Descripción                     |
| ---------------------------- | ------------------------------- |
| `dodo customers list <page>` | Listar clientes                 |
| `dodo customers create`      | Crear un nuevo cliente          |
| `dodo customers update <id>` | Actualizar un cliente existente |

### Descuentos

Administra cupones y descuentos.

| Comando                      | Descripción                                   |
| ---------------------------- | --------------------------------------------- |
| `dodo discounts list <page>` | Listar descuentos                             |
| `dodo discounts create`      | Crear un nuevo descuento basado en porcentaje |
| `dodo discounts delete <id>` | Eliminar un descuento por ID                  |

### Licencias

Administra licencias de software.

| Comando                     | Descripción      |
| --------------------------- | ---------------- |
| `dodo licences list <page>` | Listar licencias |

### Addons

Administra complementos de productos.

| Comando                   | Descripción                                         |
| ------------------------- | --------------------------------------------------- |
| `dodo addons list <page>` | Listar complementos                                 |
| `dodo addons create`      | Abrir el panel de control para crear un complemento |
| `dodo addons info <id>`   | Ver detalles de un complemento específico           |

### Reembolsos

Ver información de reembolsos.

| Comando                    | Descripción                             |
| -------------------------- | --------------------------------------- |
| `dodo refunds list <page>` | Listar reembolsos                       |
| `dodo refunds info <id>`   | Ver detalles de un reembolso específico |

### Checkout

Crear sesiones de checkout alojadas.

| Comando             | Descripción                                                                       |
| ------------------- | --------------------------------------------------------------------------------- |
| `dodo checkout new` | Crear interactivamente una sesión de checkout alojada y obtener un enlace de pago |

## Webhooks

El CLI incluye dos herramientas poderosas para probar webhooks durante el desarrollo: un **escuchador** que reenvía webhooks de prueba en vivo a tu servidor local, y un **desencadenador** que envía cargas útiles de prueba de webhook a cualquier endpoint.

| Comando           | Descripción                                                                               |
| ----------------- | ----------------------------------------------------------------------------------------- |
| `dodo wh listen`  | Escuchar webhooks en tiempo real y reenviarlos a tu servidor de desarrollo local          |
| `dodo wh trigger` | Desencadenar un evento de prueba de webhook interactivamente — incluso sin iniciar sesión |

### Escuchar webhooks

Reenviar webhooks de Dodo Payments directamente a tu servidor de desarrollo local en tiempo real.

```bash theme={null}
dodo wh listen
```

<Steps>
  <Step title="Enter your local endpoint URL">
    Proporciona la URL local donde deseas recibir webhooks (p. ej., `http://localhost:3000/webhook`).
  </Step>

  <Step title="Automatic setup">
    El CLI crea automáticamente un endpoint de webhook en tu cuenta de Dodo Payments si aún no existe, luego abre una conexión WebSocket para recibir eventos en tiempo real.
  </Step>

  <Step title="Receive and forward">
    Cuando se activa un evento de webhook (por un pago de prueba, un cambio de suscripción, etc.), el CLI lo recibe, registra el tipo de evento, y reenvía la solicitud completa con encabezados y cuerpo a tu endpoint local. La respuesta de tu endpoint se registra y se envía de vuelta.
  </Step>
</Steps>

<Warning>
  `dodo wh listen` requiere una clave API de **Modo de Prueba**. Las claves de Modo en Vivo no son compatibles con el flujo de escucha.
</Warning>

<Tip>
  El escuchador preserva los encabezados originales del webhook (`webhook-id`, `webhook-signature`, `webhook-timestamp`) al reenviar a tu endpoint local, para que puedas probar tu lógica de verificación de firmas.
</Tip>

### Desencadenar pruebas de webhooks

Enviar cargas útiles de prueba de webhook a cualquier endpoint para pruebas rápidas sin necesidad de crear transacciones reales.

```bash theme={null}
dodo wh trigger
```

El flujo `/wh trigger` te guía a través de:

1. Establecer una **URL de endpoint** de destino
2. Seleccionar un **evento específico** para desencadenar desde un menú interactivo

<Info>
  `dodo wh trigger` **no** requiere iniciar sesión. Funciona como un generador local/fuera de línea de cargas útiles de webhook.
</Info>

<Warning>
  Los eventos desencadenados **no están firmados**. Mientras pruebas, desactiva la verificación de firma del webhook en tu endpoint — por ejemplo, usa `unsafe_unwrap()` en lugar de `unwrap()` en tu manejador de webhook **solo durante pruebas**.
</Warning>

### Eventos de webhook compatibles

| Categoría       | Eventos                                                                                     |
| --------------- | ------------------------------------------------------------------------------------------- |
| **Suscripción** | `active`, `updated`, `on_hold`, `renewed`, `plan_changed`, `cancelled`, `failed`, `expired` |
| **Pago**        | `succeeded`, `failed`, `processing`, `cancelled`                                            |
| **Reembolso**   | `succeeded`, `failed`                                                                       |
| **Disputa**     | `opened`, `expired`, `accepted`, `cancelled`, `challenged`, `won`, `lost`                   |
| **Licencia**    | `created`                                                                                   |

### Variables de entorno

| Variable                  | Descripción                                                                                      |
| ------------------------- | ------------------------------------------------------------------------------------------------ |
| `DODO_WH_TEST_SERVER_URL` | Anular la URL del servidor de retransmisión de webhook predeterminada usada por `dodo wh listen` |

## Actualizaciones

El CLI verifica si hay una versión más reciente al arrancar y muestra una notificación en la barra de estado cuando está disponible. Para actualizar:

```text theme={null}
/update
```

O, vuelve a ejecutar el instalador para actualizar en el lugar:

<CodeGroup>
  ```bash install.sh theme={null}
  curl -fsSL https://dodopayments.com/install.sh | sh
  ```

  ```bash npm theme={null}
  npm install -g dodopayments-cli
  ```

  ```bash Bun theme={null}
  bun install -g dodopayments-cli
  ```
</CodeGroup>

## Recursos

<CardGroup cols={2}>
  <Card title="GitHub Repository" icon="github" href="https://github.com/dodopayments/dodopayments-cli">
    Ver código fuente y lanzamientos
  </Card>

  <Card title="npm Package" icon="npm" href="https://www.npmjs.com/package/dodopayments-cli">
    Ver en el registro de npm
  </Card>
</CardGroup>

## Soporte

* **Discord**: Únete a nuestro [servidor de comunidad](https://discord.gg/bYqAp4ayYh)
* **GitHub**: Abre un issue en el [repositorio](https://github.com/dodopayments/dodopayments-cli/issues)
* **Email**: Contáctanos en [support@dodopayments.com](mailto:support@dodopayments.com)
