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

# Démarrage rapide

> De zéro à votre première vérification en cinq minutes.

<Tip>
  Vous codez avec un agent IA ? Collez-lui le [prompt d'intégration](/guides/ai-prompt) : il contient tout ce qu'il faut pour faire ce guide à votre place.
</Tip>

<Steps>
  <Step title="Ouvrez votre compte">
    VerifNer est en bêta sur invitation. Suivez votre lien d'invitation, renseignez votre entreprise et le responsable du compte, puis connectez-vous à la [console](https://console.verifner.com) avec le lien reçu par e-mail.

    Pas encore d'invitation ? Écrivez-nous à [contact@verifner.com](mailto:contact@verifner.com).
  </Step>

  <Step title="Créez une clé de test">
    Console → **Clés API** → **Nouvelle clé**, mode **Test**. Elle commence par `vn_test_` et ne s'affiche qu'une fois.

    ```bash theme={null}
    export VERIFNER_API_KEY=vn_test_...
    ```

    Une clé de test fait tourner exactement le même traitement qu'une clé live, sans conserver d'image et sans être facturée.
  </Step>

  <Step title="Lancez une vérification">
    Choisissez selon votre cas :

    <Tabs>
      <Tab title="A. Parcours hébergé (recommandé)">
        La personne prend elle-même ses photos, guidée par VerifNer. Votre serveur ouvre une session :

        ```bash theme={null}
        curl https://api.verifner.com/v1/sessions \
          -H "Authorization: Bearer $VERIFNER_API_KEY" \
          -H "Content-Type: application/json" \
          -d '{"reference": "client-4821"}'
        ```

        Puis votre page monte le SDK web avec l'`id` et le `client_token` reçus :

        ```html theme={null}
        <div id="kyc"></div>
        <script src="https://cdn.jsdelivr.net/npm/@verifner/web@0.1/dist/verifner.iife.js"></script>
        <script>
          VerifNer.create({
            sessionId: 'ses_…',
            clientToken: 'vn_ct_…',
            apiUrl: 'https://api.verifner.com',
          }).mount(document.getElementById('kyc'));
        </script>
        ```

        Guide complet : [SDK web](/guides/web-sdk). Pour tester sans rien intégrer, lancez une [session QR depuis la console](/console/qr-sessions).
      </Tab>

      <Tab title="B. API directe">
        Vous avez déjà les photos. Envoyez-les depuis votre serveur :

        <CodeGroup>
          ```bash curl theme={null}
          curl https://api.verifner.com/v1/verify \
            -H "Authorization: Bearer $VERIFNER_API_KEY" \
            -H "Idempotency-Key: client-4821-1" \
            -F front=@recto.jpg \
            -F back=@verso.jpg \
            -F selfie=@selfie.jpg
          ```

          ```javascript Node.js theme={null}
          import fs from 'node:fs';

          const form = new FormData();
          for (const [field, file] of [['front', 'recto.jpg'], ['back', 'verso.jpg'], ['selfie', 'selfie.jpg']]) {
            form.append(field, new Blob([fs.readFileSync(file)]), file);
          }
          const res = await fetch('https://api.verifner.com/v1/verify', {
            method: 'POST',
            headers: { Authorization: `Bearer ${process.env.VERIFNER_API_KEY}`, 'Idempotency-Key': 'client-4821-1' },
            body: form,
          });
          const { verdict, score, checks } = await res.json();
          ```

          ```python Python theme={null}
          import os, requests

          with open("recto.jpg", "rb") as f, open("verso.jpg", "rb") as b, open("selfie.jpg", "rb") as s:
              res = requests.post(
                  "https://api.verifner.com/v1/verify",
                  headers={"Authorization": f"Bearer {os.environ['VERIFNER_API_KEY']}", "Idempotency-Key": "client-4821-1"},
                  files={"front": f, "back": b, "selfie": s},
                  timeout=60,
              )
          result = res.json()
          ```
        </CodeGroup>

        Pour un passeport, envoyez seulement la page d'identité dans `front`, sans `back`. Le verdict arrive dans la réponse, en général en 5 à 10 secondes.
      </Tab>
    </Tabs>
  </Step>

  <Step title="Recevez le résultat">
    Déclarez un endpoint dans la console → **Webhooks**. À chaque verdict, VerifNer y envoie `verification.completed`, signé ; après une revue humaine, un second événement avec `final_verdict`. Pas besoin d'interroger l'API en boucle.

    | Verdict | Score | Action |
    | - | - | - |
    | `verified` | 0,90 et plus | Poursuivre |
    | `review` | 0,60 à 0,89 | Attendre la décision du relecteur |
    | `rejected` | sous 0,60 | Refuser ou demander un autre document |

    Voir [Webhooks](/guides/webhooks) et [Verdict et score](/concepts/verdict).
  </Step>

  <Step title="Passez en live">
    Une fois l'accord pilote signé, nous activons le mode live sur votre organisation. Créez une clé `vn_live_` et remplacez la clé de test : c'est tout. Les 50 premières vérifications live de chaque mois sont offertes.
  </Step>
</Steps>

## Cas d'échec

<AccordionGroup>
  <Accordion title="401 unauthorized" icon="key">
    Clé absente, mal copiée ou révoquée. Vérifiez l'en-tête `Authorization: Bearer vn_…`.
  </Accordion>

  <Accordion title="422 unreadable" icon="eye-slash">
    Photo trop floue pour être lue. Demandez une nouvelle photo : rien n'est enregistré ni facturé.
  </Accordion>

  <Accordion title="Le verdict est review" icon="user-check">
    Normal pour un document limite : un relecteur tranche dans la console, et vous recevez un second webhook. Les justifications des contrôles disent ce qui a coûté des points.
  </Accordion>

  <Accordion title="Délai dépassé côté client" icon="clock">
    Une vérification peut prendre jusqu'à une dizaine de secondes. Réglez votre client HTTP à 60 secondes et réessayez avec la même `Idempotency-Key` : vous ne paierez pas deux fois.
  </Accordion>
</AccordionGroup>

Tous les codes : [Erreurs](/reference/errors).

## Besoin d'aide ?

<CardGroup cols={2}>
  <Card title="E-mail" icon="envelope" href="mailto:contact@verifner.com">
    [contact@verifner.com](mailto:contact@verifner.com)
  </Card>

  <Card title="Référence API" icon="code" href="/api-reference/introduction">
    Tous les endpoints, avec essai en direct.
  </Card>
</CardGroup>
