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.

↓ Download skill (.md)
90/100·📅 Weekly·BeginnerControllerFinance Analyst
CardsComplianceget_requests

🎯 Skill purpose

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.

📊 What it produces

Card requests filtered by status with explanation of why reimbursements are absent.

Benefit

Before

Confusion between card requests and expense reimbursements in get_requests — wrong results.

After

Correct use of get_requests for cards, without noisy results.



# Instructions — Card requests via get_requests

## ⚠️ Strict scope

`get_requests` returns **only** card requests:
- `single_purchase` — single purchase
- `subscription` — subscription
- `multi_use_card` — multi-use card
- `multi_use_card_top_up` — card top-up
- `multi_use_card_end_date_change` — card extension
- `card_load` — physical card loading

**NOT included** (different scope in Spendesk):
- Expense reimbursements (expense claims) → visible in `get_payables` with `payableType=expenseClaim`
- Supplier invoice requests → visible in `get_payables` with `payableType=invoicePurchase` + `bookkeepingStatus=toPrepare`

## Step 1 — Identify the company

Call `list_companies`.

## Step 2 — Retrieve requests

### Requests awaiting approval
```json
{ "companyId": "...", "state": "pending" }
```

### All requests (all states)
```json
{ "companyId": "..." }
```

Available states: `pending` | `approved` | `refused` | `expired` | `cancelled` | `incomplete` | `draft` | `rejected_by_controller` | `supplier_disputed`

## Step 3 — Interpreting amounts

Each request returns:
- `requestedAmount`: amount in the request's original currency
- `amountInFunctionalCurrency`: amount in the company's functional currency → use for comparisons

⚠️ `isForeignCurrency=false` means **either** that the currency is the same as the functional currency **or** that the request has no amount (e.g. date extension). Always check `requestedAmount != null` before interpreting.

## Step 4 — Filtering by currency

If the user wants "requests in EUR under 100 EUR":
- Pass `currency="EUR"` + `maxAmount=100`
- **Always inform**: requests submitted in other currencies are **silently excluded** from the result

## Step 5 — Presenting results

For each request:
- Request type + state
- Requested amount (with currency)
- Requester (requesterId → resolve via `get_users` if needed)
- Description (free-text from the requester, can be null)
- Cost center (costCentreId, can be null)

## Guidance if the question is about reimbursements

If the user is looking for pending expense reimbursements:
→ "Reimbursement requests are accessible via payables of type `expenseClaim` with `bookkeepingStatus=toPrepare`."

Call `get_payables` with:
```json
{
  "operator": "and",
  "subfilters": [
    { "field": "payableType", "operator": "=", "value": ["expenseClaim"] },
    { "field": "bookkeepingStatus", "operator": "=", "value": ["toPrepare"] }
  ]
}
```

## Example prompt

- "Which card requests are awaiting approval?" → state=pending
- "Show subscription requests approved this month" → type=subscription, state=approved
- "Which reimbursement requests are pending?" → guide toward get_payables

How to install this skill

/
  1. 1
    Download the file s32-get-requests-cartes-uniquement.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s32-get-requests-cartes-uniquement.md .claude/s32-get-requests-cartes-uniquement.md
  3. 3
    Use in Claude Codethe 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 get_requests.

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·🔍 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
★ Top
89/100·🔍 Ad hoc·Intermediate

Skill Builder

Aide un client à transformer un besoin métier précis (contexte, contraintes, format de sortie souhaité) en un nouveau skill Claude sur mesure, prêt à l'emploi sur le MCP Spendesk

CFOControllerAP Manager