consultation-des-entites
Interface synchrone (OpenAPI) — version 0.2.0, convergé. Producteur : tenue-de-compte. Consommateurs déclarés : operations, back-office-teneur-de-compte.
La consultation des entités que la tenue de compte détient : la fiche d’un CRE (son verdict, ses écritures), la fiche d’un compte (sa catégorie, son historisation, ses positions courantes) et les écritures d’un compte (le journal filtré, marques de contrepassation comprises). Lecture sans effet de bord ; le tenant est dans chaque chemin — la muraille de Chine, un tenant étranger est un 404.
La spécification
Section intitulée « La spécification »openapi: 3.1.0info: title: tenue-de-compte — consultation des entités version: 0.2.0 summary: La lecture des entités principales du domaine — CRE, compte, écritures. description: >- La consultation des entités que la tenue de compte détient : la fiche d'un CRE (son verdict, ses écritures), la fiche d'un compte (sa catégorie, son historisation, ses positions courantes) et les écritures d'un compte (le journal filtré, marques de contrepassation comprises). Lecture sans effet de bord ; le tenant est dans chaque chemin — la muraille de Chine, un tenant étranger est un 404. x-producteurs: - tenue-de-compte x-consommateurs: - composant: operations - composant: back-office-teneur-de-comptepaths: /tenants/{tenant}/cre/{identifiant}: get: operationId: consulterUnCre summary: La fiche d'un CRE — son verdict et les écritures qu'il a produites. description: >- Le minimum dû au producteur d'un CRE : savoir ce qu'il est devenu. Le verdict est l'état du cycle de vie (comptabilisé, rejeté, bloqué, extourné) ; les écritures ne sont présentes que pour une comptabilisation. security: - authentification: [tenue-de-compte:consultation] parameters: - $ref: '#/components/parameters/tenant' - name: identifiant in: path required: true description: L'identifiant du CRE (celui du producteur amont). schema: type: string minLength: 1 responses: '200': description: La fiche du CRE. content: application/json: schema: $ref: '#/components/schemas/FicheDeCre' '401': description: Aucune identité présentée. '403': description: L'identité présentée n'a pas la famille d'accès tenue-de-compte:consultation. '404': description: Le CRE est inconnu du livre de ce tenant. /tenants/{tenant}/comptes/{compte}: get: operationId: consulterUnCompte summary: La fiche d'un compte — sa catégorie, son historisation, ses positions courantes. description: >- La catégorie et l'historisation viennent du paramétrage du tenant ; les positions courantes viennent du livre. Un compte au plan sans mouvement a une fiche aux positions vides. security: - authentification: [tenue-de-compte:consultation] parameters: - $ref: '#/components/parameters/tenant' - $ref: '#/components/parameters/compte' responses: '200': description: La fiche du compte. content: application/json: schema: $ref: '#/components/schemas/FicheDeCompte' '401': description: Aucune identité présentée. '403': description: L'identité présentée n'a pas la famille d'accès tenue-de-compte:consultation. '404': description: Le compte est inconnu de ce tenant. /tenants/{tenant}/comptes/{compte}/ecritures: get: operationId: consulterLesEcritures summary: Les écritures d'un compte, dans l'ordre du journal. description: >- Le journal filtré sur le compte : chaque écriture identifiée (le CRE qui l'a produite et son rang), avec sa marque de contrepassation si elle a été corrigée. Une liste vide pour un compte au plan sans mouvement. security: - authentification: [tenue-de-compte:consultation] parameters: - $ref: '#/components/parameters/tenant' - $ref: '#/components/parameters/compte' responses: '200': description: Les écritures du compte. content: application/json: schema: type: array items: $ref: '#/components/schemas/Ecriture' '401': description: Aucune identité présentée. '403': description: L'identité présentée n'a pas la famille d'accès tenue-de-compte:consultation. '404': description: Le compte est inconnu de ce tenant.components: 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 tenue-de-compte:famille. Le mécanisme est OIDC ; sa déclinaison relève de l'assemblage, pas du présent contrat. parameters: tenant: name: tenant in: path required: true description: Le teneur de compte — la muraille de Chine, aucune consultation ne la franchit. schema: type: string minLength: 1 compte: name: compte in: path required: true description: L'identifiant public du compte chez ce tenant. schema: type: string minLength: 1 schemas: FicheDeCre: type: object required: [identifiant, statut, ecritures] properties: identifiant: type: string description: L'identifiant du CRE. statut: type: string enum: [comptabilise, rejete, bloque, extourne] description: L'état du cycle de vie, tel que le livre le prononce. ecritures: type: array description: Les écritures produites — vides hors comptabilisation. items: $ref: '#/components/schemas/Ecriture' FicheDeCompte: type: object required: [tenant, compte, categorie, historise, positions] properties: tenant: type: string description: Le teneur de compte. compte: type: string description: L'identifiant public du compte. categorie: type: string enum: [avoirs, passage] description: >- La catégorie du compte au paramétrage — un compte d'avoirs n'est jamais négatif ; un compte de passage est structurellement à zéro, le négatif de transit est toléré. historise: type: boolean description: La position de ce compte est photographiée à chaque variation (paramétrage). positions: type: array description: Les positions courantes, par instrument (les positions nulles ne sont pas servies). items: type: object required: [instrument, quantite] properties: instrument: type: string description: L'identifiant public de l'instrument. quantite: type: integer description: >- La quantité détenue — un entier, l'unité est celle de l'instrument (référentiel des instruments), jamais de flottant. Ecriture: type: object required: [identifiant, compte, sens, quantite, instrument, date_comptable] properties: identifiant: type: string description: L'identifiant déterministe — le CRE qui l'a produite et son rang (« cre/rang »). compte: type: string description: Le compte mouvementé. sens: type: string enum: [debit, credit] quantite: type: integer description: La quantité mue — un entier, l'unité est celle de l'instrument. instrument: type: string description: L'identifiant public de l'instrument. date_comptable: type: string format: date description: La date comptable de l'écriture (verrou de période). contrepassee_par: type: string description: >- La marque de correction : l'identifiant du miroir qui a contrepassé cette écriture — absente si l'écriture n'a pas été corrigée.