Rapprochement Bancaire

Bank reconciliation for French accounting firms. Reconciles bank statement transactions with previously classified invoices for a given client. Produces a CSV per (client, month) listing matched payments, unpaid invoices, orphan payments, and anomalies (amount mismatch, duplicate, suspicious label). Updates the « Statut paiement » column of followup.md. INVOKE to compute or recompute reconciliation for a client over a given month.

Audits

Pending

Install

openclaw skills install rapprochement-bancaire

Skill rapprochement-bancaire

Lit les bank-statements et les factures déjà classées par organisation-documents. Produit un CSV par (client, mois) + met à jour followup.md. C'est tout.


Quand utiliser

  • Demande explicite de rapprochement d'un client / d'un mois.
  • Après un reclassement de pièce → recalcul du mois concerné.
  • Après l'ajout d'un mois d'historique.

Ne pas utiliser pour :

  • Classer / déplacer des documents → organisation-documents.
  • Programmer ou envoyer des relances → relances.
  • Émettre des factures → facturation.

Workflow

  1. Charger les transactions depuis clients/<slug>/<AAAA>/<MM>/bank-statements/ (tous les fichiers du dossier).
  2. Charger les factures du mois (in + out) depuis index.json du client. Inclure aussi les factures des mois adjacents (M-1 et M+1) pour les paiements qui débordent.
  3. Matcher transactions ↔ factures (cf. references/matching-rules.md).
  4. Détecter les anomalies (cf. references/csv-schema.md).
  5. Écrire clients/<slug>/<AAAA>/<MM>/rapprochement.csv (cf. references/csv-schema.md).
  6. Mettre à jour la colonne « Statut paiement » de followup.md pour les matches fort et moyen.
  7. Rapport au comptable.

Matching (résumé)

Score agrégé par transaction = montant × 0,5 + label × 0,3 + date × 0,2.

ScoreConfianceAction
≥ 0,85fortMatch dans CSV + update followup payée <date>
0,65 – 0,85moyenMatch dans CSV + update followup payée ? <date>
0,45 – 0,65faibleSuggestion dans CSV, pas d'update followup
< 0,45aucunTransaction reste unmatched

Sens cohérent obligatoire : crédit ↔ facture vente, débit ↔ facture achat. Jamais de cross-match.

Détails (normalisation, fuzzy label, fenêtre date ±30 j, cas limites frais bancaires / salaires / multi-paiements / multi-comptes) → references/matching-rules.md.


Output — CSV

clients/<slug>/<AAAA>/<MM>/rapprochement.csv

UTF-8 avec BOM, séparateur ;, décimal ,, CRLF. Réécrit en entier à chaque invocation (idempotent). Seule la colonne commentaire est préservée entre runs.

Schéma complet (16 colonnes, enum anomalie : paiement_orphelin, encaissement_sans_facture, facture_non_payee, montant_incoherent, doublon_paiement, paiement_partiel, match_ambigu, etc.) → references/csv-schema.md.


Mise à jour de followup.md

Pour chaque match fort ou moyen sur une facture out :

  • Trouver la ligne dans la section ## Émises ce mois de followup.md du mois d'origine de la facture (pas celui de la transaction).
  • Mettre à jour la colonne « Statut paiement » :
    • fortpayée <AAAA-MM-JJ>
    • moyenpayée ? <AAAA-MM-JJ>
    • paiement_partielpartielle (X%)
  • Vider « Prochaine relance » si statut devient payée.

Ne pas créer followup.md s'il n'existe pas (responsabilité de facturation). Juste écrire le CSV dans ce cas.

Ne pas toucher aux autres colonnes ni à la section ## À émettre.


Communication avec le comptable

Mêmes règles que organisation-documents : vocab métier, jamais de jargon technique (OFX, pipeline, scores numériques bruts, paths absolus).

Silence par défaut si zéro anomalie sur l'invocation. Sinon, synthèse compacte :

🔍 Rapprochement — 3 anomalies à revoir

  • ACME SA / Avril : 1 paiement orphelin (1 248 € le 12/04, sans facture)
  • Trendex Tech / Mars : facture impayée F-2026-03-008, 850 €, échéance dépassée de 8 j
  • Foo SAS / Avril : montant incohérent F-2026-04-021 (facture 720 €, paiement 700 € — escompte ?)

Détails dans clients/<slug>/<AAAA>/<MM>/rapprochement.csv.

Vocabulaire métier : rapprochement, paiement, encaissement, prélèvement, virement, facture, échéance, escompte, acompte, partiel, doublon, orphelin, anomalie, à revoir.


Garde-fous

  • Lecture seule sur les sources : bank-statements/, invoices/*, index.json, clients.json.
  • Écritures localisées : rapprochement.csv + colonne paiement de followup.md + audit.log du client. Rien d'autre.
  • Aucun déplacement de fichier — si un classement est mauvais, ce skill le remonte en anomalie, c'est organisation-documents qui corrige.
  • Pas de PII dans les logs : numéros de facture, montants, dates OK ; libellés complets de transaction et IBAN interdits.
  • Idempotent : données inchangées → CSV identique octet pour octet.

Références complémentaires