Réponse exemple
Annule un transfert de propriété d'espace en cours (en attente d'acceptation par le destinataire). Le paramètre {id} correspond à l'identifiant du transfert lui-même (et non au workspace_id). Seul l'utilisateur qui a proposé le transfert (from_user_id) peut l'annuler. L'opération est idempotente : si le transfert a déjà été annulé, l'API renvoie un succès avec already: true plutôt qu'une erreur. En interne, l'état du transfert n'est pas stocké dans une colonne status mais dérivé de timestamps nullable (accepted_at, declined_at, cancelled_at, expires_at) ; l'annulation pose simplement cancelled_at à l'instant courant.
Authentification
Nécessite une clé API valide (ou session authentifiée), aucun scope spécifique. L'appel résout l'utilisateur courant via la session Supabase ; en l'absence d'utilisateur, une erreur 401 unauthorized est renvoyée. L'autorisation fine est ensuite vérifiée au niveau de la ressource : l'utilisateur doit être le proposeur du transfert (from_user_id), faute de quoi l'API répond 403.
Paramètres de chemin
| Champ | Type | Requis | Description |
|---|---|---|---|
| id | string (uuid) | Oui | Identifiant du transfert de propriété en attente à annuler. Il s'agit de l'id de l'enregistrement de transfert, pas du workspace_id. |
Réponse
En cas de succès, l'API renvoie un objet JSON confirmant l'annulation. Le champ ok vaut true et cancelled vaut true. Si le transfert avait déjà été annulé auparavant, le champ supplémentaire already vaut true (réponse idempotente). Une entrée d'audit coffrify.workspace.ownership_transfer_cancelled est enregistrée en best-effort sur l'espace concerné (target_type: workspace, source_surface: settings).
| Champ | Type | Description |
|---|---|---|
| ok | boolean | Toujours true en cas de succès. |
| cancelled | boolean | Toujours true : confirme que le transfert est annulé. |
| already | boolean | Présent et true uniquement si le transfert était déjà annulé (annulation idempotente). |
Erreurs
| Code | Quand | Résolution |
|---|---|---|
| 401 | Aucun utilisateur authentifié (clé API / session manquante ou invalide). | Fournir une clé API valide ou se ré-authentifier. |
| 403 | Vous n'avez pas proposé ce transfert (from_user_id différent de l'utilisateur courant). | Seul le proposeur initial peut annuler. Vérifier que vous êtes bien l'auteur du transfert. |
| 404 | Aucun transfert ne correspond à l'id fourni. | Vérifier l'identifiant du transfert ; il a pu déjà être supprimé ou n'a jamais existé. |
| 409 | Le transfert a déjà été accepté (transfert déjà accepté) ou refusé (transfert déjà refusé) : il n'est plus annulable. | Un transfert résolu ne peut plus être annulé. Si la propriété a changé, initier un nouveau transfert. |
| 500 | Erreur lors de la lecture ou de la mise à jour du transfert en base. | Réessayer ultérieurement ; si le problème persiste, contacter le support. |
Voir aussi
POST /v1/workspace/transfer-ownership— proposer un nouveau transfert de propriété d'espace.POST /v1/workspace/transfer-ownership/{id}/accept— accepter un transfert reçu en tant que destinataire.- GET /v1/workspace/members — lister les membres et propriétaires d'un espace.