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_invoices` with `approvalStatus=["pending"]` (detail and approval chain via `get_invoice_by_id`)

## 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). It is also `false` on a foreign-currency request whose conversion is unavailable. Read `false` as "same currency" only when `requestedAmount` AND `amountInFunctionalCurrency` are both non-null.

## 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:
โ†’ "No tool lists reimbursement requests awaiting approval. Expense claims already created can be read in payables of type `expenseClaim`; `bookkeepingStatus=toPrepare` means "not yet prepared for accounting export", not "awaiting approval"."

Call `get_payables` with, in the `filters` parameter:
```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 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 get_requests.

Similar skills

โ˜… Top
95/100ยท๐Ÿ” Ad hocยทExpert

Audit what the MCP covers

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

Build a custom skill

Turns a precise business need into a brand-new tailored Claude skill, ready to use on the Spendesk MCP.

CFOControllerAP Manager

Interested in AI Agent services or Custom Integrations?