Subscription cards linked to supplier

Lists virtual subscription-type cards and identifies the associated supplier for each. Complements SaaS subscription analysis for card-based rather than invoice-based payments.

↓ Download skill (.md)
82/100Β·πŸ“† MonthlyΒ·IntermediateCFOProcurementFinance Analyst
CardsSupplierslist_cardsget_card

🎯 Skill purpose

Lists virtual subscription-type cards and identifies the associated supplier for each. Complements SaaS subscription analysis for card-based rather than invoice-based payments.

πŸ“Š What it produces

Subscription cards with resolved supplier name, authorized amount, and card status.

⚑ Benefit

Before

Card-supplier linkage impossible to establish from the card list without this technique.

After

Complete subscription card ↔ supplier mapping, ideal for SaaS audits.



# Subscription cards and supplier link

## Context

`list_cards(type="subscription")` returns the basic card fields: id, status, ownerId, availableBalance, expiryDate.

`get_card(cardId)` returns additional fields not exposed in `list_cards`:
- `supplierId`: ID of the supplier linked to the card (can be null)
- `costCentreId`: ID of the card's cost center (can be null)

To know the supplier of a subscription card, you must always call `get_card` β€” the information is not in `list_cards`.

## 3-step workflow

### Step 1 β€” List active subscription cards

```json
{
  "tool": "list_cards",
  "params": {
    "companyId": "<companyId>",
    "type": "subscription",
    "status": "ACT",
    "pageSize": 50
  }
}
```

Result: list of cards with `id`, `ownerId`, `availableBalance`, `expiryDate`.

**Format note:** `availableBalance.amount` is a **direct decimal** (91.38 EUR) β€” do NOT divide by 10^precision, unlike all other MCP tools.

### Step 2 β€” Get the detail of each card (supplierId)

For each cardId of interest:
```json
{
  "tool": "get_card",
  "params": {
    "companyId": "<companyId>",
    "cardId": "<cardId>"
  }
}
```

Additional fields exposed by `get_card` (absent from `list_cards`):
- `supplierId`: string | null
- `costCentreId`: string | null

### Step 3 β€” Resolve the supplier name (if supplierId is not null)

```json
{
  "tool": "get_supplier_by_id",
  "params": {
    "companyId": "<companyId>",
    "supplierId": "<supplierId>"
  }
}
```

## Case supplierId = null

On this test account, the 2 active subscription cards have `supplierId: null` and `costCentreId: null`. This case is common: subscription cards can be created without a supplier explicitly linked in Spendesk.

Behavior to anticipate:
- `supplierId: null` β†’ the card has no associated Spendesk supplier (may be a SaaS paid directly without a supplier record)
- `costCentreId: null` β†’ the card is not attached to a specific cost center

## Differences list_cards vs get_card

| Field | list_cards | get_card |
|-------|-----------|---------|
| `id` | βœ… | βœ… |
| `type` | βœ… | βœ… |
| `status` | βœ… | βœ… |
| `ownerId` | βœ… | βœ… |
| `availableBalance` | βœ… | βœ… |
| `spendingLimit` | βœ… | βœ… |
| `lastFourDigits` | βœ… | βœ… |
| `expiryDate` | βœ… | βœ… |
| `supplierId` | ❌ | βœ… |
| `costCentreId` | ❌ | βœ… |

## Important reminders

- `list_cards.status` = plain string ("ACT") β€” one call per status (no array)
- `spendingLimit: null` is normal on subscription cards β€” no fixed cap
- `availableBalance.amount` is a direct decimal β€” anomaly confirmed in S03 and S29
- To audit all active cards including "reactivated" ones: two separate calls with `status="ACT"` and `status="REA"`

## Example user prompts

- "Which subscription cards are active and what supplier are they linked to?"
- "Show me all SaaS virtual cards with their available balance and associated supplier"
- "Are there any subscription cards without a linked supplier in Spendesk?"

How to install this skill

/
  1. 1
    Download the file s31-cartes-subscription-fournisseur.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s31-cartes-subscription-fournisseur.md .claude/s31-cartes-subscription-fournisseur.md
  3. 3
    Use 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, get_card.

Similar skills

β˜… Top
95/100Β·πŸ” Ad hocΒ·Expert

MCP coverage audit & gap analysis

Probes all available MCP tools, re-evaluates coverage of 50 persona use cases, detects new fields or tools, and regenerates the gap analysis report.

CFOControllerAP Manager
90/100Β·πŸ“… WeeklyΒ·Beginner

Card requests via get_requests

Explains how to use get_requests for card requests and why expense reimbursements don't appear there. Avoids a frequent source of confusion between two distinct workflows.

ControllerFinance Analyst
90/100Β·πŸ” Ad hocΒ·Intermediate

Active vs archived cost centers

Distinguishes active cost centers from archived ones with correct use of get_cost_centers. Avoids the counter-intuitive isArchived vs isActive naming convention pitfall.

ControllerFinance Analyst