Aller au contenu

evenement-valeur-liquidative

Événement (AsyncAPI) — version 0.4.0. Producteur : instruments. Consommateurs déclarés : carnet-ordres, tenue-de-compte, operations, fiscalite.

Le fait qu’une valeur d’instrument existe : publiée (rang 1) ou corrigée (rang supérieur, motif obligatoire — l’applicable est le rang le plus élevé, l’ancienne valeur reste). Enveloppe CloudEvents 1.0.2 en mode structuré JSON ; une instance de bus et du composant est isolée par teneur de compte — aucun identifiant de tenant n’est transporté. Unicité du fait : (instrument, date_calcul, rang) — une catégorie de parts différenciée étant un instrument, l’unicité est simple.

asyncapi: 3.0.0
info:
title: instruments — l'événement de valeur liquidative
version: 0.4.0
description: >-
Le fait qu'une valeur d'instrument existe : publiée (rang 1) ou corrigée (rang
supérieur, motif obligatoire — l'applicable est le rang le plus élevé, l'ancienne
valeur reste). Enveloppe CloudEvents 1.0.2 en mode structuré JSON ; une instance de
bus et du composant est isolée par teneur de compte — aucun identifiant de tenant
n'est transporté. Unicité du fait : (instrument, date_calcul, rang) — une catégorie
de parts différenciée étant un instrument, l'unicité est simple.
x-producteurs:
- instruments
x-consommateurs:
- composant: carnet-ordres
- composant: tenue-de-compte
- composant: operations
- composant: fiscalite
x-ruptures:
- version: 0.4.0
rupture: "propriété retirée : data.valeur.categorie — l'unicité du fait devient (instrument, date_calcul, rang)"
motif: >-
Fusion arbitrée le 2026-08-13 (journal des décisions) : une catégorie à valeur
liquidative propre EST un instrument — chaque catégorie de parts publie sa série
sous son propre identifiant.
- version: 0.3.0
rupture: "enveloppe remplacée : le socle propriétaire (identifiant, tenant, type, version, sequence, cree_le, cree_par) devient CloudEvents 1.0.2 en mode structuré JSON"
motif: >-
La séquence par entité reste, en extension.
- version: 0.3.0
rupture: "propriété retirée : tenant"
motif: >-
Isolation forte par tenant — un processus et son bus ne servent qu'un teneur
de compte : aucun identifiant de tenant n'est transporté ; l'unicité du fait
perd sa composante tenant.
defaultContentType: application/cloudevents+json
channels:
valeurLiquidative:
address: instruments.valeur-liquidative
description: >-
Canal logique des valeurs. L'ordre n'est garanti que par producteur (sequence
strictement croissante par instrument), 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 publie chaque valeur — le fait est retenu en boîte d'envoi dans
la transaction qui écrit la valeur.
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) — jamais de motif.
contentType: application/cloudevents+json
payload:
allOf:
- $ref: '#/components/schemas/enveloppeCloudEvents'
- type: object
required: [data]
properties:
type:
const: fr.epargne.instruments.valeur.publiee.v1
dataschema:
const: urn:schema:epargne:instruments:valeur-publiee:1
data:
$ref: '#/components/schemas/valeur'
valeurCorrigee:
name: valeur-corrigee
title: Valeur corrigée
summary: >-
Une republication (rang ≥ 2), motif obligatoire — 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/cloudevents+json
payload:
allOf:
- $ref: '#/components/schemas/enveloppeCloudEvents'
- type: object
required: [data]
properties:
type:
const: fr.epargne.instruments.valeur.corrigee.v1
dataschema:
const: urn:schema:epargne:instruments:valeur-corrigee:1
data:
allOf:
- $ref: '#/components/schemas/valeur'
- type: object
required: [motif]
schemas:
enveloppeCloudEvents:
type: object
# Les consommateurs sont tolérants : un champ inconnu s'ignore.
required: [specversion, id, source, type, subject, time, datacontenttype,
dataschema, sequence, data]
properties:
specversion: { type: string, const: '1.0' }
id:
type: string
minLength: 1
description: L'identifiant unique du fait — la clé d'idempotence des consommateurs.
source: { type: string, const: 'urn:epargne:instruments' }
type: { type: string, minLength: 1 }
subject:
type: string
minLength: 1
description: L'identifiant publié de l'instrument dont la valeur est publiée.
time:
type: string
format: date-time
description: L'instant de la retenue du fait (UTC) — la survenance.
datacontenttype: { type: string, const: application/json }
dataschema: { type: string, format: uri-reference }
sequence:
type: integer
minimum: 1
description: >-
Extension — le numéro de séquence par instrument chez le producteur,
strictement croissant, fourni par la boîte d'envoi : le consommateur y
reconnaît un doublon, un manque ou un retard ; la livraison ne garantit
aucun ordre.
data: true
valeur:
type: object
required: [instrument, nature, date_calcul, rang, valeur_part_ue6, sorte]
properties:
instrument: { type: string, description: L'identifiant publié. }
nature:
type: string
enum: [placement_collectif, ccb]
description: Jamais devise — elle ne publie rien.
date_calcul: { type: string, format: date }
rang:
type: integer
minimum: 1
description: L'applicable pour la date = le rang le plus élevé.
valeur_part_ue6:
type: integer
description: La valeur d'une part, en micro-euros — jamais de flottant.
sorte:
type: string
enum: [marche, administree]
description: Reçue ou calculée — l'appariement à la nature est structurel.
provenance:
type: string
enum: [flux_de_place, saisie]
description: D'où la valeur est arrivée — absente pour une valeur administrée, calculée par le référentiel.
occurrence:
type: string
description: >-
L'occurrence de valorisation prévue à laquelle la valeur répond (le pont
attendu → constaté) — absente pour une valeur hors calendrier (une
régularisation, un CCB).
motif:
type: string
description: Obligatoire pour une correction, absent sinon.