Card expenses above a spending threshold

Filters card transactions above a defined threshold to identify exceptional spending. Useful for internal control reviews and overspend alerts.

โ†“ Download skill (.md)
85/100ยท๐Ÿ“… WeeklyยทIntermediateCFOControllerFinance Analyst
CardsComplianceget_payables

๐ŸŽฏ Skill purpose

Filters card transactions above a defined threshold to identify exceptional spending. Useful for internal control reviews and overspend alerts.

๐Ÿ“Š What it produces

List of card transactions exceeding the threshold with amount, employee, date, and description.

โšก Benefit

Before

Transaction export then manual Excel filter to identify high amounts.

After

Anomalous transactions filtered instantly, ready for control review.



# Card expenses above an amount threshold

## Pattern: compound AND filter [payableType + grossAmount]

This compound filter **works correctly** in `get_payables` (unlike the [payableType + bookkeepingStatus] filter โ€” see skill S11 for the bug).

```json
{
  "companyId": "<companyId>",
  "filters": {
    "operator": "and",
    "subfilters": [
      {
        "field": "payableType",
        "operator": "=",
        "value": ["singleCardPurchase", "physicalCardPurchase"]
      },
      {
        "field": "grossAmount",
        "operator": ">",
        "value": 500
      }
    ]
  },
  "pageSize": 20
}
```

## โš ๏ธ Format of the grossAmount filter: DECIMAL value in EUR

- `value: 500` = 500 EUR โ€” decimal format
- **Not** `50000` (integer coefficient as in the `amount` fields of the response)
- The filter applies to `functionalAmount` (EUR) โ€” USD expenses are converted before comparison

| Desired filter | Correct value | Incorrect value |
|-----------------|-----------------|-------------------|
| > 500 EUR | `value: 500` | `value: 50000` |
| > 1,000 EUR | `value: 1000` | `value: 100000` |
| > 2,500 EUR | `value: 2500` | `value: 250000` |

Reminder: in the response, `amount.amount = 50000` with `precision: 2` = 500 EUR.

## Types of card payables

| Type | Description |
|------|-------------|
| `singleCardPurchase` | Purchase on a single-use virtual card |
| `physicalCardPurchase` | Purchase on a physical card (in-store / terminal payment) |
| `subscriptionPurchase` | Recurring purchase on a subscription card |

โ†’ To capture ALL card purchases: include all 3 types in `value`.

## Available operators on grossAmount

| Operator | Meaning |
|-----------|---------------|
| `>` | Strictly greater than |
| `>=` | Greater than or equal |
| `<` | Strictly less than |
| `<=` | Less than or equal |
| `=` | Exactly equal |

## spendingAmount โ‰  amount (pitfall)

On card expenses, `spendingAmount` is the **card limit**, not the amount actually spent:

```json
{
  "amount": { "amount": 329700, "currency": "EUR", "precision": 2 },        // 3,297 EUR actual
  "spendingAmount": { "amount": 450000, "currency": "EUR", "precision": 2 } // 4,500 EUR = card limit
}
```

โ†’ Always use `amount` (or `functionalAmount` for multi-currency) to analyze amounts spent.
โ†’ `spendingAmount` = authorized limit โ€” useful only for analyzing limit usage.

## Multi-currency case

Card expenses can be in USD (e.g. foreign SaaS, subscriptions):

```json
{
  "currency": "USD",
  "functionalCurrency": "EUR",
  "functionalExchangeRate": 0.9295,
  "amount": { "amount": 98692, "currency": "USD", "precision": 2 },
  "functionalAmount": { "amount": 91827, "currency": "EUR", "precision": 2 }
}
```

โ†’ The `grossAmount > 500` filter filters on `functionalAmount` (EUR) โ€” an expense of 900 USD = 837 EUR is therefore included in `grossAmount > 500`.

## Useful fields for analyzing results

| Field | Usage |
|-------|-------------|
| `description` | Label of the expense |
| `amount` / `functionalAmount` | Amount (local currency / EUR) โ€” coefficient / 10^precision |
| `counterparty.supplierId` | Supplier ID โ€” resolve with `get_suppliers(ids=[...])` |
| `memberId` | ID of the employee who made the expense |
| `creationDate` | Date of the expense |
| `payableType` | Type of card used |
| `itemLines[].analyticalFieldAssociations` | Cost center, analytical fields |

## Adding a period filter

```json
{
  "companyId": "<companyId>",
  "filters": {
    "operator": "and",
    "subfilters": [
      { "field": "payableType", "operator": "=", "value": ["singleCardPurchase", "physicalCardPurchase"] },
      { "field": "grossAmount", "operator": ">", "value": 1000 }
    ]
  },
  "fromDate": "2026-01-01",
  "toDate": "2026-06-30",
  "pageSize": 20
}
```

## Example prompts

- "List card purchases above 1,000 EUR this quarter"
- "Which physical card expenses are above 200 EUR in June?"
- "Identify exceptional purchases (> 2,000 EUR) over the last 3 months"
- "Show all virtual card expenses > 500 EUR for March"

How to install this skill

/
  1. 1
    Download the file s15-depenses-carte-seuil-montant.md using the button above.
  2. 2
    Place the file in the .claude/ directory of your project (or ~/.claude/ for a global install).
    cp s15-depenses-carte-seuil-montant.md .claude/s15-depenses-carte-seuil-montant.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_payables.

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