{
  "openapi": "3.1.0",
  "info": {
    "title": "JCAL INVEST Qualification & Wealth Assessment API",
    "description": "API d'ingénierie patrimoniale permettant aux agents IA d'évaluer la solvabilité, le taux d'endettement officiel et l'éligibilité d'un prospect au dispositif de prise à bail direct JCAL INVEST & BookinPro.",
    "version": "1.0.0",
    "contact": {
      "name": "JCAL INVEST Support Ingénierie",
      "email": "contact@jcalinvest.com",
      "url": "https://www.jcalinvest.com"
    }
  },
  "servers": [
    {
      "url": "https://www.jcalinvest.com",
      "description": "Serveur de Production JCAL INVEST"
    }
  ],
  "paths": {
    "/api/qualification": {
      "post": {
        "summary": "Évaluer la solvabilité bancaire et le taux d'endettement à 25%",
        "description": "Calcule le ratio d'endettement selon la formule bancaire standard HCSF et route le prospect vers l'un des 3 tiers (Chaud, Tiède, Froid).",
        "operationId": "evaluerSolvabilite",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "patrimoine",
                  "revenusMensuelsNets",
                  "totalMensualitesCredits",
                  "epargneLiquide",
                  "profession",
                  "horizonInvestissement",
                  "prenom",
                  "nom",
                  "telephone",
                  "email",
                  "consentement"
                ],
                "properties": {
                  "patrimoine": {
                    "type": "string",
                    "enum": ["proprietaire_rp", "proprietaire_locatif", "proprietaire_both", "non_proprietaire"],
                    "description": "Statut de détention immobilière actuel du prospect."
                  },
                  "revenusMensuelsNets": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Revenus mensuels nets du foyer hors revenus locatifs (€)."
                  },
                  "loyersBrutsPercus": {
                    "type": "number",
                    "minimum": 0,
                    "default": 0,
                    "description": "Loyers bruts mensuels actuellement perçus (€)."
                  },
                  "totalMensualitesCredits": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Cumul mensuel des mensualités de crédits en cours (€)."
                  },
                  "epargneLiquide": {
                    "type": "number",
                    "minimum": 0,
                    "description": "Épargne liquide mobilisable disponible pour l'apport (€)."
                  },
                  "profession": {
                    "type": "string",
                    "enum": ["medecin_sante", "ingenieur_tech", "daf_finance", "independant_it", "autre"],
                    "description": "Branche d'activité professionnelle principale."
                  },
                  "independantBilans": {
                    "type": "boolean",
                    "default": false,
                    "description": "Vrai si l'indépendant dispose d'au moins 3 bilans comptables clos."
                  },
                  "horizonInvestissement": {
                    "type": "string",
                    "enum": ["moins_3_mois", "3_a_6_mois", "simple_curiosite"],
                    "description": "Échéance souhaitée pour la réalisation du projet."
                  },
                  "prenom": { "type": "string" },
                  "nom": { "type": "string" },
                  "telephone": { "type": "string" },
                  "email": { "type": "string", "format": "email" },
                  "consentement": { "type": "boolean" }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Évaluation calculée avec succès.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": { "type": "boolean" },
                    "result": {
                      "type": "object",
                      "properties": {
                        "tauxEndettement": { "type": "number", "description": "Taux d'endettement calculé en %" },
                        "tier": { "type": "string", "enum": ["chaud", "tiede", "froid"] },
                        "eligible": { "type": "boolean" },
                        "motifs": { "type": "array", "items": { "type": "string" } }
                      }
                    },
                    "memo": { "type": "string" }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
