Aller au contenu

consultation-du-referentiel

Interface synchrone (OpenAPI) — version 0.2.0, convergé 0.1.0 — validé par François le 2026-07-18 ; version 0.2.0 le même jour. Producteur : instruments. Consommateurs déclarés : carnet-ordres, operations, tenue-de-compte, fiscalite.

Le référentiel sert ce qu’il publie — l’identité (la nature, l’état du cycle), les caractéristiques applicables à une date (avec leur provenance), les restrictions de négociabilité en vigueur, la valeur applicable à toute date passée comprise (l’exigence « date de VL client ») — sans jamais exposer sa structure interne. Un instrument à un terminus (absorbé, liquidé) reste servi : l’identifiant publié est stable à vie. Toute réponse est en identifiants publiés et entiers à unité suffixée.

openapi: 3.1.0
info:
title: instruments — consultation du référentiel
version: 0.2.0
summary: L'identité, les caractéristiques à date et la valeur applicable à toute date.
description: >-
Le référentiel sert ce qu'il publie — l'identité (la nature, l'état du cycle), les
caractéristiques applicables à une date (avec leur provenance), les restrictions de
négociabilité en vigueur, la valeur applicable à toute date passée comprise
(l'exigence « date de VL client ») — sans jamais exposer sa structure interne. Un
instrument à un terminus (absorbé, liquidé) reste servi : l'identifiant publié est
stable à vie. Toute réponse est en identifiants publiés et entiers à unité suffixée.
x-producteurs:
- instruments
x-consommateurs:
- composant: carnet-ordres
- composant: operations
- composant: tenue-de-compte
statut: déclaré — identité et nature
- composant: fiscalite
paths:
/tenants/{tenant}/instruments/{instrument}:
get:
operationId: consulterLaFiche
summary: La fiche d'un instrument à une date — identité, caractéristiques, restrictions.
security:
- authentification: [instruments:consultation]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
- name: date
in: query
required: true
description: >-
La date de consultation (AAAA-MM-JJ) — toute consommation de donnée datée
est datée ; la date vient toujours de l'appelant.
schema:
type: string
format: date
responses:
'200':
description: La fiche à la date demandée.
content:
application/json:
schema:
$ref: '#/components/schemas/FicheDInstrument'
'400':
description: La demande est irrecevable (date mal formée…) — le motif nomme le champ.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
'401':
description: Aucune identité présentée (l'exigence est du contrat, le mécanisme de l'assemblage).
'403':
description: L'identité présentée n'a pas la famille d'accès consultation.
'404':
description: >-
L'instrument est inconnu de ce tenant — la muraille ne révèle jamais
l'existence d'un instrument d'un autre tenant.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/valeur:
get:
operationId: consulterLaValeurApplicable
summary: La valeur applicable à une date — toute date, passée comprise.
description: >-
Le dernier rang publié pour la date de calcul demandée, avec son motif s'il
corrige ; l'unité pour une devise ; l'absence motivée sinon — jamais
d'interpolation.
security:
- authentification: [instruments:consultation]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
- name: date
in: query
required: true
description: La date de calcul demandée (la « date de VL client » d'une opération, par exemple).
schema:
type: string
format: date
responses:
'200':
description: La valeur applicable à la date.
content:
application/json:
schema:
$ref: '#/components/schemas/ValeurApplicable'
'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 consultation.
'404':
description: >-
L'instrument est inconnu de ce tenant, ou aucune valeur n'est applicable à
cette date (l'absence est motivée — la périodicité fait foi).
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/instruments/{instrument}/valeurs:
get:
operationId: consulterLaSerie
summary: La série datée des valeurs, rangs compris — l'historique des corrections se lit.
security:
- authentification: [instruments:consultation]
parameters:
- $ref: '#/components/parameters/tenant'
- $ref: '#/components/parameters/instrument'
- name: du
in: query
required: true
schema:
type: string
format: date
- name: au
in: query
required: true
description: La borne de fin, exclue.
schema:
type: string
format: date
responses:
'200':
description: Les publications de la période, dans l'ordre des dates puis des rangs.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Publication'
'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 consultation.
'404':
description: L'instrument est inconnu de ce tenant.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
/tenants/{tenant}/evenements-instrument/{evenement}:
get:
operationId: consulterUnEvenement
summary: Un événement d'instrument — le chapeau, sa décision typée, son état de cycle.
security:
- authentification: [instruments:consultation]
parameters:
- $ref: '#/components/parameters/tenant'
- name: evenement
in: path
required: true
schema:
type: string
minLength: 1
responses:
'200':
description: L'événement.
content:
application/json:
schema:
$ref: '#/components/schemas/EvenementDInstrument'
'401':
description: Aucune identité présentée.
'403':
description: L'identité présentée n'a pas la famille d'accès consultation.
'404':
description: L'événement est inconnu de ce tenant.
content:
application/json:
schema:
$ref: '#/components/schemas/Erreur'
components:
parameters:
tenant:
name: tenant
in: path
required: true
description: Le teneur de compte — la muraille, aucune consultation 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 — stable à vie.
schema:
type: string
minLength: 1
securitySchemes:
authentification:
type: http
scheme: bearer
description: >-
L'exigence : tout appel est authentifié (401) 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 mécanisme est OIDC ; sa
déclinaison relève de l'assemblage.
schemas:
FicheDInstrument:
type: object
required: [tenant, instrument, libelle, nature, etat, date, caracteristiques, restrictions]
properties:
tenant:
type: string
instrument:
type: string
description: L'identifiant publié.
libelle:
type: string
nature:
type: string
enum: [opcvm, ccb, devise]
forme:
type: string
enum: [fcpe_diversifie, fcpe_actionnariat, sicav]
description: La forme — pour un OPCVM seulement.
isin:
type: string
description: Le code ISIN, s'il existe.
entreprise_emettrice:
type: string
description: L'identifiant publié de l'émettrice — FCPE d'actionnariat seulement.
entreprise_debitrice:
type: string
description: L'identifiant publié de la débitrice — CCB seulement.
accord_participation:
type: string
description: L'identifiant publié de l'accord — CCB seulement.
etat:
type: string
enum: [commercialisable, absorbe, liquide]
description: L'état du cycle — un terminus reste servi à jamais.
date:
type: string
format: date
description: La date de consultation servie.
caracteristiques:
type: array
items:
$ref: '#/components/schemas/CaracteristiqueApplicable'
restrictions:
type: array
description: Les restrictions de négociabilité en vigueur à la date — cumulables.
items:
$ref: '#/components/schemas/RestrictionEnVigueur'
CaracteristiqueApplicable:
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]
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) — consommé par le carnet d'ordres.
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
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.
RestrictionEnVigueur:
type: object
required: [type, du]
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 levée, exclue — absente si la restriction est ouverte.
provenance:
$ref: '#/components/schemas/Provenance'
ValeurApplicable:
type: object
required: [tenant, instrument, date_calcul, rang, valeur_part_ue6, sorte]
properties:
tenant:
type: string
instrument:
type: string
date_calcul:
type: string
format: date
rang:
type: integer
minimum: 1
description: Le rang servi — supérieur à 1, la valeur corrige.
valeur_part_ue6:
type: integer
description: La valeur d'une part, en micro-euros — l'unité pour une devise.
sorte:
type: string
enum: [marche, administree, unite]
motif:
type: string
description: Le motif de la correction — présent dès le rang 2.
Publication:
type: object
required: [date_calcul, rang, valeur_part_ue6, sorte]
properties:
date_calcul:
type: string
format: date
rang:
type: integer
minimum: 1
valeur_part_ue6:
type: integer
sorte:
type: string
enum: [marche, administree]
motif:
type: string
EvenementDInstrument:
type: object
required: [tenant, evenement, type, etat, annonce_le, effet_le]
properties:
tenant:
type: string
evenement:
type: string
type:
type: string
enum: [fusion, scission, reajustement, distribution]
etat:
type: string
enum: [annonce, prononce, denoue, annule]
annonce_le:
type: string
format: date
effet_le:
type: string
format: date
denoue_le:
type: string
format: date
corrige:
type: string
description: L'événement corrigé, pour un correctif.
etabli_par_document:
type: string
decision:
description: La décision typée — présente et figée dès le prononcé.
type: object
Erreur:
type: object
required: [motif]
properties:
motif:
type: string
description: Le motif, qui nomme le champ ou l'identifiant en cause.