Cards in terminal states (lost, stolen, expired, cancelled)
Identifies cards in terminal states (lost, stolen, expired, cancelled) via list_cards. Useful for security reporting and card reference cleanup.
77/100ยท๐ MonthlyยทIntermediateControllerFinance Analyst
CardsCompliancelist_cards
๐ฏ Skill purpose
Identifies cards in terminal states (lost, stolen, expired, cancelled) via list_cards. Useful for security reporting and card reference cleanup.
๐ What it produces
List of out-of-service cards with status, owner, and last activity date.
โก Benefit
Before
No consolidated view of inactive cards โ multiple manual filters required.
After
Complete out-of-service card table in one query, ready for security reporting.
# Instructions
## Use case
Identify cards in a terminal state for security workflows (blocking lost/stolen cards) or cleanup (expired or cancelled cards).
## Full card lifecycle
```
PRE (pre-active)
โ
ACT (active) โโ BLO (blocked)
โ
REA (reactivated) โ ACT
Terminal states โ IRREVERSIBLE:
LOS โ Lost
STO โ Stolen
DAM โ Damaged
EXP โ Expired (reached expiry date)
CAN โ Cancelled (manually cancelled)
CMD โ Compromised
CBL โ Disabled/hidden (deactivated, does not return to active)
```
## Pitfall โ one status per call
`list_cards.status` is a **plain string** (not an array). To cover several terminal states, make multiple calls:
```json
// Call 1 โ Lost cards
{ "companyId": "<COMPANY_ID>", "status": "LOS", "pageSize": 100 }
// Call 2 โ Stolen cards
{ "companyId": "<COMPANY_ID>", "status": "STO", "pageSize": 100 }
// Call 3 โ Expired cards (useful for cleanup)
{ "companyId": "<COMPANY_ID>", "status": "EXP", "pageSize": 100 }
// Call 4 โ Cancelled cards
{ "companyId": "<COMPANY_ID>", "status": "CAN", "pageSize": 100 }
// Call 5 โ Compromised cards (security alert)
{ "companyId": "<COMPANY_ID>", "status": "CMD", "pageSize": 100 }
```
โ Merge the results client-side for a consolidated view.
## Distinguishing terminal vs non-terminal
| Status | Terminal? | Can return to ACT? | Use case |
|--------|-----------|-------------------|----------|
| ACT | No | โ | Current |
| BLO | No | Yes (via REA) | Temporarily blocked |
| REA | No | โ | Reactivated after BLO |
| PRE | No | Yes | Awaiting activation |
| LOS | **Yes** | โ No | Loss declaration |
| STO | **Yes** | โ No | Theft declaration |
| DAM | **Yes** | โ No | Physically damaged card |
| EXP | **Yes** | โ No | Expiry date reached |
| CAN | **Yes** | โ No | Manual cancellation |
| CMD | **Yes** | โ No | Compromise detected |
| CBL | **Yes** | โ No | Disabled/hidden |
## Data available on a terminal card
Cards in a terminal state return the same fields as ACT cards:
```json
{
"id": "...",
"type": "subscription",
"status": "CAN",
"lastFourDigits": "1234",
"expiryDate": "2025-12-31T23:59:59.000Z",
"ownerId": "<userId>",
"currency": "EUR",
"availableBalance": { ... }, // potential residual balance
"spendingLimit": { ... }
}
```
If `availableBalance > 0` on a cancelled or expired card, a refund may be pending.
## Limitations observed on this account
- `status: "EXP"` โ 0 results โ no expired card visible (possibly because expired cards are archived or purged from the API after a certain delay)
- `status: "CAN"`, `status: "BLO"`, etc. โ not tested on this account due to an MCP connection instability
## PAN and CVV never returned
The full card number (PAN) and the CVV are never returned by the MCP โ only the last 4 digits (`lastFourDigits`). This is a security limitation by design.
## Example user prompts
- "Are there any lost or stolen cards active on the account?"
- "Show me all cards cancelled this quarter"
- "Which expired cards still have a positive balance?"
How to install this skill
/
- 1Download the file
s30-cartes-statuts-terminaux.mdusing the button above. - 2Place the file in the
.claude/directory of your project (or~/.claude/for a global install).cp s30-cartes-statuts-terminaux.md .claude/s30-cartes-statuts-terminaux.md - 3Use in Claude Code โ the skill is automatically discovered. Describe your need in natural language and Claude will apply the skill instructions.
๐ก Make sure the Spendesk MCP is configured in your
.claude/settings.json with the tools list_cards.Similar skills
โ
Top