evaluation
Interface synchrone (OpenAPI) — version 0.2.0. Producteur : conformite. Consommateurs déclarés : operations, epargnant, entreprise, banque-flux-financiers.
Ce contrat n’expose NI alerte, NI dossier, NI critère de détection : l’appelant reçoit un résultat, des motifs codifiés et une péremption — de quoi appliquer, jamais de quoi contourner. AUCUN ACCORD IMPLICITE : une erreur, un différé ou une absence de réponse ne valent jamais AUTORISE — l’appelant tient l’acte suspendu. Toute interface de la plateforme est authentifiée (401) et autorisée par famille d’accès.
La spécification
Section intitulée « La spécification »openapi: 3.1.0info: title: conformite — évaluation version: 0.2.0 x-ruptures: - version: 0.2.0 rupture: "chemins déplacés : le préfixe /tenants/{tenant} disparaît de tous les chemins" motif: >- Le tenant n'entre jamais dans le chemin d'une interface : il est résolu à l'assemblage — routage par l'hôte, audience du jeton — jamais par une donnée d'appel. Le paramètre de chemin tenant disparaît avec le préfixe. summary: >- Demander une évaluation avant un acte (contrôle bloquant), puis la consulter par son identifiant. description: >- Ce contrat n'expose NI alerte, NI dossier, NI critère de détection : l'appelant reçoit un résultat, des motifs codifiés et une péremption — de quoi appliquer, jamais de quoi contourner. AUCUN ACCORD IMPLICITE : une erreur, un différé ou une absence de réponse ne valent jamais AUTORISE — l'appelant tient l'acte suspendu. Toute interface de la plateforme est authentifiée (401) et autorisée par famille d'accès. x-producteurs: - conformite x-consommateurs: - operations - epargnant - entreprise - banque-flux-financierspaths: /evaluations: post: operationId: demanderUneEvaluation summary: Demander une évaluation à un jalon déclaré. description: >- L'appelant cite le CODE D'UN JALON préalablement déclaré et versionné au référentiel de conformité — un jalon inconnu rend la demande irrecevable. La demande est IDEMPOTENTE par demande_id : le rejeu retourne la même évaluation. La réponse est un OBJET PERSISTANT ET IDENTIFIÉ, borné dans le temps (expire_le) et à un contexte (les versions transmises) — un changement déterminant la rend caduque avant terme. Famille d'accès requise : conformite:evaluation. security: - authentification: [conformite:evaluation] requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DemandeDEvaluation' responses: '200': description: >- L'évaluation est rendue (ou retrouvée, sur rejeu d'une même demande_id). content: application/json: schema: $ref: '#/components/schemas/Evaluation' '202': description: >- DIFFÉRÉ SOUS CHARGE : l'évaluation est en cours ; sa référence est rendue et l'en-tête Location pointe sa consultation. UN DIFFÉRÉ N'AUTORISE RIEN — l'appelant tient l'acte suspendu jusqu'au résultat. headers: Location: description: Chemin de consultation de l'évaluation en cours. schema: type: string content: application/json: schema: $ref: '#/components/schemas/EvaluationEnCours' '400': description: >- La demande est irrecevable — le motif nomme le champ. Notamment : jalon inconnu ou non déclaré, référence sans version, montant sans devise. content: application/json: schema: $ref: '#/components/schemas/Erreur' '401': $ref: '#/components/responses/NonAuthentifie' '403': $ref: '#/components/responses/NonAutorise' '503': description: >- La conformité ne peut pas évaluer. INDISPONIBILITÉ FRANCHE : l'acte NE PASSE PAS — l'appelant bloque ou déclenche sa procédure manuelle homologuée ; il ne présume rien et ne sert aucune réponse en cache. content: application/json: schema: $ref: '#/components/schemas/Erreur' /evaluations/{evaluation}: get: operationId: consulterUneEvaluation summary: Relire une évaluation — résultat, état, validité. description: >- Le chemin du différé (202), du rejeu et de la vérification avant usage : une évaluation gardée par l'appelant peut être devenue CADUQUE (changement d'un élément déterminant) ou EXPIREE (terme atteint) — dans les deux cas elle ne se répare pas, on en demande une nouvelle. Seul l'appelant d'origine (même domaine) lit son évaluation. Famille d'accès requise : conformite:evaluation. security: - authentification: [conformite:evaluation] parameters: - name: evaluation in: path required: true description: Identifiant publié de l'évaluation. schema: type: string responses: '200': description: L'évaluation, son état et sa validité à l'instant servi. content: application/json: schema: $ref: '#/components/schemas/Evaluation' '401': $ref: '#/components/responses/NonAuthentifie' '403': $ref: '#/components/responses/NonAutorise' '404': description: L'évaluation est inconnue de ce tenant ou d'un autre appelant. content: application/json: schema: $ref: '#/components/schemas/Erreur' '503': description: >- La conformité ne peut pas répondre — l'appelant ne présume rien de l'état de l'évaluation. content: application/json: schema: $ref: '#/components/schemas/Erreur'components: responses: NonAuthentifie: description: L'appelant n'est pas authentifié. content: application/json: schema: $ref: '#/components/schemas/Erreur' NonAutorise: description: L'appelant n'a pas la famille d'accès requise. content: application/json: schema: $ref: '#/components/schemas/Erreur' securitySchemes: authentification: type: openIdConnect openIdConnectUrl: https://exemple.invalid/.well-known/openid-configuration description: >- L'exigence est déclarée ici ; le mécanisme est décliné à l'assemblage. schemas: DemandeDEvaluation: type: object required: [demande_id, jalon, sujet] properties: demande_id: type: string description: >- Clé d'idempotence de la demande, choisie par l'appelant : le rejeu retourne la même évaluation, il n'en crée pas une seconde. jalon: type: string description: >- Code du jalon déclaré par le domaine appelant et versionné au référentiel de conformité (ex. OPERATIONS_PAIEMENT_SORTANT, EPARGNANT_ENTREE_RELATION). Un jalon inconnu rend la demande irrecevable — sans jalon déclaré, pas de contrôle. sujet: $ref: '#/components/schemas/ReferenceVersionnee' references: type: array description: >- Les autres objets qui fondent le contrôle, par référence versionnée — l'opération, la coordonnée bancaire (identifiant et version, JAMAIS de valeur bancaire), le tiers. Ce sont ces versions qui bornent le contexte de validité de l'évaluation. items: $ref: '#/components/schemas/ReferenceVersionnee' montant: $ref: '#/components/schemas/Montant' date_fait: type: string format: date-time description: >- Date du fait évalué — c'est à cette date que les listes et politiques sont lues. ReferenceVersionnee: type: object required: [domaine, type, identifiant, version] properties: domaine: type: string description: Le domaine d'autorité de l'objet (EPARGNANT, OPERATIONS, BANQUE…). type: type: string description: Le type d'objet chez son détenteur (PERSONNE_PHYSIQUE, OPERATION, COORDONNEE_BANCAIRE…). identifiant: type: string description: Identifiant publié — jamais une valeur (ni nom, ni IBAN, ni solde). version: type: integer minimum: 1 description: >- Version de l'objet à la date du fait ; le détenteur garantit la relecture historique de cette version (contrat inter-domaines du cadre). Montant: type: object required: [valeur, devise] properties: valeur: type: string description: Montant décimal en chaîne — aucune conversion silencieuse. devise: type: string description: Code ISO 4217 (EUR). Evaluation: type: object required: [evaluation_id, etat, resultat, motifs, politique, expire_le, servi_le] properties: evaluation_id: type: string etat: type: string enum: [RENDUE, EN_COURS, CADUQUE, EXPIREE] description: >- RENDUE : utilisable jusqu'à expire_le. CADUQUE : un élément déterminant a changé — ne pas utiliser, redemander. EXPIREE : le terme est atteint — même règle. EN_COURS : différé, résultat non encore rendu. resultat: type: string enum: [AUTORISE, CONTROLE_RENFORCE, EN_ATTENTE, INTERDIT, NON_EVALUE] description: >- EN_ATTENTE est une réponse complète — l'acte reste suspendu jusqu'à nouvelle mesure, servie par le circuit des mesures ordonnées. NON_EVALUE n'est PAS un accord : données ou politique insuffisantes, l'acte ne passe pas. motifs: type: array items: type: string description: >- Motifs CODIFIÉS (ex. COORDONNEE_RECEMMENT_MODIFIEE) — jamais les critères, seuils ni scores qui permettraient de contourner la détection. politique: type: object required: [identifiant, version] properties: identifiant: type: string version: type: string description: La version de politique appliquée — ce qui rend le résultat rejouable. expire_le: type: string format: date-time servi_le: type: string format: date-time EvaluationEnCours: type: object required: [evaluation_id, etat] properties: evaluation_id: type: string etat: type: string enum: [EN_COURS] Erreur: type: object required: [code, message] properties: code: type: string message: type: string description: >- Nomme le champ ou la condition en cause. Ne révèle jamais un critère de détection, une alerte, un dossier ni l'existence d'une instruction.