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.
La spécification
Section intitulée « La spécification »asyncapi: 3.0.0info: 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+jsonchannels: 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.