Aperçu
L’API Smartbills utilisé l’authentification par jeton JWT Bearer. Chaque requête API doit inclure un jeton valide dans l’en-têteAuthorization. Les jetons peuvent être obtenus via des clés API ou des flux OAuth2.
Avant de commencer : Vous avez besoin d’un compte Smartbills et de clés API pour vous authentifier. Visitez developers.smartbills.io pour commencer.
En-tête d’authentification
Incluez votre jeton dans l’en-têteAuthorization de chaque requête :
{jeton} est soit :
- Une clé API (ex. :
sk_live_1234567890abcdef) - Un jeton d’accès OAuth2 obtenu via le point d’accès de jetons
En-tête multi-locataire
Smartbills est une plateforme multi-locataire. Vous devez inclure l’en-têtex-tenant-id pour spécifier le contexte d’entreprise :
En-tête de locale
Utilisez l’en-têteAccept-Language pour recevoir des réponses localisées :
en-CA, fr-CA, en-US. Consultez Localisations pour plus de détails.
En-têtes de requête complets
Une requête authentifiee complète inclut ces en-têtes :Authentification OAuth2
Flux Client Credentials
Utilisez ce flux pour la communication serveur à serveur sans interaction utilisateur. Point d’accès :POST https://api.smartbills.io/auth/connect/token
Requête :
Exemples de code
Flux Authorization Code
Utilisez ce flux pour les applications orientees utilisateur ou vous devez agir au nom d’un utilisateur. Étape 1 : Rediriger vers le point d’accès d’autorisationExpiration et rafraîchissement des jetons
Les jetons d’accès expirent après une période definie (généralement 3600 secondes / 1 heure). Utilisez le champexpires_in pour savoir quand un jeton expirera.
Rafraîchir les jetons
Lorsque votre jeton d’accès expiré, utilisez le jeton de rafraîchissement pour en obtenir un nouveau :Utilisation des SDK
Les SDK officiels gerent automatiquement l’authentification, le rafraîchissement des jetons et la gestion des en-têtes :Erreurs d’authentification
Bonnes pratiques de sécurité
Protéger vos identifiants
Protéger vos identifiants
- Stockez les clés API et les secrets dans des variables d’environnement
- Ne commitez jamais les identifiants dans le contrôle de version
- N’exposez jamais les jetons dans le code côté client
- Utilisez HTTPS pour toutes les requêtes API
Utiliser les portées appropriees
Utiliser les portées appropriees
- Demandez uniquement les portées dont votre application a besoin
- Utilisez des portées en lecture seule quand l’accès en écriture n’est pas nécessaire
- Révisez et auditez les portées régulièrement
Gérer l'expiration des jetons
Gérer l'expiration des jetons
- Vérifiez la valeur
expires_inaprès avoir obtenu les jetons - Implémentez le rafraîchissement automatique des jetons avant l’expiration
- Gérez les erreurs 401 en rafraichissant et en retentant
Rotation régulière des clés
Rotation régulière des clés
- Effectuez la rotation des clés API tous les 90 jours
- Révoquez immédiatement les clés compromises
- Utilisez des clés séparées pour chaque environnement
Ressources connexes
Clés API
Créer et gérer les clés API
Environnements
Environnements bac à sable et production
Gestion des erreurs
Gérer les erreurs d’authentification
Limites de débit
Comprendre la limitation de débit