administration-du-referentiel
Interface synchrone (OpenAPI) — version 0.1.0. Producteur : entreprise.
Le rejeu de la même Idempotency-Key et de la même commande retourne le résultat initial ; une charge différente sous la même clé retourne 409. Une mutation d’une ressource existante comporte If-Match. Le corps ne choisit jamais le tenant ; une ressource d’un autre tenant est traitée comme inexistante. Les autorisations métier du correspondant (mandat, délégation, séparation des tâches) sont vérifiées en plus du droit technique.
La spécification
Section intitulée « La spécification »openapi: 3.1.0info: title: entreprise — l'administration du référentiel version: 0.1.0 summary: >- Les commandes du référentiel des organisations, de l'emploi et des règles conventionnelles — des intentions métier, jamais la modification d'une version publiée. description: >- Le rejeu de la même Idempotency-Key et de la même commande retourne le résultat initial ; une charge différente sous la même clé retourne 409. Une mutation d'une ressource existante comporte If-Match. Le corps ne choisit jamais le tenant ; une ressource d'un autre tenant est traitée comme inexistante. Les autorisations métier du correspondant (mandat, délégation, séparation des tâches) sont vérifiées en plus du droit technique. x-producteurs: - entreprise x-consommateurs: [] x-ruptures: [] # première version publiée — aucune rupturex-gabarits: parametresCommande: ¶metresCommande - { $ref: '#/components/parameters/tenant' } - { $ref: '#/components/parameters/correlation' } - { $ref: '#/components/parameters/causation' } - { $ref: '#/components/parameters/idempotence' } parametresCommandeSurRessource: ¶metresCommandeSurRessource - { $ref: '#/components/parameters/tenant' } - { $ref: '#/components/parameters/correlation' } - { $ref: '#/components/parameters/causation' } - { $ref: '#/components/parameters/idempotence' } - { $ref: '#/components/parameters/id' } parametresMutation: ¶metresMutation - { $ref: '#/components/parameters/tenant' } - { $ref: '#/components/parameters/correlation' } - { $ref: '#/components/parameters/causation' } - { $ref: '#/components/parameters/idempotence' } - { $ref: '#/components/parameters/id' } - { $ref: '#/components/parameters/versionAttendue' } corpsDeCommande: &corpsDeCommande required: true content: application/json: schema: { $ref: '#/components/schemas/Commande' } reponsesDeCommande: &reponsesDeCommande '200': { $ref: '#/components/responses/commandeServie' } '400': { $ref: '#/components/responses/malForme' } '401': { $ref: '#/components/responses/nonAuthentifie' } '403': { $ref: '#/components/responses/nonAutorise' } '404': { $ref: '#/components/responses/introuvable' } '409': { $ref: '#/components/responses/conflit' } '422': { $ref: '#/components/responses/inapplicable' } '429': { $ref: '#/components/responses/quotaAtteint' } '503': { $ref: '#/components/responses/dependanceIndisponible' }paths: /entreprise/v1/dossiers-clients: post: operationId: ouvrirUnDossierClient summary: Ouvrir un dossier en entrée en relation. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dossiers-clients/{id}: patch: operationId: corrigerUnDossierClient summary: Corriger les données de gestion du dossier (If-Match exigé). security: [{ authentification: [entreprise:administration] }] parameters: *parametresMutation requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dossiers-clients/{id}/activation: post: operationId: activerUnDossierClient summary: >- Passer le dossier à ACTIF — exige une identité minimale, une couverture contractuelle et une évaluation de conformité favorable lorsqu'elle est requise. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dossiers-clients/{id}/sortie: post: operationId: ouvrirLaSortieDUnDossierClient summary: >- Passer à EN_SORTIE_DE_RELATION — bloque les nouvelles publications, pas les lectures historiques. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dossiers-clients/{id}/rattachements: post: operationId: rattacherUneEntite summary: >- Rattacher une entité avec rôle, finalité et période — l'adhésion d'une entité à un PEI crée un rattachement ADHERENTE de finalité PLAN, jamais une seconde entité juridique. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/rattachements/{id}: patch: operationId: bornerOuCorrigerUnRattachement summary: Borner ou corriger un rattachement (If-Match exigé). security: [{ authentification: [entreprise:administration] }] parameters: *parametresMutation requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/entites: post: operationId: enregistrerUneEntite summary: Enregistrer une entité juridique. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/entites/{id}: patch: operationId: versionnerLIdentiteDUneEntite summary: Ajouter une version d'identité (If-Match exigé) — jamais un écrasement. security: [{ authentification: [entreprise:administration] }] parameters: *parametresMutation requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/entites/{id}/etablissements: post: operationId: enregistrerUnEtablissement summary: Enregistrer un établissement. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/relations-groupe: post: operationId: declarerUneRelationDeGroupe summary: Déclarer une relation datée, sourcée, jamais réflexive (ENT-ORG-004). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/perimetres: post: operationId: constituerUnPerimetre summary: Constituer un périmètre pour une finalité — il ne devient jamais employeur. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/perimetres/{id}/appartenances: post: operationId: modifierLesAppartenances summary: >- Ajouter ou clore une appartenance — chaque appartenance cible exactement une entité ou un établissement (ENT-ORG-003). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/correspondants: post: operationId: referencerUnCorrespondant summary: Référencer un tiers_id — jamais un epargnant_id (ENT-COR-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/correspondants/{id}/activation: post: operationId: activerUnCorrespondant summary: Activer le correspondant — exige un tiers_id résolu. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/correspondants/{id}/suspension: post: operationId: suspendreUnCorrespondant summary: >- Suspendre ses usages — les mandats sont conservés à titre historique, leur utilisation est interdite. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/correspondants/{id}/affectations: post: operationId: affecterUnCorrespondant summary: Attribuer fonction, périmètre et période (ENT-COR-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/mandats: post: operationId: enregistrerUnMandat summary: >- Enregistrer un mandat et sa preuve (ENT-COR-003) — un mandat ne crée pas de compte d'accès (ENT-COR-005). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/mandats/{id}/revocation: post: operationId: revoquerUnMandat summary: Révoquer un mandat — les délégations qui en dépendent deviennent inapplicables. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/delegations: post: operationId: deleguerDesActes summary: >- Déléguer des actes pour une période — jamais au-delà des pouvoirs ni de la période du délégant (ENT-COR-004), l'API le vérifie. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/delegations/{id}/revocation: post: operationId: revoquerUneDelegation summary: Interrompre la délégation. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/chargements-rh: post: operationId: deposerUnChargement summary: >- Déposer un lot chiffré — les attributs d'identité transitent en zone chiffrée temporaire et ne sont jamais retournés après dépôt (ENT-EMP-003). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/chargements-rh/{id}/analyse: post: operationId: analyserUnChargement summary: Valider le format et les références. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/chargements-rh/{id}/previsualisation: post: operationId: previsualiserUnChargement summary: Calculer les effets proposés, sans les appliquer. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/chargements-rh/{id}/application: post: operationId: appliquerUnChargement summary: >- Appliquer les lignes résolues — retourne 202 et un lien vers le suivi ; seule une ligne résolue peut créer ou modifier un lien d'emploi. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: '202': description: >- L'application est engagée — la réponse porte le lien de suivi (GET /chargements-rh/{id} de la consultation). content: application/json: schema: { $ref: '#/components/schemas/ReponseDeCommande' } '400': { $ref: '#/components/responses/malForme' } '401': { $ref: '#/components/responses/nonAuthentifie' } '403': { $ref: '#/components/responses/nonAutorise' } '404': { $ref: '#/components/responses/introuvable' } '409': { $ref: '#/components/responses/conflit' } '422': { $ref: '#/components/responses/inapplicable' } '429': { $ref: '#/components/responses/quotaAtteint' } '503': { $ref: '#/components/responses/dependanceIndisponible' } /entreprise/v1/chargements-rh/{id}/annulation: post: operationId: annulerUnChargement summary: Annuler avant application. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/liens-emploi: post: operationId: ouvrirUnLienEmploi summary: >- Ouvrir un lien unitaire après résolution — exige un epargnant_id résolu (ENT-EMP-001) ; aucun attribut d'état civil n'est conservé (ENT-EMP-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/liens-emploi/{id}: patch: operationId: versionnerUnLienEmploi summary: Ajouter une version du lien (If-Match exigé). security: [{ authentification: [entreprise:administration] }] parameters: *parametresMutation requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/liens-emploi/{id}/cloture: post: operationId: cloreUnLienEmploi summary: >- Clore avec date et motif — la fin d'un lien ne ferme aucun compte ni avoir (ENT-EMP-006). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/liens-emploi/{id}/annulation: post: operationId: compenserUnLienEmploi summary: Compenser une ouverture erronée — un fait contraire, jamais un effacement. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/liens-emploi/{id}/mises-a-disposition: post: operationId: creerUneMiseADisposition summary: >- Créer une affectation d'accueil — période propre, incluse dans celle du lien (ENT-EMP-007), fondement exigé. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/liens-emploi/{id}/donnees-sociales: post: operationId: ajouterUneDonneeSociale summary: >- Ajouter un fait périodique — collecté seulement si une règle ou une preuve l'utilise (ENT-EMP-008) ; append-only. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/populations: post: operationId: constituerUnePopulation summary: Constituer une photographie — exige entite_declarante_id et perimetre_id. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: required: true content: application/json: schema: allOf: - { $ref: '#/components/schemas/Commande' } - type: object required: [entite_declarante_id, perimetre_id] properties: entite_declarante_id: { type: string } perimetre_id: { type: string } responses: *reponsesDeCommande /entreprise/v1/populations/{id}/publication: post: operationId: publierUnePopulation summary: Figer la population — publiée, elle est immuable (ENT-POP-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/attestations-completude: post: operationId: attesterUnePopulation summary: >- Attester une population publiée — le mandat du signataire est vérifié à la date de signature (ENT-POP-004) ; source_exigence et reference_exigence sont exigés (ENT-POP-006). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: required: true content: application/json: schema: allOf: - { $ref: '#/components/schemas/Commande' } - type: object required: [population_id, source_exigence, reference_exigence] properties: population_id: { type: string } source_exigence: type: string description: Convention, contrôle interne ou texte réglementaire. reference_exigence: type: string description: La clause ou l'article exact — jamais AMF 322-75 seul. responses: *reponsesDeCommande /entreprise/v1/attestations-completude/{id}/revocation: post: operationId: revoquerUneAttestation summary: >- Révoquer avec motif — un fait séparé qui n'efface ni population ni traitement antérieur (ENT-POP-005). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/actes: post: operationId: enregistrerUnActe summary: Enregistrer accord, règlement, décision ou avenant — signé, il est immuable. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/actes/{id}/parties: post: operationId: qualifierLesPartiesDUnActe summary: Qualifier employeur, syndicat, CSE, collectif ou branche (ENT-ACT-004). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/actes/{id}/signature: post: operationId: constaterLaSignatureDUnActe summary: Constater la signature. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/actes/{id}/preuves-conclusion: post: operationId: enregistrerUnePreuveDeConclusion summary: Enregistrer ratification, procès-verbal ou décision unilatérale. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/actes/{id}/depots: post: operationId: enregistrerUnDepot summary: Enregistrer un dépôt. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/actes/{id}/relations: post: operationId: relierUnActe summary: Relier un avenant ou un remplacement à l'acte (ENT-ACT-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dispositifs: post: operationId: creerUnDispositif summary: Créer l'identité stable d'un dispositif — elle survit à ses versions. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dispositifs/{id}/versions: post: operationId: preparerUneVersionDeParametrage summary: >- Préparer un paramétrage — la création cite au moins un acte_id, la nature du lien et la clause source (ENT-DIS-004). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/versions-parametrage/{id}/validation: post: operationId: validerUneVersionDeParametrage summary: Contrôler la version — chaque paramètre cite sa clause (ENT-ACT-003). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/versions-parametrage/{id}/publication: post: operationId: publierUneVersionDeParametrage summary: >- Rendre la version opposable — exige un acte, un périmètre et des contrôles complets (ENT-DIS-003) ; les versions publiées ne se chevauchent pas (ENT-DIS-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/versions-parametrage/{id}/suspension: post: operationId: suspendreUneVersionDeParametrage summary: Suspendre son usage futur — jamais un retour en brouillon. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/regles-abondement: post: operationId: creerUneRegleDAbondement summary: Créer une règle en brouillon — ciblage, assiette, tranches, plafond, priorité. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/jeux-abondement: post: operationId: creerUnJeuDAbondement summary: Créer un jeu ordonné de règles versionnées (ENT-ABO-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/jeux-abondement/{id}/publication: post: operationId: publierUnJeuDAbondement summary: Publier le jeu. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/regles-calcul-enveloppe: post: operationId: creerUneRegleDeCalculDEnveloppe summary: Créer une règle de calcul collectif. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/regles-calcul-enveloppe/{id}/versions: post: operationId: versionnerUneFormuleCollective summary: >- Créer une formule versionnée — elle cite l'acte, la clause et les sources attendues de ses indicateurs (ENT-CAL-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/regles-repartition: post: operationId: creerUneRegleDeRepartition summary: Créer une règle de répartition. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/regles-repartition/{id}/versions: post: operationId: versionnerUneRepartition summary: >- Créer les composantes d'une version — UNIFORME, SALAIRE, PRESENCE avec pondérations, assiettes, assimilations et arrondis explicites. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/versions-repartition/{id}/publication: post: operationId: publierUneRepartition summary: >- Contrôler et publier la version — échoue si les pondérations ne totalisent pas 10 000 points de base (ENT-REP-001 : UNIFORME 5 000 + SALAIRE 3 000 + PRESENCE 2 000 passe ; 9 500 est refusé) ou si une composante ne cite pas sa clause ; une règle de reliquat RESTITUTION_EMPLOYEUR est rejetée (ENT-REP-003). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/enveloppes: post: operationId: declarerUneEnveloppe summary: >- Déclarer un montant collectif — exige entite_declarante_id et perimetre_id (ENT-ENV-003) ; une enveloppe répartissable référence une population attestée (ENT-ENV-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: required: true content: application/json: schema: allOf: - { $ref: '#/components/schemas/Commande' } - type: object required: [entite_declarante_id, perimetre_id] properties: entite_declarante_id: { type: string } perimetre_id: { type: string } responses: *reponsesDeCommande /entreprise/v1/enveloppes/{id}/arret-repartition: post: operationId: arreterLaRepartitionDUneEnveloppe summary: >- Figer montant et population — l'enveloppe fige la version de répartition appliquée (ENT-REP-004) et passe à PRETE_A_REPARTIR. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/enveloppes/{id}/transmission: post: operationId: transmettreUneEnveloppe summary: >- Transmettre à Opérations — les quotes-parts individuelles ne sont jamais détenues par Entreprise (ENT-ENV-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/dispositifs/{id}/offres: post: operationId: preparerUneLigneDOffre summary: >- Préparer une ligne d'offre — l'instrument externe est référencé, jamais copié (ENT-OFF-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/offres/{id}/publication: post: operationId: publierUneLigneDOffre summary: Publier la ligne. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/offres/{id}/fermeture: post: operationId: fermerUneLigneDOffre summary: >- Fermer aux nouvelles souscriptions — le retrait ne supprime ni positions ni droits acquis (ENT-OFF-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/paniers: post: operationId: creerOuVersionnerUnPanier summary: >- Créer ou versionner un panier — les poids d'un panier publié totalisent 10 000 points de base (ENT-OFF-004). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/strategies: post: operationId: creerOuVersionnerUneStrategie summary: Créer ou versionner une stratégie — profils et paliers. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions: post: operationId: creerUneConvention summary: Créer une convention en négociation. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommande requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/parties: post: operationId: qualifierLesPartiesDUneConvention summary: >- Qualifier les parties contractuelles — TCC, cocontractante, teneur de registre, adhérente, payeur ou autre prestataire. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/signature: post: operationId: constaterLaSignatureDUneConvention summary: Constater la signature — la personne, son pouvoir et les preuves. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/adhesions: post: operationId: enregistrerUneAdhesion summary: >- Enregistrer l'adhésion datée d'une entité — distincte d'une simple couverture. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/activation: post: operationId: activerUneConvention summary: Activer couverture et services (ENT-CON-001). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/avenants: post: operationId: creerUnAvenantDeConvention summary: >- Créer une nouvelle version — les versions tarifaires concurrentes ne se chevauchent pas pour une même prestation (ENT-CON-002). security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/preavis: post: operationId: ouvrirUnPreavisDeResiliation summary: Ouvrir la résiliation — statut EN_PREAVIS_DE_RESILIATION. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommande /entreprise/v1/conventions/{id}/resiliation: post: operationId: resilierUneConvention summary: >- Terminer la convention — les obligations résiduelles et la convention de substitution éventuelle sont conservées. security: [{ authentification: [entreprise:administration] }] parameters: *parametresCommandeSurRessource requestBody: *corpsDeCommande responses: *reponsesDeCommandecomponents: parameters: tenant: name: X-Tenant-Id in: header required: true description: >- Le teneur de compte — injecté et signé par la passerelle ; le corps ne choisit jamais le tenant. Une ressource d'un autre tenant est traitée comme inexistante. schema: { type: string, minLength: 1 } correlation: name: X-Correlation-Id in: header required: true description: La corrélation de bout en bout — reprise dans toute réponse. schema: { type: string, minLength: 1 } causation: name: X-Causation-Id in: header required: false description: Présent lorsqu'une commande en déclenche une autre. schema: { type: string, minLength: 1 } idempotence: name: Idempotency-Key in: header required: true description: >- La clé d'idempotence de la commande — le rejeu de la même clé et de la même commande retourne le résultat initial ; une charge différente sous la même clé retourne 409. schema: { type: string, minLength: 1 } id: name: id in: path required: true description: L'identifiant publié de la ressource. schema: { type: string, minLength: 1 } versionAttendue: name: If-Match in: header required: true description: >- La version attendue de la ressource — le verrou optimiste d'une mutation ; un écart retourne 409 (ENT_VERSION_CONFLICT). 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 entreprise:famille. Ce contrat n'ouvre que entreprise:administration ; les autorisations métier du correspondant (mandat, délégation, séparation des tâches) sont vérifiées en plus du droit technique, à l'exécution. Le mécanisme est OIDC ; sa déclinaison relève de l'assemblage. responses: commandeServie: description: >- La commande est servie — la ressource, sa version et la corrélation ; le rejeu idempotent retourne ce même résultat. content: application/json: schema: { $ref: '#/components/schemas/ReponseDeCommande' } malForme: description: Syntaxe ou champ invalide (400) — le motif nomme le champ. content: application/json: schema: { $ref: '#/components/schemas/Erreur' } nonAuthentifie: description: Aucune identité présentée (401). nonAutorise: description: >- L'identité présentée n'a pas la famille d'accès entreprise:administration (403) — les 403 croisés entre familles sont prouvés par les tests d'assemblage. Un mandat métier manquant n'est pas un 403 : c'est un refus métier (422). introuvable: description: >- Ressource absente ou invisible — y compris une ressource d'un autre tenant (le régime de la muraille : 404, jamais 403). content: application/json: schema: { $ref: '#/components/schemas/Erreur' } conflit: description: Conflit de version, d'idempotence ou d'invariant (409). content: application/json: schema: { $ref: '#/components/schemas/Erreur' } inapplicable: description: Commande comprise mais impossible au regard du métier (422). content: application/json: schema: { $ref: '#/components/schemas/Erreur' } quotaAtteint: description: Quota du tenant atteint (429). content: application/json: schema: { $ref: '#/components/schemas/Erreur' } dependanceIndisponible: description: Dépendance indisponible, sans effet partiel (503). content: application/json: schema: { $ref: '#/components/schemas/Erreur' } schemas: Commande: type: object description: >- Une intention métier. Les exigences déjà contractuelles (acte cité, clause source, déclarant et périmètre d'une enveloppe…) sont dites à l'opération. additionalProperties: true ReponseDeCommande: type: object description: La réponse de toute commande servie. required: [resource_id, version, correlation_id] properties: resource_id: type: string version: type: integer correlation_id: type: string suivi: type: string description: Le lien de suivi — présent sur une application de chargement (202). Erreur: type: object required: [code, message, correlation_id] properties: code: type: string description: Par exemple ENT_VERSION_CONFLICT. message: type: string correlation_id: type: string details: type: array items: type: object properties: champ: { type: string } motif: { type: string }