Authentification
Obtenir, utiliser et sécuriser vos clés API SFE NAFA.
L'API SFE NAFA utilise des clés API (API Keys) pour authentifier les requêtes.
Principes essentiels
- Une clé API est liée à votre organisation.
- Chaque clé doit avoir des permissions minimales nécessaires.
- Une clé compromise doit être révoquée immédiatement.
Créer une clé API
- Connectez-vous à votre espace SFE NAFA
- Allez dans Paramètres → API → Clés API
- Cliquez sur Nouvelle clé API
- Donnez un nom descriptif à votre clé (ex:
Integration ERP,Script comptabilité) - Sélectionnez les permissions nécessaires (principe du moindre privilège)
- Copiez et sauvegardez la clé — elle ne sera plus affichée après cette étape
Traitez vos clés API comme des mots de passe. Ne les partagez jamais, ne les committez jamais dans un dépôt Git.
Utiliser la clé API
Incluez votre clé dans l'en-tête Authorization de chaque requête :
Authorization: Bearer sfn_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxExemples
curl https://api.sfenafa.com/v1/invoices?skip=0\&take=20 \
-H "Authorization: Bearer sfn_live_xxxxxxxxxx" \
-H "Accept: application/json"const response = await fetch('https://api.sfenafa.com/v1/invoices', {
headers: {
'Authorization': `Bearer ${process.env.SFE_API_KEY}`,
'Accept': 'application/json',
},
});
if (!response.ok) {
throw new Error(`Erreur API (${response.status})`);
}
const data = await response.json();import os
import requests
headers = {
"Authorization": f"Bearer {os.environ['SFE_API_KEY']}",
"Accept": "application/json",
}
response = requests.get("https://api.sfenafa.com/v1/invoices", headers=headers)
response.raise_for_status()
data = response.json()Format des clés
| Type | Préfixe | Usage |
|---|---|---|
| Production | sfn_live_ | Données réelles |
| Test (sandbox) | sfn_test_ | Tests et développement |
Permissions des clés
Lors de la création d'une clé, sélectionnez uniquement les permissions nécessaires :
| Permission | Description |
|---|---|
invoices:read | Lire les factures |
invoices:write | Créer et modifier les factures |
clients:read | Lire les clients |
clients:write | Créer et modifier les clients |
products:read | Lire les produits |
products:write | Créer et modifier les produits |
payments:read | Lire les paiements |
payments:write | Enregistrer des paiements |
reports:read | Accéder aux rapports |
Créez une clé par intégration (ERP, e-commerce, synchronisation comptable) afin de pouvoir révoquer une seule intégration sans impacter les autres.
Rotation recommandée
Bonnes pratiques de rotation :
- Créez une nouvelle clé avec les mêmes permissions.
- Déployez la nouvelle clé dans votre intégration.
- Vérifiez les appels API en production.
- Révoquez l'ancienne clé.
Checklist de mise en production
- Une clé dédiée existe pour chaque intégration (ERP, e-commerce, script batch).
- Les permissions de chaque clé suivent le principe du moindre privilège.
- Les clés sont stockées dans des variables d'environnement sécurisées.
- Aucun secret n'est présent dans le code source ou les logs applicatifs.
- Un plan de rotation trimestrielle des clés est défini.
- Une procédure de révocation d'urgence est documentée et testée.
Observabilité minimale recommandée
Journalisez au minimum pour chaque appel API :
- endpoint appelé ;
- code HTTP ;
- code d'erreur applicatif ;
- identifiant interne de corrélation ;
- horodatage et durée de la requête.
Ces informations accélèrent fortement le diagnostic en cas d'incident.
Révoquer une clé
Pour révoquer une clé compromise ou inutilisée :
Paramètres → API → Clés API → [Votre clé] → Révoquer
La révocation est immédiate. Toute requête utilisant cette clé recevra une erreur 401.
Réponse d'authentification échouée
{
"error": {
"code": "UNAUTHORIZED",
"message": "Clé API invalide ou expirée."
}
}