> ## 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

> A interface oficial de linha de comando para Dodo Payments — gerencie recursos, execute consultas com inteligência artificial, crie sessões de checkout e teste webhooks a partir do seu terminal.

Gerencie seus recursos de Dodo Payments, execute consultas com inteligência artificial na sua conta, crie sessões de checkout e teste webhooks — tudo a partir do terminal. O CLI é fornecido com uma TUI interativa, um assistente AI integrado com tecnologia MCP e testes de webhooks offline.

<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>

## Recursos

* **TUI interativa** — execute `dodo` sem argumentos para abrir a interface interativa completa com paleta de comandos, histórico e notificações ao vivo.
* **Assistente AI embutido** — faça perguntas ou execute ações em inglês simples com `/ai`. Nenhuma configuração extra, executa `dodopayments-mcp` localmente.
* **Seguro por padrão** — Chaves de API são armazenadas no armazenamento de segredos do seu SO (macOS Keychain, Windows Credential Vault, Linux libsecret). Nenhuma configuração em plaintext no disco.
* **Atualização automática** — o CLI verifica novas versões na inicialização e notifica você no aplicativo. Execute `/update` para atualizar no local.
* **Ferramentas de webhook** — ouça webhooks ao vivo ou dispare cargas úteis offline para desenvolvimento local.

## Instalação

Instale o CLI em uma linha no macOS ou Linux:

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

### Instalar com npm ou Bun

Se você já possui Node ou Bun, as instalações de gerenciadores de pacotes sempre puxam a versão mais recente:

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

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

### Instalação manual (sem Node / Bun necessário)

Se preferir não conduzir um script remoto para `sh`, baixe o binário você mesmo.

<Steps>
  <Step title="Download the binary">
    Baixe o binário para sua plataforma a partir da última [GitHub Release](https://github.com/dodopayments/dodopayments-cli/releases).

    | Plataforma            | Binário                    |
    | --------------------- | -------------------------- |
    | 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>
      No Windows, mover para `C:\Windows\System32` requer privilégios de administrador.
    </Info>
  </Step>

  <Step title="(Optional) Verify the download">
    Cada lançamento publica um `SHA256SUMS.txt`. Verifique seu download com:

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

## Autenticação

Antes de usar comandos autenticados, faça login com sua chave API:

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

Ou, de dentro da TUI interativa:

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

O fluxo de login irá:

1. Abrir seu navegador na página de Chaves API do Dodo Payments.
2. Solicitar que você cole sua Chave API.
3. Pedir que você selecione um ambiente — **Modo de Teste** ou **Modo ao Vivo**.
4. Armazenar as credenciais no armazenamento de segredos do seu SO (Keychain no macOS, Credential Vault no Windows, libsecret no Linux).

<Info>
  Como as credenciais são armazenadas no armazenamento de segredos do SO, pode ser solicitado que você insira sua **senha do dispositivo** na primeira vez que o CLI lê ou escreve credenciais. Se você estiver atualizando de uma versão mais antiga, qualquer chave de API em plaintext existente será **migrada para o armazenamento de segredos e o arquivo legado excluído** automaticamente.
</Info>

### Alternando modos e desconectando

Você pode manter uma chave autenticada para **Modo de Teste** e outra para **Modo ao Vivo** ao mesmo tempo. Para limpar credenciais:

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

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

O fluxo de logout permite que você escolha entre **Todas as contas**, **Modo de Teste**, ou **Modo ao Vivo** de forma independente.

## Uso

Você pode usar o CLI em dois modos.

### 1. TUI interativa (recomendada)

Execute `dodo` sem argumentos para iniciar a interface interativa completa:

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

Digite `/` para abrir a paleta de comandos, ou simplesmente comece a digitar — qualquer coisa que não seja um comando de barra é enviada para o assistente AI.

| Comando   | Descrição                                                          |
| --------- | ------------------------------------------------------------------ |
| `/help`   | Mostrar a referência de comandos                                   |
| `/update` | Verificar e instalar uma atualização do CLI                        |
| `/login`  | Autenticar com uma chave de API                                    |
| `/logout` | Desconectar de um ou de todos os ambientes                         |
| `/clear`  | Limpar a tela da TUI                                               |
| `/exit`   | Sair da TUI (também: digite `exit`, ou pressione `Esc` duas vezes) |

### 2. Subcomandos diretos

Execute comandos diretamente sem entrar na TUI:

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

Por exemplo:

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

As tabelas de referência abaixo mostram todos os comandos. Na TUI, prefira-os com `/`; no modo direto, descarte o `/`.

## Assistente AI

Faça perguntas ou aja em linguagem natural. O assistente usa `dodopayments-mcp` rodando localmente — sem necessidade de configuração adicional ou fluxo OAuth, e seu tráfego AI não sai da sua máquina, exceto para se comunicar com o provedor do modelo.

| Comando                      | Descrição                                                       |
| ---------------------------- | --------------------------------------------------------------- |
| `/ai <query>`                | Fazer uma pergunta ao assistente AI ou dar uma instrução        |
| *(qualquer texto não-slash)* | Enviado para o assistente AI por padrão enquanto estiver na TUI |

Exemplos:

```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>
  O assistente respeita seu ambiente ativo (Teste / Ao Vivo), então ele opera apenas em dados do ambiente em que você está logado.
</Tip>

## Estrutura do Projeto

`dodo init` cria rotas de cobrança do Dodo Payments diretamente em um projeto existente. Ele gera os arquivos de boilerplate da rota, instala o pacote adaptador correspondente `@dodopayments/*`, e grava com segurança as variáveis de ambiente `DODO_PAYMENTS_*` no seu `.env` (apenas adiciona variáveis que ainda não estão presentes). O comando é executado **sem fazer login**.

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

| Scaffold                | Descrição                                                                                                                              |
| ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| `dodo init nextjs`      | Cria rotas de cobrança do App Router do Next.js (checkout, portal do cliente e manipuladores de webhook) usando `@dodopayments/nextjs` |
| `dodo init express`     | Cria rotas de cobrança do servidor Express usando `@dodopayments/express`                                                              |
| `dodo init better-auth` | Cria uma configuração de plugin Better-Auth usando `@dodopayments/better-auth`                                                         |

Para o scaffold Better-Auth, você pode passar uma lista separada por vírgulas de plugins para gerar (o padrão é 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>
  O scaffolder detecta automaticamente um diretório `src/` e ajusta os caminhos de saída de acordo, além de detectar automaticamente seu gerenciador de pacotes (`bun`, `pnpm`, `yarn` ou `npm`) para executar o comando de instalação correto.
</Info>

## Referência de Comandos

### Produtos

Gerencie seu catálogo de produtos.

| Comando                     | Descrição                                    |
| --------------------------- | -------------------------------------------- |
| `dodo products list <page>` | Listar produtos                              |
| `dodo products create`      | Abrir o dashboard para criar um produto      |
| `dodo products info <id>`   | Visualizar detalhes de um produto específico |

### Pagamentos

Visualizar transações de pagamento.

| Comando                     | Descrição                                       |
| --------------------------- | ----------------------------------------------- |
| `dodo payments list <page>` | Listar pagamentos                               |
| `dodo payments info <id>`   | Obter informações sobre um pagamento específico |

### Clientes

Gerencie sua base de clientes.

| Comando                      | Descrição                      |
| ---------------------------- | ------------------------------ |
| `dodo customers list <page>` | Listar clientes                |
| `dodo customers create`      | Criar um novo cliente          |
| `dodo customers update <id>` | Atualizar um cliente existente |

### Descontos

Gerencie cupons e descontos.

| Comando                      | Descrição                                     |
| ---------------------------- | --------------------------------------------- |
| `dodo discounts list <page>` | Listar descontos                              |
| `dodo discounts create`      | Criar um novo desconto baseado em porcentagem |
| `dodo discounts delete <id>` | Remover um desconto por ID                    |

### Licenças

Gerencie licenças de software.

| Comando                     | Descrição       |
| --------------------------- | --------------- |
| `dodo licences list <page>` | Listar licenças |

### Complementos

Gerencie complementos de produtos.

| Comando                   | Descrição                                        |
| ------------------------- | ------------------------------------------------ |
| `dodo addons list <page>` | Listar complementos                              |
| `dodo addons create`      | Abrir o dashboard para criar um complemento      |
| `dodo addons info <id>`   | Visualizar detalhes de um complemento específico |

### Reembolsos

Visualizar informações de reembolso.

| Comando                    | Descrição                                      |
| -------------------------- | ---------------------------------------------- |
| `dodo refunds list <page>` | Listar reembolsos                              |
| `dodo refunds info <id>`   | Visualizar detalhes de um reembolso específico |

### Checkout

Criar sessões de checkout hospedadas.

| Comando             | Descrição                                                                           |
| ------------------- | ----------------------------------------------------------------------------------- |
| `dodo checkout new` | Criar interativamente uma sessão de checkout hospedada e obter um link de pagamento |

## Webhooks

A CLI inclui duas ferramentas poderosas para testar webhooks durante o desenvolvimento: um **ouvinte** que encaminha webhooks de teste ao vivo para seu servidor local e um **gatilho** que envia cargas de webhook simuladas para qualquer endpoint.

| Comando           | Descrição                                                                               |
| ----------------- | --------------------------------------------------------------------------------------- |
| `dodo wh listen`  | Ouvir webhooks em tempo real e encaminhá-los para seu servidor de desenvolvimento local |
| `dodo wh trigger` | Disparar um evento de webhook de teste interativamente — mesmo sem estar logado         |

### Ouvir webhooks

Encaminhar webhooks do Dodo Payments diretamente para seu servidor de desenvolvimento local em tempo real.

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

<Steps>
  <Step title="Enter your local endpoint URL">
    Forneça a URL local onde deseja receber webhooks (ex., `http://localhost:3000/webhook`).
  </Step>

  <Step title="Automatic setup">
    A CLI cria automaticamente um endpoint de webhook em sua conta Dodo Payments se um não existir, e então abre uma conexão WebSocket para receber eventos em tempo real.
  </Step>

  <Step title="Receive and forward">
    Quando um evento de webhook é disparado (de um pagamento de teste, alteração de assinatura, etc.), a CLI o recebe, registra o tipo de evento e encaminha a solicitação completa com cabeçalhos e corpo para seu endpoint local. A resposta do seu endpoint é registrada e enviada de volta.
  </Step>
</Steps>

<Warning>
  `dodo wh listen` requer uma chave de API em **Modo de Teste**. As chaves de Modo ao Vivo não são suportadas pelo fluxo de escuta.
</Warning>

<Tip>
  O ouvinte preserva os cabeçalhos originais do webhook (`webhook-id`, `webhook-signature`, `webhook-timestamp`) ao encaminhar para seu endpoint local, para que você possa testar sua lógica de verificação de assinatura.
</Tip>

### Disparar webhooks de teste

Envie cargas de webhook simuladas para qualquer endpoint para testes rápidos sem a necessidade de criar transações reais.

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

O fluxo `/wh trigger` conduz você por:

1. Configurar uma **URL de destino do endpoint**
2. Selecionar um **evento** específico para disparar a partir de um menu interativo

<Info>
  `dodo wh trigger` **não** requer login. Funciona como um gerador de carga de webhook local/offline.
</Info>

<Warning>
  Os eventos disparados **não são assinados**. Durante os testes, desative a verificação de assinatura do webhook no seu endpoint — por exemplo, use `unsafe_unwrap()` em vez de `unwrap()` no manipulador de webhook **apenas durante os testes**.
</Warning>

### Eventos de webhook suportados

| Categoria      | Eventos                                                                                     |
| -------------- | ------------------------------------------------------------------------------------------- |
| **Assinatura** | `active`, `updated`, `on_hold`, `renewed`, `plan_changed`, `cancelled`, `failed`, `expired` |
| **Pagamento**  | `succeeded`, `failed`, `processing`, `cancelled`                                            |
| **Reembolso**  | `succeeded`, `failed`                                                                       |
| **Disputa**    | `opened`, `expired`, `accepted`, `cancelled`, `challenged`, `won`, `lost`                   |
| **Licença**    | `created`                                                                                   |

### Variáveis de ambiente

| Variável                  | Descrição                                                                         |
| ------------------------- | --------------------------------------------------------------------------------- |
| `DODO_WH_TEST_SERVER_URL` | Substituir a URL padrão do servidor de relé de webhook usada por `dodo wh listen` |

## Atualizações

A CLI verifica se há uma versão mais recente ao iniciar e exibe uma notificação na barra de status quando uma está disponível. Para atualizar:

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

Ou, execute novamente o instalador para atualizar no local:

<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">
    Visualizar código-fonte e lançamentos
  </Card>

  <Card title="npm Package" icon="npm" href="https://www.npmjs.com/package/dodopayments-cli">
    Visualizar no registro npm
  </Card>
</CardGroup>

## Suporte

* **Discord**: Junte-se ao nosso [servidor da comunidade](https://discord.gg/bYqAp4ayYh)
* **GitHub**: Abra um problema no [repositório](https://github.com/dodopayments/dodopayments-cli/issues)
* **Email**: Entre em contato conosco através do email [support@dodopayments.com](mailto:support@dodopayments.com)
