> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pro.resocom.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analyser un document

> Envoyez un document que vous détenez déjà, recevez le résultat dans la même réponse.

Vos équipes reçoivent parfois le document **sans que le client soit derrière
un écran** : une pièce déposée en agence, un fichier déjà présent dans votre
GED, une image capturée par votre propre application. Pour ces cas, inutile
de faire suivre un lien de parcours — envoyez le document, la réponse porte
le résultat.

```bash theme={null}
curl -X POST https://pro.resocom.com/api/v1/analyses \
  -H "Authorization: Bearer rsk_live_…" \
  -H "Content-Type: application/json" \
  -d '{
    "documentCategory": "identite",
    "document": "<recto en base64>",
    "documentVerso": "<verso en base64>",
    "externalRef": "DOSSIER-88412"
  }'
```

La réponse (`201`) est **le même objet** que la lecture d'un résultat :
verdict, points d'attention, cachet 2D-Doc, identifiants — un seul format à intégrer, que le
dossier vienne d'un parcours ou d'une analyse directe.

## Les deux natures de document

| `documentCategory` | Fichiers acceptés        | Particularités                               |
| ------------------ | ------------------------ | -------------------------------------------- |
| `identite`         | Images (JPEG, PNG, WebP) | `documentVerso` optionnel selon la pièce     |
| `administratif`    | Image **ou PDF**         | Fichier unique — un verso est refusé (`400`) |

Le type réel du fichier est décidé par son contenu, jamais par une
déclaration. Limite : **10 Mo par fichier**, préfixe data URL toléré.

## « Analyse impossible » est un résultat

Un document que le moteur ne parvient pas à lire rend un `201` avec
`verdict: "analyse_impossible"` — l'analyse a eu lieu, elle est enregistrée
et relisible, et votre système route ce dossier dans son propre processus.
Les erreurs HTTP ne parlent que de la **requête** (`400`, `413`) ou de la
**disponibilité du service** (`502`, `503` — réessayez).

## Un retry ne crée jamais deux analyses

Chaque appel étant un acte, protégez vos retries réseau avec l'en-tête
`Idempotency-Key` : la même clé dans les 24 heures rend le même résultat,
sans nouvelle analyse. La réponse rejouée porte `Idempotency-Replayed: true`.

```bash theme={null}
curl -X POST https://pro.resocom.com/api/v1/analyses \
  -H "Authorization: Bearer rsk_live_…" \
  -H "Idempotency-Key: dossier-88412-tentative-1" \
  …
```

## Le certificat

Ajoutez `"includeCertificate": true` pour recevoir, dans la même réponse, le
certificat PDF en base64 (`certificate`) — le même document que celui
téléchargé depuis le portail, n'affichant que les contrôles réellement
effectués. Son QR code pointe vers la page publique de vérification
d'authenticité. Il reste retéléchargeable à tout moment :

```bash theme={null}
curl https://pro.resocom.com/api/v1/consultations/CSL-…/certificate \
  -H "Authorization: Bearer rsk_live_…" \
  -o certificat.pdf
```

## Débit

L'analyse directe a son propre plafond : **20 analyses par minute** par clé,
en plus du débit global. Au-delà, `429` avec `Retry-After`. Pour un volume
important sans contrainte de temps réel, préférez [un lot](/analyses/lots).
