# Suivre un envoi

```
GET /api/v1/submissions/{id}
```

Une analyse prend environ 10 secondes par document ; un gros envoi peut prendre quelques minutes. Deux façons de savoir quand c'est fini :

1. **Le webhook (recommandé)** : nous appelons votre serveur avec l'évènement `submission.completed` dès que tout est terminé. Voir [Webhooks](/developpeurs/webhooks).
2. **L'interrogation** : relisez l'envoi jusqu'à ce que `status` vaille `completed`. Espacez les appels d'au moins 5 secondes.

## Exemple

```bash
curl "https://france-verification.com/api/v1/submissions/sub_1842?detail=full" \
  -H "Authorization: Bearer $FV_API_KEY"
```

```json
{
  "id": "sub_1842",
  "mode": "live",
  "status": "completed",
  "final_check": null,
  "documents_count": 1,
  "credits_charged": 1,
  "checks": [
    {
      "id": "chk_52817",
      "submission_id": "sub_1842",
      "type": "document",
      "status": "completed",
      "verdict": "SUSPECT",
      "confidence_score": 0.55,
      "document_type": "rib",
      "document_label": "Relevé d'identité bancaire",
      "filename": "rib.pdf",
      "page": null,
      "archive_name": null,
      "refunded": false,
      "created_at": "2026-09-28T14:49:06Z",
      "completed_at": "2026-09-28T14:49:17Z",
      "report_url": "https://france-verification.com/api/v1/checks/chk_52817/report.pdf",
      "details": {
        "analysis": "Le document présente la structure d'un RIB...",
        "positive_points": "Clé RIB valide, IBAN au bon format",
        "negative_points": "Police de l'IBAN différente du reste du document",
        "anomalies": "Métadonnées : fichier modifié après sa création",
        "recommendations": "Demander un RIB téléchargé directement depuis l'espace bancaire",
        "technical_quality": "bon"
      }
    }
  ],
  "created_at": "2026-09-28T14:49:06Z",
  "completed_at": "2026-09-28T14:49:17Z"
}
```

## Quand un envoi est-il terminé ?

`status` passe à `completed` quand **chaque** vérification est `completed` ou `failed` et que la vérification de dossier éventuelle est close. Une vérification `failed` ne rend pas de verdict et son crédit est rendu (`refunded: true`) : vous pouvez renvoyer le fichier.

## Lire le verdict

| `verdict` | Signification | Action conseillée |
|---|---|---|
| `CONFORME` | Aucune anomalie détectée. | Accepter. |
| `SUSPECT` | Des éléments demandent une vérification humaine. | Relire `details`, demander une autre pièce. |
| `NON-CONFORME` | Le document ne respecte pas les règles attendues pour son type (mentions manquantes, incohérences), ou ce n'est pas un document. | Refuser ou demander une autre pièce. |
| `FAKE` | Falsification détectée (logiciel de retouche, montage, métadonnées). | Refuser. |

`confidence_score` (de 0 à 1) mesure la confiance dans l'authenticité : plus il est haut, plus le document est jugé authentique. Il peut être `null` quand le document n'a pas pu être évalué (par exemple un fichier qui n'est pas un document).

Votre code doit décider sur `verdict`, jamais sur le texte de `details`, qui est rédigé pour un humain et peut changer de formulation.

## Erreurs possibles

| Statut | Code | Cause |
|---|---|---|
| 404 | `not_found` | Identifiant inconnu, appartenant à un autre compte, ou envoi de test lu avec une clé live (et inversement). |
