Aller au contenu

evenement-valeur-liquidative

Événement (AsyncAPI) — version 0.1.0, convergé 0.1.0 — validé par François le 2026-07-18. Producteur : instruments. Consommateurs déclarés : carnet-ordres, tenue-de-compte.

Les faits publiés par le référentiel des instruments quand une valeur existe : la première publication d’une date de calcul, et la correction — une republication tracée, à motif obligatoire, qui ne remplace jamais silencieusement (l’ancienne valeur reste, l’applicable est le rang le plus élevé). L’émission est par tenant et par fait ; unicité tenant × instrument × date × rang. La devise ne publie jamais.

asyncapi: 3.0.0
info:
title: instruments — l'événement de valeur liquidative
version: 0.1.0
description: >-
Les faits publiés par le référentiel des instruments quand une valeur existe : la
première publication d'une date de calcul, et la correction — une republication
tracée, à motif obligatoire, qui ne remplace jamais silencieusement (l'ancienne
valeur reste, l'applicable est le rang le plus élevé). L'émission est par tenant et
par fait ; unicité
tenant × instrument × date × rang. La devise ne publie jamais.
x-producteurs:
- instruments
x-consommateurs:
- composant: carnet-ordres
- composant: tenue-de-compte
statut: déclaré — chantier de lecture non ouvert (valorisation = position × valeur à date)
defaultContentType: application/json
channels:
valeurLiquidative:
address: instruments.valeur-liquidative
description: >-
Canal logique des valeurs du référentiel des instruments. L'ordre n'est garanti
que par producteur (sequence strictement croissant), jamais entre producteurs.
messages:
valeurPubliee:
$ref: '#/components/messages/valeurPubliee'
valeurCorrigee:
$ref: '#/components/messages/valeurCorrigee'
operations:
publierLesValeurs:
action: send
channel:
$ref: '#/channels/valeurLiquidative'
summary: Le référentiel des instruments publie un fait par valeur — publication ou correction.
description: >-
Chaque publication et chaque correction est un fait au passé, retenu en boîte
d'envoi dans la transaction qui le produit ; livraison au moins une fois,
consommateurs idempotents.
messages:
- $ref: '#/channels/valeurLiquidative/messages/valeurPubliee'
- $ref: '#/channels/valeurLiquidative/messages/valeurCorrigee'
components:
messages:
valeurPubliee:
name: valeur-publiee
title: Valeur publiée
summary: La première valeur d'une date de calcul (rang 1).
contentType: application/json
payload:
$ref: '#/components/schemas/evenementValeurPubliee'
valeurCorrigee:
name: valeur-corrigee
title: Valeur corrigée
summary: >-
Une republication (rang ≥ 2), motivée — des opérations ont pu s'exécuter sur la
valeur précédente : la régularisation aval est l'affaire du domaine Opérations.
contentType: application/json
payload:
$ref: '#/components/schemas/evenementValeurCorrigee'
schemas:
socleDEvenement:
type: object
# Les consommateurs sont tolérants : un champ inconnu s'ignore —
# le schéma n'interdit donc pas les propriétés additionnelles.
required:
- type_evenement
- version_contrat
- sequence
- identifiant
- tenant
- instrument
- nature
- date_calcul
- rang
- valeur_part_ue6
- sorte
- cree_le
- cree_par
properties:
type_evenement:
type: string
description: Le type du fait — valeur-publiee ou valeur-corrigee.
version_contrat:
type: string
description: La version du présent contrat (SemVer).
sequence:
type: integer
minimum: 1
description: >-
Le numéro d'ordre par producteur, strictement croissant — fourni par la
boîte d'envoi.
identifiant:
type: string
minLength: 1
description: L'identifiant unique du fait.
tenant:
type: string
minLength: 1
description: Le teneur de compte — l'émission est par tenant (cloisonnement strict).
instrument:
type: string
minLength: 1
description: L'identifiant publié de l'instrument.
nature:
type: string
enum: [opcvm, ccb]
description: La nature — jamais devise, qui ne publie pas.
date_calcul:
type: string
format: date
description: La date de calcul de la valeur.
rang:
type: integer
minimum: 1
description: Le rang de publication pour la date — l'applicable est le plus élevé.
valeur_part_ue6:
type: integer
minimum: 1
description: La valeur d'une part, en micro-euros (entier — jamais de flottant).
sorte:
type: string
enum: [marche, administree]
description: >-
D'où vient la valeur — reçue du marché (OPCVM) ou administrée (CCB) ;
l'appariement à la nature est structurel.
cree_le:
type: string
format: date-time
description: La piste d'audit — quand.
cree_par:
type: string
minLength: 1
description: La piste d'audit — qui.
evenementValeurPubliee:
allOf:
- $ref: '#/components/schemas/socleDEvenement'
- type: object
properties:
type_evenement:
const: valeur-publiee
rang:
const: 1
evenementValeurCorrigee:
allOf:
- $ref: '#/components/schemas/socleDEvenement'
- type: object
required: [motif]
properties:
type_evenement:
const: valeur-corrigee
rang:
type: integer
minimum: 2
motif:
type: string
minLength: 1
description: >-
Le motif de la correction — obligatoire : corriger n'est jamais un
écrasement discret.