Spot stuck card requests

Spots card requests that have waited too long for approval, and which approver is holding them.

ProcurementAP Manager๐Ÿ“… WeeklyBeginnerRead-only

Ask it like this

Which card requests have been waiting for approval for too long?

When to use it

Every week, to spot card requests stuck in approval and see who they are waiting on.

What it produces

Pending total, split by age, then the list of requests with requester, amount, age and expected approver.

How it works

  1. 1Counts pending card requests and their amount
  2. 2Lists those requests and works out how long each has waited
  3. 3Sorts them by age, from recent to critical
  4. 4Finds the expected approver on each request
  5. 5Groups by approver to show where it is stuck
  6. 6Presents the requests to chase first

What protects you

  • This skill only reads: it changes nothing in Spendesk
  • It acts with your permissions and your role, never beyond
  • The assistant cannot approve or pay
โ–ธTechnical detail80/100 ยท 4 tools
Budget & POsComplianceget_requestsspendesk_analyze_requestsget_usersget_cost_centers

# Aging of pending card requests

## What this skill covers โ€” and what it doesn't

`get_requests` and `spendesk_analyze_requests` only return **card requests**: single-purchase card, subscription, multi-use card and its top-ups, physical card load.

**Not** covered, with no marker and no error: purchase order requests, travel budgets, expense claims, mileage allowances and invoices. Never present this report as "all purchase requests". For invoices waiting for approval, use the dedicated skill (`get_invoices`).

## Step 1 โ€” Pending volume and amount

```json
{
  "tool": "spendesk_analyze_requests",
  "params": { "fromDate": "YYYY-MM-DD", "toDate": "YYYY-MM-DD", "groupBy": ["requestState", "month"] }
}
```

State the exact dates. The period applies to the requests' **creation date** and cannot exceed 366 days: take the last 12 months, and say so, because an older request still pending will not appear.

The `pending` row gives the pending count and amount; its monthly breakdown shows how old those requests are.

## Step 2 โ€” List pending requests, with their approver

```json
{ "tool": "get_requests", "params": { "state": "pending", "withApproval": true, "pageSize": 100 } }
```

- The filter is called `state` (not `status`). `withApproval: true` adds the approval chain.
- A request's age = today โˆ’ `createdAt`.
- Expected approver = the `approvers` of the step whose `state` is `current`.
- Amount: read `amountInFunctionalCurrency.formatted` to compare or total; `requestedAmount` is in the request's own currency. Both can be `null` (a request with no amount).
- Page with `page` while `hasNextPage` is `true`.

## Step 3 โ€” Sort by age

| Band | Age |
|------|-----|
| ๐Ÿ”ด Critical | more than 30 days |
| ๐ŸŸ  Urgent | 15 to 30 days |
| ๐ŸŸก To watch | 7 to 14 days |
| ๐ŸŸข Recent | less than 7 days |

For each band: number of requests and total amount in functional currency.

## Step 4 โ€” Find where it is stuck

Group the pending requests:

- **by expected approver** โ€” the most useful grouping: the same name on all the old requests points to the bottleneck;
- by requester (`requesterId`);
- by cost center (`costCentreId`, often `null`: say so rather than showing an empty group).

Resolve every ID before showing anything:

```json
{ "tool": "get_users", "params": { "ids": ["<userId>", "<requesterId>"] } }
```

`get_cost_centers` resolves cost centers, `get_supplier_by_id` resolves suppliers. Never show a bare ID; if one does not resolve, say so.

## Step 5 โ€” Report

```
Pending card requests โ€” <today's date> (created since <date>)
Total: N requests โ€” X EUR

| Band | Requests | Amount |
| Request | Requester | Amount | Age | Expected approver | Link |

Chase first: requests older than 30 days, by approver.
```

`appUrl` is the direct link to each request: give it as returned.

## Limits to state in the report

- **No processing time.** A request carries no approval date and no last-updated date: you can measure how long a request has been waiting, not how long approved requests took. Do not compute an "average approval time".
- **Deleted requests are still counted**, with no marker: the pending total can overstate the live workload.
- **The assistant cannot approve**: chasing and approving happen in Spendesk.

## Observed result (demo account, 5 October 2026)

3 pending card requests for EUR 607.00, all created on 9 June 2026, i.e. 118 days waiting: critical band. All three were waiting on the same approver, and none had a cost center. Over 12 months: 11 requests, 8 of them approved (EUR 1,702.98).

## Example prompts
- "Which card requests have been waiting for approval for too long?"
- "Which approver are card requests stuck with?"
- "Are there card requests older than 30 days that I should chase?"

How to install this skill

/
  1. 1
    Download the file s62-procurement-requests-aging.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s62-procurement-requests-aging.md .claude/s62-procurement-requests-aging.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, spendesk_analyze_requests, get_users, get_cost_centers.

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ยท๐Ÿ“… 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
โ˜… 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?