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.
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")` already returns every card field: id, type, status, owner `{id, label}`, availableBalance, spendingLimit, expiryDate, subscriptionBudget, recurrence, plus supplier, costCenter and request as `{id, label}` objects.
`get_card(cardId)` returns exactly the same fields as `list_cards` (same server-side mapping). The supplier and cost center are `{id, label}` objects:
- `supplier`: `{id, label}` of the supplier linked to the card (can be null) β display `supplier.label`
- `costCenter`: `{id, label}` of the card's cost center (can be null) β display `costCenter.label`
The supplier of a subscription card is already in `list_cards` (`supplier.label`, with `supplier.id`): there is no need to call `get_card` card by card.
## 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`, `owner` (`{id, label}`), `availableBalance`, `expiryDate`, `supplier`, `costCenter`, `subscriptionBudget`.
**Format note:** `availableBalance` is a standard money object `{ amount, currency, precision, formatted }`: `amount` is an integer coefficient (9138 for 91.38 EUR). Display `formatted` verbatim, as with 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>"
}
}
```
Fields useful for the supplier link (identical in `list_cards` and `get_card`):
- `supplier`: `{ id, label }` | null
- `costCenter`: `{ id, label }` | null
### Step 3 β Resolve the supplier name (if supplierId is not null)
```json
{
"tool": "get_supplier_by_id",
"params": {
"companyId": "<companyId>",
"id": "<supplier.id>"
}
}
```
## Case supplierId = null
On this test account, the 2 active subscription cards had no linked supplier or cost center (`supplier: null`, `costCenter: null`). This case is common: subscription cards can be created without a supplier explicitly linked in Spendesk.
Behavior to anticipate:
- `supplier: null` β no linked supplier, OR the linked-request lookup failed (if `request` is also null, say the supplier is unavailable rather than asserting the card has none)
- `costCenter: null` β no linked cost center, OR the linked-request lookup failed (same rule as for `supplier`)
## Differences list_cards vs get_card
| Field | list_cards | get_card |
|-------|-----------|---------|
| `id` | β
| β
|
| `type` | β
| β
|
| `status` | β
| β
|
| `owner` (`{id, label}`) | β
| β
|
| `availableBalance` | β
| β
|
| `spendingLimit` | β
| β
|
| `lastFourDigits` | β
| β
|
| `expiryDate` | β
| β
|
| `supplier` (`{id, label}`) | β
| β
|
| `costCenter` (`{id, label}`) | β
| β
|
## Important reminders
- `list_cards.status` = plain string ("ACT") β one call per status (no array)
- `spendingLimit: null` means no monthly budget is configured β it does not mean the card is unlimited; for a subscription card, read the budget from `subscriptionBudget`
- `availableBalance` is a standard money object (integer coefficient + `precision` + `formatted`): display `formatted`
- 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
/
- 1Download the file
s31-cartes-subscription-fournisseur.mdusing the button above. - 2Place 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 - 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, get_card.Similar skills
β
Top