Gestion des demandes de consentements
Une demande de Consentement est un consentement en attente de signature (ou refus) par une Entreprise détentrice des données.
Pour rappel, afin qu'un consentement soit valide (au sens RGPD), il doit contenir les informations suivantes :
- l'identité du détenteur des données : l'Activité de l'entreprise détenant les données
- l’identité du responsable de traitement : une Entreprise agissant en tant que Bénéficiaire
- les catégories de données collectées : la Famille explicitant les catégories de données collectées
- les finalités du traitement : l'Usage qui sera fait des données collectées
- la durée de validité : la Période ou du moins la date de début à laquelle le Consentement commence à courir
Dans les chapitres précédents, vous avez abordé l'ensemble de ces concepts. Vous êtes donc en mesure de créer une demande de consentement agrégeant tous ces éléments.
Dans AGATA CONSENT, le Consentement (consent) contient les informations suivantes afin de répondre aux obligations réglementaires :
- L' identifiant unique du consentement sous la forme d'UUID : id
- L' Activité (basée sur le modèle activity) qui détient les droits des données (le rôle holder). Cette Activité peut être celle par Défaut pour porter sur le périmètre complet de l'Entreprise ou sur une autre Activité plus spécifique. Les informations incluses sont :
| Attribut d'une Activité | Type | Description |
|---|---|---|
| name | string | Dénomination de l'Activité |
| identifier_type | string | Type d'identifiant utilisé dans le business_identifier |
| business_identifier | string | Valeur de l'identifiant selon le type spécifié dans identifier_type |
| id | string | Identifiant unique (UUID) de l'Activité courante |
| company_id | string | Identifiant unique (UUID) de l'Entreprise mère de l'Activité courante |
- L' Entreprise (basé sur le modèle company) qui va bénéficier du droit à utiliser les données (rôle beneficiary) grâce au Consentement incluant :
| Attribut | Type | Description |
|---|---|---|
| corporate_name | string | Raison sociale de l'entreprise bénéficiaire |
| address | string | Adresse postale du Bénéficiaire |
| postal_code | string | Code postal du Bénéficiaire |
| city | string | Commune du Bénéficiaire |
| id | string | Identifiant unique (UUID) du Bénéficiaire |
| identifier_type | string | Type d'identifiant utilisé dans le business_identifier |
| business_identifier | string | Valeur de l'identifiant selon le type spécifié dans identifier_type |
- L' Entreprise (basé sur le modèle company) à l'initiative de la création de la demande de consentement (rôle creator). Cette donnée sera dans la plupart des cas identique au Bénéficiaire. Les informations incluses sont :
| Attribut | Type | Description |
|---|---|---|
| corporate_name | string | Raison sociale du Créateur |
| address | string | Adresse postale du Créateur |
| postal_code | string | Code postal du Créateur |
| city | string | Commune du Créateur |
| id | string | Identifiant unique (UUID) du Créateur |
| identifier_type | string | Type d'identifiant utilisé dans le business_identifier |
| business_identifier | string | Valeur de l'identifiant selon le type spécifié dans identifier_type |
- Le Domaine (domain) sur lequel est rattaché le consentement et incluant :
| Attribut | Type | Description |
|---|---|---|
| name | string | Dénomination du Domaine |
| id | string | Identifiant unique (UUID) du Domaine |
- La Famille de données (family) sur laquelle porte le Consentement et incluant :
| Attribut | Type | Description |
|---|---|---|
| name | string | Nom de la Famille de données |
| id | string | Identifiant unique (UUID) de la Famille de données |
- Les traitements (usage) auxquels sont destinés les données incluant :
| Attribut | Type | Description |
|---|---|---|
| name | string | Nom de l'Usage |
| description | string | Description de l'Usage |
| id | string | Identifiant unique (UUID) de l'Usage |
- Les informations liées à un éventuel contrat de référence (contract) auquel les consentements sont adossés :
| Attribut | Type | Description |
|---|---|---|
| contract_signature_date | string | Date de signature du contrat de référence |
| contract_ending_date | string | Date de fin du contrat de référence |
| contract_reference | string | Référence du contrat adossé au consentement |
- L' historique du consentement (history) avec les éléments de traçabilité :
| Attribut | Type | Description |
|---|---|---|
| created_by | string | Identifiant unique (UUID) de l'entité à l'origine de la création de la demande de consentement |
| created_by_user_type | string | Type d'entité ayant crée la demande de Consentement : COMPANY | ACTIVITY |
| created_at | string | Date de création de la demande de consentement |
| accepted_by | string | Identifiant unique (UUID) de l'entité ayant signé la demande de consentement |
| accepted_by_user_type | string | Type d'entité ayant signé la demande de Consentement : COMPANY | ACTIVITY |
| accepted_at | string | Date de signature de la demande de consentement |
| rejected_by | string | Identifiant unique (UUID) de l'entité ayant refusé la demande de consentement |
| rejected_by_user_type | string | Type d'entité ayant refusé la demande de Consentement : COMPANY | ACTIVITY |
| rejected_at | string | Date de refus de la demande de consentement |
| closed_by | string | Identifiant unique (UUID) de l'entité ayant clôturé le consentement |
| closed_by_user_type | string | Type d'entité ayant clôturé le Consentement : COMPANY | ACTIVITY |
| closed_at | string | Date de clôture du Consentement |
- les informations de validité temporelle du consentement :
| Attribut | Type | Description |
|---|---|---|
| starting_date | string | Date de début de validité du consentement |
| ending_date | string | Date de fin de validité du consentement |
| last_update_date | string | Date de dernière mise à jour du consentement |
- le motif d'un éventuel refus de signature de consentement : refusal_reason
- l' état courant du consentement (state) qui peut être :
| Valeur de state | Description |
|---|---|
| REQUESTED | Demande de consentement en attente de signature par le Détenteur |
| VALIDATED | Consentement signé par le Détenteur et donc valide |
| REVOKED | Consentement refusé ou révoqué par le Détenteur. Une Demande de consentement refusée (par le Détenteur) possède une date renseignée dans le champ rejected_at et closed_at. Un Consentement clôturé (par le Détenteur ou le Bénéficiaire) possède uniquement une date renseignée dans le champ closed_at. |
Vérifier l'existence d'un consentement
Le cas d'usage le plus courant d'AGATA CONSENT est l'interrogation du système pour vérifier la présence ou non d'un Consentement selon certaines conditions :
- Pour un Détenteur et un Bénéficiaire identifiés
- Portant sur une Famille de données précise
- Selon un Usage spécifique
- Sur une période de temps précisée
Requête
HEAD /companies/{companyId}/activities/{activityId}/consents?activeAt={active}&beneficiaryId={beneficiary_id}&familyId={family_id}&usageId={usage_id}&contract_reference={contract_reference}
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| companyId * | string | Oui | Identifiant unique (UUID) de l'Entreprise visée | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| activityId * | string | Oui | Identifiant unique (UUID) de l'Activité visée | eefb8f5a-a220-2E78-988e-e1dcaf719856 |
| activeAt * | string | Oui | Date pour laquelle le consentement recherché doit être actif | 2022-08-25T19:32:56.109Z |
| beneficiaryId * | string | Oui | Identifiant unique (UUID) du Bénéficiaire du Consentement | 5a978f05-ce36-4a66-a271-b09c202c0f13 |
| familyId * | string | Oui | Identifiant unique (UUID) de la Famille | 0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50 |
| usageId * | string | Oui | Identifiant unique (UUID) de l'Usage | 1d5d4ec4-0a83-49a7-9209-f78a7af9360d |
| contractReference | string | Non | Référence du contrat associé au consentement | ref_32423_frwe_20191002 |
curl -X 'HEAD' \
'https://api.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities/eefb8f5a-a220-2E78-988e-e1dcaf719856/consents?activeAt=2022-08-25T19%3A32%3A56.109Z&beneficiaryId=5a978f05-ce36-4a66-a271-b09c202c0f13&familyId=3fa85f64-5717-4562-b3fc-2c963f66afa6&usageId=678df96b-b61e-4adf-9912-0efd1181d057&contractReference=ref_32423_frwe_20191002' \
-H 'accept: application/json'
Réponse
| Code | Titre | Description |
|---|---|---|
| 200 | OK | Succès |
| 204 | No content | Aucun Consentement correspondant aux critères trouvé |
| 400 | Bad request | Syntaxe de la requête invalide |
{
"OK"
}
{
"NO CONTENT"
}
Créer une demande de Consentement
Enregistrer une Demande de consentement en précisant le Bénéficiaire, la Famille, l'Usage et la Période.
Requête
POST /companies/{companyId}/activities/{activityId}/consents
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| companyId * | string | Oui | Identifiant unique (UUID) de l'Entreprise visée | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| activityId * | string | Oui | Identifiant unique (UUID) de l'Activité visée | eefb8f5a-a220-2E78-988e-e1dcaf719856 |
| Body | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| beneficiary_id * | string | Oui | Identifiant unique (UUID) du Bénéficiaire des données | 5a978f05-ce36-4a66-a271-b09c202c0f13 |
| family_id * | string | Oui | Identifiant Unique (UUID) de la Famille de données à laquelle se réfère la demande de Consentement | 736c6eb0-5ca2-4c0c-82d1-197cef752790 |
| usage_id * | string | Oui | Identifiant Unique (UUID) de l'Usage prévu des données | 678df96b-b61e-4adf-9912-0efd1181d057 |
| contract_reference | string | Non | Référence du Contrat adossé à la demande de Consentement | ref_32423_frwe_20191002 |
| contract_signature_date | string | Non | Date de signature du Contrat adossé à la demande de Consentement | 2022-07-13T08:31:46.375Z |
| contract_ending_date | string | Non | Date de fin du Contrat adossé à la demande de Consentement | 2023-07-13T08:31:46.375Z |
| starting_date * | string | Oui | Date de début de validité du Consentement | 2022-07-13T08:31:46.375Z |
| ending_date | string | Non | Date de fin de validité du Consentement | 2023-07-13T08:31:46.375Z |
curl -X 'POST' \
'https://api.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities/eefb8f5a-a220-2E78-988e-e1dcaf719856/consents' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"beneficiary_id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"family_id": "736c6eb0-5ca2-4c0c-82d1-197cef752790",
"usage_id": "678df96b-b61e-4adf-9912-0efd1181d057",
"starting_date": "2022-07-13T08:31:46.375Z"
}'
curl -X 'POST' \
'https://api.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/activities/eefb8f5a-a220-2E78-988e-e1dcaf719856/consents' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"beneficiary_id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"family_id": "736c6eb0-5ca2-4c0c-82d1-197cef752790",
"usage_id": "678df96b-b61e-4adf-9912-0efd1181d057",
"contract_reference": "ref_32423_frwe_20191002",
"contract_signature_date": "2022-07-13T08:31:46.375Z",
"contract_ending_date": "2023-07-13T08:31:46.375Z",
"starting_date": "2022-07-13T08:31:46.375Z",
"ending_date": "2023-07-13T08:31:46.375Z"
}'
Réponse
| Code | Titre | Description |
|---|---|---|
| 201 | Created | Demande de Consentement créée avec succès |
| 400 | Bad request | Syntaxe de la requête invalide |
| 409 | Conflict | La demande de Consentement existe déjà |
| Body | Type | Description | Exemple |
|---|---|---|---|
| holder | object | Activité détentrice des droits visés par le Consentement | |
| beneficiary | object | L'Entreprise qui va bénéficier du droit à utiliser les données | |
| creator | object | L'Entreprise à l'initiative de la création de la demande de consentement | |
| domain | object | Domaine concerné par le Consentement | |
| family | object | Famille de données sur laquelle porte le Consentement | |
| usage | object | Usage de données sur lequel porte le Consentement | |
| contract | object | Informations de contractualisation éventuellement lié au Consentement | |
| history | object | Historique des actions effectuées sur le Consentement | |
| last_update_date | string | Date de dernière mise à jour du Consentement | 2022-06-30T13:39:33.269Z |
| starting_date | string | Date de début de validité du Consentement | 2022-06-08T15:11:34.254Z |
| ending_date | string | Date de fin de validité du consentement | |
| id | string | Identifiant unique (UUID) du Consentement | cf890c9d-a0de-458b-aaf4-6b07d08963bf |
| refusal_reason | string | Motif d'un éventuel refus de signature de Consentement | |
| state | string | État courant du consentement : REQUESTED | VALIDATED | REVOKED | REQUESTED |
{
"holder": {
"name": "Atelier Lait",
"business_identifier": "FR23456789",
"id": "cb9062e2a-ca7d-414f-8838-1124ad976fc7",
"siret": "28462932000013"
},
"beneficiary": {
"corporate_name": "CABINET VÉTÉRINAIRE MONTANT",
"address": "LA BLANCHE HERMINE",
"postal_code": "23004",
"city": "GUÉRET",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"siret": "33987292100023"
},
"creator": {
"corporate_name": "CABINET VÉTÉRINAIRE MONTANT",
"address": "LA BLANCHE HERMINE",
"postal_code": "23004",
"city": "GUÉRET",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"siret": "33987292100023"
},
"domain": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Sanitaire"
},
"family": {
"id": "736c6eb0-5ca2-4c0c-82d1-197cef752790",
"name": "BOVIN : Carnet Sanitaire (pathologie, traitement)"
},
"usage": {
"description": "Suivi sanitaire lors des visites de contrôle",
"id": "678df96b-b61e-4adf-9912-0efd1181d057",
"name": "Abattoir - Suivi Perf carcasses"
},
"contract": {
"contract_ending_date": "2023-07-13T08:31:46.375Z",
"contract_reference": "ref_32423_frwe_20191002",
"contract_signature_date": "2022-07-13T08:31:46.375Z"
},
"history": {
"created_by": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"created_at": "2022-06-30T13:39:33.269Z",
"accepted_by": null,
"accepted_at": null,
"rejected_by": null,
"rejected_at": null,
"closed_by": null,
"closed_at": null
},
"last_update_date": "2022-06-30T13:39:33.269Z",
"starting_date": "2022-06-08T15:11:34.254Z",
"ending_date": null,
"id": "cf890c9d-a0de-458b-aaf4-6b07d08963bf",
"refusal_reason": null,
"state": "REQUESTED",
}
Lister les Consentements
Lister l'ensemble des Consentements d'une Activité selon des critères de recherche spécifiques.
Requête
GET /companies/{companyId}/activities/{activityId}/consents
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| companyId * | string | Oui | Identifiant unique (UUID) de l'Entreprise visée | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| activityId * | string | Oui | Identifiant unique (UUID) de l'Activité visée | eefb8f5a-a220-2E78-988e-e1dcaf719856 |
| beneficiaryId | string | Non | Identifiant unique (UUID) du Bénéficiaire du Consentement | 5a978f05-ce36-4a66-a271-b09c202c0f13 |
| creatorId | string | Non | Identifiant unique (UUID) Créateur du Consentement | 5a978f05-ce36-4a66-a271-b09c202c0f13 |
| domainId | string | Non | Identifiant unique (UUID) du Domaine | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
| familyId | string | Non | Identifiant unique (UUID) de la Famille | 0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50 |
| usageId | string | Non | Identifiant unique (UUID) de l'Usage | 1d5d4ec4-0a83-49a7-9209-f78a7af9360d |
| state | string | Non | Statut du Consentement : REQUESTED | VALIDATED | REVOKED | VALIDATED |
| activeOnly | booléen | Non | Filtre les consentements pour ne retourner que ceux actifs à la date du jour | true |
| contractReference | string | Non | Référence du contrat associé au consentement | ref_32423_frwe_20191002 |
curl -X 'GET' \
'https://api.agata-consent.com/companies/f3c281e1-85bf-463f-809f-9648bf297cf7/activities/eefb8f5a-a220-2E78-988e-e1dcaf719856/consents?beneficiaryId=5a978f05-ce36-4a66-a271-b09c202c0f13&creatorId=5a978f05-ce36-4a66-a271-b09c202c0f13&domainId=3fa85f64-5717-4562-b3fc-2c963f66afa6&familyId=0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50&usageId=1d5d4ec4-0a83-49a7-9209-f78a7af9360d&state=VALIDATED&activeOnly=true&contractReference=ref_32423_frwe_20191002' \
-H 'accept: application/json'
Réponse
| Code | Titre | Description |
|---|---|---|
| 200 | OK | Retourne un tableau des Consentements |
| 204 | Not Found | Aucun Consentement correspondant à la recherche |
| 400 | Bad request | Syntaxe de la requête invalide |
| Body | Type | Description | Exemple |
|---|---|---|---|
| holder | object | Activité détentrice des droits visés par le Consentement | |
| beneficiary | object | L'Entreprise qui va bénéficier du droit à utiliser les données | |
| creator | object | L'Entreprise à l'initiative de la création de la demande de consentement | |
| domain | object | Domaine concerné par le Consentement | |
| family | object | Famille de données sur laquelle porte le Consentement | |
| usage | object | Usage de données sur lequel porte le Consentement | |
| contract | object | Informations de contractualisation éventuellement lié au Consentement | |
| history | object | Historique des actions effectuées sur le Consentement | |
| last_update_date | string | Date de dernière mise à jour du Consentement | 2022-06-30T13:39:33.269Z |
| starting_date | string | Date de début de validité du Consentement | 2022-06-08T15:11:34.254Z |
| ending_date | string | Date de fin de validité du consentement | 2023-07-08T15:11:34.254Z |
| id | string | Identifiant unique (UUID) du Consentement | bc04f4b1-5b4e-4316-aa57-8d67ec8a983d |
| refusal_reason | string | Motif d'un éventuel refus de signature de Consentement | Données confidentielles |
| state | string | État courant du consentement : REQUESTED | VALIDATED | REVOKED | VALIDATED |
[
{
"holder": {
"name": "Atelier Bovin",
"identifier_type": "EDE_NUMBER",
"business_identifier": "FR35167340",
"id": "2a06d08d-4ac0-4022-87cf-481271aea05d",
"company_id": "fef1b25a-e980-4bd6-9ced-e1c4df714665"
},
"beneficiary": {
"corporate_name": "COOPÉRATIVE AGRICOLE",
"address": "96 rue des agriculteurs CS 23240",
"postal_code": "81011",
"city": "ALBI",
"identifier_type": "SIRET",
"business_identifier": "33987292100023",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13"
},
"creator": {
"corporate_name": "COOPÉRATIVE AGRICOLE",
"address": "96 rue des agriculteurs CS 23240",
"postal_code": "81011",
"city": "ALBI",
"identifier_type": "SIRET",
"business_identifier": "33987292100023",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13"
},
"domain": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Zootechnique partagée"
},
"family": {
"id": "0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50",
"name": "reproduction"
},
"usage": {
"description": "Appui technique éleveur périmètre NUTRITION",
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Conseil en Élevage - Nutrition"
},
"contract": {
"contract_ending_date": "2022-07-30T13:39:33.269Z",
"contract_reference": "ref_32423_frwe_20191002",
"contract_signature_date": "2022-06-30T13:39:33.269Z"
},
"history": {
"created_by":"5a978f05-ce36-4a66-a271-b09c202c0f13",
"created_by_user_type":"COMPANY",
"created_at":"2022-06-30T13:39:33.269Z",
"accepted_by":"155f5deb-a7f3-49e9-9392-cab32b9c7980",
"accepted_by_user_type":"COMPANY",
"accepted_at":"2022-06-30T13:39:33.269Z",
"rejected_by": null,
"rejected_by_user_type": null,
"rejected_at": null,
"closed_by":"155f5deb-a7f3-49e9-9392-cab32b9c7980",
"closed_by_user_type":"COMPANY",
"closed_at":"2022-07-30T13:39:33.269Z"
},
"last_update_date": "2022-06-30T13:39:33.269Z",
"starting_date": "2022-06-08T15:11:34.254Z",
"ending_date": "2023-07-08T15:11:34.254Z",
"id": "bc04f4b1-5b4e-4316-aa57-8d67ec8a983d",
"refusal_reason": null,
"state": "REVOKED",
}
]
Récupérer un Consentement
Recherche d'un consentement lié à une activité par son id unique.
Requête
GET /companies/{companyId}/activities/{activityId}/consents/{consentId}
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| companyId * | string | Oui | Identifiant unique (UUID) de l'Entreprise portant l'Activité liée au consentement | f3c281e1-85bf-463f-809f-9648bf297cf7 |
| activityId * | string | Oui | Identifiant unique (UUID) de l'Activité visée | eefb8f5a-a220-2E78-988e-e1dcaf719856 |
| consentId | string | Non | Identifiant unique (UUID) du Consentement | 5a978f05-ce36-4a66-a271-b09c202c0f13 |
curl -X 'GET' \
'https://api.agata-consent.com/companies/f3c281e1-85bf-463f-809f-9648bf297cf7/activities/eefb8f5a-a220-2E78-988e-e1dcaf719856/consents/5a978f05-ce36-4a66-a271-b09c202c0f13' \
-H 'accept: application/json'
Réponse
| Code | Titre | Description |
|---|---|---|
| 200 | OK | Retourne le Consentement |
| 400 | Bad request | Syntaxe de la requête invalide |
| 404 | Not Found | Pas de Consentement avec cet id |
| Body | Type | Description | Exemple |
|---|---|---|---|
| holder | object | Activité détentrice des droits visés par le Consentement | |
| beneficiary | object | L'Entreprise qui va bénéficier du droit à utiliser les données | |
| creator | object | L'Entreprise à l'initiative de la création de la demande de consentement | |
| domain | object | Domaine concerné par le Consentement | |
| family | object | Famille de données sur laquelle porte le Consentement | |
| usage | object | Usage de données sur lequel porte le Consentement | |
| contract | object | Informations de contractualisation éventuellement lié au Consentement | |
| history | object | Historique des actions effectuées sur le Consentement | |
| last_update_date | string | Date de dernière mise à jour du Consentement | 2022-06-30T13:39:33.269Z |
| starting_date | string | Date de début de validité du Consentement | 2022-06-08T15:11:34.254Z |
| ending_date | string | Date de fin de validité du consentement | 2023-07-08T15:11:34.254Z |
| id | string | Identifiant unique (UUID) du Consentement | bc04f4b1-5b4e-4316-aa57-8d67ec8a983d |
| refusal_reason | string | Motif d'un éventuel refus de signature de Consentement | Données confidentielles |
| state | string | État courant du consentement : REQUESTED | VALIDATED | REVOKED | VALIDATED |
{
"holder": {
"name": "Engraissement",
"business_identifier": "FR14987123",
"id": "cb9062e2a-ca7d-414f-8838-1124ad976fc7",
"siret": "56142932000024"
},
"beneficiary": {
"corporate_name": "ABATTOIR B-A-Y",
"address": "LA CROIX BLANCHE",
"postal_code": "77350",
"city": "LE MEE-SUR-SEINE",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"siret": "33987292100023"
},
"creator": {
"corporate_name": "ABATTOIR B-A-Y",
"address": "LA CROIX BLANCHE",
"postal_code": "77350",
"city": "LE MEE-SUR-SEINE",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"siret": "33987292100023"
},
"domain": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Zootechnique partagée"
},
"family": {
"id": "736c6eb0-5ca2-4c0c-82d1-197cef752790",
"name": "croissance"
},
"usage": {
"description": "Création de rapport de suivi des carcasses",
"id": "678df96b-b61e-4adf-9912-0efd1181d057",
"name": "Abattoir - Suivi Perf carcasses"
},
"contract": {
"contract_ending_date": null,
"contract_reference": null,
"contract_signature_date": null
},
"history": {
"created_by": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"created_at": "2022-06-30T13:39:33.269Z",
"accepted_by": "cb9062e2a-ca7d-414f-8838-1124ad976fc7",
"accepted_at": "2022-06-30T13:39:33.269Z",
"rejected_by": null,
"rejected_at": null,
"closed_by": null,
"closed_at": null
},
"last_update_date": "2022-06-30T13:39:33.269Z",
"starting_date": "2022-06-08T15:11:34.254Z",
"ending_date": null,
"id": "cf890c9d-a0de-458b-aaf4-6b07d08963bf",
"refusal_reason": null,
"state": "VALIDATED",
}
Rechercher des Consentements d'une entreprise
Recherche des Consentements liés à une Entreprise selon son statut de Bénéficiaire ou Détenteur.
Requête
GET /companies/{companyId}/consents?companyConsentRole={companyConsentRole}
Le paramètre companyConsentRole permet de définir le positionnement de l'Entreprise vis à vis du/des Consentement(s) recherché(s) :
Précisions
companyConsentRole=HOLDER: la recherche porte sur les Consentements pour lesquels l'Entreprise est Détentrice.companyConsentRole=BENEFICIARY: la recherche porte sur les Consentements pour lesquels l'Entreprise est Bénéficiaire.
| Paramètre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
| companyId * | string | Oui | Identifiant unique (UUID) de l'Entreprise portant l'Activité liée au consentement | fef1b25a-e980-4bd6-9ced-e1c4df714665 |
| companyConsentRole * | string | Oui | Statut de l'entreprise vis à vis du Consentement recherché : BENEFICIARY | HOLDER | HOLDER |
| domainId | string | Non | Identifiant unique (UUID) du Domaine | 3fa85f64-5717-4562-b3fc-2c963f66afa6 |
| familyId | string | Non | Identifiant unique (UUID) de la Famille | 0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50 |
| usageId | string | Non | Identifiant unique (UUID) de l'Usage | 1d5d4ec4-0a83-49a7-9209-f78a7af9360d |
| state | string | Non | Statut du Consentement : REQUESTED | VALIDATED | REVOKED | VALIDATED |
| activeOnly | booléen | Non | Filtre les consentements pour ne retourner que ceux actifs à la date du jour | true |
| contractReference | string | Non | Référence du contrat associé au consentement | ref_32423_frwe_20191002 |
curl -X 'GET' \
'https://api.agata-consent.com/companies/fef1b25a-e980-4bd6-9ced-e1c4df714665/consents?companyConsentRole=HOLDER&domainId=3fa85f64-5717-4562-b3fc-2c963f66afa6&familyId=0a63fcfe-e8fa-4acc-81a2-72fcfe0d7b50&usageId=1d5d4ec4-0a83-49a7-9209-f78a7af9360d&state=VALIDATED&activeOnly=true&contractReference=ref_32423_frwe_20191002' \
-H 'accept: application/json'
Réponse
| Code | Titre | Description |
|---|---|---|
| 200 | OK | Retourne le Consentement |
| 204 | No content | Aucun Consentement correspondant à la recherche |
| 400 | Bad request | Syntaxe de la requête invalide |
| Body | Type | Description | Exemple |
|---|---|---|---|
| holder | object | Activité détentrice des droits visés par le Consentement | |
| beneficiary | object | L'Entreprise qui va bénéficier du droit à utiliser les données | |
| creator | object | L'Entreprise à l'initiative de la création de la demande de consentement | |
| domain | object | Domaine concerné par le Consentement | |
| family | object | Famille de données sur laquelle porte le Consentement | |
| usage | object | Usage de données sur lequel porte le Consentement | |
| contract | object | Informations de contractualisation éventuellement lié au Consentement | |
| history | object | Historique des actions effectuées sur le Consentement | |
| last_update_date | string | Date de dernière mise à jour du Consentement | 2022-06-30T13:39:33.269Z |
| starting_date | string | Date de début de validité du Consentement | 2022-06-08T15:11:34.254Z |
| ending_date | string | Date de fin de validité du consentement | 2023-07-08T15:11:34.254Z |
| id | string | Identifiant unique (UUID) du Consentement | bc04f4b1-5b4e-4316-aa57-8d67ec8a983d |
| refusal_reason | string | Motif d'un éventuel refus de signature de Consentement | Données confidentielles |
| state | string | État courant du consentement : REQUESTED | VALIDATED | REVOKED | VALIDATED |
{
"holder": {
"name": "Engraissement",
"business_identifier": "FR14987123",
"id": "cb9062e2a-ca7d-414f-8838-1124ad976fc7",
"siret": "56142932000024"
},
"beneficiary": {
"corporate_name": "ABATTOIR B-A-Y",
"address": "LA CROIX BLANCHE",
"postal_code": "77350",
"city": "LE MEE-SUR-SEINE",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"siret": "33987292100023"
},
"creator": {
"corporate_name": "ABATTOIR B-A-Y",
"address": "LA CROIX BLANCHE",
"postal_code": "77350",
"city": "LE MEE-SUR-SEINE",
"id": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"siret": "33987292100023"
},
"domain": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Zootechnique partagée"
},
"family": {
"id": "736c6eb0-5ca2-4c0c-82d1-197cef752790",
"name": "croissance"
},
"usage": {
"description": "Création de rapport de suivi des carcasses",
"id": "678df96b-b61e-4adf-9912-0efd1181d057",
"name": "Abattoir - Suivi Perf carcasses"
},
"contract": {
"contract_ending_date": null,
"contract_reference": null,
"contract_signature_date": null
},
"history": {
"created_by": "5a978f05-ce36-4a66-a271-b09c202c0f13",
"created_at": "2022-06-30T13:39:33.269Z",
"accepted_by": "cb9062e2a-ca7d-414f-8838-1124ad976fc7",
"accepted_at": "2022-06-30T13:39:33.269Z",
"rejected_by": null,
"rejected_at": null,
"closed_by": null,
"closed_at": null
},
"last_update_date": "2022-06-30T13:39:33.269Z",
"starting_date": "2022-06-08T15:11:34.254Z",
"ending_date": null,
"id": "cf890c9d-a0de-458b-aaf4-6b07d08963bf",
"refusal_reason": null,
"state": "VALIDATED",
}
Mise en application
Rappel
En tenant compte des précédentes explications, la création de la Demande de consentement adressée au Détenteur est désormais possible et se déroule en XX étapes :
-
La création du Détenteur si celui ci n'existe pas en amont :
POST /companiespour la création de la company.POST /companies/{company_id}/activitiespour la création de l'Activity si celle visée par le Consentement ne concernant pas l'Activité créée par défaut.
-
La récupération de la Famille de données afin de définir le périmètre des données concernées :
-
La récupération de l'Usage afin de définir les traitements appliquées prévus sur les données :
-
La création de la Demande de consentement avec ces éléments :
Contexte du cas d'usage
Nous souhaitons créer une Demande de consentement satisfaisant les exigences suivantes :
- Nous évoluons sur le Domaine 3fa85f64-5717-4562-b3fc-2c963f66afa6
- Entreprise détentrice : d6c0dfab-fcae-4faf-ae32-bc8ca90c01d6 sur le périmètre de l'Activité cb9062e2a-ca7d-414f-8838-1124ad976fc7
- Famille de données concernée par les consentements : 9dac45d5-914e-41d8-8c7b-54c438b1c32c
- L'Usage prévu des données : 678df96b-b61e-4adf-9912-0efd1181d057
- Le Bénéficiaire est le Créateur de la demande de Consentement , à savoir 33fd1623-ea8f-4cfe-9fee-a964dc246a60
- Le Consentement est adossé à un Contrat ayant pour référence ref_32423_frwe_20191002 signé le 13/07/2022 et pour une durée de 1 an
Vérification de l'existant
Le premier réflexe pourrait être de s'assurer qu'aucun consentement satisfaisant ces exigences ne soit actif. La requête pour effectuer cette recherche est donc :
curl -X 'GET' \
'https://api.agata-consent.com/companies/d6c0dfab-fcae-4faf-ae32-bc8ca90c01d6/activities/cb9062e2a-ca7d-414f-8838-1124ad976fc7/consents?beneficiaryId=33fd1623-ea8f-4cfe-9fee-a964dc246a60&creatorId=33fd1623-ea8f-4cfe-9fee-a964dc246a60&domainId=3fa85f64-5717-4562-b3fc-2c963f66afa6&familyId=9dac45d5-914e-41d8-8c7b-54c438b1c32c&usageId=678df96b-b61e-4adf-9912-0efd1181d057&state=VALIDATED&activeOnly=true&contractReference=ref_32423_frwe_20191002' \
-H 'accept: application/json'
Création de la Demande
Dans le cas où aucun Consentement n'existe, la requête à envoyer pour procéder à la création est la suivante :
curl -X 'POST' \
'https://api.agata-consent.com/companies/d6c0dfab-fcae-4faf-ae32-bc8ca90c01d6/activities/cb9062e2a-ca7d-414f-8838-1124ad976fc7/consents' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"beneficiary_id": "33fd1623-ea8f-4cfe-9fee-a964dc246a60",
"family_id": "9dac45d5-914e-41d8-8c7b-54c438b1c32c",
"usage_id": "678df96b-b61e-4adf-9912-0efd1181d057",
"contract_reference": "ref_32423_frwe_20191002",
"contract_signature_date": "2022-07-13T08:31:46.375Z",
"contract_ending_date": "2023-07-13T00:00:00.000Z",
"starting_date": "2022-07-13T08:31:46.375Z",
"ending_date": "2023-07-13T00:00:00.000Z"
}'
Réponse de la Demande
Une fois la Demande de consentement envoyée, la réponse est la suivante :
{
"holder": {
"name": "Elevage bovin",
"business_identifier": "FR14987123",
"id": "cb9062e2a-ca7d-414f-8838-1124ad976fc7",
"siret": "56142932000024"
},
"beneficiary": {
"corporate_name": "Cabinet VETAGRI",
"address": "LA CROIX BLANCHE",
"postal_code": "77350",
"city": "LE MEE-SUR-SEINE",
"id": "33fd1623-ea8f-4cfe-9fee-a964dc246a60",
"siret": "33987292100023"
},
"creator": {
"corporate_name": "Cabinet VETAGRI",
"address": "LA CROIX BLANCHE",
"postal_code": "77350",
"city": "LE MEE-SUR-SEINE",
"id": "33fd1623-ea8f-4cfe-9fee-a964dc246a60",
"siret": "33987292100023"
},
"domain": {
"id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
"name": "Sanitaire"
},
"family": {
"id": "9dac45d5-914e-41d8-8c7b-54c438b1c32c",
"name": "croissance"
},
"usage": {
"description": "Completion carnet sanitaire",
"id": "678df96b-b61e-4adf-9912-0efd1181d057",
"name": "Vétérinaire - Suivi carnet sanitaire"
},
"contract": {
"contract_ending_date": "2023-07-13T00:00:00.000Z",
"contract_reference": "ref_32423_frwe_20191002",
"contract_signature_date": "2022-07-13T08:31:46.375Z"
},
"history": {
"created_by": "33fd1623-ea8f-4cfe-9fee-a964dc246a60",
"created_at": "2022-07-14T08:31:46.375Z",
"accepted_by": null,
"accepted_at": null,
"rejected_by": null,
"rejected_at": null,
"closed_by": null,
"closed_at": null
},
"last_update_date": "2022-07-14T08:31:46.375Z",
"starting_date": "2022-07-14T08:31:46.375Z",
"ending_date": "2023-07-14T00:00:00.000Z",
"id": "cf890c9d-a0de-458b-aaf4-6b07d08963bf",
"refusal_reason": null,
"state": "REQUESTED",
}
La prochaine et dernière étape avant validation finale de la Demande de consentement est son approbation (ou son éventuel refus) par le Détenteur des données à travers l'interface AGATA CONSENT destinée aux utilisateurs.
Depuis l'écran Bénéficiaires, un détenteur peux visualiser les consentements en attente de signatures qui lui sont adressés et les valider ou refuser.
