Cette page vous montre comment intégrer Coffrify dans une application .NET / C# dès aujourd'hui. Un SDK .NET officiel est en préparation, mais il n'est pas encore publié. En attendant, vous appelez directement l'API REST v1 avec le HttpClient de la bibliothèque standard et le modèle async/await. Toutes les capacités de la plateforme (créer un transfert chiffré, téléverser les fichiers, lister, supprimer, recevoir des webhooks) sont accessibles ainsi, sans dépendance externe.
Principes
L'API REST a pour base https://api.coffrify.com/v1. Chaque requête s'authentifie avec un en-tête Authorization: Bearer <clé>, où la clé est de la forme cof_live_… en production ou cof_test_… en test. Les réponses et les corps de requête sont au format JSON. En .NET, vous pouvez réutiliser une instance unique de HttpClient pour l'ensemble de vos appels et y fixer une fois pour toutes l'en-tête d'autorisation.
Créer un transfert
POST/v1/transfersCrée un transfert chiffré et renvoie les URLs de téléversement ainsi que le lien de partage. Requiert le scope transfers:write.Vous décrivez les fichiers à envoyer (nom, taille en octets, type MIME) et, en option, une durée d'expiration via expires_in_hours et un destinataire via recipient. La réponse contient l'objet transfer (avec id, short_code, status, expires_at), un tableau upload_urls (une entrée par fichier, avec file_id, url et headers) et le share_url à communiquer au destinataire.
Téléverser les fichiers
La création du transfert ne transporte pas encore les octets. Pour chaque entrée de upload_urls, vous effectuez une requête PUT vers son url en envoyant le contenu du fichier et en reprenant exactement les headers fournis. Faites correspondre chaque fichier à son file_id. Une fois tous les téléversements terminés, le transfert devient téléchargeable via le share_url.
Lister et supprimer
GET /v1/transfers renvoie vos transferts paginés par curseur (limit jusqu'à 100, cursor pour la page suivante). GET /v1/transfers/{id} récupère un transfert précis et DELETE /v1/transfers/{id} le supprime. Les mêmes appels se font naturellement avec GetFromJsonAsync et DeleteAsync.
Gérer les erreurs
En cas d'échec, la réponse a un statut HTTP non 2xx et un corps JSON de la forme {"error":{"code":"…","message":"…","request_id":"…"}}. Le request_id est précieux pour le support. Pour le débit, surveillez les en-têtes X-RateLimit-Remaining et X-RateLimit-Reset ; sur un statut 429, respectez le délai indiqué par Retry-After avant de réessayer.
Webhooks
Pour être notifié des événements (par exemple transfer.downloaded), créez un endpoint avec POST /v1/webhooks. Le secret de signature whsec_… n'est affiché qu'une seule fois à la création : conservez-le. À la réception, vérifiez la signature en recalculant un HMAC-SHA256 avec ce secret, en respectant la tolérance d'horodatage de 5 minutes, puis répondez 200. Une réception ASP.NET typique lit le corps brut, vérifie la signature, puis traite l'événement.
Pour la liste complète des champs acceptés, des codes d'erreur et des en-têtes de débit, reportez-vous à la référence REST de l'API v1. Si vous travaillez aussi en JavaScript ou Node, le SDK coffrify est déjà publié sur npm et expose les mêmes opérations en quelques lignes.