KeySuiteTrousseau
Guides

API de provisionnement des utilisateurs

Créez et gérez les utilisateurs par programme via l'API REST Trousseau.

Vue d'ensemble

Les partenaires autorisés peuvent utiliser l'API de provisionnement Trousseau pour créer, mettre à jour et désactiver des utilisateurs. Les utilisateurs sont provisionnés dans un état "staged": ils définissent leur propre mot de passe à la première connexion.

L'API de provisionnement est disponible pour les partenaires qui en ont fait la demande lors de l'intégration. Contactez l'équipe KeySuite si vous avez besoin d'y accéder.

Authentification

Toutes les requêtes API nécessitent un token Bearer :

curl https://auth.trousseau.app/api/v3/core/users/ \
  -H "Authorization: Bearer {your-api-token}" \
  -H "Content-Type: application/json"

Créer un utilisateur

POST https://auth.trousseau.app/api/v3/core/users/

{
  "username": "jean.dupont@hotel.com",
  "email": "jean.dupont@hotel.com",
  "name": "Jean Dupont",
  "is_active": true,
  "groups": ["{your-group-uuid}"]
}

Réponse

{
  "pk": 42,
  "username": "jean.dupont@hotel.com",
  "email": "jean.dupont@hotel.com",
  "name": "Jean Dupont",
  "is_active": true,
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

L'utilisateur est créé sans mot de passe. Lors de sa première connexion, Trousseau l'invite automatiquement à en définir un.

Avec prénom et nom de famille

POST https://auth.trousseau.app/api/v3/core/users/

{
  "username": "jean.dupont@hotel.com",
  "email": "jean.dupont@hotel.com",
  "name": "Jean Dupont",
  "is_active": true,
  "groups": ["{your-group-uuid}"],
  "attributes": {
    "first_name": "Jean",
    "last_name": "Dupont"
  }
}

Lister les utilisateurs de votre groupe

Filtrez toujours par votre groupe pour ne récupérer que les utilisateurs que vous gérez :

GET https://auth.trousseau.app/api/v3/core/users/?groups={your-group-uuid}

Réponse

{
  "pagination": {
    "count": 2,
    "next": null,
    "previous": null
  },
  "results": [
    {
      "pk": 42,
      "username": "jean.dupont@hotel.com",
      "email": "jean.dupont@hotel.com",
      "name": "Jean Dupont",
      "is_active": true,
      "uuid": "a1b2c3d4-..."
    },
    {
      "pk": 43,
      "username": "marie.martin@hotel.com",
      "email": "marie.martin@hotel.com",
      "name": "Marie Martin",
      "is_active": true,
      "uuid": "b2c3d4e5-..."
    }
  ]
}

Rechercher un utilisateur par e-mail

GET https://auth.trousseau.app/api/v3/core/users/?email=jean.dupont@hotel.com

Mettre à jour un utilisateur

PATCH https://auth.trousseau.app/api/v3/core/users/{pk}/

{
  "name": "Jean-Pierre Dupont",
  "attributes": {
    "first_name": "Jean-Pierre"
  }
}

Ne définissez jamais de mots de passe via l'API. Les mots de passe doivent toujours être choisis par l'utilisateur via les flux sécurisés de Trousseau. Cela garantit un hachage correct, la vérification des fuites et l'application des politiques de sécurité.

Désactiver un utilisateur

La désactivation empêche l'utilisateur de se connecter mais préserve ses données :

PATCH https://auth.trousseau.app/api/v3/core/users/{pk}/

{
  "is_active": false
}

Pour réactiver :

PATCH https://auth.trousseau.app/api/v3/core/users/{pk}/

{
  "is_active": true
}

Gestion des groupes

Ajouter un utilisateur à votre groupe

POST https://auth.trousseau.app/api/v3/core/groups/{your-group-pk}/add_user/

{
  "pk": 42
}

Retirer un utilisateur de votre groupe

POST https://auth.trousseau.app/api/v3/core/groups/{your-group-pk}/remove_user/

{
  "pk": 42
}

Cycle de vie d'un utilisateur

                  Création via API
Inexistant ──────────────────────> Staged (sans mot de passe)

                                       │ Première connexion
                                       │ (l'utilisateur crée son mot de passe)

                                    Actif

                              ┌────────┼────────┐
                              │                 │
                              ▼                 ▼
                         Désactivé         Actif (usage normal)
                         (is_active:       (connexion, SSO, etc.)
                          false)

Limites de débit

L'API applique une limitation de débit pour protéger le service. Limites en vigueur :

PérimètreLimite
Par token100 requêtes / minute
Création d'utilisateurs50 utilisateurs / minute

Si vous atteignez la limite, l'API retourne HTTP 429 avec un en-tête Retry-After.

Gestion des erreurs

Code HTTPSignification
200Succès
201Créé
400Requête invalide (consultez le corps de la réponse pour les erreurs par champ)
401Token API invalide ou expiré
403Permission refusée
404Utilisateur ou groupe introuvable
429Limite de débit atteinte