Cartes en état terminal (perdues, volées, expirées, annulées)

Explique pourquoi les cartes perdues, volées, expirées ou annulées n'apparaissent jamais dans la liste des cartes, et comment lire une carte précise.

↓ Télécharger le skill (.md)
77/100·📆 Mensuel·IntermédiaireControllerFinance Analyst
CartesConformitélist_cards

🎯 But du skill

Explique pourquoi les cartes perdues, volées, expirées ou annulées n'apparaissent jamais dans la liste des cartes, et comment lire une carte précise.

📊 Ce que ça produit

Liste des cartes hors service avec statut, propriétaire et date de dernière activité.

⚡ Bénéfice

Avant

Pas de vue consolidée des cartes inactives — plusieurs filtres manuels nécessaires.

Après

Tableau complet des cartes hors service en une requête, prêt pour le reporting sécurité.



# 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)
  ABO  — Aborted (abandonnée)

Autre code : CMD — ancien code, retourné avec le libellé "Unknown" (non listé comme terminal)
  CBL  — Hidden (désactivée ; non listée parmi les états terminaux par le serveur)
```

## Piège — un seul statut par appel

`list_cards.status` est une **string simple** (pas un tableau). Attention : `list_cards` ne retourne JAMAIS les cartes Lost, Stolen, Damaged, Expired ou Cancelled — filtrer sur ces statuts renvoie une liste vide, à ne pas interpréter comme « aucune carte ». Ces cartes ne se lisent que par ID avec `get_card`. Les appels ci-dessous renvoient donc une liste vide pour LOS, STO, EXP et CAN :

```json
// Seuls ces filtres peuvent renvoyer des cartes via list_cards
{ "companyId": "<COMPANY_ID>", "status": "Blocked", "pageSize": 100 }
{ "companyId": "<COMPANY_ID>", "status": "Hidden", "pageSize": 100 }
```

→ Pour une carte perdue, volée, endommagée, expirée ou annulée, il faut connaître son identifiant et appeler `get_card` : il n'existe aucun moyen de les lister. Une liste vide sur ces statuts ne veut jamais dire « aucune carte de ce type ».

## 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 card",
  "status": "Cancelled",
  "lastFourDigits": "1234",
  "expiryDate": "2025-12-31T23:59:59.000Z",
  "owner": { "id": "<userId>", "label": "<nom>" },
  "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 — comportement normal : `list_cards` ne retourne jamais les cartes Lost, Stolen, Damaged, Expired ou Cancelled ; les lire par ID avec `get_card`
- `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 ?"

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s30-cartes-statuts-terminaux.md via le bouton ci-dessus.
  2. 2
    Placer le fichier dans le répertoire .claude/ de votre projet (ou ~/.claude/ pour une installation globale).
    cp s30-cartes-statuts-terminaux.md .claude/s30-cartes-statuts-terminaux.md
  3. 3
    Utiliser dans Claude Code — le skill est automatiquement découvert. Décrivez votre besoin en langage naturel et Claude appliquera les instructions du skill.
💡 Assurez-vous que le MCP Spendesk est configuré dans votre .claude/settings.json avec les outils list_cards.

Skills similaires

★ Top
95/100·🔍 Ponctuel·Expert

Auditer la couverture du MCP

Sonde tous les outils MCP disponibles, re-évalue la couverture des 50 cas d'usages persona, détecte les nouveaux champs ou outils, et régénère le rapport d'analyse des gaps.

CFOControllerAP Manager
90/100·📅 Hebdo·Débutant

Demandes de carte via get_requests

Explique comment utiliser get_requests pour les demandes de carte et pourquoi les remboursements de frais n'y apparaissent pas. Évite une source de confusion fréquente entre deux workflows distincts.

ControllerFinance Analyst
90/100·🔍 Ponctuel·Intermédiaire

Cost centers actifs vs archivés

Distingue les centres de coût actifs des archivés via le bon usage de get_cost_centers. Évite le piège de la convention de nommage isArchived vs isActive qui est contre-intuitive.

ControllerFinance Analyst

Interested in AI Agent services or Custom Integrations?