# Rétention et 410

> Combien de temps Noryo garde quoi : contenu des résultats 90 jours, idempotence 24 heures, libellé brut jamais. Ce que dit un 410 et ce qui survit à la purge.

Noryo Merchant API n'est pas une archive. Elle garde le contenu d'un résultat assez longtemps pour le relire, puis le purge.

## Durées de conservation

| Donnée | Conservation |
|---|---|
| Contenu d'un résultat (`merchant`, statut lisible) | 90 jours |
| Mémoire d'idempotence (réponse liée à une `Idempotency-Key`) | 24 heures |
| Libellé brut (`descriptor`) | Non conservé |
| Écriture comptable | Conservée pour sa propre durée légale |

**Le libellé brut n'est pas conservé.** La rétention est de 0 jour : aucune colonne du module ne peut le stocker, et il n'apparaît dans aucun journal. Seule une empreinte de sa forme canonique est gardée, pour reconnaître une transaction déjà vue.

## Le 410

Passé 90 jours, une lecture rend :

```json
{
  "type": "https://developer.noryo.app/errors/result_content_expired",
  "title": "Result content expired",
  "status": 410,
  "code": "result_content_expired",
  "detail": "The result content was purged and is no longer available.",
  "request_id": "req_…",
  "enrichment_id": "enr_ffe80956-cc3e-4e1f-b4b6-724ad231fbb7"
}
```

Le corps répète l'`enrichment_id` concerné. Il ne dit pas quelle classe de rétention s'est appliquée : c'est une information interne.

Un `410` n'est pas un `404` : il prouve que le résultat a existé et qu'il a été purgé. Un identifiant qui n'a jamais existé, ou qui appartient à un autre workspace, rend `404`.

Un résultat `not_found` n'a pas de contenu à purger : sa lecture continue de rendre `200` avec `merchant: null`, jamais `410`, et le renvoi de sa transaction aussi.

## Le 410 sur une création

Renvoyer en `POST` une transaction déjà connue (même `external_transaction_id`, même entrée) dont le contenu courant a été purgé rend aussi `410 result_content_expired`. Ce refus n'est pas facturé. Pour obtenir à nouveau un résultat lisible, rafraîchissez la transaction : voir [Rafraîchir](https://developer.noryo.app/fr-FR/merchant/refresh).

## Ce qui survit

L'identité, la ligne de registre, les unités, le prix et les horodatages comptables survivent tous : vous pouvez toujours prouver ce que vous avez acheté et quand. Seul le contenu a disparu.

| Élément | Après purge |
|---|---|
| `enrichment_id` | Toujours reconnu : `410` |
| Transaction (`external_transaction_id`) | Toujours reconnue : déduplication et rafraîchissement possibles |
| Usage facturé | Inchangé |
| Contenu | Purgé |

## Ce qu'il vous revient de faire

**Stockez de votre côté ce dont vous avez besoin.** Si votre produit affiche le nom d'un marchand sur une transaction de l'an dernier, enregistrez `merchant` au moment où vous le recevez, avec l'`enrichment_id` et le `request_id`. Relire l'API ne remplace pas votre stockage.

| À conserver | Pourquoi |
|---|---|
| `merchant` (nom, catégorie, logo, localisation) | Le contenu expire au bout de 90 jours |
| `enrichment.status` et `confidence` | Pour savoir plus tard ce que valait le résultat |
| `enrichment_id` | Pour relire ou rafraîchir |
| `Noryo-Request-Id` | Pour retrouver la tentative avec le support |

---

Page canonique : https://developer.noryo.app/fr-FR/merchant/retention
