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

> L'interface en ligne de commande officielle pour Dodo Payments — gérez les ressources, exécutez des requêtes alimentées par l'IA, créez des sessions de paiement et testez des webhooks depuis votre terminal.

Gérez vos ressources Dodo Payments, exécutez des requêtes alimentées par l'IA sur votre compte, créez des sessions de paiement et testez des webhooks — le tout depuis le terminal. Le CLI est livré avec un TUI interactif, un assistant IA intégré alimenté par MCP, et le test de webhooks hors ligne.

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

## Fonctionnalités

* **TUI interactif** — lancez `dodo` sans arguments pour ouvrir l'interface interactive complète avec palette de commandes, historique et notifications en direct.
* **Assistant IA intégré** — posez des questions ou effectuez des actions en anglais courant avec `/ai`. Aucune configuration supplémentaire, fonctionne `dodopayments-mcp` localement.
* **Sécurisé par défaut** — les clés API sont stockées dans le magasin de secrets de votre système d'exploitation (macOS Keychain, Windows Credential Vault, Linux libsecret). Aucune configuration en texte clair sur le disque.
* **Mise à jour automatique** — le CLI vérifie les nouvelles versions au démarrage et vous en informe dans l'application. Exécutez `/update` pour mettre à jour sur place.
* **Outils de webhook** — écoutez les webhooks en direct ou déclenchez des charges utiles hors ligne pour le développement local.

## Installation

Installez le CLI en une ligne sur macOS ou Linux :

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

### Installer avec npm ou Bun

Si vous avez déjà Node ou Bun, les installations via le gestionnaire de paquets tirent toujours la dernière version :

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

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

### Installation manuelle (pas besoin de Node / Bun)

Si vous préférez ne pas transmettre un script distant à `sh`, téléchargez le binaire vous-même.

<Steps>
  <Step title="Download the binary">
    Téléchargez le binaire pour votre plateforme depuis la dernière [version GitHub](https://github.com/dodopayments/dodopayments-cli/releases).

    | Plateforme            | Binaire                    |
    | --------------------- | -------------------------- |
    | 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>
      Sur Windows, le déplacement vers `C:\Windows\System32` nécessite des privilèges administrateur.
    </Info>
  </Step>

  <Step title="(Optional) Verify the download">
    Chaque version publie un `SHA256SUMS.txt`. Vérifiez votre téléchargement avec :

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

## Authentification

Avant d'utiliser des commandes authentifiées, connectez-vous avec votre clé API :

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

Ou, depuis l'intérieur du TUI interactif :

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

Le flux de connexion :

1. Ouvrira votre navigateur sur la page des clés API Dodo Payments.
2. Vous demandera de coller votre clé API.
3. Vous demandera de sélectionner un environnement — **Mode Test** ou **Mode Live**.
4. Stockera les identifiants dans le magasin de secrets de votre système d'exploitation (Keychain sur macOS, Credential Vault sur Windows, libsecret sur Linux).

<Info>
  Comme les identifiants sont stockés dans le magasin de secrets de l'OS, il se peut que l'on vous demande votre **mot de passe de l'appareil** la première fois que le CLI lit ou écrit des identifiants. Si vous effectuez une mise à niveau à partir d'une ancienne version, toute clé API existante en texte clair sera **migrée vers le magasin de secrets et le fichier héritage supprimé** automatiquement.
</Info>

### Changer de mode et se déconnecter

Vous pouvez garder une clé **Mode Test** et une clé **Mode Live** authentifiées en même temps. Pour effacer les identifiants :

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

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

Le flux de déconnexion vous permet de choisir entre **Tous les comptes**, **Mode Test** ou **Mode Live** de manière indépendante.

## Utilisation

Le CLI peut être utilisé de deux façons.

### 1. TUI interactif (recommandé)

Exécutez `dodo` sans arguments pour lancer l'interface interactive complète :

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

Tapez `/` pour ouvrir la palette de commandes, ou commencez simplement à taper — tout ce qui n'est pas une commande en barre oblique est envoyé à l'assistant IA.

| Commande  | Description                                                           |
| --------- | --------------------------------------------------------------------- |
| `/help`   | Afficher la référence des commandes                                   |
| `/update` | Vérifier et installer une mise à jour du CLI                          |
| `/login`  | Authentifier avec une clé API                                         |
| `/logout` | Se déconnecter d'un ou tous les environnements                        |
| `/clear`  | Effacer l'écran du TUI                                                |
| `/exit`   | Quitter le TUI (aussi : tapez `exit`, ou appuyez deux fois sur `Esc`) |

### 2. Sous-commandes directes

Exécutez directement des commandes sans entrer dans le TUI :

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

Par exemple :

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

Les tableaux de référence ci-dessous affichent chaque commande. Dans le TUI, préfixez-les avec `/` ; en mode direct, supprimez le `/`.

## Assistant IA

Posez des questions ou effectuez des actions en langage naturel. L'assistant utilise `dodopayments-mcp` s'exécutant localement — aucune configuration supplémentaire ou flux OAuth requis, et votre trafic IA ne quitte pas votre machine, sauf pour communiquer avec le fournisseur de modèle.

| Commande               | Description                                                       |
| ---------------------- | ----------------------------------------------------------------- |
| `/ai <query>`          | Poser une question à l'assistant IA ou lui donner une instruction |
| *(texte non-commande)* | Envoyé à l'assistant IA par défaut lors du TUI                    |

Exemples :

```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>
  L'assistant respecte votre environnement actif (Test / Live), donc il ne fonctionne que sur les données de l'environnement dans lequel vous êtes actuellement connecté.
</Tip>

## Échafaudage de projet

`dodo init` échafaude directement les routes de facturation de Dodo Payments dans un projet existant. Il génère les fichiers de route de base, installe le package d'adaptateur correspondant `@dodopayments/*`, et écrit en toute sécurité les variables d'environnement `DODO_PAYMENTS_*` dans votre `.env` (il n'ajoute que des variables qui ne sont pas déjà présentes). La commande fonctionne **sans connexion**.

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

| Échafaudage             | Description                                                                                                                                       |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
| `dodo init nextjs`      | Échafaude des routes de facturation App Router Next.js (checkout, portail client et gestionnaires de webhook) en utilisant `@dodopayments/nextjs` |
| `dodo init express`     | Échafaude des routes de facturation du serveur Express en utilisant `@dodopayments/express`                                                       |
| `dodo init better-auth` | Échafaude une configuration de plugin Better-Auth en utilisant `@dodopayments/better-auth`                                                        |

Pour l'échafaudage Better-Auth, vous pouvez passer une liste de plugins séparée par des virgules à générer (par défaut, tout) : `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>
  L'échafaudeur détecte automatiquement un répertoire `src/` et ajuste les chemins de sortie en conséquence, et détecte automatiquement votre gestionnaire de paquets (`bun`, `pnpm`, `yarn`, ou `npm`) pour exécuter la commande d'installation correcte.
</Info>

## Référence de commande

### Produits

Gérez votre catalogue de produits.

| Commande                    | Description                                     |
| --------------------------- | ----------------------------------------------- |
| `dodo products list <page>` | Lister les produits                             |
| `dodo products create`      | Ouvrez le tableau de bord pour créer un produit |
| `dodo products info <id>`   | Voir les détails d'un produit spécifique        |

### Paiements

Voir les transactions de paiement.

| Commande                    | Description                                         |
| --------------------------- | --------------------------------------------------- |
| `dodo payments list <page>` | Lister les paiements                                |
| `dodo payments info <id>`   | Obtenez des informations sur un paiement spécifique |

### Clients

Gérez votre base de clients.

| Commande                     | Description                      |
| ---------------------------- | -------------------------------- |
| `dodo customers list <page>` | Lister les clients               |
| `dodo customers create`      | Créer un nouveau client          |
| `dodo customers update <id>` | Mettre à jour un client existant |

### Réductions

Gérez les coupons et réductions.

| Commande                     | Description                                           |
| ---------------------------- | ----------------------------------------------------- |
| `dodo discounts list <page>` | Lister les réductions                                 |
| `dodo discounts create`      | Créer une nouvelle réduction basée sur un pourcentage |
| `dodo discounts delete <id>` | Supprimer une réduction par ID                        |

### Licences

Gérez les licences logicielles.

| Commande                    | Description         |
| --------------------------- | ------------------- |
| `dodo licences list <page>` | Lister les licences |

### Addons

Gérez les addons de produit.

| Commande                  | Description                                   |
| ------------------------- | --------------------------------------------- |
| `dodo addons list <page>` | Lister les addons                             |
| `dodo addons create`      | Ouvrez le tableau de bord pour créer un addon |
| `dodo addons info <id>`   | Voir les détails d'un addon spécifique        |

### Remboursements

Voir les informations de remboursement.

| Commande                   | Description                                    |
| -------------------------- | ---------------------------------------------- |
| `dodo refunds list <page>` | Lister les remboursements                      |
| `dodo refunds info <id>`   | Voir les détails d'un remboursement spécifique |

### Paiements

Créer des sessions de paiement hébergées.

| Commande            | Description                                                                                  |
| ------------------- | -------------------------------------------------------------------------------------------- |
| `dodo checkout new` | Créer de manière interactive une session de paiement hébergée et obtenir un lien de paiement |

## Webhooks

Le CLI inclut deux outils puissants pour tester les webhooks pendant le développement : un **écouteur** qui redirige les webhooks de test en direct vers votre serveur local, et un **déclencheur** qui envoie des charges de webhook simulées à n'importe quel point de terminaison.

| Commande          | Description                                                                                   |
| ----------------- | --------------------------------------------------------------------------------------------- |
| `dodo wh listen`  | Écouter les webhooks en temps réel et les rediriger vers votre serveur de développement local |
| `dodo wh trigger` | Déclencher un événement de webhook de test de manière interactive — même sans connexion       |

### Écouter les webhooks

Rediriger les webhooks de Dodo Payments directement vers votre serveur de développement local en temps réel.

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

<Steps>
  <Step title="Enter your local endpoint URL">
    Fournissez l'URL locale où vous souhaitez recevoir les webhooks (par exemple, `http://localhost:3000/webhook`).
  </Step>

  <Step title="Automatic setup">
    Le CLI crée automatiquement un point de terminaison webhook sur votre compte Dodo Payments s'il n'en existe pas déjà un, puis ouvre une connexion WebSocket pour recevoir les événements en temps réel.
  </Step>

  <Step title="Receive and forward">
    Lorsqu'un événement webhook se déclenche (à partir d'un paiement de test, d'un changement d'abonnement, etc.), le CLI le reçoit, enregistre le type d'événement et transfère la demande complète avec en-têtes et corps à votre point de terminaison local. La réponse de votre point de terminaison est enregistrée et renvoyée.
  </Step>
</Steps>

<Warning>
  `dodo wh listen` nécessite une clé API en **mode test**. Les clés en mode direct ne sont pas prises en charge par le flux d'écoute.
</Warning>

<Tip>
  L'écouteur préserve les en-têtes d'origine du webhook (`webhook-id`, `webhook-signature`, `webhook-timestamp`) lors du transfert vers votre point de terminaison local, vous permettant de tester votre logique de vérification de signature.
</Tip>

### Déclencher des webhooks de test

Envoyer des charges de webhook simulées à n'importe quel point de terminaison pour un test rapide sans besoin de créer de véritables transactions.

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

Le flux `/wh trigger` vous guide à travers :

1. Définir une **URL de destination de point de terminaison**
2. Sélectionner un **événement** spécifique à déclencher à partir d'un menu interactif

<Info>
  `dodo wh trigger` ne nécessite **pas** de connexion. Il fonctionne comme un générateur de charges de webhook local/hors ligne.
</Info>

<Warning>
  Les événements déclenchés ne sont **pas signés**. Lors des tests, désactivez la vérification de la signature du webhook sur votre point de terminaison — par exemple, utilisez `unsafe_unwrap()` au lieu de `unwrap()` dans votre gestionnaire de webhook **uniquement pendant les tests**.
</Warning>

### Événements de webhook pris en charge

| Catégorie         | Événements                                                                                  |
| ----------------- | ------------------------------------------------------------------------------------------- |
| **Abonnement**    | `active`, `updated`, `on_hold`, `renewed`, `plan_changed`, `cancelled`, `failed`, `expired` |
| **Paiement**      | `succeeded`, `failed`, `processing`, `cancelled`                                            |
| **Remboursement** | `succeeded`, `failed`                                                                       |
| **Litige**        | `opened`, `expired`, `accepted`, `cancelled`, `challenged`, `won`, `lost`                   |
| **Licence**       | `created`                                                                                   |

### Variables d'environnement

| Variable                  | Description                                                                           |
| ------------------------- | ------------------------------------------------------------------------------------- |
| `DODO_WH_TEST_SERVER_URL` | Remplacer l'URL du serveur relais de webhook par défaut utilisée par `dodo wh listen` |

## Mises à jour

Le CLI vérifie s'il existe une nouvelle version au démarrage et affiche une notification dans la barre d'état lorsqu'une mise à jour est disponible. Pour mettre à jour :

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

Ou, ré-exécutez l'installateur pour mettre à jour sur place :

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

## Ressources

<CardGroup cols={2}>
  <Card title="GitHub Repository" icon="github" href="https://github.com/dodopayments/dodopayments-cli">
    Voir le code source et les versions
  </Card>

  <Card title="npm Package" icon="npm" href="https://www.npmjs.com/package/dodopayments-cli">
    Voir sur le registre npm
  </Card>
</CardGroup>

## Support

* **Discord**: Rejoindre notre [serveur communautaire](https://discord.gg/bYqAp4ayYh)
* **GitHub**: Ouvrir un problème sur le [dépôt](https://github.com/dodopayments/dodopayments-cli/issues)
* **Email**: Contactez-nous à [support@dodopayments.com](mailto:support@dodopayments.com)
