Le RGPD reconnaît aux personnes concernées un ensemble de droits, dont le droit à l'effacement (article 17) et le droit d'accès (article 15). COFFRIFY expose deux points d'entrée dédiés pour déposer et tracer ces demandes : POST /v1/gdpr/deletion pour une demande de suppression, et POST /v1/gdpr/access pour une demande d'accès. Chaque appel enregistre une demande officielle (DSAR, pour *Data Subject Access Request*), lui attribue une référence de suivi, et l'achemine vers la console RGPD de votre espace de travail où une personne la valide et l'exécute. Ces endpoints ne suppriment ni n'exposent aucune donnée dans l'instant : ils ouvrent un dossier traçable, conforme aux délais légaux.
Portée et authentification
Toutes les requêtes utilisent l'en-tête Authorization: Bearer <clé> et visent l'espace de travail associé à la clé. La demande de suppression et la demande d'accès requièrent la portée gdpr:request. L'export complet requiert quant à lui la portée gdpr:export, considérée comme sensible. Avec une clé restreinte (cof_rk_), pensez à inclure ces portées au moment de la création de la clé.
| Endpoint | Méthode | Portée requise | Code de réponse |
|---|---|---|---|
| /v1/gdpr/deletion | POST | gdpr:request | 202 Accepted |
| /v1/gdpr/access | POST | gdpr:request | 202 Accepted |
| /v1/gdpr/export | POST | gdpr:export | 200 OK |
Déposer une demande de suppression
POST/v1/gdpr/deletionOuvre une demande d'effacement (Art. 17) pour le titulaire de l'espace de travail, avec un délai de réflexion de 30 jours.La suppression est irréversible une fois le délai de réflexion écoulé. Pour cette raison, vous devez passer confirm: true dans le corps de la requête : sans ce champ, l'API renvoie une erreur validation_error. Vous pouvez joindre un champ reason libre (jusqu'à 1000 caractères) qui sera conservé dans la trace d'audit.
| Champ | Type | Requis | Description |
|---|---|---|---|
| confirm | boolean | Oui | Doit valoir true pour accuser réception du caractère irréversible après le délai de réflexion. |
| reason | string | Non | Motif de la demande, tronqué à 1000 caractères, conservé dans l'audit. |
La réponse arrive avec le statut 202 Accepted et décrit la suite de la procédure, notamment la date de fin du délai de réflexion (cooling_off_until) et l'adresse du délégué à la protection des données (dpo_email).
Déposer une demande d'accès
POST/v1/gdpr/accessEnregistre une demande de droit d'accès (Art. 15) pour le titulaire de l'espace de travail, à honorer sous 30 jours.La demande d'accès ne prend aucun corps obligatoire : un simple appel authentifié suffit. Elle crée une demande officielle, lui attribue une référence et fixe une échéance de traitement (due_at) à 30 jours. La copie des données est ensuite fournie par nos équipes. Si vous avez besoin de la copie tout de suite, appelez POST /v1/gdpr/export.
Traiter une DSAR de bout en bout
Lorsqu'une personne exerce ses droits, le cheminement type combine ces endpoints avec la console RGPD de votre tableau de bord. Chaque demande déposée par l'API y apparaît avec sa référence, son type et son échéance, prête à être validée puis exécutée par une personne habilitée.
- Réception de la demande : la personne concernée vous saisit (par courriel, formulaire ou support).
- Enregistrement : appelez
POST /v1/gdpr/accesspour une demande d'accès, ouPOST /v1/gdpr/deletion(avecconfirm: true) pour un effacement. La demande est tracée et reçoit une référence. - Fourniture de la copie (accès) : récupérez immédiatement un export structuré via
POST /v1/gdpr/export, puis transmettez-le à la personne dans le délai de 30 jours. - Validation humaine (effacement) : le titulaire confirme par le lien reçu par courriel, puis l'effacement est exécuté après le délai de réflexion de 30 jours.
- Clôture : la demande est marquée comme traitée dans la console RGPD, avec sa trace d'audit.
Gestion des erreurs
Les erreurs suivent le format standard de l'API, avec un objet error portant un code, un message et un request_id à citer en cas de demande d'assistance. L'oubli du champ confirm sur la suppression est l'erreur la plus fréquente.
| Statut | Code | Cause |
|---|---|---|
| 400 | validation_error | Le champ confirm n'a pas été passé à true sur une demande de suppression. |
| 403 | forbidden | La clé API ne dispose pas de la portée gdpr:request (ou gdpr:export pour l'export). |
| 404 | not_found | Le titulaire de l'espace de travail est introuvable. |