Aller au contenu

Exigence de consentement

Fonctionnement général

Cette nouvelle fonctionnalité se découpe en deux parties :

  • La gestion des exigences de consentement (création / suppression / consultation)
  • La prise en compte des exigences de consentement dans le cycle de vie des consentements

La gestion des exigences de consentement

Ajout d'une exigence de consentement

La fonctionnalité d'exigence de consentement doit permettre à un acteur de déclarer les familles de données et les ayants-droits pour lesquels il souhaite être partie prenante (ayant droit complémentaire) lors des demandes de consentements faites par un acteur bénéficiaire. Il est alors nécessaire de pouvoir controler la légitimité de cet ayant droit complémentaire envers la famille et l'ayant droit (concrètement s’il a bien contribué à la collecte des données de la famille sur cette exploitation). Agata Consent n'est pas en mesure d'établir cette légitimité et doit donc faire appel à une API fournie par la Base Pro.

Cloture d'une exigence de consentement

A tout moment, un acteur doit pouvoir retirer une exigence de consentement qu'il a créé. Cette fonctionnalité permet aussi au porteur de domaine d'intervenir sur toute exigence de consentement de son domaine en cas de litige.

Consultation des exigences de consentement

Deux api de consultations permettent:

  • de consulter les exigences de consentement d'un domaine
  • de rechercher une exigence de consentement active pour une famille, un acteur et un ayant droit

Prise en compte des exigences de consentement

L'objectif pour un acteur de déposer une exigence de consentement est qu'aucune entreprise ne puisse accéder aux données qui sont sous sa responsabilité sans qu'il ait donné son accord préalable. Pour obtenir le consentement d'une exploitation, l'acteur bénéficiaire devra au préalable faire une demande de consentement auprès de l'ayant droit complémentaire (consentement chapeau). Ce n'est qu'une fois que ce consentement chapeau sera signé que le bénéficiaire pourra faire des demandes de consentements auprès des exploitations.

Diagramme de séquence

sequenceDiagram
    participant ActeurBénéficiaire as Acteur<br>Bénéficiaire
    participant ActeurAyantDroit as Acteur Ayant-droit<br>complémentaire
    participant Exploitation as Exploitation

    Note left of ActeurBénéficiaire: POST /headConsentDenormalized<br>family: BGES<br>Usage: CONS
    ActeurBénéficiaire->>ActeurAyantDroit: Demande de consentement pour une famille, <br>un usage pour une ou toutes les exploitations
    ActeurAyantDroit-->>ActeurBénéficiaire: L'ayant droit signe le consentement chapeau dans un délai<br>imparti ou accord implicite
    ActeurBénéficiaire->>Exploitation: Demande de consentement pour une famille, un usage
    Note left of ActeurBénéficiaire: POST /consentDenormalized<br>family: BGES<br>Usage: CONS
    Exploitation->>ActeurBénéficiaire: L'exploitation signe le consentement
L'acteur bénéficiaire sera mis au courant de la nécessité d'obtenir l'accord de l'ayant-droit complémentaire par deux moyens :

  • Lors de la contractualisation, il lui sera fait mention des familles nécéssitant des consentements chapeaux
  • Par e-mail avec une date d'application lorsqu'un acteur demandera à activer la fonctionnalité d'exigence de consentement

Un code de rejet spécifique (Http 412) sera mis en place sur l'API de création d'une demande de consentement pour prévenir qu'un consentement chapeau est nécéssaire avant l'enregistrement de la demande.

Création d'une demande de consentement chapeau

Pour obtenir l'accord d'un ayant-droit complémentaire, un bénéficiaire fera appel à une API spécifique de création de demande de consentement. Les informations à envoyer seront presque identiques à un consentement standard mais les règles d'utilisation de cette API seront différentes.

Quelques règles qui diffèrent d'un consentement classique :

  • Il devra être possible de créer plusieurs consentements chapeaux sur la même période si l'exploitation cible est différente.
  • Tous les acteurs, qualifiés ou non, pourront créer des demandes de consentements chapeaux mais il ne sera pas possible de créer directement un consentement chapeau.

La création d'une demande de consentement chapeau sans exploitation précisée portera sur l'intégralité des exploitations gérées par l'ayant-droit complémentaire. Si l'exploitation est renseignée, le consentement chapeau ne portera que sur cette exploitation.

Exigence de consentement

Description

Dans le cadre des domaines CNE, les données exposées par les webservices des porteurs de domaine peuvent avoir plusieurs "propriétaires" (ex: un éleveur et un acteur ayant completé les données de base avec des données valorisées).

La fonctionnalité d'exigence de consentement doit permettre aux acteurs ayant participé à la création des données de devenir ayant-droit complémentaire lors des demandes de consentements faites par un acteur bénéficiaire.

Les données exposées ne sont pas toutes liées à un ayant-droit complémentaire. Pour distinguer les familles de données où une exigence de consentement peut être créée, des champs complémentaires vont être ajoutés de façon optionnelle pour indiquer s'il y a possibilité de déposer une exigence de consentement et par quelle typologie d'acteur.

La création d'une exigence de consentement permet de changer le cycle de vie des consentements entre un bénéficiaire et une exploitation agricole. Lorsqu'une exigence de consentement est créée, l'acteur bénéficiaire demande en premier lieu l'accord d'accéder aux données auprès de l'ayant-droit complémentaire et s'il obtient cet accord, il peut alors demander l'autorisation auprès de l'exploitation agricole.

Point d'attention :

  • La création d'une exigence de consentement se fait via API pour une famille de données et une exploitation agricole. Il n'est pas prévu pour le moment d'ajouter cette fonctionnalité dans l'Espace Pro.

Les acteurs d'un domaine CNE ne sont pas tous éligibles à la création d'exigences de consentement. Pour qu'un acteur soit éligible à être ayant-droit complémentaire sur une famille de données, il doit avoir contractualisé avec l'agriculteur. Pour qu'Agata Consent puisse vérifier cette éligibilité, FGE a developpé une API de contrôle pour un SIRET (ayant droit complémentaire), une famille, un N° EDE (exploitation) et une date, si l'acteur est éligible ou pas.

sample screenshot

Les ayants-droits complémentaires ont la possibilité de clore ou consulter les exigences de consentement qu'ils ont créé via API. Les porteurs de domaines auront eux accès à l'intégralité des exigences de consentement de leurs domaines respectif et pourront clore les exigences de consentement.

Procédure de mise à disposition :

  • Le dépot d'une exigence de consentement ayant un impact direct sur les utilisateurs Agata Consent, la fonctionnalité de dépot des exigences de consentement sera activée sur demande auprès de FAST. Lors de la réception d'une demande d'activation de la fonctionnalité par un acteur, FAST préviendra l'ensemble des abonnés au domaine qu'un consentement chapeau pourra être nécessaire pour effectuer de nouvelles demandes de consentement à partir d'une date convenue avec l'acteur.

Appels API

Authentification

L'application peut s’authentifier en utilisant le type de grant « client_credentials » associé à un client_id et un secret. Pour récupérer ces informations, il faut se rapprocher de l'équipe d'Agata-Consent.

curl --location --request POST 'https://keycloak.agata-consent.com/auth/realms/sgc/protocol/openid-connect/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Cookie: KEYCLOAK_LOCALE=fr' \
--data-urlencode 'client_id=<client id>' \
--data-urlencode 'client_secret=<client secret>' \
--data-urlencode 'grant_type=client_credentials'

Création de l'exigence de consentement

Route : /consentRequirementsDenormalized
Méthode : POST
Description :

Route permettant d'ajouter une exigence de consentement avec les identifiants métiers.

Propriété Type Obligatoire Description Défaut Exemple
domain_business_identifier string Oui Identifiant métier du domaine zootechnique
family_business_identifier string Oui entiant métier de la famille de données BGES
actor_siret string Oui Siret de l'entreprise ayant-droit complémentaire Siret de l'enteprise connectée 146542586400014
owner_business_identifier string Oui Identifiant métier de l'exploitation FR34951951
Exemple d'appel
Exemple de requête
curl -X 'POST' \
  'https://api-preprod.agata-consent.com/consentRequirementsDenormalized' \
  -H 'accept: text/plain' \
  -H 'Content-Type: application/json' \
  -d '{
  "domain_business_identifier": "zootechnique",
  "family_business_identifier": "BGES",
  "actor_siret": "146542586400014",
  "owner_business_identifier": "FR34951951"
}'
Réponse
Code Titre Description
201 OK Retourne l'exigence de consentement
400 Bad Request Une des données saisies est erronée
403 Forbidden L'acteur doit être actif
403 Forbidden L'acteur bénéficiaire doit être abonné au domaine
403 Forbidden La famille ne doit pas être publique
403 Forbidden Les exigences de consentement doivent être activées sur la famille
403 Forbidden Le secteur d'activité de l'acteur doit faire parti des secteurs d'activités déclaré pour la famille
403 Forbidden L'acteur doit avoir un contrat avec l'exploitation (vérication via WS FGE) 4
404 Not Found L'acteur doit être connu
404 Not Found La famille de données doit exister
409 Conflict Une exigence de consentement identique et active ne doit pas déjà exister
{
  "id": "00000000-0000-0000-0000-000000000000",
  "rightholder": {
    "type": "OWNER",
    "id": "00000000-0000-0000-0000-000000000000",
    "business_identifier": "FR35167340",
    "siret": "73282932000074",
    "name": "SAS Dupond Martin",
    "address": "Rue de la tulipe",
    "postal_code": "79200",
    "city": "Ville-sur-mer"
  },
  "additional_rightholder": {
    "type": "OWNER",
    "id": "00000000-0000-0000-0000-000000000000",
    "business_identifier": "FR35167340",
    "siret": "73282932000074",
    "name": "SAS Dupond Martin",
    "address": "Rue de la tulipe",
    "postal_code": "79200",
    "city": "Ville-sur-mer"
  },
  "family": {
    "id": "00000000-0000-0000-0000-000000000000",
    "name": "Registre sanitaire d'un bovin",
    "business_identifier": "san-registre-bovin"
  },
  "requirement_consent_delay": 0,
  "starting_date": "2025-01-23T14:46:29.168Z",
  "ending_date": "2025-01-23T14:46:29.168Z"
}

Clotûre d'une exigence de consentement

Route : /consentRequirementsDenormalized
Méthode : DELETE
Description :

Route permettant de supprimer une exigence de consentement avec les identifiants métiers.

Propriété Type Obligatoire Description Défaut Exemple
domain_business_identifier string Oui Identifiant métier du domaine zootechnique
family_business_identifier string Oui entiant métier de la famille de données BGES
actor_siret string Non Siret de l'entreprise ayant-droit complémentaire Siret de l'enteprise connectée 146542586400014
owner_business_identifier string Oui Identifiant métier de l'exploitation FR34951951
Exemple d'appel
Exemple de requête
curl -X 'DELETE' \
  'https://api-preprod.agata-consent.com/consentRequirementsDenormalized?domain_business_identifier=zootechnique&family_business_identifier=BGES&owner_business_identifier=FR34951951&actor_siret=146542586400014' \
  -H 'accept: text/plain'
Réponse
Code Titre Description
201 OK Supprime l'exigence de consentement
400 Bad Request Une des données saisies est erronée
403 Forbidden Le client applcatif doit avoir le droit de suppression des exigences de consentement sur le domaine
404 Not Found L'acteur doit être connu
404 Not Found La famille de données doit exister
404 Not Found Une exigence de consentement active doit exister pour la famille, l'acteur et l'exploitation

Consultation des exigences de consentement

Route : /consentRequirementsDenormalized
Méthode : GET
Description :

Route permettant de consulter une exigence de consentement avec les identifiants métiers.

Propriété Type Obligatoire Description Défaut Exemple
domain_business_identifier string Oui Identifiant métier du domaine zootechnique
family_business_identifier string Oui entiant métier de la famille de données BGES
actor_siret string Non Siret de l'entreprise ayant-droit complémentaire Siret de l'enteprise connectée 146542586400014
owner_business_identifier string Non Identifiant métier de l'exploitation FR34951951
active_only boolean Non Indique s'il ne faut retourner que les exigences de consentements actives à la date du jour true
Exemple d'appel
Exemple de requête
curl -X 'GET' \
  'https://api-preprod.agata-consent.com/consentRequirementsDenormalized?domain_business_identifier=zootechnique&family_business_identifier=BGES' \
  -H 'accept: text/plain'
Réponse
Code Titre Description
201 OK Renvoi l'exigence de consentement
400 Bad Request Une des données saisies est erronée
403 Forbidden L'acteur doit être abonné au domaine
403 Forbidden L'acteur doit être actif
404 Not Found L'acteur doit être connu
404 Not Found La famille de données doit exister
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "rightholder": {
      "type": "OWNER",
      "id": "00000000-0000-0000-0000-000000000000",
      "business_identifier": "FR35167340",
      "siret": "73282932000074",
      "name": "SAS Dupond Martin",
      "address": "Rue de la tulipe",
      "postal_code": "79200",
      "city": "Ville-sur-mer"
    },
    "additional_rightholder": {
      "type": "OWNER",
      "id": "00000000-0000-0000-0000-000000000000",
      "business_identifier": "FR35167340",
      "siret": "73282932000074",
      "name": "SAS Dupond Martin",
      "address": "Rue de la tulipe",
      "postal_code": "79200",
      "city": "Ville-sur-mer"
    },
    "family": {
      "id": "00000000-0000-0000-0000-000000000000",
      "name": "Registre sanitaire d'un bovin",
      "business_identifier": "san-registre-bovin"
    },
    "requirement_consent_delay": 0,
    "starting_date": "2025-01-23T15:10:52.913Z",
    "ending_date": "2025-01-23T15:10:52.913Z"
  }
]

Consentement chapeau

Description

Un consentement dit "chapeau" est un consentement entre un acteur bénéficiaire et un acteur ayant droit complémentaire ayant enregistré une exigence de consentement sur une famille de données. La demande de consentement chapeau est à la charge du bénéficiaire. Lorsqu'elle est acceptée, elle ouvre la possibilité au bénéficiaire de faire des demandes de consentements vers les ayants-droits (exploitation) couverts par le consentement chapeau.

Le bénéficiaire peut faire une demande de consentement chapeau pour une exploitation en particulier ou sur l'ensemble des exploitations gérées par l'ayant-droit complémentaire. Lorsqu'une demande de consentement chapeau est émise, l'ayant-droit complémentaire dispose d'un temps limité pour accepter ou refuser le consentement chapeau. Une fois le délai passé, le consentement chapeau est considéré comme accepté par l'ayant-droit complémentaire. Le délai de signature est paramètrable pour chaque exigence de consentement.

Point d'attention :

  • La création d'une demande de consentement chapeau se fait via API. Il n'est pas prévu dans cette version d'ajouter cette fonctionnalité dans l'Espace Pro ou dans le portail d'administration.

Appels API

Création du consentement chapeau

Route : headConsents/headConsentsDenormalized
Méthode : POST
Description :

Route permettant d'ajouter un consentement chapeau avec les identifiants métiers

Propriété Type Obligatoire Description Défaut Exemple
rightholder_business_identifier string Non Identifiant métier de l'exploitation. Null pour une demande globale FR29031987
additional_rightholder_siret string Oui Siret de l'entreprise ayant-droit complémentaire 24453630980002
beneficiary_siret string Non Siret de l'entreprise bénéficiaire Siret de l'entreprise connectée 24453630980002
domain_business_identifier string Oui Identifiant métier du domaine zootechnique
family_business_identifier string Oui Identifiant métier de la famille de données BGES
usage_business_identifier string Oui Identifiant métier de l'usage REGL
starting_date string Oui Date de début de validité du consentement chapeau 2023-05-17T12:37:05.546Z
ending_date string Non Date de fin de validité du consentement chapeau 2024-05-17T12:37:05.546Z
Exemple d'appel
Exemple de requête
curl 
  --location 'https://api.agata-consent.com/headConsents/headConsentsDenormalized'
  --header 'accept: application/json'
  --data-raw '{
    "rightholder_business_identifier": "FR29031987",
    "additional_rightholder_siret": "24453630980002",
    "beneficiary_siret": "24453630980002",
    "domain_business_identifier": "zootechnique",
    "family_business_identifier": "BGES",
    "usage_business_identifier": "REGL",
    "starting_date": "2023-05-17T12:37:05.546Z",
    "ending_date": "2024-05-17T12:37:05.546Z"
   }'
Réponse
Code Titre Description
201 OK Retourne le consentement chapeau
400 Bad Request Une des données saisies est erronée
403 Forbidden L'acteur bénéficiaire doit être actif
403 Forbidden L'acteur bénéficiaire doit être abonné au domaine
409 Conflict Un consentement chapeau ou un demande identique ne doivent pas déjà exister
{
    "id": "00001dea-9735-4c08-a708-d55163c5d9ee",
    "additional_rightholder": {
    "id": "0f24f33b-3450-4ee4-8d3b-3b5f40042d7d",
    "name": "COOPER ELEVAGE CENTRE NORD ET AUBE",
    "business_identifier": "77571835600022",
    "siret": "77571835600022",
    "address": "5 rue jules rimet",
    "postal_code": "89400",
    "city": "MIGENNES",
    "type": "ACTOR"
    },
    "beneficiary": {
    "id": "1dab4f22-58fd-4208-8a98-e57e1424c919",
    "name": "OXYGEN LABORATOIRES D'analyses",
    "business_identifier": "38347161200028",
    "siret": "38347161200028",
    "address": "117 rue d'arras",
    "postal_code": "62130",
    "city": "SAINT-POL-SUR-TERNOISE",
    "type": "ACTOR"
    },
    "rightholder": {
    "id": "aef5d461-bab2-4670-b410-b274dea76545",
    "name": "GAEC RECONNU DECROIX",
    "business_identifier": "FR62822022",
    "siret": "40093896500011",
    "address": "6 ROUTE DE CAUMONT",
    "postal_code": "62390",
    "city": "TOLLENT",
    "type": "OWNER"
    },
    "domain": {
    "id": "54cd4519-e9f8-49a3-9547-a924714072ab",
    "name": "Zootechnique",
    "business_identifier": "zootechnique"
    },
    "family": {
    "id": "38af4ef3-49ad-49ad-89f7-2a2976bb89a7",
    "name": "Bovin Donnees Controle Laitier",
    "business_identifier": "BCL"
    },
    "usage": {
    "id": "45089f4e-bbc8-4e42-a79f-affd5f09476c",
    "name": "R&D",
    "description": "Recherche et Developpement",
    "business_identifier": "RETD"
    },
    "starting_date": "2023-05-17T14:25:06.101Z",
    "ending_date": "2025-05-17T14:25:06.101Z",
    "state": "REQUESTED",
    "creation_date": "2023-05-17T14:25:06.101Z"
}

HeadConsentGetModel

Propriété Type Nullable Description
id UUID Non Identifiant unique du consentement chapeau
additional_rightholder CompanyGetModel Non Acteur ayant droit complémentaire, destinataire du consentement chapeau
beneficiary CompanyGetModel Non Acteur bénéficiaire, demandeur de l'accès aux données
rightholder CompanyGetModel Oui Ayant droit concerné par le consentement chapeau (exploitation), null si demande globale
domain DomainLightGetModel Non Domaine
family FamilyLightGetModel Non Famille des données
usage UsageLightGetModel Non Usage des données
starting_date DateTime Non Date de début d'application du consentement chapeau
ending_date DateTime Oui Date de fin d'application du consentement chapeau
state string Non Etat du consentement (REQUESTED à la création)
creation_date DateTime Non Date de création de la demande

Validation / refus d'un consentement de chapeau

Route : headConsents/{headConsentId}
Méthode : PATCH
Description :

L'api de validation / refus n'est pas prévue en dénormalisée car son utilisation impliquerait de passer tous les champs utilisés lors de la création pour trouver le consentement chapeau à modifier. Comme son nom l'indique, cette route est prévue pour accepter ou refuser un consentement chapeau.

L'usage de cette API est prévu pour valider ou refuser la demande de consentement chapeau. Pour annuler une demande, le bénéficiaire, porteur de domaine ou l'ayant droit complémentaire devront utiliser l'api DELETE.

Propriété Type Obligatoire Description Défaut Exemple
state string Oui Statut du consentement chapeau (VALIDATED ou REVOKED). REVOKED
refusal_reason string Non Cause de rejet. Obligatoire si l'état est à REVOKED Null Un accord doit être d'abord être trouvé entre nos société respectives.
Exemple d'appel
Exemple de requête
curl 
  --location 'https://api.agata-consent.com/headConsents/00001dea-9735-4c08-a708-d55163c5d9ee'
  --header 'accept: application/json'
  --data-raw '{
    "state": "VALIDATED"
    }
    // ou
    {
    "state": "REJECTED",
    "refusal_reason": "Un accord doit être d'abord être trouvé entre nos société respectives."
    }'
Réponse
Code Titre Description
201 OK Retourne le consentement chapeau
400 Bad Request Le statut du consentement chapeau doit être à REQUESTED
403 Forbidden L'acteur connectée doit être l'ayant droit complémentaire
403 Forbidden Le délai de signature (requirement_consent_delay) ne doit pas être dépassé
404 Not Found Le consentement chapeau doit exister
{
    "id": "00001dea-9735-4c08-a708-d55163c5d9ee",
    "additional_rightholder": {
    "id": "0f24f33b-3450-4ee4-8d3b-3b5f40042d7d",
    "name": "COOPER ELEVAGE CENTRE NORD ET AUBE",
    "business_identifier": "77571835600022",
    "siret": "77571835600022",
    "address": "5 rue jules rimet",
    "postal_code": "89400",
    "city": "MIGENNES",
    "type": "ACTOR"
    },
    "beneficiary": {
    "id": "1dab4f22-58fd-4208-8a98-e57e1424c919",
    "name": "OXYGEN LABORATOIRES D'analyses",
    "business_identifier": "38347161200028",
    "siret": "38347161200028",
    "address": "117 rue d'arras",
    "postal_code": "62130",
    "city": "SAINT-POL-SUR-TERNOISE",
    "type": "ACTOR"
    },
    "rightholder": {
    "id": "aef5d461-bab2-4670-b410-b274dea76545",
    "name": "GAEC RECONNU DECROIX",
    "business_identifier": "FR62822022",
    "siret": "40093896500011",
    "address": "6 ROUTE DE CAUMONT",
    "postal_code": "62390",
    "city": "TOLLENT",
    "type": "OWNER"
    },
    "domain": {
    "id": "54cd4519-e9f8-49a3-9547-a924714072ab",
    "name": "Zootechnique",
    "business_identifier": "zootechnique"
    },
    "family": {
    "id": "38af4ef3-49ad-49ad-89f7-2a2976bb89a7",
    "name": "Bovin Donnees Controle Laitier",
    "business_identifier": "BCL"
    },
    "usage": {
    "id": "45089f4e-bbc8-4e42-a79f-affd5f09476c",
    "name": "R&D",
    "description": "Recherche et Developpement",
    "business_identifier": "RETD"
    },
    "starting_date": "2023-05-17T14:25:06.101Z",
    "ending_date": "2025-05-17T14:25:06.101Z",
    "state": "VALIDATED",
    "creation_date": "2023-05-17T14:25:06.101Z"
}

HeadConsentGetModel

Propriété Type Nullable Description
id UUID Non Identifiant unique du consentement chapeau
additional_rightholder CompanyGetModel Non Acteur ayant droit complémentaire, destinataire du consentement chapeau
beneficiary CompanyGetModel Non Acteur bénéficiaire, demandeur de l'accès aux données
rightholder CompanyGetModel Oui Ayant droit concerné par le consentement chapeau (exploitation), null si demande globale
domain DomainLightGetModel Non Domaine
family FamilyLightGetModel Non Famille des données
usage UsageLightGetModel Non Usage des données
starting_date DateTime Non Date de début d'application du consentement chapeau
ending_date DateTime Oui Date de fin d'application du consentement chapeau
state string Non Etat du consentement (REQUESTED à la création)
creation_date DateTime Non Date de création de la demande

Clotûre / annulation d'un consentement de chapeau

Route : headConsents/{headConsentId}?refusal_reason=Fin%20de%20contrat
Méthode : DELETE
Description :

L'api de cloture / annulation n'est pas prévue en dématerialisée car son utilisation impliquerai de passer tous les champs utilisés lors de la création pour trouver le consentement chapeau à modifier.

Point d'attention :

  • La cloture d'un consentement chapeau VALIDATED entraine automatiquement la cloture des consentements "éleveur" qui lui sont associés même si le consentement est rattaché à d'autres consentements chapeaux toujours valides.
Propriété Type Obligatoire Description Défaut Exemple
refusal_reason string Oui Cause de clotûre / annulation Fin de contrat.
Exemple d'appel
Exemple de requête
curl 
  --location 'https://api.agata-consent.com/headConsents/00001dea-9735-4c08-a708-d55163c5d9ee?Findecontrat'
  --header 'accept: application/json'
  --data-raw '{
    "refusal_reason": "Fin de contrat"
    }'
Exemple de réponse
Code Titre Description
201 OK Retourne le consentement chapeau
400 Bad Request Le statut du consentement chapeau doit être à VALIDATED ou REQUESTED
403 Forbidden L'acteur connecté doit être l'ayant droit complémentaire, le bénéficiaire ou le porteur de domaine
404 Not Found Le consentement chapeau doit exister
{
    "id": "00001dea-9735-4c08-a708-d55163c5d9ee",
    "additional_rightholder": {
    "id": "0f24f33b-3450-4ee4-8d3b-3b5f40042d7d",
    "name": "COOPER ELEVAGE CENTRE NORD ET AUBE",
    "business_identifier": "77571835600022",
    "siret": "77571835600022",
    "address": "5 rue jules rimet",
    "postal_code": "89400",
    "city": "MIGENNES",
    "type": "ACTOR"
    },
    "beneficiary": {
    "id": "1dab4f22-58fd-4208-8a98-e57e1424c919",
    "name": "OXYGEN LABORATOIRES D'analyses",
    "business_identifier": "38347161200028",
    "siret": "38347161200028",
    "address": "117 rue d'arras",
    "postal_code": "62130",
    "city": "SAINT-POL-SUR-TERNOISE",
    "type": "ACTOR"
    },
    "rightholder": {
    "id": "aef5d461-bab2-4670-b410-b274dea76545",
    "name": "GAEC RECONNU DECROIX",
    "business_identifier": "FR62822022",
    "siret": "40093896500011",
    "address": "6 ROUTE DE CAUMONT",
    "postal_code": "62390",
    "city": "TOLLENT",
    "type": "OWNER"
    },
    "domain": {
    "id": "54cd4519-e9f8-49a3-9547-a924714072ab",
    "name": "Zootechnique",
    "business_identifier": "zootechnique"
    },
    "family": {
    "id": "38af4ef3-49ad-49ad-89f7-2a2976bb89a7",
    "name": "Bovin Donnees Controle Laitier",
    "business_identifier": "BCL"
    },
    "usage": {
    "id": "45089f4e-bbc8-4e42-a79f-affd5f09476c",
    "name": "R&D",
    "description": "Recherche et Developpement",
    "business_identifier": "RETD"
    },
    "starting_date": "2023-05-17T14:25:06.101Z",
    "ending_date": "2023-05-18T14:25:06.101Z",
    "state": "REVOKED",
    "refusal_reason": "Fin de contrat",
    "creation_date": "2023-05-17T14:25:06.101Z"
}

HeadConsentGetModel

Propriété Type Nullable Description
id UUID Non Identifiant unique du consentement chapeau
additional_rightholder CompanyGetModel Non Acteur ayant droit complémentaire, destinataire du consentement chapeau
beneficiary CompanyGetModel Non Acteur bénéficiaire, demandeur de l'accès aux données
rightholder CompanyGetModel Oui Ayant droit concerné par le consentement chapeau (exploitation), null si demande globale
domain DomainLightGetModel Non Domaine
family FamilyLightGetModel Non Famille des données
usage UsageLightGetModel Non Usage des données
starting_date DateTime Non Date de début d'application du consentement chapeau
ending_date DateTime Oui Date de fin d'application du consentement chapeau
state string Non Etat du consentement (REQUESTED à la création)
creation_date DateTime Non Date de création de la demande

Recherche d'un consentement chapeau

Route : headConsents/{headConsentId}
Méthode : GET
Description :

L'api de recherche d'un consentement chapeau permet de rechercher un consentement chapeau via son identifiant unique.

Propriété Type Obligatoire Description Défaut Exemple
id string Oui Identifiant unique du consentement chapeau 00001dea-9735-4c08-a708-d55163c5d9ee
Exemple d'appel
Exemple de requête
curl 
  --location 'https://api.agata-consent.com/headConsents/00001dea-9735-4c08-a708-d55163c5d9ee'
  --header 'accept: application/json'
  --data-raw '{
    "id": "00001dea-9735-4c08-a708-d55163c5d9ee"
    }'
Exemple de réponse
Code Titre Description
201 OK Retourne le consentement chapeau
404 Not Found Le consentement chapeau doit exister
{
    "id": "00001dea-9735-4c08-a708-d55163c5d9ee",
    "additional_rightholder": {
    "id": "0f24f33b-3450-4ee4-8d3b-3b5f40042d7d",
    "name": "COOPER ELEVAGE CENTRE NORD ET AUBE",
    "business_identifier": "77571835600022",
    "siret": "77571835600022",
    "address": "5 rue jules rimet",
    "postal_code": "89400",
    "city": "MIGENNES",
    "type": "ACTOR"
    },
    "beneficiary": {
    "id": "1dab4f22-58fd-4208-8a98-e57e1424c919",
    "name": "OXYGEN LABORATOIRES D'analyses",
    "business_identifier": "38347161200028",
    "siret": "38347161200028",
    "address": "117 rue d'arras",
    "postal_code": "62130",
    "city": "SAINT-POL-SUR-TERNOISE",
    "type": "ACTOR"
    },
    "rightholder": {
    "id": "aef5d461-bab2-4670-b410-b274dea76545",
    "name": "GAEC RECONNU DECROIX",
    "business_identifier": "FR62822022",
    "siret": "40093896500011",
    "address": "6 ROUTE DE CAUMONT",
    "postal_code": "62390",
    "city": "TOLLENT",
    "type": "OWNER"
    },
    "domain": {
    "id": "54cd4519-e9f8-49a3-9547-a924714072ab",
    "name": "Zootechnique",
    "business_identifier": "zootechnique"
    },
    "family": {
    "id": "38af4ef3-49ad-49ad-89f7-2a2976bb89a7",
    "name": "Bovin Donnees Controle Laitier",
    "business_identifier": "BCL"
    },
    "usage": {
    "id": "45089f4e-bbc8-4e42-a79f-affd5f09476c",
    "name": "R&D",
    "description": "Recherche et Developpement",
    "business_identifier": "RETD"
    },
    "starting_date": "2023-05-17T14:25:06.101Z",
    "ending_date": "2023-05-18T14:25:06.101Z",
    "state": "REVOKED",
    "refusal_reason": "Fin de contrat",
    "creation_date": "2023-05-17T14:25:06.101Z"
}

HeadConsentGetModel

Propriété Type Nullable Description
id UUID Non Identifiant unique du consentement chapeau
additional_rightholder CompanyGetModel Non Acteur ayant droit complémentaire, destinataire du consentement chapeau
beneficiary CompanyGetModel Non Acteur bénéficiaire, demandeur de l'accès aux données
rightholder CompanyGetModel Oui Ayant droit concerné par le consentement chapeau (exploitation), null si demande globale
domain DomainLightGetModel Non Domaine
family FamilyLightGetModel Non Famille des données
usage UsageLightGetModel Non Usage des données
starting_date DateTime Non Date de début d'application du consentement chapeau
ending_date DateTime Oui Date de fin d'application du consentement chapeau
state string Non Etat du consentement (REQUESTED à la création)
refusal_reason string Oui Cause de cloture / annulation
creation_date DateTime Non Date de création de la demande

Recherche dénormalisé des consentements chapeaux

Route : headConsents/headConsentsDenormalized
Méthode : GET
Description :

L'api de recherche dénormalisée des consentements chapeaux permet de retrouver tous les consentements chapeaux correspondants aux critères fournis. Les recherches retournant une liste de résultats retournent un code 204 lorsqu'il n'y a pas de résultats correspondants à la recherche effectuée.

Propriété Type Obligatoire Description Défaut Exemple
activeOnly Bool Non Filtre sur les consentements chapeaux actifs true
rightholderBusinessIdentifier string Non Identifiant métier de l'ayant droit (N° exploitation) FR62822022
beneficiaryBusinessIdentifier string Non Identifiant métier du bénéficiaire (N° siret) 38347161200028
additionalRightholderBusinessIdentifier string Non Identifiant métier de l'ayant droit complémentaire (N° siret) 77571835600022
domainBusinessIdentifier string Non Identifiant métier du domaine zootechnique
familyBusinessIdentifier string Non Identifiant métier de la famille de données BCL
usageBusinessIdentifier string Non Identifiant métier de l'usage RETD
state string Non Statut du consentement VALIDATED
Exemple d'appel
Exemple de requête
curl 
  --location 'https://api.agata-consent.com/headConsents/headConsentsDenormalized'
  --header 'accept: application/json'
  --data-raw '{
    "activeOnly": "true",
    "rightholderBusinessIdentifier": "FR62822022",
    "beneficiaryBusinessIdentifier": "38347161200028",
    "additionalRightholderBusinessIdentifier": "77571835600022",
    "domainBusinessIdentifier": "zootechnique",
    "familyBusinessIdentifier": "BCL",
    "usageBusinessIdentifier": "RETD",
    "state": "VALIDATED"
    }'
Exemple de réponse
Code Titre Description
201 OK Retourne les consentements chapeaux correspondants aux critères
403 Forbidden L'acteur doit être abonné au domaine
404 Not Found L'acteur doit être partie prenante du consentement (ayant-droit complémentaire ou bénéficiaire)
[
    {
        "id": "00001dea-9735-4c08-a708-d55163c5d9ee",
        "additional_rightholder": {
        "id": "0f24f33b-3450-4ee4-8d3b-3b5f40042d7d",
        "name": "COOPER ELEVAGE CENTRE NORD ET AUBE",
        "business_identifier": "77571835600022",
        "siret": "77571835600022",
        "address": "5 rue jules rimet",
        "postal_code": "89400",
        "city": "MIGENNES",
        "type": "ACTOR"
        },
        "beneficiary": {
        "id": "1dab4f22-58fd-4208-8a98-e57e1424c919",
        "name": "OXYGEN LABORATOIRES D'analyses",
        "business_identifier": "38347161200028",
        "siret": "38347161200028",
        "address": "117 rue d'arras",
        "postal_code": "62130",
        "city": "SAINT-POL-SUR-TERNOISE",
        "type": "ACTOR"
        },
        "rightholder": {
        "id": "aef5d461-bab2-4670-b410-b274dea76545",
        "name": "GAEC RECONNU DECROIX",
        "business_identifier": "FR62822022",
        "siret": "40093896500011",
        "address": "6 ROUTE DE CAUMONT",
        "postal_code": "62390",
        "city": "TOLLENT",
        "type": "OWNER"
        },
        "domain": {
        "id": "54cd4519-e9f8-49a3-9547-a924714072ab",
        "name": "Zootechnique",
        "business_identifier": "zootechnique"
        },
        "family": {
        "id": "38af4ef3-49ad-49ad-89f7-2a2976bb89a7",
        "name": "Bovin Donnees Controle Laitier",
        "business_identifier": "BCL"
        },
        "usage": {
        "id": "45089f4e-bbc8-4e42-a79f-affd5f09476c",
        "name": "R&D",
        "description": "Recherche et Developpement",
        "business_identifier": "RETD"
        },
        "starting_date": "2023-05-17T14:25:06.101Z",
        "state": "VALIDATED",
        "creation_date": "2023-05-17T14:25:06.101Z"
    },
    { ... }
]

HeadConsentGetModel

Propriété Type Nullable Description
id UUID Non Identifiant unique du consentement chapeau
additional_rightholder CompanyGetModel Non Acteur ayant droit complémentaire, destinataire du consentement chapeau
beneficiary CompanyGetModel Non Acteur bénéficiaire, demandeur de l'accès aux données
rightholder CompanyGetModel Oui Ayant droit concerné par le consentement chapeau (exploitation), null si demande globale
domain DomainLightGetModel Non Domaine
family FamilyLightGetModel Non Famille des données
usage UsageLightGetModel Non Usage des données
starting_date DateTime Non Date de début d'application du consentement chapeau
ending_date DateTime Oui Date de fin d'application du consentement chapeau
state string Non Etat du consentement (REQUESTED à la création)
creation_date DateTime Non Date de création de la demande