Authentification
Obtenir un jeton Bearer, le rafraîchir, et comprendre ce que votre compte peut voir.
Principe
Vous échangez l'e-mail et le mot de passe de votre compte prestataire contre un jeton JWT, puis vous présentez ce jeton dans l'en-tête
Authorization: Bearer de chaque appel. Seuls POST /provider/token et POST /provider/token/refresh
sont accessibles sans jeton.
Obtenir un jeton
curl -s -X POST $API/provider/token \
-H "Content-Type: application/json" \
-d '{ "email": "integration@courtier.ci", "password": "••••••••" }'| Champ | Type | Obligatoire | Description |
|---|---|---|---|
email | string | oui | Adresse e-mail du compte |
password | string | oui | Mot de passe |
Réponse 200 :
| Champ | Type | Description |
|---|---|---|
access_token | string | Jeton JWT à envoyer dans Authorization: Bearer |
expires_in | number | Durée de vie de l'access_token, en secondes |
refresh_expires_in | number | Durée de vie du refresh_token, en secondes |
refresh_token | string | Jeton de rafraîchissement |
token_type | string | Bearer |
Rafraîchir le jeton
curl -s -X POST $API/provider/token/refresh \
-H "Content-Type: application/json" \
-d '{ "refreshToken": "eyJhbGciOiJIUzI1NiIs..." }'Même réponse que l'obtention. Rafraîchissez avant l'expiration de l'access_token (expires_in) ;
si le refresh_token est lui aussi expiré, recommencez une authentification par mot de passe.
Envoyer le jeton
curl -s $API/provider/durations \
-H "Authorization: Bearer $TOKEN" # [!code highlight]const res = await fetch(`${API}/provider/durations`, {
headers: { Authorization: `Bearer ${token}` }, // [!code highlight]
});requests.get(f"{API}/provider/durations",
headers={"Authorization": f"Bearer {token}"})HttpRequest.newBuilder(URI.create(API + "/provider/durations"))
.header("Authorization", "Bearer " + token) // [!code highlight]
.GET().build();Rôles et périmètre
Le jeton porte les rôles du compte et son rattachement (compagnie et/ou courtier). Les deux déterminent ce que l'API accepte.
| Rôle | Profil | Souscription | États |
|---|---|---|---|
BROKER_ADMIN, BROKER_USER, SOUSCRIPTEUR | Courtier / agence / producteur | oui | non (403) |
COMPANY_ADMIN, SUPERVISEUR, ACCOUNTANT | Compagnie d'assurance | oui (sauf création de parties pour ACCOUNTANT) | oui, limités à la compagnie |
CLAIMS_HANDLER | Gestionnaire sinistres | lecture | non |
Chaque endpoint de la référence API liste les rôles qu'il accepte.
Périmètre des données (tenant) : un compte rattaché à une compagnie ne voit que les contrats,
avenants, paiements et états de cette compagnie. Un compte rattaché à un courtier ne voit que les
données de son bureau (un siège de courtier voit aussi ses agences). Les véhicules créés via
POST /provider/vehicles sont rattachés à la compagnie et au courtier du compte appelant. Une ressource
hors périmètre répond 404 ou 403.
Erreurs d'authentification
| HTTP | exception | Cause |
|---|---|---|
401 | IDENTITY_AUTHENTICATION_FAILED | E-mail ou mot de passe refusé, refresh_token expiré |
401 | — | Jeton absent, expiré ou invalide sur un appel métier |
403 | — | Rôle insuffisant pour l'endpoint |
502 | IDENTITY_AUTHENTICATION_FAILED | Le service d'authentification a répondu en erreur |
503 | IDENTITY_SERVICE_UNAVAILABLE | Service d'authentification injoignable |
Ne stockez jamais le mot de passe dans le code source ni dans un navigateur. Gardez-le dans un coffre ou des variables d'environnement côté serveur, et ne partagez jamais un jeton entre clients.