L'API Coffrify expose deux endpoints RGPD complémentaires : GET /v1/gdpr/retention retourne la politique de conservation par catégorie de données et par plan (Free, Pro, Ultra, Entreprise) sans nécessiter d'authentification, tandis que POST /v1/gdpr/deletion enregistre une demande d'effacement au sens de l'article 17 du RGPD pour l'ensemble de l'espace de travail. La suppression effective n'est pas immédiate : elle suit un délai de rétractation de 30 jours, après confirmation par e-mail du propriétaire. Toute requête de suppression est tracée dans le journal d'audit et dans la console RGPD/DSAR de l'administration.
/v1/gdpr/retentionRetourne la politique de rétention statique par catégorie de données et par plan. Endpoint public, aucune clé API requise.POST/v1/gdpr/deletionDépose une demande d'effacement RGPD Art. 17 pour l'espace de travail courant. Scope requis : gdpr:request. HTTP 202 en cas de succès.Authentification
L'endpoint GET /v1/gdpr/retention est public et ne nécessite aucune clé. Pour POST /v1/gdpr/deletion, vous devez présenter une clé API dont les scopes incluent gdpr:request. Utilisez le header Authorization: Bearer <clé> avec une clé de production (cof_live_…) ou de test (cof_test_…). Les clés sandbox (cof_sandbox_…) sont également acceptées en environnement de développement. Toute tentative avec un scope absent retourne 403 scope_missing.
Corps de la requête (POST /v1/gdpr/deletion)
La demande d'effacement ne requiert que peu de champs ; l'essentiel est la confirmation explicite de l'intention. Le tableau ci-dessous précise ce qui est attendu.
| Champ | Type | Requis | Description |
|---|---|---|---|
| confirm | boolean | Oui | Doit valoir true pour confirmer que la suppression est irréversible après la période de rétractation de 30 jours. Toute autre valeur déclenche une erreur 400 validation_error. |
| reason | string | Non | Motif libre de la demande d'effacement (tronqué à 1 000 caractères). Conservé dans les métadonnées de l'entrée d'audit. |
Exemples d'appel
Les exemples ci-dessous montrent les deux appels : lire la politique de rétention (public, sans clé) puis déposer une demande d'effacement (authentifié, scope gdpr:request).
Réponse : GET /v1/gdpr/retention
La réponse détaille, par catégorie de données (data_categories), la durée de conservation pour chaque plan. Utilisez-la pour informer vos utilisateurs ou aligner votre propre politique sur celle de Coffrify.
Réponse : POST /v1/gdpr/deletion (HTTP 202)
Un 202 Accepted confirme l'enregistrement de la demande, pas son exécution immédiate : l'effacement suit le délai légal et opérationnel. Conservez l'identifiant de la demande pour en suivre l'état.
Erreurs
Les erreurs portent surtout sur l'authentification et le scope gdpr:request, ou sur une demande déjà en cours pour le même workspace. Le tableau ci-dessous indique la résolution.
| Code HTTP | Code d'erreur | Quand | Résolution |
|---|---|---|---|
| 400 | validation_error | Le champ confirm est absent ou vaut false. | Passez explicitement "confirm": true dans le corps de la requête. |
| 401 | missing_api_key / invalid_api_key | Aucun header Authorization ou clé mal formée. | Vérifiez que vous transmettez Bearer cof_live_… ou Bearer cof_test_…. |
| 401 | expired_api_key / revoked_api_key | La clé a expiré ou a été révoquée. | Régénérez une clé dans la console Coffrify. |
| 403 | scope_missing | La clé ne possède pas le scope gdpr:request. | Créez une clé incluant le scope gdpr:request ou modifiez les scopes de la clé existante. |
| 403 | ip_not_allowed | L'IP source n'est pas dans la liste blanche du workspace. | Ajoutez l'IP dans les paramètres de sécurité de l'API. |
| 404 | not_found | Aucun propriétaire trouvé pour l'espace de travail (ws.owner_id nul). | Vérifiez que l'espace de travail est actif et possède bien un propriétaire enregistré. |
| 429 | rate_limited | Quota de requêtes dépassé pour la minute en cours. | Attendez la durée indiquée dans l'en-tête Retry-After avant de réessayer. |
| 500 | internal_error | Erreur interne inattendue. | Consultez l'en-tête X-Request-Id et contactez le support en fournissant cet identifiant. |
Voir aussi
- Exporter les données RGPD (Art. 20)
- Consulter le journal d'audit
- Gérer les consentements et les journaux de consentement
- Référence complète : endpoint POST /v1/gdpr/deletion
- Référence complète : endpoint GET /v1/gdpr/retention
- Sécurité et scopes des clés API