Solde wallet et allocations cartes

Compare le solde du wallet aux allocations des cartes virtuelles et physiques. Permet une réconciliation partielle des fonds distribués entre les différentes cartes.

↓ Télécharger le skill (.md)
81/100·📅 Hebdo·IntermédiaireCFOController
CartesRéconciliationget_wallet_summarylist_cards

🎯 But du skill

Compare le solde du wallet aux allocations des cartes virtuelles et physiques. Permet une réconciliation partielle des fonds distribués entre les différentes cartes.

📊 Ce que ça produit

Résumé du solde wallet, montants alloués aux cartes et écart de réconciliation par devise.

Bénéfice

Avant

Vérification manuelle dans plusieurs écrans Spendesk pour comparer le solde et les allocations.

Après

Vue consolidée wallet vs cartes en quelques secondes, sans navigation entre écrans.



# Instructions — Solde wallet et allocations cartes

## ⚠️ Format incohérent : list_cards.availableBalance.amount

Tous les tools MCP utilisent la convention `{ amount: int, precision }` où la valeur = `amount / 10^precision`.

**Exception : `list_cards`** — le champ `availableBalance.amount` retourne directement la valeur décimale :
```json
// list_cards — valeur DÉJÀ en EUR :
"availableBalance": { "amount": 91.38, "currency": "EUR", "precision": 2 }
→ balance = 91,38 EUR (NE PAS diviser par 100)

// get_wallet_summary — coefficient entier standard :
"totalAmount": { "amount": 33224769, "currency": "EUR", "precision": 2 }
→ balance = 33 224 769 / 100 = 332 247,69 EUR
```

→ Pour les balances de cartes, utiliser `availableBalance.amount` directement (pas de division).

## ⚠️ Wallet disponible peut être négatif

`totalAvailableAmount` peut être **négatif** sur les comptes démo ou en cas de dépassement de virements programmés. C'est un état valide — interpréter comme "les allocations dépassent le solde actuel".

## ⚠️ allocatedOnCards ≠ somme des availableBalance des cartes actives

Ces deux métriques mesurent des choses différentes :
- `allocatedOnCards.totalAllocatedAmount` = montant réservé dans le wallet pour les cartes (limites de dépense réservées)
- `sum(card.availableBalance)` = montant résiduel que les titulaires peuvent encore dépenser

La différence = montant déjà consommé sur les cartes. Ce n'est **pas** une incohérence — c'est attendu.

## Étape 1 — Wallet snapshot (get_wallet_summary)

```json
{ "companyId": "..." }
```

Champs clés (tous en devise fonctionnelle) :
- `totalAmount` → solde brut du wallet (coefficient entier)
- `totalAvailableAmount` → disponible après toutes allocations (peut être négatif)
- `totalAllocatedAmount` = `allocatedOnCards.totalAllocatedAmount` + `scheduledTransfersAmount.totalScheduledTransferAmount`
- `allocatedOnCards.subscriptionAmount` → réservé sur cartes subscription
- `allocatedOnCards.physicalAmount` → réservé sur cartes physiques
- `allocatedOnCards.singlePurchaseAmount` → réservé sur cartes single-purchase
- `scheduledTransfersAmount.scheduledInvoicesAmount` → virements fournisseurs programmés

## Étape 2 — Cartes actives (list_cards)

```json
{ "companyId": "...", "status": "ACT", "pageSize": 100 }
```

Pour chaque carte active :
- `availableBalance.amount` → solde disponible EN EUROS DIRECTEMENT (pas de formule)
- `spendingLimit` → limite de dépense (peut être null pour les subscriptions sans limite fixe)
- `type` : subscription | physical | single_purchase | multi_use
- `currency` → devise de la carte (peut différer de la devise fonctionnelle)

⚠️ Ne pas sommer des cartes en devises différentes.

## Étape 3 — Interpréter les résultats

Présenter comme suit :

```
Wallet SPENDESK (EUR) au 2026-07-06 :
  Solde total      : 332 247,69 EUR
  Disponible       : -511 590,51 EUR  ⚠️ (allocations > solde)
  Alloué cartes    : 491 808,95 EUR
    dont subscription : 402 288,42 EUR
    dont physiques    :  28 872,30 EUR
    dont single-use   :   4 601,63 EUR
  Virements programmés : 352 029,25 EUR

Cartes actives (ACT) : 2 cartes
  Subscription #7071 : 91,38 EUR disponible
  Subscription #5947 :  9,49 EUR disponible
```

## Exemple live (données réelles)

| Métrique | Valeur |
|----------|--------|
| Solde total | 332 247,69 EUR |
| Disponible | **-511 590,51 EUR** (négatif — test) |
| Alloué cartes | 491 808,95 EUR |
| Virements programmés | 352 029,25 EUR |
| Cartes ACT | 2 (subscriptions uniquement, ~101 EUR disponible) |

## Exemple de prompt

- "Quel est l'état du wallet ?" → get_wallet_summary uniquement
- "Combien reste-t-il sur les cartes actives ?" → list_cards status=ACT + sum availableBalance
- "Y a-t-il des virements programmés en attente ?" → wallet_summary.scheduledTransfersAmount

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s03-wallet-summary-vs-cards.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 s03-wallet-summary-vs-cards.md .claude/s03-wallet-summary-vs-cards.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_wallet_summary, list_cards.

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