Coffrify expose une API REST stable et versionnée, mais vous n'êtes pas obligé de l'appeler à la main. Un SDK officiel encapsule l'authentification, les nouvelles tentatives, la pagination et le typage, pour que vous écriviez moins de code et fassiez moins d'erreurs. À ce jour, un seul SDK est réellement publié : le SDK JavaScript et TypeScript (package npm coffrify). Les SDK Python, Go, Ruby, PHP, Rust, Java et .NET sont en préparation. Cette page dit honnêtement ce qui est disponible et ce qui ne l'est pas encore, et surtout : tant qu'un SDK n'est pas sorti, l'API REST couvre déjà votre langage, dès maintenant.
Tableau comparatif
Le tableau ci-dessous résume l'état de chaque SDK et sa commande d'installation prévue. La colonne Statut est la seule qui compte pour décider aujourd'hui : Disponible signifie que vous pouvez l'installer et l'utiliser tout de suite ; Bientôt signifie que la commande d'installation n'existe pas encore et qu'il faut passer par l'API REST en attendant.
| Langage | Statut | Installation |
|---|---|---|
| JavaScript / TypeScript | Disponible | npm i @coffrify/sdk |
| Python | Bientôt | pip install coffrify |
| Go | Bientôt | go get go.coffrify.com/sdk |
| Ruby | Bientôt | gem install coffrify |
| PHP | Bientôt | composer require coffrify/sdk |
| Rust | Bientôt | cargo add coffrify |
| Java | Bientôt | com.coffrify:sdk |
| .NET | Bientôt | dotnet add package Coffrify |
Ce que fait un SDK Coffrify
Un SDK officiel n'est pas qu'un raccourci d'appel HTTP. Il prend en charge quatre choses que vous devriez sinon réécrire vous-même :
- Chiffrement côté client (au niveau usage) : pour les modes de bout en bout, le SDK chiffre vos fichiers avant l'envoi et la clé reste chez vous. Vos serveurs gardent la main, Coffrify ne lit pas le contenu. Vous appelez une méthode, le SDK s'occupe du reste.
- Nouvelles tentatives (retries) : en cas d'erreur réseau passagère ou de réponse
429, le SDK réessaie automatiquement en respectant l'en-têteRetry-Afteret un backoff progressif, sans que vous écriviez la boucle. - Pagination : les listes (transferts, etc.) sont paginées par curseur. Le SDK gère le
cursoret lalimitpour vous, et expose une itération simple plutôt que des appels manuels page par page. - Types : en TypeScript, les corps de requête et les réponses sont typés. L'autocomplétion vous guide et les erreurs de forme sont détectées à la compilation, pas en production.
| Capacité | JS / TS | Autres langages |
|---|---|---|
| Chiffrement côté client (usage) | Oui | Bientôt |
| Retries automatiques | Oui | Bientôt (à gérer côté API REST) |
| Pagination par curseur | Oui | Bientôt (à gérer côté API REST) |
| Types statiques | Oui (TypeScript) | Bientôt |
| Idempotence (en-tête) | Oui | Disponible via l'API REST |
SDK JavaScript et TypeScript (disponible)
C'est le seul SDK publié. Installez le package coffrify, instanciez le client avec votre clé d'API (cof_live_…, cof_test_… ou cof_sandbox_…), puis utilisez les ressources transfers, webhooks et intakes.
Les méthodes suivent une nomenclature régulière : coffrify.transfers.create / list / get / delete, ainsi que coffrify.webhooks.* et coffrify.intakes.*. La liste paginée s'itère sans gérer le curseur vous-même, et les nouvelles tentatives sur 429 sont prises en charge par le client.
En attendant : l'API REST couvre tous les langages
Pour Python, Go, Ruby, PHP, Rust, Java et .NET, il n'y a aucune attente à avoir : l'API REST est disponible dès aujourd'hui et fait exactement la même chose. Authentifiez-vous avec Authorization: Bearer <clé> et appelez https://api.coffrify.com/v1. Voici la création d'un transfert dans l'idiome de chaque langage, avec le client HTTP standard.
/v1/transfersCréer un transfert (scope transfers:write)En résumé : choisissez le SDK coffrify si vous êtes en JavaScript ou TypeScript, c'est le chemin le plus court et le mieux outillé. Pour tout autre langage, partez sur l'API REST dès aujourd'hui, dans l'idiome ci-dessus, et surveillez l'arrivée du SDK natif marqué Bientôt dans le tableau. Dans les deux cas, l'authentification, l'idempotence (en-tête Idempotency-Key) et la gestion des limites de débit (en-têtes X-RateLimit-*, Retry-After) restent identiques.