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.
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
/
- 1Download the file
s32-get-requests-cartes-uniquement.mdusing the button above. - 2Place 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 - 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 get_requests.Similar skills
★ Top