Référence APIApprouver ou rejeter un transfert
POST/v1/transfers/{id}/approve

Approuver ou rejeter un transfert

Statue sur un transfert soumis à approbation en l'approuvant ou en le rejetant.

2 min de lectureTélécharger en PDF

Requête exemple

{
"note": "Validé après vérification des destinataires.",
"decision": "approved"
}

Réponse exemple

{
"id": "tr_8fK2pQv0Z3",
"user_id": "usr_4Tb7Lp",
"short_code": "HELIOS-2026",
"approved_at": "2026-06-05T09:42:11.218Z",
"approved_by": "usr_2Qx9Rm",
"workspace_id": "ws_91Ad2c",
"approval_note": "Validé après vérification des destinataires.",
"transfer_title": "Closing dossier Helios",
"approval_status": "approved",
"approval_required": true
}
POST/v1/transfers/{id}/approveApprouve ou rejette un transfert dont l'approbation est requise.

Cette route permet de statuer sur un transfert qui a été soumis à un circuit d'approbation, c'est-à-dire dont le champ approval_required vaut true. Selon la valeur de decision, le transfert passe au statut approved ou rejected. À l'approbation, le champ approved_at est horodaté à l'instant courant ; au rejet, il est remis à null. Dans les deux cas, approved_by enregistre l'identifiant de l'utilisateur appelant et approval_note reçoit la note éventuelle. La ligne d'approbateur correspondante (le cas échéant) est également mise à jour avec la décision, son horodatage et la note. Enfin, le propriétaire du transfert est notifié par e-mail (envoi best-effort, non bloquant, dont l'échec n'interrompt pas la requête).

Authentification

Requête authentifiée par clé API. Le scope transfers:manage est requis : sans lui, la requête est rejetée par le code d'erreur scope_missing (HTTP 403). Le transfert est strictement borné au workspace de l'appelant (workspace_id), de sorte qu'un transfert appartenant à un autre espace de travail renvoie une erreur not_found.

Corps de la requête

ChampTypeRequisDescription
decisionstringOuiDécision à appliquer. Valeurs acceptées : approved ou rejected. Toute autre valeur déclenche une erreur validation_error (400).
notestringNonNote libre justifiant la décision. Enregistrée dans approval_note sur le transfert et dans note sur la ligne d'approbateur. Transmise dans l'e-mail de notification (comme note d'approbation ou motif de rejet).

Réponse

En cas de succès, l'API renvoie la ligne complète du transfert mise à jour (HTTP 200). Les champs clés sont : approval_status (approved ou rejected), approved_at (horodatage ISO 8601 à l'approbation, null au rejet), approved_by (identifiant de l'utilisateur ayant statué) et approval_note (la note transmise ou null). L'objet contient aussi les champs d'identité du transfert tels que id, workspace_id, user_id, transfer_title et short_code.

Erreurs

CodeQuandRésolution
400 validation_errordecision est absent ou différent de approved / rejected.Envoyer un corps JSON avec decision valant exactement approved ou rejected.
401 missing_api_keyEn-tête Authorization absent.Fournir Authorization: Bearer cof_live_... (ou clé de test/MCP).
401 invalid_api_keyClé API absente du format attendu ou non reconnue.Vérifier le préfixe et la validité de la clé API utilisée.
403 scope_missingLa clé ne porte pas le scope transfers:manage.Émettre une clé incluant le scope transfers:manage.
404 not_foundAucun transfert avec cet identifiant dans le workspace de l'appelant.Vérifier l'id du transfert et que la clé appartient au bon workspace.
422 validation_errorLe transfert ne requiert pas d'approbation (approval_required = false).N'appeler cette route que sur des transferts marqués comme nécessitant une approbation.
429 rate_limitedQuota de requêtes du workspace dépassé.Respecter l'en-tête Retry-After et lisser les appels.
500 internal_errorErreur lors de la lecture ou de la mise à jour en base.Réessayer ; si le problème persiste, contacter le support avec le request_id.

Voir aussi