Calcul de l'encours fournisseurs (AP outstanding)

Calcule l'encours fournisseurs réel en tenant compte des paiements partiels. Donne une vision précise du passif fournisseurs (AP) à un instant donné.

↓ Télécharger le skill (.md)
84/100·📅 Hebdo·IntermédiaireCFOAP ManagerController
RéconciliationFournisseursget_payablesget_payable_by_id

🎯 But du skill

Calcule l'encours fournisseurs réel en tenant compte des paiements partiels. Donne une vision précise du passif fournisseurs (AP) à un instant donné.

📊 Ce que ça produit

Encours AP total avec répartition par fournisseur, montant facturé vs montant payé.

⚡ Bénéfice

Avant

Calcul manuel dans Excel en réconciliant factures et paiements fournisseur par fournisseur.

Après

Encours AP exact en temps réel, fournisseur par fournisseur, sans tableur.



# Instructions — Calcul de l'encours fournisseurs (AP outstanding)

## ⚠️ Règle critique

Le champ `amount` d'une payable est **toujours le montant total de la facture**, jamais réduit par des paiements partiels.
`paymentStatus=toPay` inclut les factures **partiellement payées** — ne pas sommer `amount` directement.

**Formule correcte** : pour chaque payable `toPay`, l'encours réel = `outstandingAmount` (devise de la facture) ou `outstandingFunctionalAmount` (devise fonctionnelle), calculés par le serveur. Uniquement s'ils sont absents, repli sur `amount.amount - sum(allocations[].amount.amount)`. Pour un simple total, `spendesk_analyze_spend` renvoie `summary.totalOutstandingAmount`.

## Étape 1 — Récupérer les payables impayées

Appelle `get_payables` avec :
```
filters: { field: "paymentStatus", operator: "=", value: ["toPay"] }
```

Paginer si `hasNextPage=true`.

## Étape 2 — Pour chaque payable, calculer le vrai solde restant

```
Pour chaque payable p :
  allocations_sum = sum(p.allocations[i].amount.amount)
  encours_reel = p.amount.amount - allocations_sum
  encours_decimal = encours_reel / 10^p.amount.precision
```

Exemples de cas réels rencontrés :
- Payable avec allocations `[+11 106, -11 106]` → net = 0 → encours = 0 (paiement puis révision)
- Payable avec allocations `[]` → encours = montant total → facture non payée
- Payable avec allocation `[-250 000]` sur avoir de `-300 000` → 50 000 encore à appliquer

## Étape 3 — Agréger en devise fonctionnelle

**Attention** : les montants sont en devises diverses. Utiliser `functionalAmount` (en devise fonctionnelle de la compagnie) pour l'agrégation, pas `amount` (devise de la facture).

Sommer `outstandingFunctionalAmount` (déjà en devise fonctionnelle). S'il est absent, calculer le reste dans la devise de la facture (`amount - sum(allocations)`) puis le convertir avec `functionalExchangeRate` : les allocations n'existent pas en devise fonctionnelle.

## Étape 4 — Résumé

Afficher :
- Total encours en devise fonctionnelle
- Nombre de factures concernées
- Top 5 fournisseurs par encours
- Signaler les payables avec allocations complexes (révisions, avoirs partiels)

## Exemple de prompt

- "Quel est notre encours fournisseurs total ?"
- "Combien doit-on encore aux fournisseurs ce mois-ci ?"

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s13-ap-outstanding-calcul.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 s13-ap-outstanding-calcul.md .claude/s13-ap-outstanding-calcul.md
  3. 3
    Utiliser dans Claude Code — le 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, get_payable_by_id.

Skills similaires

★ Top
95/100·🔍 Ponctuel·Expert

Auditer la couverture du MCP

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

Interested in AI Agent services or Custom Integrations?