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.

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
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
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
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
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
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
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
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
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 |