Identifie les factures en retard > 60 jours pour un ou plusieurs fournisseurs via spendesk_get_due_invoices + filtre supplierIds

Identifie les factures en retard de plus de 60 jours pour des fournisseurs ciblés via spendesk_get_due_invoices et le filtre supplierIds. Prioritise les relances critiques.

↓ Télécharger le skill (.md)
87/100·📅 Hebdo·DébutantAP ManagerController
FournisseursRéconciliationspendesk_get_due_invoicesget_suppliers

🎯 But du skill

Identifie les factures en retard de plus de 60 jours pour des fournisseurs ciblés via spendesk_get_due_invoices et le filtre supplierIds. Prioritise les relances critiques.

📊 Ce que ça produit

Liste des factures en retard critique avec fournisseur, montant, date d'échéance et jours de retard.

Bénéfice

Avant

Revue manuelle des factures fournisseurs pour identifier les retards critiques — long et imprécis.

Après

Liste immédiate des factures critiques à traiter en priorité, prête pour les relances.



# Instructions

## Use case

Identifier toutes les factures en retard d'un fournisseur donné, réparties par bucket de retard (1-30, 31-60, 61-90, 90+ jours).

## Étape 1 — Trouver l'ID du fournisseur

`spendesk_get_due_invoices` retourne les factures avec `supplier: "Nom du fournisseur"` (un nom, pas un ID). Pour filtrer par fournisseur, il faut d'abord résoudre le nom en ID :

```json
// get_suppliers
{
  "companyId": "<COMPANY_ID>",
  "search": "Vaultspeed"
}
```

→ Récupérer `data[0].id` → ex. `"t0tiu752i9bms9"`

## Étape 2 — Aging filtré par fournisseur

```json
// spendesk_get_due_invoices
{
  "companyId": "<COMPANY_ID>",
  "filters": {
    "supplierIds": ["t0tiu752i9bms9"]
  },
  "includeUpcoming": true,
  "limit": 20
}
```

### Paramètres disponibles dans filters

| Paramètre | Type | Description |
|-----------|------|-------------|
| `supplierIds` | `string[]` | Filtre par un ou plusieurs fournisseurs |
| `costCenterIds` | `string[]` | Filtre par cost center |
| `currencies` | `string[]` | Filtre par devise (ex. `["EUR", "GBP"]`) |
| `minAmount` | `number` | Montant minimum en EUR (décimal) |

### Options

- `includeUpcoming: true` → ajoute un bucket "Not yet due" (factures pas encore échues)
- `limit` → nombre maximum de factures par bucket (défaut 10, max 50)
- `asOfDate` → date de référence (défaut = aujourd'hui, format `YYYY-MM-DD`)

## Structure du résultat

```json
{
  "summary": {
    "asOfDate": "2026-07-06",
    "totalOverdueAmount": { "amount": 81986, "currency": "EUR", "precision": 2 },
    "totalOverdueCount": 2,
    "oldestInvoiceDaysOverdue": 301
  },
  "data": {
    "upcoming": { "label": "Not yet due", "count": 0, "invoices": [] },
    "buckets": [
      { "label": "1-30 days",  "count": 0, "invoices": [] },
      { "label": "31-60 days", "count": 0, "invoices": [] },
      { "label": "61-90 days", "count": 0, "invoices": [] },
      { "label": "90+ days",   "count": 2, "invoices": [
        {
          "id": "a7f1c327-...",
          "supplier": "Vaultspeed",
          "amount": { "amount": 13548, "currency": "GBP", "precision": 2 },
          "currency": "GBP",
          "invoiceNumber": "CB-CN-202509-1142",
          "invoiceDueDate": "2025-09-08",
          "costCenter": "Revenue",
          "daysOverdue": 301
        }
      ]}
    ]
  }
}
```

## Piège 1 — Le résumé est en EUR, les factures en devise native

`summary.totalOverdueAmount` est converti en EUR (devise fonctionnelle), mais chaque `invoice.amount` est dans la devise originale de la facture. Sur cet exemple :
- Vaultspeed : 135.48 GBP (facture en livres)
- eau de paris : 663.79 EUR (facture en euros)

→ Ne pas sommer les `invoice.amount` entre factures en devises différentes. Utiliser `summary.totalOverdueAmount` pour le total converti.

## Piège 2 — Lookup inverse nom → ID obligatoire

`spendesk_get_due_invoices` ne retourne pas les IDs fournisseurs dans la réponse — uniquement le nom (`supplier: "Vaultspeed"`). Pour utiliser le filtre `supplierIds`, il faut **nécessairement** passer par `get_suppliers(search=nom)` d'abord.

## Piège 3 — Uniquement invoicePurchase toPay

`spendesk_get_due_invoices` ne couvre que les **factures fournisseurs** (`invoicePurchase`) avec `paymentStatus = toPay`. Sont exclus :
- Notes de frais
- Achats carte
- Factures déjà payées ou en cours de paiement

## Cas d'usage avancés

**Plusieurs fournisseurs simultanément :**
```json
{ "filters": { "supplierIds": ["t0tiu752i9bms9", "b3E3B8t2s5"] } }
```

**Factures en retard + à venir pour un fournisseur :**
```json
{ "filters": { "supplierIds": ["t0tiu752i9bms9"] }, "includeUpcoming": true }
```

**Aging à une date passée (ex. clôture mensuelle) :**
```json
{ "asOfDate": "2026-06-30" }
```

## Exemples de prompts utilisateurs

- "Quelles sont les factures en retard de Vaultspeed ?"
- "Montre-moi les factures impayées depuis plus de 60 jours pour nos fournisseurs Marketing"
- "Y a-t-il des factures en retard de plus de 90 jours pour eau de paris ?"

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s26-aging-factures-fournisseur.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 s26-aging-factures-fournisseur.md .claude/s26-aging-factures-fournisseur.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 spendesk_get_due_invoices, get_suppliers.

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