---
name: s30-cartes-statuts-terminaux
description: Identifie les cartes en état terminal (perdues, volées, expirées, annulées) via list_cards avec filtre par statut
tags: [cartes, list_cards, LOS, EXP, CAN, CMD, statuts-terminaux, sécurité]
when_to_use: Quand on veut auditer les cartes non actives — identifier les cartes perdues/volées pour le suivi sécurité, les cartes expirées pour nettoyage, ou les cartes annulées/compromises pour conformité
---

# Instructions

## Use case

Identifier les cartes en état terminal pour les workflows de sécurité (blocage de cartes perdues/volées) ou de nettoyage (cartes expirées ou annulées).

## Cycle de vie complet des cartes

```
PRE (pre-active)
  ↓
ACT (active) ←→ BLO (blocked)
                    ↓
                  REA (reactivated) → ACT

États terminaux — IRRÉVERSIBLES :
  LOS  — Lost (perdue)
  STO  — Stolen (volée)
  DAM  — Damaged (endommagée)
  EXP  — Expired (expirée à la date d'échéance)
  CAN  — Cancelled (annulée manuellement)
  CMD  — Compromised (compromise)
  CBL  — Disabled/hidden (désactivée, ne revient pas active)
```

## Piège — un seul statut par appel

`list_cards.status` est une **string simple** (pas un tableau). Pour couvrir plusieurs états terminaux, effectuer plusieurs appels :

```json
// Appel 1 — Cartes perdues
{ "companyId": "<COMPANY_ID>", "status": "LOS", "pageSize": 100 }

// Appel 2 — Cartes volées
{ "companyId": "<COMPANY_ID>", "status": "STO", "pageSize": 100 }

// Appel 3 — Cartes expirées (utile pour nettoyage)
{ "companyId": "<COMPANY_ID>", "status": "EXP", "pageSize": 100 }

// Appel 4 — Cartes annulées
{ "companyId": "<COMPANY_ID>", "status": "CAN", "pageSize": 100 }

// Appel 5 — Cartes compromises (alerte sécurité)
{ "companyId": "<COMPANY_ID>", "status": "CMD", "pageSize": 100 }
```

→ Merger les résultats côté client pour une vue consolidée.

## Distinguer terminal vs non-terminal

| Statut | Terminal ? | Peut revenir ACT ? | Use case |
|--------|-----------|-------------------|----------|
| ACT | Non | — | Actuelle |
| BLO | Non | Oui (via REA) | Temporairement bloquée |
| REA | Non | — | Réactivée après BLO |
| PRE | Non | Oui | En attente d'activation |
| LOS | **Oui** | ❌ Non | Déclaration de perte |
| STO | **Oui** | ❌ Non | Déclaration de vol |
| DAM | **Oui** | ❌ Non | Carte endommagée physiquement |
| EXP | **Oui** | ❌ Non | Date d'expiration atteinte |
| CAN | **Oui** | ❌ Non | Annulation manuelle |
| CMD | **Oui** | ❌ Non | Compromission détectée |
| CBL | **Oui** | ❌ Non | Désactivée/cachée |

## Données disponibles sur une carte terminale

Les cartes en état terminal retournent les mêmes champs que les cartes ACT :
```json
{
  "id": "...",
  "type": "subscription",
  "status": "CAN",
  "lastFourDigits": "1234",
  "expiryDate": "2025-12-31T23:59:59.000Z",
  "ownerId": "<userId>",
  "currency": "EUR",
  "availableBalance": { ... },   // solde résiduel potentiel
  "spendingLimit": { ... }
}
```

Si `availableBalance > 0` sur une carte annulée ou expirée, un remboursement peut être en attente.

## Limitations observées sur ce compte

- `status: "EXP"` → 0 résultats — aucune carte expirée visible (possible que les cartes expirées soient archivées ou purgées de l'API après un certain délai)
- `status: "CAN"`, `status: "BLO"`, etc. → non testés sur ce compte en raison d'une instabilité de connexion MCP

## PAN et CVV jamais retournés

Le numéro complet de la carte (PAN) et le CVV ne sont jamais retournés par le MCP — uniquement les 4 derniers chiffres (`lastFourDigits`). C'est une limitation de sécurité par conception.

## Exemples de prompts utilisateurs

- "Y a-t-il des cartes perdues ou volées actives sur le compte ?"
- "Montre-moi toutes les cartes annulées ce trimestre"
- "Quelles cartes expirées ont encore un solde positif ?"
