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

# CLI

> VerifNer depuis le terminal : vérifier des photos, ouvrir un lien en QR code, recevoir les webhooks en local, suivre vos appels.

Le CLI `verifner` accélère l'intégration : on teste un document en une commande, on scanne un QR code pour parcourir le vrai parcours sur son téléphone, et on reçoit les webhooks sur sa machine sans URL publique.

## Installation

<Steps>
  <Step title="Vérifiez Node.js">
    Le CLI demande **Node.js 20 ou plus récent**. Dans un terminal :

    ```bash theme={null}
    node --version
    ```

    Si la commande est introuvable ou affiche une version inférieure à `v20`, installez la version LTS depuis [nodejs.org](https://nodejs.org) (Windows, macOS, Linux), puis rouvrez le terminal.
  </Step>

  <Step title="Installez le CLI">
    <Tabs>
      <Tab title="npm (recommandé)">
        ```bash theme={null}
        npm install -g @verifner/cli
        ```

        La commande `verifner` est ensuite disponible partout.
      </Tab>

      <Tab title="Sans installer (npx)">
        ```bash theme={null}
        npx @verifner/cli --help
        ```

        Pour un essai : remplacez `verifner` par `npx @verifner/cli` dans toutes les commandes de cette page.
      </Tab>

      <Tab title="pnpm / Yarn">
        ```bash theme={null}
        pnpm add -g @verifner/cli
        # ou
        yarn global add @verifner/cli
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Vérifiez l'installation">
    ```bash theme={null}
    verifner --version
    ```

    Affiche le numéro de version, par exemple `0.1.0`.
  </Step>

  <Step title="Connectez votre clé">
    Dans la [console](https://console.verifner.com), **Clés API** → **Nouvelle clé**, mode **Test**. Puis :

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

    Collez la clé `vn_test_…` quand elle est demandée. Le CLI la vérifie auprès de l'API, puis l'enregistre dans `~/.config/verifner/config.json`, lisible par vous seul. Vous pouvez aussi la passer directement : `verifner login --key vn_test_…`.
  </Step>

  <Step title="Premier essai">
    ```bash theme={null}
    verifner link --reference essai-1
    ```

    Scannez le QR code avec votre téléphone, faites le parcours : le verdict s'affiche dans le terminal.
  </Step>
</Steps>

<Warning>
  Utilisez une **clé de test** pour développer : rien n'est facturé et aucune image n'est conservée. Avec une clé live, chaque vérification est facturée.
</Warning>

### En cas de problème

<AccordionGroup>
  <Accordion title="« verifner : command not found » après l'installation">
    Le dossier des commandes globales de npm n'est pas dans votre `PATH`. Affichez-le avec `npm prefix -g` : les commandes sont dans son sous-dossier `bin` (macOS, Linux) ou dans ce dossier même (Windows). Ajoutez-le à votre `PATH`, rouvrez le terminal, ou utilisez `npx @verifner/cli` en attendant.
  </Accordion>

  <Accordion title="« EACCES: permission denied » pendant npm install -g">
    npm essaie d'écrire dans un dossier système. N'utilisez pas `sudo` : installez Node.js avec un gestionnaire de versions ([nvm](https://github.com/nvm-sh/nvm), [fnm](https://github.com/Schniz/fnm) ou [Volta](https://volta.sh)), qui place les paquets globaux dans votre dossier personnel, puis relancez l'installation.
  </Accordion>

  <Accordion title="« Aucune clé API »">
    Lancez `verifner login`, ou définissez la variable `VERIFNER_API_KEY`.
  </Accordion>

  <Accordion title="« 401 unauthorized »">
    La clé est inconnue ou a été révoquée. Créez-en une nouvelle dans la console et relancez `verifner login`.
  </Accordion>

  <Accordion title="Derrière un proxy d'entreprise">
    Le CLI passe par HTTPS vers `api.verifner.com`. Si votre réseau impose un proxy, configurez-le pour npm (`npm config set proxy …`) et pour Node.js (variables `HTTPS_PROXY`), ou demandez à votre équipe réseau d'autoriser ce domaine.
  </Accordion>
</AccordionGroup>

### Mettre à jour, désinstaller

```bash theme={null}
npm install -g @verifner/cli@latest   # dernière version
npm uninstall -g @verifner/cli        # désinstaller
verifner logout                       # oublier la clé enregistrée
```

### En intégration continue

Les variables `VERIFNER_API_KEY` et `VERIFNER_API_URL` remplacent la configuration enregistrée : pas besoin de `login` sur une machine de build.

```bash theme={null}
VERIFNER_API_KEY=vn_test_… npx @verifner/cli verify recto.jpg --json
```

## Toutes les commandes

| Commande | Rôle |
| - | - |
| `verifner login` / `logout` | Enregistrer ou oublier la clé API |
| `verifner verify <recto> [--back] [--selfie]` | Vérifier des photos |
| `verifner link [--reference] [--document cni\|passport]` | Lien de vérification en QR code, puis le verdict |
| `verifner listen [--forward <url>]` | Événements en direct, relayés à votre serveur local |
| `verifner logs [-f]` | Derniers appels, et leur suivi |
| `verifner --help` / `--version` | Aide et version |

Options communes : `--json` pour une sortie JSON, `--lang en` pour les justifications en anglais.

## Vérifier des photos

```bash theme={null}
verifner verify recto.jpg --back verso.jpg --selfie selfie.jpg
```

```text theme={null}
◐ À revoir  score 0,88 · cni · 6.1 s
vrf_w6e35w8a9iehsf6shzuw

  ✔ MRZ          Les 5 chiffres de contrôle sont valides
  ✔ Expiration   Valide jusqu'au 2031-04-15
  ✔ Cohérence    6 champs sur 6 concordent
  ✔ Altération   Aucune anomalie visuelle
  ! Visage       Visage peu concordant
```

`--json` pour la réponse brute de l'API, `--lang en` pour les justifications en anglais.

## Ouvrir un lien de vérification

```bash theme={null}
verifner link --reference client-42 --document cni
```

Le CLI crée une session, affiche le lien hébergé **en QR code** : scannez-le avec votre téléphone, faites le parcours, et le verdict s'affiche dans le terminal dès qu'il est prêt. `--no-wait` rend la main tout de suite.

## Recevoir les webhooks en local

```bash theme={null}
verifner listen --forward localhost:3000/hooks
```

Chaque événement `verification.completed` de votre organisation arrive en direct et est relayé à votre serveur local **exactement comme un vrai webhook** : mêmes en-têtes (`VerifNer-Event`, `VerifNer-Delivery`), même signature `VerifNer-Signature`. Le CLI affiche le **secret de signature** à mettre dans votre serveur (`VERIFNER_WEBHOOK_SECRET`) ; il reste le même d'une session à l'autre. Voir [Webhooks](/guides/webhooks) pour vérifier la signature.

```text theme={null}
✔ À l'écoute des événements, relayés vers http://localhost:3000/hooks
10:42:07  verification.completed  vrf_w6e35w8a9iehsf6shzuw  verified 0.97  → 200 12 ms
```

Sans `--forward`, les événements s'affichent seulement. Le flux ne montre que les événements du mode de votre clé (test ou live) et de son application.

## Suivre vos appels

```bash theme={null}
verifner logs -f
```

Les derniers appels à l'API (statut, route, durée, code d'erreur, clé) puis, avec `-f`, chaque nouvel appel dès qu'il arrive : les mêmes informations que la page **Journaux** de la console, jamais le contenu des documents.
