7434d6803a
CI / Contraintes NON-NÉGOCIABLES (CLAUDE.md) (push) Has been cancelled
CI / Validation JSON (schémas Faisabilité) (push) Has been cancelled
CI / Qualité documentaire (liens + 4Big) (push) Has been cancelled
CI / Reproductibilité des artefacts out/ (build == commité) (push) Has been cancelled
CI / Fraîcheur matrice de régression (run == commité) (push) Has been cancelled
CI / Intégrité du câblage CI (gate agrège tout · gates statiques verrouillés) (push) Has been cancelled
CI / Intégrité des chiffres du README (valeur == artefact cité · (push) Has been cancelled
CI / Publiciste · parser + schéma + generator (unittest) (push) Has been cancelled
CI / RBAC · 50 rôles + schéma (unittest) (push) Has been cancelled
CI / Faisabilité · générateur 4 volets + round-trip (unittest) (push) Has been cancelled
CI / RBAC · fixtures ERPNext (Role + Custom DocPerm) (push) Has been cancelled
CI / RBAC · plan User Permission (row-level) (push) Has been cancelled
CI / RBAC · Role Profile (bundles par portail) (push) Has been cancelled
CI / RBAC · run-book d'application unifié (agrégat 3 volets) (push) Has been cancelled
CI / Faisabilité · dossier bancable trilingue FR/EN/ES (push) Has been cancelled
CI / CRM · workflow vente ERPNext (lead → CONFOTUR) (push) Has been cancelled
CI / CRM · DocType porteur OTO Dossier Vente (push) Has been cancelled
CI / CRM · barème commissions vendeurs (push) Has been cancelled
CI / Fiscal · e-CF DGII (Compupar) (push) Has been cancelled
CI / Frontend · Workspaces 5 portails rôle (push) Has been cancelled
CI / Legal · DocType CONFOTUR Application (push) Has been cancelled
CI / QA · Audit 5D conformité (push) Has been cancelled
CI / SEO · mots-clés trilingues + schema.org + hreflang (push) Has been cancelled
CI / Chat OTOIA · montage par portail (Custom Block) (push) Has been cancelled
CI / QA · Audit 4Big (95+/100 sur 100% deliverables) (push) Has been cancelled
CI / Démo · Scénarios (run-sheet P07 banquier / P05 client) (push) Has been cancelled
CI / QA · Matrice de régression exhaustive (Sprint 8) (push) Has been cancelled
CI / DevOps · Run-book de déploiement VPS unifié (Sprint 8) (push) Has been cancelled
CI / QA · Matrice d'acceptation / traçabilité MVP (Sprint 8) (push) Has been cancelled
CI / Mobile · config app Expo/EAS (navigation par rôle) (push) Has been cancelled
CI / E2E baseline Playwright (manuel) (push) Has been cancelled
CI / Gate qualité (agrégat) (push) Has been cancelled
203 lines
11 KiB
Markdown
203 lines
11 KiB
Markdown
# 💰 DIRECTIVE · Module Financement Bancaire COMPLET · 2026-08-03
|
||
|
||
## Exigence Michel (2026-08-03 · 05h AM voyage)
|
||
|
||
Le module Financement Bancaire actuel est trop simpliste. Michel demande un module COMPLET pour un vrai parcours bancaire immobilier RD.
|
||
|
||
## Composants OBLIGATOIRES
|
||
|
||
### 1. Section « Information de l'achat » (auto-remplie)
|
||
Résumé de la réservation en cours ·
|
||
- Projet · code + nom (P01 Coralis, P03 Nakua, etc.)
|
||
- Unité · référence + typologie + surface + orientation + étage + prix USD
|
||
- Plan de paiement · 20% résident / 30% étranger + solde bancable
|
||
- Apport déjà versé · dépôt de réservation + éventuels versements
|
||
- Solde à financer · calcul auto (prix - apport - autres versements)
|
||
- Statut Fideicomiso Ley 189-11 · constitué OUI/NON
|
||
- Statut CONFOTUR · exonération Ley 158-01 confirmée OUI/NON
|
||
|
||
### 2. Section « Choix de la banque partenaire »
|
||
Liste des banques dominicaines partenaires OTOV7 avec profils ·
|
||
- **Banreservas** · banque d'État · taux préférentiels résidents · durée jusqu'à 25 ans · LTV 80%
|
||
- **Banco Popular Dominicano** · réseau large · rapide · CONFOTUR-friendly · LTV 75-85%
|
||
- **BHD León** · haut de gamme · étrangers acceptés · biling · durée 30 ans
|
||
- **Banco Santa Cruz** · taux compétitifs · pré-qualif rapide
|
||
- **Scotiabank Republica Dominicana** · étrangers spécialistes · devise USD acceptée · LTV 70%
|
||
- **López de Haro** · niche haut de gamme
|
||
- Autre · à ajouter selon demande spécifique
|
||
|
||
Chaque banque doit afficher · taux min-max %, LTV%, durée max ans, spécialités (résidents / étrangers / CONFOTUR / devises acceptées), documents typiquement requis.
|
||
|
||
Le client choisit UNE banque en priorité (radio button). Possibilité d'ajouter des banques additionnelles en parallèle (multi-dossiers).
|
||
|
||
### 3. Section « Formulaires banque pré-remplis »
|
||
Pour chaque banque, générer automatiquement les formulaires officiels PDF de la banque, pré-remplis avec ·
|
||
- Données personnelles (nom, prénom, cédula/passeport, téléphone, courriel, adresse, statut marital, dépendants)
|
||
- Données financières client (revenu mensuel, autres crédits, épargne)
|
||
- Données achat (projet, unité, prix, apport)
|
||
- Données WAG vendeur (RNC, adresse, coordonnées)
|
||
|
||
**Formulaires typiques par banque** (à obtenir en vrai de chaque banque via démarche relationship manager) ·
|
||
- Solicitud de Préstamo Hipotecario
|
||
- Autorización de investigación creditica (DataCrédito)
|
||
- Declaración jurada de patrimonio
|
||
- Autorización débito automático quote-part
|
||
- Certificación de origen de fondos (pour étrangers)
|
||
|
||
Le client télécharge le PDF pré-rempli, le VÉRIFIE, le SIGNE, le RE-UPLOAD via l'interface. Un journal audit trace chaque signature.
|
||
|
||
### 4. Section « Exigences bancaires par banque »
|
||
Liste explicite des documents que la banque exige, cochée automatiquement au fur et à mesure des uploads.
|
||
|
||
Documents typiques (varient selon banque) ·
|
||
- **Client** · Cédula ou Passeport (2 côtés), Preuve d'adresse récente (<3 mois), 3 dernières fiches de paye ou déclarations ITBIS/DGII, États bancaires 6 derniers mois, Lettre employeur ou attestation profession libérale, Certification de solvabilité, Certification DataCrédito (délivré par banque)
|
||
- **Immobilier** · Promesa Irrévocable signée notariée, Fideicomiso Inmobiliario constitué, Titre définitif ou Certificado de Título (si disponible)
|
||
- **Étrangers uniquement** · Passeport valide 2 côtés, Visa/résidence si applicable, Lettre origine des fonds notariée (FinCEN GTO), Références bancaires internationales, Références commerciales/personnelles
|
||
|
||
Chaque item · statut (Non déposé / Déposé / Validé WAG / Envoyé banque), bouton Upload, prévisualisation, remplacement possible.
|
||
|
||
### 5. Section « Autorisations à signer »
|
||
Documents que le client doit signer AVANT que WAG envoie le dossier à la banque ·
|
||
- Autorisation de partage de données personnelles avec la banque (RGPD/Ley 172-13)
|
||
- Autorisation d'investigation DataCrédito
|
||
- Mandat WAG comme intermédiaire de financement
|
||
- Acknowledgment · risques de refus bancaire + politique annulation
|
||
|
||
Signature électronique OTO Sign™ (DocuSeal) sur chaque autorisation, horodatée + IP + hash.
|
||
|
||
### 6. Mention CRITIQUE affichée en permanence
|
||
|
||
En haut du module Financement Bancaire, bandeau rouge/or persistant ·
|
||
|
||
> ⚠ **AUCUN DOCUMENT N'EST TRANSMIS À LA BANQUE tant que ·**
|
||
> · **TOUS les documents exigés** ne sont pas déposés dans le portail
|
||
> · **TOUTES les autorisations** ne sont pas signées électroniquement
|
||
> · **Validation manuelle WAG** confirmée par le conseiller référent
|
||
>
|
||
> Le bouton « Envoyer à la banque » reste **désactivé** tant que ces 3 conditions ne sont pas remplies. Statut affiché en temps réel.
|
||
|
||
### 7. Statut envoi banque temps réel
|
||
Une fois toutes conditions remplies, le bouton « Envoyer à la banque » s'active. Après envoi ·
|
||
- Timestamp exact de l'envoi
|
||
- Confirmation email + WhatsApp au client
|
||
- Numéro de dossier banque attribué
|
||
- Timeline switch vers workflow suivi banque (Prequalifié → Dossier soumis → Analyse crédit → Offre reçue → Contrat signé → Décaissement)
|
||
|
||
### 8. Journal d'activité complet
|
||
Historique horodaté visible par le client ·
|
||
- Chaque document déposé (date + heure + IP)
|
||
- Chaque autorisation signée (date + heure + hash signature)
|
||
- Chaque interaction WAG (validation, remarque, demande complément)
|
||
- Chaque étape workflow avancée
|
||
|
||
## Architecture technique demandée
|
||
|
||
### Backend endpoints à créer/enrichir
|
||
- `GET /api/hypotheque/banques` (existe · enrichir avec profils complets)
|
||
- `POST /api/hypotheque/dossier` · créer un nouveau dossier
|
||
- `GET /api/hypotheque/dossier/{id}` · état complet du dossier
|
||
- `POST /api/hypotheque/dossier/{id}/document` · upload document exigé
|
||
- `POST /api/hypotheque/dossier/{id}/authorization` · signer autorisation
|
||
- `GET /api/hypotheque/dossier/{id}/form/{bank}/{form_type}.pdf` · télécharger formulaire pré-rempli
|
||
- `POST /api/hypotheque/dossier/{id}/submit` · envoyer à la banque (gate check TOUS docs + autorisations)
|
||
- `GET /api/hypotheque/dossier/{id}/journal` · historique activité
|
||
|
||
### Frontend refonte renderHypotheque
|
||
Layout accordéon 6 sections · Info achat / Choix banque / Formulaires / Exigences / Autorisations / Envoi
|
||
Bandeau alerte persistant en haut
|
||
Timeline visible en bas
|
||
Journal cliquable expandable
|
||
|
||
### Backend gate check
|
||
Fonction `can_submit_dossier(dossier_id) -> (bool, list_of_reasons)` qui vérifie ·
|
||
1. Tous les documents `is_required=True` de la banque choisie sont statut `Validé WAG` ou `Envoyé banque`
|
||
2. Toutes les autorisations sont signées (`signature_date NOT NULL`)
|
||
3. Un conseiller WAG a validé (`wag_validated_by NOT NULL`)
|
||
|
||
Si UNE de ces conditions manque, `submit_to_bank()` retourne 403 avec liste raisons détaillées.
|
||
|
||
## Estimation effort
|
||
|
||
- **Backend** · 5-8 endpoints + gate check + génération PDF formulaires · **3-5 jours**
|
||
- **Frontend** · refonte renderHypotheque 6 sections + upload UI + bandeau alerte + journal · **2-3 jours**
|
||
- **Templates PDF** · récupérer les vrais formulaires officiels de 6 banques (démarche relationship management) · **1-2 semaines**
|
||
- **Tests** · flow complet client + gate check + envoi simulé · **1-2 jours**
|
||
|
||
**Total · 3 semaines pour version complète production**
|
||
|
||
## Livrable MVP dès ce soir (agents Claude Code DTP)
|
||
|
||
**Phase 1 (P0 · MVP) · 4-6h autonome**
|
||
- Refonte renderHypotheque avec les 6 sections + bandeau alerte
|
||
- Bouton envoi désactivé + affichage raisons
|
||
- Upload documents basique (endpoint existant `/api/hypotheque/upload-doc`)
|
||
- Formulaires PDF templates génériques (placeholder texte pré-rempli)
|
||
|
||
**Phase 2 · vrais formulaires banques** · attend démarche externes Michel avec relationship managers
|
||
|
||
## Commit régulier
|
||
|
||
Chaque livraison majeure · commit Gitea `[Sprint 5 · Financement] description`. Michel voit progression au retour.
|
||
|
||
---
|
||
|
||
## AMENDEMENT · Michel 2026-08-03 · Dépôt initial obligatoire
|
||
|
||
### 4ème condition CRITIQUE ajoutée au gate check
|
||
|
||
Avant que le module Financement Bancaire soit activé et que les démarches avec la banque puissent commencer, **le dépôt initial minimum de l'unité doit être COMPLÈTEMENT versé** ·
|
||
|
||
- **Résident RD** · 20% du prix total de l'unité
|
||
- **Étranger** · 30% du prix total de l'unité
|
||
|
||
Cette exigence est également une **exigence des banques dominicaines** · elles n'analysent aucun dossier sans preuve d'apport initial complet. Ley 189-11 (Fideicomiso Inmobiliario) valide.
|
||
|
||
### Gate check étendu · 4 conditions
|
||
|
||
Fonction `can_submit_dossier(dossier_id) -> (bool, list_of_reasons)` doit vérifier ·
|
||
1. **Dépôt initial complet** · `sum(paiements.montant_verse_usd) >= apport_requis_usd` où apport_requis = prix × (0.20 si résident, 0.30 si étranger)
|
||
2. Tous les documents `is_required=True` de la banque choisie sont `Validé WAG` ou `Envoyé banque`
|
||
3. Toutes les autorisations sont signées (`signature_date NOT NULL`)
|
||
4. Un conseiller WAG a validé (`wag_validated_by NOT NULL`)
|
||
|
||
### Bandeau alerte mise à jour
|
||
|
||
En haut du module Financement Bancaire, bandeau rouge/or persistant ·
|
||
|
||
> ⚠ **AUCUN DOCUMENT N'EST TRANSMIS À LA BANQUE tant que ·**
|
||
> · **Dépôt initial complet** (20% résident RD · 30% étranger) versé et vérifié
|
||
> · **TOUS les documents exigés** ne sont pas déposés dans le portail
|
||
> · **TOUTES les autorisations** ne sont pas signées électroniquement
|
||
> · **Validation manuelle WAG** confirmée par le conseiller référent
|
||
>
|
||
> Le bouton « Envoyer à la banque » reste **désactivé** tant que ces 4 conditions ne sont pas remplies. Progression affichée en temps réel avec barre 0-100% par condition.
|
||
|
||
### Section « Statut apport initial » ajoutée
|
||
Nouvelle section au top du module ·
|
||
- Prix total unité · X USD
|
||
- Statut résidence · Résident RD / Étranger
|
||
- Apport requis (20% ou 30%) · Y USD
|
||
- Apport versé · Z USD (calcul depuis USER_DATA.paiements)
|
||
- **Solde apport restant · W USD**
|
||
- Barre de progression apport 0-100%
|
||
- Bouton « Compléter le dépôt » (redirige vers section Paiements avec pré-config Cardnet montant restant)
|
||
|
||
Si apport non complet · les autres sections (Choix banque / Formulaires / Exigences / Autorisations / Envoi) sont **grisées et non-cliquables**. Message · « Complétez d'abord votre apport initial pour démarrer les démarches bancaires ».
|
||
|
||
### Endpoint backend
|
||
|
||
- `GET /api/hypotheque/dossier/{id}/gate-status` retourne ·
|
||
```json
|
||
{
|
||
"can_submit": false,
|
||
"conditions": {
|
||
"apport_initial_complet": {"ok": false, "required": 29000, "paid": 15000, "remaining": 14000, "percent": 51.7},
|
||
"documents_exiges": {"ok": false, "total": 8, "deposited": 5, "validated": 3},
|
||
"autorisations_signees": {"ok": false, "total": 4, "signed": 2},
|
||
"validation_wag": {"ok": false, "validated_by": null}
|
||
}
|
||
}
|
||
```
|
||
|
||
Frontend consomme cet endpoint pour afficher progression réelle et griser boutons.
|