Révision des doublons
Trancher sur les factures à fort risque de doublon pour débloquer un export DATEV.
Une facture notée 0.85 ou plus par la détection de doublons bloque l'export CSV DATEV tant qu'une personne n'a pas tranché. La révision des doublons est la façon d'enregistrer cette décision — et c'est la seule chose qui lève le blocage.
La décision ne supprime, ne fusionne ni ne modifie aucune donnée de facture. Elle dit seulement ce qu'est la facture.
Pourquoi un export se bloque
Toute facture enregistrée sur une offre incluant les fonctionnalités d'intelligence porte un score de risque de doublon, calculé au moment de l'extraction par rapport à vos factures récentes. Une facture bloque un export DATEV lorsque ces deux conditions sont réunies :
- son risque de doublon atteint
0.85ou plus, et - aucune décision de révision n'a encore été prise — son statut de révision est absent ou vaut
pending.
Une seule facture bloquante fait échouer tout l'export. Aucun CSV partiel n'est produit : comptabiliser un doublon dans DATEV le comptabilise deux fois, l'export échoue donc entièrement plutôt que d'écarter discrètement une ligne.
Le refus est un 409 :
{
"error": {
"code": "datev_export_blocked",
"message": "L'export DATEV est bloqué car des factures potentiellement en double doivent être vérifiées. Résolvez ou classez-les explicitement avant l'export.",
"blocking_invoice_count": 2,
"blocking_invoice_ids": [
"6f1c2b8e-0f2a-4a1d-9c47-7b4e1f2a3d55",
"b3d9a1c4-52e7-4f08-8c3b-1a9d6e5f0c22"
]
}
}
Seuls vos propres identifiants de facture sont renvoyés — jamais de noms de fournisseurs, de montants ou de numéros de facture.
La file de révision existe uniquement dans le tableau de bord
La file qui présente les factures bloquées face à leurs candidats de doublon ne fait pas partie de l'API publique. GET /v1/internal/user/invoices/duplicate-review-queue est une route interne : elle est exclue du schéma OpenAPI et s'authentifie avec les identifiants internes du tableau de bord, pas avec votre clé API.
Ouvrez-la dans le tableau de bord sous Paramètres → Sécurité, dans la section Export de données, où un export DATEV bloqué ouvre la boîte de dialogue de révision pour les factures qu'il a nommées.
L'endpoint de décision ci-dessous, lui, est public. Une intégration qui sait déjà quelles factures sont bloquées — les blocking_invoice_ids de l'export le lui disent — peut donc les traiter sans le tableau de bord. Ce qu'elle ne peut pas obtenir via l'API publique, c'est la comparaison côte à côte qu'affiche le tableau de bord.
Enregistrer une décision
PATCH /v1/invoices/{invoice_id}/duplicate-review enregistre la décision. Il s'authentifie avec votre clé API et n'est pas soumis à l'offre : l'export DATEV exige Pro ou Business, mais tout propriétaire authentifié peut lever un blocage.
curl -X PATCH "https://api.parsurai.com/v1/invoices/6f1c2b8e-0f2a-4a1d-9c47-7b4e1f2a3d55/duplicate-review" \
-H "X-API-Key: $PARSURAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"status": "confirmed_duplicate",
"note": "Facture renvoyée par le fournisseur le 12 juin.",
"duplicate_of_invoice_id": "b3d9a1c4-52e7-4f08-8c3b-1a9d6e5f0c22"
}'
| Champ | Type | Requis | Description |
|---|---|---|---|
status | string | Oui | La décision. pending est rejeté — ce n'est pas une décision |
note | string | Non | Texte libre, 1000 caractères au maximum |
duplicate_of_invoice_id | UUID | Conditionnel | Requis pour confirmed_duplicate, rejeté pour tout autre statut |
{
"invoice_id": "6f1c2b8e-0f2a-4a1d-9c47-7b4e1f2a3d55",
"duplicate_review_status": "confirmed_duplicate",
"duplicate_reviewed_at": "2026-06-14T09:12:44Z",
"duplicate_of_invoice_id": "b3d9a1c4-52e7-4f08-8c3b-1a9d6e5f0c22"
}
Les décisions et leurs effets
| Statut | Signification | Effet sur le prochain export DATEV |
|---|---|---|
confirmed_duplicate | Cette facture double une autre de vos factures | Lève le blocage ; cette facture ne produit aucune ligne d'écriture |
confirmed_not_duplicate | La correspondance est un faux positif | Lève le blocage ; cette facture est exportée normalement |
excluded_from_export | Conserver la facture, mais ne jamais la comptabiliser | Lève le blocage ; cette facture ne produit aucune ligne d'écriture |
pending | — | Rejeté : une facture ne peut pas revenir à l'état « pending » |
Utilisez excluded_from_export lorsque la facture ne doit pas être comptabilisée mais que vous ne pouvez pas nommer la facture qu'elle double. confirmed_duplicate exige toujours cet identifiant.
Exclure une facture de l'export la laisse intacte dans votre workspace — elle est retirée du lot, pas supprimée.
Gestion des erreurs
| Statut | Code | Cause typique |
|---|---|---|
404 | — | La facture n'est pas dans votre workspace |
422 | invalid_duplicate_review | status vaut pending |
422 | invalid_duplicate_review | confirmed_duplicate sans duplicate_of_invoice_id |
422 | invalid_duplicate_review | duplicate_of_invoice_id envoyé avec un autre statut |
422 | invalid_duplicate_review | duplicate_of_invoice_id désigne la facture elle-même |
422 | invalid_duplicate_review | duplicate_of_invoice_id n'est pas une facture qui vous appartient |
Une facture référencée qui ne vous appartient pas est signalée comme « introuvable » et non comme « pas la vôtre » : l'endpoint ne permet donc pas de sonder les identifiants de facture d'un autre workspace.
Traitez toute la liste blocking_invoice_ids avant de relancer l'export. Une seule facture non résolue fait de nouveau échouer le lot : les traiter une par une coûte un export refusé par facture.