diff --git a/DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md b/DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md index d5d0134..3d5f99c 100644 --- a/DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md +++ b/DIRECTIVE_FINANCEMENT_BANCAIRE_COMPLET_20260803.md @@ -200,3 +200,82 @@ Si apport non complet · les autres sections (Choix banque / Formulaires / Exige ``` Frontend consomme cet endpoint pour afficher progression réelle et griser boutons. + +--- + +## PRÉCISION · Michel 2026-08-03 · Validation par OTO Auditeur Finances (agent IA) + +### La 4ème condition N'EST PAS un humain WAG + +Contrairement à la version précédente qui mentionnait « conseiller WAG », la validation est faite **directement par OTO Auditeur Finances**, un agent IA autonome. Aucun humain WAG n'est requis dans le cycle · c'est de l'audit automatique par agent. + +### Rôle OTO Auditeur Finances + +Agent Claude Code (module OTOIA capability `auditeur_finances`) qui exécute les vérifications suivantes à chaque changement d'état du dossier bancaire · + +1. **Cohérence des données client** · nom, cédula/passeport, tel, adresse, employeur cohérents entre tous les documents déposés +2. **Vérification montant apport initial** · somme des paiements Cardnet + virements = apport requis (20% résident / 30% étranger) +3. **Complétude documentaire** · tous les documents `is_required=True` de la banque choisie déposés + non-expirés (< 3 mois pour états bancaires, < 6 mois pour fiches paye) +4. **Validation signatures** · toutes les autorisations OTO Sign™ ont hash + IP + timestamp valides · pas de manipulation +5. **Screening OFAC + PEP + AML** · nom client vs liste OFAC SDN (fichier CSV local /opt/oto/data/compliance/ofac-sdn.csv téléchargé le 2026-08-02) +6. **Cohérence financière** · revenu déclaré ÷ mensualité estimée respecte ratio d'endettement < 40% (norme Superintendencia Bancos RD) +7. **Statut Fideicomiso Ley 189-11** · confirmé constitué avec référence acte notarié +8. **CONFOTUR** · exonération vérifiée si applicable (Ley 158-01) + +### Décision agent + +L'agent produit un rapport structuré JSON dans `/opt/oto/data/finance-audits/{dossier_id}_{timestamp}.json` · + +```json +{ + "dossier": "HYPO-P01-50r7v1kj0a", + "audited_at": "2026-08-03T14:30:00Z", + "audited_by": "oto-auditeur-finances-v1", + "decision": "APPROVED" | "REJECTED" | "REQUEST_MORE_INFO", + "checks": { + "coherence_donnees": "ok", + "apport_initial": "ok · 30000/30000 USD versé", + "documents_complets": "missing · manque état bancaire mars 2026", + "signatures_valides": "ok · 4/4 signées", + "ofac_screening": "clean", + "pep_screening": "clean", + "ratio_endettement": "ok · 28%", + "fideicomiso": "ok · acte notarié réf ACT-2026-P01", + "confotur": "n/a" + }, + "reasons": ["Manque état bancaire mars 2026 pour Banreservas"], + "next_action": "Client doit déposer document manquant" +} +``` + +### Signature audit + +Le rapport est signé HMAC-SHA256 avec clé privée OTO Auditeur (`/etc/oto/oto-auditeur.env · AUDIT_SIGNING_KEY`) pour garantir intégrité et non-répudiation. La signature est vérifiée par le backend avant de flipper `validation_oto_auditeur` à True dans le dossier. + +### Intervention humaine · uniquement en dernier recours + +Un humain WAG (Michel, Xavier, Cesar, Martires) n'intervient QUE si · +- Agent retourne `REJECTED` avec raisons ambiguës (< 3× consécutifs sur le même dossier) +- Détection OFAC/PEP positive (screening humain requis par Ley 155-17 AML RD) +- Ratio endettement border-line 38-45% (humain juge exception) +- Client fait un recours écrit contre décision agent + +### Endpoint backend supplémentaire + +- `POST /api/hypotheque/dossier/{id}/run-audit` · déclenche audit OTO Auditeur (lance capability OTOIA `auditeur_finances`) +- `GET /api/hypotheque/dossier/{id}/audit-latest` · retourne dernier rapport JSON +- `GET /api/hypotheque/dossier/{id}/audit-history` · liste tous les audits horodatés + +### Cycle automatique + +L'agent OTO Auditeur Finances tourne toutes les 15 minutes en background (cron + task queue OTOIA) pour tous les dossiers en état `Documents complets · en attente audit`. Décisions automatiques poussées à ERPNext + notification client (email + WhatsApp). + +### Gate check condition 4 mise à jour + +Au lieu de `wag_validated_by IS NOT NULL`, la condition devient · +```python +audit = get_latest_audit(dossier_id) +condition_4_ok = audit and audit['decision'] == 'APPROVED' and audit['signature_valid'] +``` + +Le client voit dans son portail « Audit OTO Auditeur Finances · APPROUVÉ le [date] » avec lien vers rapport JSON téléchargeable.