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.
La spécification
Section intitulée « La spécification »openapi: 3.1.0info: 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: fiscalitepaths: /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.