Skip to main content
Le Dodo CLI gère vos ressources Dodo Payments, répond à vos questions sur votre compte avec un assistant IA intégré, crée des sessions de paiement et teste les webhooks, le tout depuis votre terminal. Utilisez son TUI interactif ou exécutez des sous-commandes directes depuis des scripts.

Fonctionnalités

  • TUI interactif : exécutez dodo sans argument pour ouvrir l’interface interactive, avec une palette de commandes, un historique et des notifications en temps réel.
  • Assistant IA intégré : posez des questions ou effectuez des actions en anglais courant avec /ai. L’assistant s’exécute localement via dodopayments-mcp et ne nécessite aucune configuration supplémentaire.
  • Identifiants chiffrés : les clés API sont stockées dans ~/.dodopayments/config.json, chiffrées avec AES-256-GCM et une clé dérivée de votre machine. Aucun identifiant en clair n’est stocké sur le disque.
  • Mise à jour automatique : le CLI recherche les nouvelles versions au démarrage et vous en informe dans le TUI. Pour les installations npm et Bun, exécutez /update pour effectuer la mise à niveau sur place.
  • Outils pour les webhooks : transférez les webhooks du mode test vers votre serveur local ou envoyez des payloads de webhook simulés hors ligne.
  • Génération de structure : ajoutez des routes de facturation aux projets Next.js, Express et Better Auth avec dodo init.

Installation

Sur macOS ou Linux, installez le dernier binaire avec le script d’installation :
Le script vérifie le binaire à l’aide des sommes de contrôle SHA-256 de la version. Il installe dodo dans le premier répertoire accessible en écriture parmi /usr/local/bin, ~/.local/bin et ~/bin, ou dans ~/.local/bin si aucun ne peut être modifié. Pour installer une version spécifique, définissez la variable d’environnement DODO_VERSION sur son tag. Pour choisir le répertoire, définissez DODO_INSTALL_DIR.

Installer avec NPM ou Bun

Si vous disposez de Node.js ou de Bun, installez globalement le package dodopayments-cli. Les installations via un gestionnaire de packages utilisent la dernière version publiée :
Les sous-commandes directes telles que dodo login s’exécutent avec Node.js 18 ou une version ultérieure. Lorsque vous installez le CLI via un gestionnaire de packages, le TUI interactif nécessite également Bun. Les binaires de version ne nécessitent aucun de ces environnements d’exécution.

Installation manuelle (sans Node ni Bun)

Pour installer le CLI sans exécuter de script distant, téléchargez vous-même le binaire.
1

Download the Binary

Téléchargez le binaire correspondant à votre plateforme depuis la dernière version GitHub.
2

Rename the Binary to dodo

3

Move It to a Directory on Your PATH

Sous Windows, le déplacement du fichier vers C:\Windows\System32 nécessite les privilèges administrateur.
4

(Optional) Verify the Download

Chaque version publie un fichier SHA256SUMS.txt. Téléchargez-le à côté du binaire, puis vérifiez le binaire :

Authentification

Connectez-vous avec une clé API avant d’exécuter des commandes qui lisent ou modifient votre compte. Pour vous connecter avec une sous-commande directe, transmettez la clé et son mode, test ou live :
Ou, depuis le TUI interactif :
Le processus de connexion au TUI :
  1. Ouvre dans votre navigateur la page Developer → API Keys du dashboard.
  2. Vous invite à coller votre clé API.
  3. Vous demande de choisir Test Mode ou Live Mode.
Les deux commandes vérifient la clé en envoyant une requête à l’API, puis la stockent de manière chiffrée dans ~/.dodopayments/config.json.
La clé de chiffrement est dérivée de votre machine : les identifiants enregistrés ne fonctionnent donc que sur cette machine. Si vous effectuez une mise à niveau depuis v3.0.x, qui stockait les clés dans le trousseau du système d’exploitation, exécutez à nouveau dodo login. Les clés présentes dans l’ancien fichier en clair ~/.dodopayments/api-key sont migrées automatiquement, puis ce fichier est supprimé.

Changer de mode et se déconnecter

Vous pouvez rester connecté simultanément avec une clé en mode test et une clé en mode live. Pour changer de mode actif dans le TUI, exécutez /switch. Pour supprimer les clés enregistrées :
En mode direct, transmettez test, live ou all. Dans le TUI, /logout vous demande de choisir All accounts, Test Mode ou Live Mode, puis de confirmer.

Utilisation

Vous pouvez utiliser le CLI selon deux modes.

1. TUI interactif (recommandé)

Exécutez dodo sans argument pour ouvrir l’interface interactive :
Saisissez / pour ouvrir la palette de commandes. Le texte qui ne commence pas par / est envoyé à l’assistant IA.

2. Sous-commandes directes

Exécutez une commande sans ouvrir le TUI :
Par exemple :
Les tableaux de référence ci-dessous répertorient chaque commande au format du mode direct. Dans le TUI, remplacez dodo par /, par exemple /payments list 1. Les commandes marquées TUI only sont des assistants interactifs. En mode direct, elles affichent un message vous invitant à ouvrir le TUI.

Assistant IA

Posez des questions sur votre compte ou effectuez des actions en anglais courant. L’assistant s’exécute via dodopayments-mcp sur votre machine et ne nécessite donc aucune configuration supplémentaire ni flux OAuth. Il appelle l’API Dodo Payments depuis votre machine avec votre clé enregistrée et envoie vos requêtes au modèle de langage. En mode direct, exécutez dodo ai suivi de votre question. Exemples dans le TUI :
L’assistant utilise votre mode actif (mode test ou mode live) et ne fonctionne qu’avec les données de ce mode.

Génération de structure du projet

dodo init ajoute des routes de facturation Dodo Payments à un projet existant. Il écrit les fichiers de route, installe le package d’adaptation @dodopayments/* correspondant et ajoute les variables DODO_PAYMENTS_* manquantes à votre fichier .env avec des valeurs factices. Les fichiers et variables existants sont conservés, et la commande s’exécute sans connexion.
Pour la structure Better-Auth, vous pouvez transmettre une liste séparée par des virgules de plugins à générer : checkout, portal, usage et webhooks. Sans liste, les quatre plugins sont générés.
Si votre projet contient un répertoire src/, le générateur y écrit les fichiers. Il choisit la commande d’installation à partir du fichier de verrouillage de votre projet (bun, pnpm ou yarn) et utilise npm s’il n’en trouve aucun.

Référence des commandes

Ces commandes nécessitent une clé API connectée. Les commandes de liste acceptent un numéro de page facultatif, égal à 1 par défaut, et affichent jusqu’à 100 éléments par page.

Produits

Gérez votre catalogue de produits.

Paiements

Afficher les transactions de paiement.

Clients

Gérez vos clients.

Remises

Gérez les codes de remise.

Licences

Afficher les clés de licence. La commande s’écrit licences.

Modules complémentaires

Gérez les modules complémentaires des produits.

Remboursements

Afficher les informations de remboursement.

Checkout

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

Webhooks

Le CLI propose deux outils de webhook pour le développement : un listener qui transfère les webhooks du mode test vers votre serveur local, et un trigger qui envoie des payloads de webhook simulés à n’importe quel endpoint. En mode direct, les arguments sont obligatoires. Dans le TUI, exécutez /wh listen ou /wh trigger sans argument pour ouvrir un assistant interactif.

Écouter les webhooks

Transférez en temps réel les webhooks de votre compte Dodo Payments vers votre serveur de développement local.
dodo wh listen nécessite une clé API en Test Mode. Les clés Live Mode ne sont pas prises en charge par le flux d’écoute.
1

Enter Your Local Endpoint URL

Transmettez l’URL locale qui doit recevoir les webhooks, par exemple http://localhost:3000/webhook. Dans l’assistant du TUI, le CLI vous la demande.
2

Automatic Setup

Si votre compte ne possède aucun endpoint de webhook pour le serveur relais du CLI, le CLI en crée un. L’endpoint apparaît dans Developer → Webhooks. Le CLI ouvre ensuite une connexion WebSocket avec le relais pour recevoir les événements en temps réel.
3

Receive and Forward

Lorsqu’un événement webhook se produit, par exemple à la suite d’un paiement test ou d’une modification d’abonnement, le CLI transfère le payload et les en-têtes vers votre endpoint local dans une requête POST. Il consigne le type d’événement et la réponse de votre endpoint, puis renvoie la réponse au relais.
Le listener conserve les en-têtes webhook d’origine (webhook-id, webhook-signature, webhook-timestamp) lors du transfert vers votre endpoint local, afin que vous puissiez tester votre logique de vérification de signature.
Le relais et la CLI analysent le corps JSON, puis le sérialisent à nouveau avant de le transmettre. Si le corps transmis diffère, octet par octet, de l’original, par exemple au niveau du formatage des nombres, la vérification de la signature échoue même si les en-têtes sont intacts.

Déclencher des webhooks de test

Envoyez un payload de webhook simulé à n’importe quel endpoint, sans créer de transactions réelles.
Les événements déclenchés ne sont pas signés : la requête ne contient aucun en-tête webhook-id, webhook-signature ou webhook-timestamp. Pendant les tests, analysez-les avec la méthode non vérifiée (unsafeUnwrap en TypeScript, unsafe_unwrap en Python, UnsafeUnwrap en Go) plutôt qu’avec unwrap, puis repassez à unwrap avant la mise en production.
En mode direct, le payload utilise des ID et des informations client factices. L’assistant /wh trigger du TUI vous guide pour :
  1. Définir une URL d’endpoint de destination.
  2. Saisir éventuellement un Business ID, un Product ID, des Metadata (un objet JSON), l’e-mail du client et le Customer ID du payload. Les champs vides utilisent des valeurs factices.
  3. Sélectionner un événement à envoyer depuis un menu interactif. Vous pouvez envoyer plusieurs événements à la suite. Choisissez exit pour terminer.
dodo wh trigger ne nécessite aucune connexion. Il fonctionne comme un générateur local et hors ligne de payloads de webhook.

Événements webhook pris en charge

dodo wh trigger peut envoyer des payloads simulés pour 46 des 48 types d’événement fournis par Dodo Payments. Il ne prend pas en charge subscription.past_due ni subscription.unpaused. Transmettez le nom de l’événement exactement comme indiqué : Trois noms de trigger diffèrent de l’événement type dans le payload qu’ils envoient : payment.success envoie payment.succeeded, refund.success envoie refund.succeeded et licence.created envoie license_key.created.
La structure des payloads simulés suit les schémas correspondants de la référence API. Consultez Événements webhook pour savoir ce que signifie chaque événement et quand Dodo Payments l’émet en production.
payout.created est émis alors que le paiement indique encore un statut not_initiated ; le payload simulé le reflète donc également. Consultez Événements de paiement pour connaître le cycle de vie complet d’un paiement.

Variables d’environnement

Cette variable modifie la manière dont dodo wh listen se connecte :

Mises à jour

Le CLI recherche une nouvelle version au démarrage et affiche une notification dans la barre d’état lorsqu’elle est disponible. Pour mettre à niveau une installation npm ou Bun depuis le TUI, exécutez :
/update ne peut pas mettre à niveau un binaire de version. Pour les installations binaires, y compris celles effectuées avec le script d’installation, il renvoie plutôt vers la dernière version GitHub. Pour effectuer la mise à niveau depuis votre shell, réexécutez la commande utilisée lors de l’installation :

Ressources

GitHub Repository

Code source et versions.

npm Package

Le package dodopayments-cli dans le registre npm.

Assistance

Dernière modification le 26 septembre 2026