Aller au contenu

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.

openapi: 3.1.0
info:
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-financiers
paths:
/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.