Validité des justificatifs (documentary evidence)

Vérifie la validité réelle des justificatifs en distinguant la présence d'un fichier et la disponibilité d'une URL pré-signée. Crucial pour les audits de conformité documentaire.

↓ Télécharger le skill (.md)
80/100·📅 Hebdo·IntermédiaireControllerAP Manager
ConformitéRéconciliationget_payable_by_id

🎯 But du skill

Vérifie la validité réelle des justificatifs en distinguant la présence d'un fichier et la disponibilité d'une URL pré-signée. Crucial pour les audits de conformité documentaire.

📊 Ce que ça produit

Rapport de conformité des justificatifs : comptage des factures avec et sans pièces jointes valides.

⚡ Bénéfice

Avant

Impossible de distinguer les vraies pièces jointes des métadonnées corrompues ou manquantes.

Après

Rapport précis de conformité des justificatifs, prêt pour l'audit ou le commissaire aux comptes.



# Instructions — Validité des justificatifs (documentary evidence)

## ⚠️ Distinction critique

| Filtre | Ce que ça signifie | Ce que ça ne signifie PAS |
|--------|-------------------|--------------------------|
| `documentaryEvidenceStatus=provided` | Un fichier est attaché | Que le document est valide ou conforme |
| `documentaryEvidenceStatus=providedAndDpr` | Fichier attaché + processing DPR | Que le document est valide |
| `documentaryEvidenceStatus=missing` | Aucun fichier attaché | |
| `documentaryEvidenceStatus=declaredAsInvalid` | Marqué invalide par l'utilisateur | |

**Pour la vraie validité** : lire `documentaryEvidence.validity.valid` (boolean) et `documentaryEvidence.compliances` sur chaque payable.

## Cas d'usage 1 — Identifier les dépenses sans justificatif

Appelle `get_payables` avec :
```json
{ "field": "documentaryEvidenceStatus", "operator": "=", "value": ["missing", "declaredAsInvalid"] }
```

→ Toutes les dépenses nécessitant un suivi justificatif.

## Cas d'usage 2 — Vérifier la conformité des justificatifs attachés

Étape 1 : Récupérer les payables avec justificatif attaché
```json
{ "field": "documentaryEvidenceStatus", "operator": "=", "value": ["provided", "providedAndDpr"] }
```

Étape 2 : Pour chaque payable, inspecter :
```
documentaryEvidence.validity.valid       → true/false
documentaryEvidence.compliances          → absent, {} ou { spainEreceipt: ... } (conformité propre à un pays)
documentaryEvidence.type                 → "invoice" | "creditNote" | ...
documentaryEvidence.invoiceNumber        → présent si facture
```

Étape 3 : Signaler les cas où `validity.valid=false` et citer `validity.reason` s'il est présent. Pour l'Espagne, signaler aussi un `compliances.spainEreceipt.closure.error`.

## Structure complète du champ documentaryEvidence

```json
{
  "validity": {
    "valid": true/false
  },
  "compliances": {
    // informations de conformité propres à un pays, ex. spainEreceipt (champ optionnel, souvent absent ou vide)
  },
  "type": "invoice" | "declarationOfMissingInvoice" | "mileageEntry" | "perDiemEntry" | "creditNote" | "declarationOfMissingCreditNote",
  "invoiceNumber": "XXXX",              // si type=invoice
  "creditNoteNumber": "XXXX",           // si type=creditNote
  "referenceInvoiceNumber": "XXXX"      // si avoir avec référence
}
```

## Cas d'usage 3 — Audit complet des justificatifs

Pour un audit exhaustif, combiner les deux recherches (et interroger aussi `cannotBeProvided`, `hasDpr` et `hasDprError`, les trois autres statuts acceptés par le filtre) :

1. Sans justificatif : `status=["missing","declaredAsInvalid"]`
2. Avec justificatif potentiellement invalide : `status=["provided","providedAndDpr"]` + filtrer sur `validity.valid=false` côté client

Afficher :
- % de payables avec justificatif valide
- Liste des cas problématiques (sans justificatif + avec justificatif invalide)
- Priorité aux montants élevés

## Note sur le compte démo

Sur le compte de démonstration Spendesk, tous les justificatifs `provided` ont `validity.valid=true` et `compliances={}`. `compliances` porte des informations de conformité propres à un pays (aujourd'hui `spainEreceipt` pour l'e-receipt espagnol), pas des erreurs de validation. Le motif d'invalidité, quand il existe, se lit dans `validity.reason` (présent seulement si `validity.valid=false`).

## Exemple de prompt

- "Quelles dépenses n'ont pas de justificatif ?" → filter status=missing
- "Y a-t-il des justificatifs joints mais non conformes ?" → provided + validity.valid=false
- "Audit des reçus manquants avant clôture" → missing + declaredAsInvalid

Comment installer ce skill

/
  1. 1
    Télécharger le fichier s12-documentary-evidence-validite.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 s12-documentary-evidence-validite.md .claude/s12-documentary-evidence-validite.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_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?