Aller au contenu

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
Exemple de requête
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
Exemple de réponse 200 si le Consentement existe
  {
    "OK"
  }
Exemple de réponse 204 si le Consentement n'existe pas
  {
    "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
Exemple de requête minimale
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"
}'
Exemple de requête avec champs optionnels
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
Exemple de réponse
  {
    "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
Exemple de requête
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
Exemple de réponse
[
  {
    "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
Exemple de requête
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
Exemple de réponse
  {
    "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
Exemple de requête
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
Exemple de réponse
  {
    "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 :

  1. La création du Détenteur si celui ci n'existe pas en amont :

  2. La récupération de la Famille de données afin de définir le périmètre des données concernées :

  3. La récupération de l'Usage afin de définir les traitements appliquées prévus sur les données :

  4. 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 :

Un consentement valide pour ces paramètres existe-il déjà ?
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 :

Création de la Demande de consentement
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 :

Exemple de réponse
  {
    "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.

Écran d'historique des consentements d'un Détenteur du portail AGATA CONSENT