Aller au contenu

administration-du-referentiel

Interface synchrone (OpenAPI) — version 0.2.0, proposition. Producteur : instruments. Consommateurs déclarés : alimentation-documentaire.

Les portes d’entrée du référentiel : le référencement des instruments, l’établissement des caractéristiques datées et des restrictions de négociabilité (rôle d’administration — aucun fait publié), la publication des valeurs et le pilotage des événements d’instrument (rôle de publication — la voix de la société de gestion, par délégation ; chaque geste publie son fait), et l’alimentation documentaire (famille d’administration) : verser un document, l’analyser — l’analyseur propose, le référentiel dispose —, examiner chaque geste proposé (appliquer, amender, écarter — l’application passe par les portes ordinaires, la provenance documentaire posée). Chaque opération déclare sa famille d’accès en portée de sécurité (la forme instruments:famille). Toute donnée entre en identifiants publiés, entiers à unité suffixée (jamais de flottant) et dates de l’appelant ; tout rejet du domaine est motivé.

openapi: 3.1.0
info:
title: instruments — administration du référentiel
version: 0.2.0
summary: Référencer, établir, alimenter par les documents, publier, piloter — chaque famille d'accès sa porte.
description: >-
Les portes d'entrée du référentiel : le référencement des instruments,
l'établissement des caractéristiques datées et des restrictions de négociabilité
(rôle d'administration — aucun fait publié), la publication des valeurs et le
pilotage des événements d'instrument (rôle de publication — la voix de la société de
gestion, par délégation ; chaque geste publie son fait), et
l'alimentation documentaire (famille d'administration) : verser un document,
l'analyser — l'analyseur propose, le référentiel dispose —, examiner chaque geste
proposé (appliquer, amender, écarter — l'application passe par les portes
ordinaires, la provenance documentaire posée). Chaque opération déclare sa
famille d'accès en portée de sécurité (la forme instruments:famille). Toute donnée
entre en identifiants publiés, entiers à unité suffixée (jamais de flottant) et
dates de l'appelant ; tout rejet du domaine est motivé.
x-producteurs:
- instruments
x-consommateurs:
- composant: alimentation-documentaire
paths:
/tenants/{tenant}/instruments:
post:
operationId: referencerUnInstrument
summary: Référencer un instrument — la hiérarchie est fermée, l'identifiant stable à vie.
description: >-
La nature commande la forme du corps : un OPCVM porte sa forme (l'émettrice pour
le seul FCPE d'actionnariat), un CCB son grain (l'entreprise débitrice et
l'accord de participation), une devise rien d'autre que son identité. Un
identifiant déjà référencé chez ce tenant est refusé. Aucun fait n'est publié.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DemandeDeReferencement'
responses:
'201':
description: L'instrument est référencé, commercialisable.
'400':
description: La demande est irrecevable (champ manquant, date mal formée, flottant) — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: Le référentiel refuse (identifiant déjà référencé, invariant de nature violé) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/caracteristiques:
post:
operationId: etablirUneCaracteristique
summary: Établir une caractéristique datée — typée, datée, avec sa provenance.
description: >-
Le type commande les champs du corps ; une caractéristique inapplicable à la
nature est un rejet, pas une donnée ignorée. Les périodes sont [du, au[ sans
chevauchement ; la provenance est obligatoire (la référence documentaire exigée
quand la source est un document). Aucun fait n'est publié.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CaracteristiqueAEtablir'
responses:
'201':
description: La caractéristique est établie.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: >-
Le référentiel refuse (instrument inconnu de ce tenant — la muraille ne
révèle rien —, type inapplicable à la nature, chevauchement de périodes) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/caracteristiques/reetablissements:
post:
operationId: reetablirUneCaracteristique
summary: Ré-établir une caractéristique — le motif obligatoire, l'ancienne version conservée.
description: >-
La correction d'une caractéristique établie : la nouvelle version remplace
l'applicable, l'ancienne reste tracée à jamais. Le motif est obligatoire — une
correction se lit.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ReetablissementDeCaracteristique'
responses:
'201':
description: La caractéristique est ré-établie — l'applicable est la nouvelle version.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: Le référentiel refuse (rien à ré-établir, motif absent, inapplicable) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/restrictions:
post:
operationId: poserUneRestriction
summary: Poser une restriction de négociabilité — hors cycle de vie, cumulable.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RestrictionAPoser'
responses:
'201':
description: La restriction est posée, en vigueur sur sa période.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: Le référentiel refuse (instrument inconnu, type inapplicable à la nature) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/restrictions/levees:
post:
operationId: leverUneRestriction
summary: Lever une restriction — la levée borne la période, jamais d'effacement.
description: >-
La levée borne la première restriction ouverte du type à la date donnée — une
restriction bornée ne se lève pas, elle expire. L'histoire reste servie.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/LeveeDeRestriction'
responses:
'200':
description: La restriction est levée — sa période bornée à la date de levée.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: Le référentiel refuse (aucune restriction ouverte de ce type) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/valeurs:
post:
operationId: publierUneValeur
summary: Publier une valeur — première publication, rang 1, jamais de motif.
description: >-
La publication d'une valeur pour une date de calcul. Le fait « valeur publiée »
est retenu dans la même transaction (contrat evenement-valeur-liquidative).
Une devise ne publie pas — sa valeur est l'unité.
security:
- authentification: [instruments:publication]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PublicationDeValeur'
responses:
'201':
description: La valeur est publiée au rang 1, son fait retenu.
'400':
description: La demande est irrecevable (flottant, date mal formée) — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès publication.
'422':
description: Le référentiel refuse (instrument inconnu, devise, date déjà publiée, terminus) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/valeurs/corrections:
post:
operationId: corrigerUneValeur
summary: Corriger une valeur publiée — le motif obligatoire, l'ancienne conservée.
description: >-
La republication tracée : le rang s'incrémente, l'applicable est le dernier
rang, l'ancienne valeur reste servie dans la série. Le fait « valeur corrigée »
est retenu dans la même transaction.
security:
- authentification: [instruments:publication]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CorrectionDeValeur'
responses:
'201':
description: La correction est publiée au rang suivant, son fait retenu.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès publication.
'422':
description: Le référentiel refuse (rien à corriger à cette date, motif absent) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/evenements-instrument:
post:
operationId: annoncerUnEvenement
summary: Annoncer un événement d'instrument — l'entrée du cycle.
description: >-
L'annonce porte la décision typée de la société de gestion (fusion, scission,
réajustement, distribution), son calendrier, l'établissement documentaire
éventuel, et la référence corrective si l'événement en corrige un autre. Les
instruments de la décision sont connus du tenant — la muraille vaut. Le fait
« événement annoncé » est retenu dans la même transaction (contrat
evenement-d-instrument).
security:
- authentification: [instruments:publication]
parameters:
- $ref: '#/components/parameters/tenant'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/AnnonceDEvenement'
responses:
'201':
description: L'événement est annoncé, son fait retenu.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès publication.
'422':
description: >-
Le référentiel refuse (identifiant déjà porté, instrument de la décision
inconnu ou à un terminus, invariant de la décision violé, correctif visant
un événement non prononcé) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/evenements-instrument/{evenement}/prononce:
post:
operationId: prononcerUnEvenement
summary: Prononcer un événement annoncé — ses caractéristiques sont figées.
description: >-
Après le prononcé, plus aucune modification : une erreur découverte se corrige
par un nouvel événement correctif. Le fait « événement prononcé » (décision
figée comprise) est retenu dans la même transaction.
security:
- authentification: [instruments:publication]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/evenement'
responses:
'200':
description: L'événement est prononcé, sa décision figée, son fait retenu.
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès publication.
'422':
description: Le référentiel refuse (événement inconnu de ce tenant, ou non annoncé) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/evenements-instrument/{evenement}/annulation:
post:
operationId: annulerUnEvenement
summary: Annuler un événement — avant le prononcé seulement.
security:
- authentification: [instruments:publication]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/evenement'
responses:
'200':
description: L'événement est annulé, son fait retenu.
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès publication.
'422':
description: >-
Le référentiel refuse (événement inconnu, ou déjà prononcé — l'annulation
n'existe qu'avant le prononcé, après c'est un événement correctif) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/evenements-instrument/{evenement}/denouement:
post:
operationId: denouerUnEvenement
summary: Dénouer un événement prononcé — le dénouement d'une fusion emporte la fin de vie des absorbés.
description: >-
Le dénouement constate l'exécution à sa date. Pour une fusion, les absorbés
passent au terminus (absorbé) : ils ne publient plus, ne portent plus
d'événement — mais restent consultables à jamais. Le fait « événement dénoué »
est retenu dans la même transaction.
security:
- authentification: [instruments:publication]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/evenement'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Denouement'
responses:
'200':
description: L'événement est dénoué, son fait retenu — les terminus prononcés.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès publication.
'422':
description: Le référentiel refuse (événement inconnu, ou non prononcé) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/intervenants:
post:
operationId: referencerUnIntervenant
summary: Référencer un intervenant — la société de gestion, le dépositaire.
description: >-
L'intervenant émet les documents de référence (le versement l'exige). Un
identifiant déjà référencé chez ce tenant est refusé.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/DemandeDeReferencementDIntervenant'
responses:
'201':
description: L'intervenant est référencé.
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: Le référentiel refuse (identifiant déjà référencé) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/documents:
post:
operationId: verserUnDocument
summary: Verser un document de référence — immuable, empreint, archivé.
description: >-
Le temps 1 de l'alimentation documentaire : l'identité (le type, l'émetteur —
un intervenant référencé —, la version, les dates), le rattachement aux
instruments concernés, et le contenu — archivé derrière l'adaptateur de
stockage, le référentiel n'en gardant que l'empreinte (calculée au versement).
Un contenu déjà versé chez ce tenant (même empreinte) est reconnu, pas
dupliqué : la réponse renvoie le document existant. Une nouvelle édition est
un nouveau document — l'ancien reste, à jamais.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/VersementDeDocument'
responses:
'201':
description: Le document est versé — son empreinte fait foi.
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentVerse'
'200':
description: Le contenu était déjà versé — le document existant est reconnu, rien n'est dupliqué.
content:
application/json:
schema:
$ref: '#/components/schemas/DocumentVerse'
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: >-
Le référentiel refuse (référence déjà prise, émetteur ou instrument
rattaché inconnu de ce tenant — la muraille ne révèle rien) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/documents/{document}/analyses:
post:
operationId: analyserUnDocument
summary: Analyser un document versé — l'analyseur propose, le référentiel dispose.
description: >-
Le temps 2 : l'analyseur (un adaptateur outillé, versionné — jamais une
autorité) lit le contenu archivé et produit une proposition de gestes
d'administration, chacun localisé dans le document et rapproché de l'état
courant (nouveau, écart, ou conforme — le conforme est un constat, il ne
s'examine pas). Rien n'est appliqué. Ré-analyser produit une analyse de
plus — jamais l'écrasement d'une précédente.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/document'
requestBody:
required: true
content:
application/json:
schema:
type: object
required: [analyse, analyse_le]
properties:
analyse:
type: string
minLength: 1
description: L'identifiant de l'analyse — unique chez ce tenant.
analyse_le:
type: string
format: date
description: La date de l'analyse — les dates viennent de l'appelant.
responses:
'201':
description: L'analyse est produite et enregistrée — ses gestes attendent l'examen.
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyseDeDocument'
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: Le référentiel refuse (document inconnu de ce tenant, identifiant d'analyse déjà pris) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/analyses/{analyse}:
get:
operationId: consulterUneAnalyse
summary: Consulter une analyse — ses gestes, leurs rapprochements, leurs sorts.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/analyse'
responses:
'200':
description: L'analyse, gestes et sorts compris.
content:
application/json:
schema:
$ref: '#/components/schemas/AnalyseDeDocument'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'404':
description: L'analyse est inconnue de ce tenant.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/analyses/{analyse}/gestes/{numero}/sort:
post:
operationId: examinerUnGeste
summary: Examiner un geste proposé — appliquer, amender, ou écarter.
description: >-
Le temps 3, geste par geste : appliquer (le geste part par la porte
d'administration ordinaire, la provenance documentaire posée), amender puis
appliquer (le valideur corrige la donnée — la comparaison proposé/appliqué
se lit), ou écarter (motivé). Un rejet du cœur à l'application vaut écart,
avec le motif du cœur. Un geste n'a qu'un sort — jamais de ré-examen ; un
constat conforme ne s'examine pas. L'application d'une annonce d'événement
publie son fait ordinaire, dans la même transaction.
security:
- authentification: [instruments:administration]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/analyse'
- name: numero
in: path
required: true
description: Le numéro du geste dans l'analyse.
schema:
type: integer
minimum: 1
responses:
'200':
description: Le sort est rendu — appliqué (l'état a changé), amendé, ou écarté.
content:
application/json:
schema:
$ref: '#/components/schemas/GesteExamine'
'400':
description: La demande est irrecevable — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès administration.
'422':
description: >-
Le référentiel refuse (analyse ou geste inconnu, sort déjà rendu,
constat conforme, amendement d'une autre sorte que le geste) — motivé.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/SortAExaminer'
components:
parameters:
tenant:
name: tenant
in: path
required: true
description: Le teneur de compte — la muraille, aucun geste ne la franchit.
schema:
type: string
minLength: 1
instrument:
name: instrument
in: path
required: true
description: L'identifiant publié de l'instrument chez ce tenant.
schema:
type: string
minLength: 1
document:
name: document
in: path
required: true
description: La référence du document chez ce tenant.
schema:
type: string
minLength: 1
analyse:
name: analyse
in: path
required: true
description: L'identifiant de l'analyse chez ce tenant.
schema:
type: string
minLength: 1
evenement:
name: evenement
in: path
required: true
description: L'identifiant publié de l'événement chez ce tenant.
schema:
type: string
minLength: 1
securitySchemes:
authentification:
type: http
scheme: bearer
description: >-
L'exigence : tout appel est authentifié (401 sans identité) et autorisé par
famille d'accès (403 hors famille) — chaque opération déclare sa famille en
portée, sous la forme instruments:famille ; le jeton porte le
tenant unique et les familles accordées. Le mécanisme est OIDC ;
sa déclinaison relève de l'assemblage.
schemas:
DemandeDeReferencement:
type: object
required: [instrument, libelle, nature]
properties:
instrument:
type: string
minLength: 1
description: L'identifiant publié — unique chez ce tenant, stable à vie.
libelle:
type: string
minLength: 1
nature:
type: string
enum: [opcvm, ccb, devise]
forme:
type: string
enum: [fcpe_diversifie, fcpe_actionnariat, sicav]
description: Obligatoire pour un OPCVM.
isin:
type: string
description: Le code ISIN, s'il existe — OPCVM seulement.
entreprise_emettrice:
type: string
description: L'identifiant publié de l'émettrice — obligatoire pour le seul FCPE d'actionnariat.
entreprise_debitrice:
type: string
description: L'identifiant publié de la débitrice — obligatoire pour un CCB.
accord_participation:
type: string
description: L'identifiant publié de l'accord — obligatoire pour un CCB (le grain entreprise × accord).
CaracteristiqueAEtablir:
type: object
required: [type, du, provenance]
properties:
type:
type: string
enum: [periodicite_de_publication, heure_limite_de_collecte, classification,
frais_du_fonds, contrainte_solidaire, taux_d_interet]
description: Le type commande les champs — la typologie est fermée.
du:
type: string
format: date
au:
type: string
format: date
description: La borne de fin, exclue — absente si la période est ouverte.
provenance:
$ref: '#/components/schemas/Provenance'
periodicite:
type: string
enum: [quotidienne, hebdomadaire, mensuelle]
heure_limite:
type: string
description: Le cut-off (HH:MM).
classification:
type: string
droits_entree_pb:
type: integer
droits_sortie_pb:
type: integer
part_minimale_pb:
type: integer
part_maximale_pb:
type: integer
taux_pb:
type: integer
convention:
type: string
ReetablissementDeCaracteristique:
description: La caractéristique corrigée, complète — et le motif de la correction.
allOf:
- $ref: '#/components/schemas/CaracteristiqueAEtablir'
- type: object
required: [motif]
properties:
motif:
type: string
minLength: 1
description: Le motif de la correction — une correction se lit.
RestrictionAPoser:
type: object
required: [type, du, provenance]
properties:
type:
type: string
enum: [ferme_aux_souscriptions, ferme_aux_rachats, suspendu, ferme_aux_nouveaux_versements]
du:
type: string
format: date
au:
type: string
format: date
description: La borne de fin, exclue — absente pour une restriction ouverte (levée plus tard).
provenance:
$ref: '#/components/schemas/Provenance'
LeveeDeRestriction:
type: object
required: [type, levee_le]
properties:
type:
type: string
enum: [ferme_aux_souscriptions, ferme_aux_rachats, suspendu, ferme_aux_nouveaux_versements]
levee_le:
type: string
format: date
description: La date de levée — borne exclue de la période de la restriction.
PublicationDeValeur:
type: object
required: [date_calcul, valeur_part_ue6]
properties:
date_calcul:
type: string
format: date
valeur_part_ue6:
type: integer
description: La valeur d'une part, en micro-euros — jamais de flottant.
CorrectionDeValeur:
type: object
required: [date_calcul, valeur_part_ue6, motif]
properties:
date_calcul:
type: string
format: date
valeur_part_ue6:
type: integer
motif:
type: string
minLength: 1
description: Le motif de la correction — obligatoire dès le rang 2.
AnnonceDEvenement:
type: object
required: [evenement, type, annonce_le, effet_le, decision]
properties:
evenement:
type: string
minLength: 1
description: L'identifiant publié de l'événement — unique chez ce tenant.
type:
type: string
enum: [fusion, scission, reajustement, distribution]
annonce_le:
type: string
format: date
effet_le:
type: string
format: date
description: La date d'effet — jamais avant l'annonce.
corrige:
type: string
description: L'événement corrigé (prononcé ou dénoué), pour un correctif.
etabli_par_document:
type: string
description: La référence du document qui établit l'événement, le cas échéant.
decision:
description: La décision typée — sa forme suit le type de l'événement.
oneOf:
- $ref: '#/components/schemas/DecisionDeFusion'
- $ref: '#/components/schemas/DecisionDeScission'
- $ref: '#/components/schemas/DecisionDeReajustement'
- $ref: '#/components/schemas/DecisionDeDistribution'
DecisionDeFusion:
type: object
required: [absorbant, absorbes]
properties:
absorbant:
type: string
absorbes:
type: array
minItems: 1
items:
type: object
required: [instrument, parite_p6]
properties:
instrument:
type: string
parite_p6:
type: integer
minimum: 1
description: La parité d'échange, en millionièmes — strictement positive.
DecisionDeScission:
type: object
required: [source, cibles]
properties:
source:
type: string
cibles:
type: array
minItems: 1
items:
type: object
required: [instrument, cle_repartition_p6]
properties:
instrument:
type: string
cle_repartition_p6:
type: integer
minimum: 1
description: La clé de répartition, en millionièmes — les clés somment à l'unité.
DecisionDeReajustement:
type: object
required: [fonds, coefficient_p6]
properties:
fonds:
type: string
coefficient_p6:
type: integer
minimum: 1
description: Le coefficient, en millionièmes — division ou regroupement.
DecisionDeDistribution:
type: object
required: [fonds, coupon_part_ue6]
properties:
fonds:
type: string
coupon_part_ue6:
type: integer
minimum: 1
description: Le coupon par part, en micro-euros.
Denouement:
type: object
required: [denoue_le]
properties:
denoue_le:
type: string
format: date
description: La date du dénouement constaté.
Provenance:
type: object
required: [source]
properties:
source:
type: string
enum: [document, saisie, flux_de_place]
document:
type: string
description: La référence du document — obligatoire quand la source est un document.
DemandeDeReferencementDIntervenant:
type: object
required: [intervenant, libelle]
properties:
intervenant:
type: string
minLength: 1
description: L'identifiant publié de l'intervenant — unique chez ce tenant.
libelle:
type: string
minLength: 1
VersementDeDocument:
type: object
required: [document, type, no_version, date_edition, date_application, emetteur, contenu_texte]
properties:
document:
type: string
minLength: 1
description: La référence du document — unique chez ce tenant, une édition = un document.
type:
type: string
enum: [prospectus, document_d_informations_cles, reglement_du_fonds, lettre_aux_porteurs]
no_version:
type: integer
minimum: 1
date_edition:
type: string
format: date
date_application:
type: string
format: date
emetteur:
type: string
minLength: 1
description: L'identifiant publié de l'intervenant émetteur — référencé chez ce tenant.
instruments:
type: array
description: Les instruments rattachés — déclarés au versement, complétables à l'examen.
items:
type: string
contenu_texte:
type: string
minLength: 1
description: >-
Le contenu textuel du document — archivé derrière l'adaptateur de stockage,
jamais dans le référentiel ; l'empreinte est calculée au versement.
DocumentVerse:
type: object
required: [tenant, document, empreinte]
properties:
tenant:
type: string
document:
type: string
description: La référence servie — celle du versement, ou celle du document reconnu par l'empreinte.
empreinte:
type: string
description: L'empreinte du contenu (SHA-256, hexadécimal).
AnalyseDeDocument:
type: object
required: [tenant, analyse, document, outillage, version_outillage, analyse_le, examinee, gestes]
properties:
tenant:
type: string
analyse:
type: string
document:
type: string
description: La référence du document analysé.
outillage:
type: string
description: L'identité de l'analyseur — un adaptateur, jamais une autorité.
version_outillage:
type: string
analyse_le:
type: string
format: date
examinee:
type: boolean
description: Vrai quand chaque geste (hors constats conformes) a son sort.
gestes:
type: array
items:
$ref: '#/components/schemas/GestePropose'
GestePropose:
type: object
required: [numero, geste, rapprochement, confiance_pb, emplacement, extrait]
properties:
numero:
type: integer
minimum: 1
geste:
type: string
enum: [referencer_instrument, etablir_caracteristique, reetablir_caracteristique,
poser_restriction, lever_restriction, annoncer_evenement]
description: Le geste d'administration visé — jamais un geste inventé ; jamais une valeur liquidative.
donnees:
type: object
description: Les données extraites, aux noms filaires du geste visé.
rapprochement:
type: string
enum: [nouveau, ecart, conforme]
description: Le conforme est un constat — il ne s'examine pas.
confiance_pb:
type: integer
minimum: 0
maximum: 10000
description: L'indice de confiance de l'extraction, en points de base.
emplacement:
type: string
description: Où, dans le document.
extrait:
type: string
description: L'extrait cité — ce que le valideur lit en face du geste.
sort:
$ref: '#/components/schemas/SortRendu'
SortAExaminer:
type: object
required: [sort]
properties:
sort:
type: string
enum: [applique, amende, ecarte]
motif:
type: string
description: Obligatoire pour écarter.
donnees:
type: object
description: Les données corrigées — obligatoires pour amender, même sorte que le geste proposé.
SortRendu:
type: object
required: [sort]
properties:
sort:
type: string
enum: [applique, amende, ecarte]
motif:
type: string
donnees:
type: object
description: Les données réellement appliquées, si amendées — la comparaison proposé/appliqué se lit.
GesteExamine:
type: object
required: [tenant, analyse, numero, sort]
properties:
tenant:
type: string
analyse:
type: string
numero:
type: integer
sort:
$ref: '#/components/schemas/SortRendu'
Erreur:
type: object
required: [motif]
properties:
motif:
type: string
description: Le motif, qui nomme le champ, l'identifiant ou l'invariant en cause.