Dépenses carte au-dessus d'un seuil de montant

Filtre les transactions carte au-dessus d'un seuil défini pour identifier les dépenses exceptionnelles. Utile pour les revues de contrôle interne et les alertes de dépassement.

↓ Télécharger le skill (.md)
85/100·📅 Hebdo·IntermédiaireCFOControllerFinance Analyst
CartesConformitéget_payables

🎯 But du skill

Filtre les transactions carte au-dessus d'un seuil défini pour identifier les dépenses exceptionnelles. Utile pour les revues de contrôle interne et les alertes de dépassement.

📊 Ce que ça produit

Liste des transactions carte dépassant le seuil avec montant, employé, date et description.

Bénéfice

Avant

Export des transactions puis filtre manuel dans Excel pour identifier les montants élevés.

Après

Transactions anormales filtrées instantanément, prêtes pour la revue de contrôle.



# Dépenses carte au-dessus d'un seuil de montant

## Pattern : filtre composé AND [payableType + grossAmount]

Ce filtre composé **fonctionne correctement** dans `get_payables` (contrairement au filtre [payableType + bookkeepingStatus] — voir skill S11 pour le bug).

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

## ⚠️ Format du filtre grossAmount : valeur DÉCIMALE en EUR

- `value: 500` = 500 EUR — format décimal
- **Pas** `50000` (coefficient entier comme dans les champs `amount` de la réponse)
- Le filtre s'applique sur le `functionalAmount` (EUR) — les dépenses USD sont converties avant comparaison

| Filtre souhaité | Valeur correcte | Valeur incorrecte |
|-----------------|-----------------|-------------------|
| > 500 EUR | `value: 500` | `value: 50000` |
| > 1 000 EUR | `value: 1000` | `value: 100000` |
| > 2 500 EUR | `value: 2500` | `value: 250000` |

Rappel : dans la réponse, `amount.amount = 50000` avec `precision: 2` = 500 EUR.

## Types de payables cartes

| Type | Description |
|------|-------------|
| `singleCardPurchase` | Achat sur carte virtuelle à usage unique |
| `physicalCardPurchase` | Achat sur carte physique (paiement en magasin / terminal) |
| `subscriptionPurchase` | Achat récurrent sur carte de souscription |

→ Pour capturer TOUS les achats carte : inclure les 3 types dans `value`.

## Opérateurs disponibles sur grossAmount

| Opérateur | Signification |
|-----------|---------------|
| `>` | Strictement supérieur |
| `>=` | Supérieur ou égal |
| `<` | Strictement inférieur |
| `<=` | Inférieur ou égal |
| `=` | Égal exactement |

## spendingAmount ≠ amount (piège)

Sur les dépenses carte, `spendingAmount` est le **plafond de la carte**, pas le montant réellement dépensé :

```json
{
  "amount": { "amount": 329700, "currency": "EUR", "precision": 2 },        // 3 297 EUR réels
  "spendingAmount": { "amount": 450000, "currency": "EUR", "precision": 2 } // 4 500 EUR = plafond carte
}
```

→ Toujours utiliser `amount` (ou `functionalAmount` pour les multi-devises) pour analyser les montants dépensés.
→ `spendingAmount` = plafond autorisé — utile uniquement pour analyser l'utilisation des limites.

## Cas multi-devises

Les dépenses carte peuvent être en USD (ex : SaaS, abonnements étrangers) :

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

→ Le filtre `grossAmount > 500` filtre sur `functionalAmount` (EUR) — une dépense de 900 USD = 837 EUR est donc incluse dans `grossAmount > 500`.

## Champs utiles pour analyser les résultats

| Champ | Utilisation |
|-------|-------------|
| `description` | Libellé de la dépense |
| `amount` / `functionalAmount` | Montant (devise locale / EUR) — coefficient / 10^precision |
| `counterparty.supplierId` | ID du fournisseur — résoudre avec `get_suppliers(ids=[...])` |
| `memberId` | ID de l'employé ayant fait la dépense |
| `creationDate` | Date de la dépense |
| `payableType` | Type de carte utilisée |
| `itemLines[].analyticalFieldAssociations` | Cost center, champs analytiques |

## Ajouter un filtre de période

```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
}
```

## Exemples de prompts

- "Liste les achats carte supérieurs à 1 000 EUR ce trimestre"
- "Quelles sont les dépenses carte physique au-dessus de 200 EUR en juin ?"
- "Identifie les achats exceptionnels (> 2 000 EUR) sur les 3 derniers mois"
- "Affiche toutes les dépenses carte virtuelle > 500 EUR du mois de mars"

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s15-depenses-carte-seuil-montant.md via le bouton ci-dessus.
  2. 2
    Placer le fichier dans le répertoire .claude/ de votre projet (ou ~/.claude/ pour une installation globale).
    cp s15-depenses-carte-seuil-montant.md .claude/s15-depenses-carte-seuil-montant.md
  3. 3
    Utiliser dans Claude Codele skill est automatiquement découvert. Décrivez votre besoin en langage naturel et Claude appliquera les instructions du skill.
💡 Assurez-vous que le MCP Spendesk est configuré dans votre .claude/settings.json avec les outils get_payables.

Skills similaires

★ Top
95/100·🔍 Ponctuel·Expert

Audit de couverture MCP — Gap analysis automatisée

Sonde tous les outils MCP disponibles, re-évalue la couverture des 50 cas d'usages persona, détecte les nouveaux champs ou outils, et régénère le rapport d'analyse des gaps.

CFOControllerAP Manager
90/100·📅 Hebdo·Débutant

Demandes de carte via get_requests

Explique comment utiliser get_requests pour les demandes de carte et pourquoi les remboursements de frais n'y apparaissent pas. Évite une source de confusion fréquente entre deux workflows distincts.

ControllerFinance Analyst
90/100·🔍 Ponctuel·Intermédiaire

Cost centers actifs vs archivés

Distingue les centres de coût actifs des archivés via le bon usage de get_cost_centers. Évite le piège de la convention de nommage isArchived vs isActive qui est contre-intuitive.

ControllerFinance Analyst