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.

Flux d'authentification

Obtenir un jeton

curl -s -X POST $API/provider/token \
  -H "Content-Type: application/json" \
  -d '{ "email": "integration@courtier.ci", "password": "••••••••" }'
ChampTypeObligatoireDescription
emailstringouiAdresse e-mail du compte
passwordstringouiMot de passe

Réponse 200 :

ChampTypeDescription
access_tokenstringJeton JWT à envoyer dans Authorization: Bearer
expires_innumberDurée de vie de l'access_token, en secondes
refresh_expires_innumberDurée de vie du refresh_token, en secondes
refresh_tokenstringJeton de rafraîchissement
token_typestringBearer

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ôleProfilSouscriptionÉtats
BROKER_ADMIN, BROKER_USER, SOUSCRIPTEURCourtier / agence / producteurouinon (403)
COMPANY_ADMIN, SUPERVISEUR, ACCOUNTANTCompagnie d'assuranceoui (sauf création de parties pour ACCOUNTANT)oui, limités à la compagnie
CLAIMS_HANDLERGestionnaire sinistreslecturenon

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

HTTPexceptionCause
401IDENTITY_AUTHENTICATION_FAILEDE-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
502IDENTITY_AUTHENTICATION_FAILEDLe service d'authentification a répondu en erreur
503IDENTITY_SERVICE_UNAVAILABLEService 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.

On this page