not_found
Le statut not_found est un résultat complet et non facturé, pas une erreur. Ce qu'il contient, comment il se distingue d'un 404 ou d'un 503, et ce que vous pouvez en faire.
not_found veut dire : le moteur a répondu, et sa réponse est « personne ». Aucune identité marchande exploitable n'a été reconnue dans le libellé. C'est une réponse normale et complète, rendue en 200.
À quoi il ressemble
{
"enrichment_id": "enr_9a1d4c2e-7b3f-4e8a-a6d5-0c1b2e3f4a5b",
"merchant": null,
"enrichment": {
"status": "not_found",
"reason": "no_usable_merchant_identity",
"environment": "production",
"source": "noryo",
"customized": false
},
"usage": { "billable": false, "units": 0, "deduplicated": false, "deduplicated_by": null }
}JSONCet exemple illustre la forme ; ses identifiants ne proviennent pas d'un appel réel.
| Élément | Valeur |
|---|---|
| Statut HTTP | 200 |
merchant | null |
enrichment.reason | no_usable_merchant_identity |
| Facturation | Aucune : billable: false, units: 0. En Sandbox, rien n'est décompté de la dotation. |
enrichment_id | Oui : le résultat est enregistré et se relit. N'ayant pas de contenu à purger, il ne devient pas un 410 après 90 jours |
Trois réponses à ne pas confondre
| Réponse | Ce qu'elle veut dire | Que faire |
|---|---|---|
200 et status: not_found | Le moteur a répondu : personne | Afficher le libellé brut ; ne pas reprendre |
404 enrichment_not_found | L'enrichment_id demandé n'existe pas pour vous | Vérifier l'identifiant, la clé et l'environnement |
503 engine_error | Le moteur n'a pas répondu ; rien n'est facturé ni mémorisé | Reprendre avec la même Idempotency-Key |
Reprendre un not_found à l'identique ne change rien : la même transaction renvoyée rend le même résultat, en déduplication si elle porte un external_transaction_id.
Un not_found est mémorisé
Avec un external_transaction_id, le not_found devient le résultat courant de la transaction. Renvoyer la même transaction rend ce même not_found, avec deduplicated: true, sans facturation. Ce n'est pas une panne qui bloque la transaction : c'est le résultat qu'elle a.
Et plus tard ?
La couverture du catalogue évolue. Pour retenter une transaction not_found, rafraîchissez-la avec la même entrée économique : voir Rafraîchir.
- Si le recalcul aboutit (
refresh_recalculated), il devient le résultat courant et il est facturé. - S'il rend encore
not_foundoupartial, il n'est pas facturé et ne remplace rien.
Le rafraîchissement exige que l'appel d'origine ait porté un external_transaction_id.
Que faire d'un not_found
- Afficher le libellé brut tel que la banque l'a écrit, plutôt qu'un nom inventé.
- Le compter à part dans vos mesures : c'est une limite de couverture, pas une erreur d'intégration.
- Ne pas le traiter comme une erreur dans vos alertes : réservez celles-ci aux
5xxet aux4xxinattendus.
Publié le 2026-10-08 21:04 UTC (version 1).