Utilisateurs
Cette page décrit les contrats de gestion des utilisateurs, de leurs affectations, profils, signatures et intégrations. La gestion des jetons est détaillée dans Jetons API .
Toutes les routes exigent une authentification, sauf les routes générales de récupération et d'initialisation de mot de passe documentées dans Authentification . Un compte WebService reste limité par sa liste authorizedApi lorsqu'elle est définie.
Le privilège admin_users est requis pour administrer les utilisateurs. Sauf pour un super administrateur, l’application vérifie que l’utilisateur ciblé appartient à une entité que l’administrateur est autorisé à gérer, ou qu’il n’est rattaché à aucune entité. Les opérations personnelles peuvent concerner le compte de l’utilisateur connecté lorsque la route API le permet. Les privilèges manage_personal_data et view_personal_data contrôlent respectivement la modification et la consultation des données personnelles.
Création d'un utilisateur
Route
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
userId
string
Oui
Login
firstname
string
Oui
Prénom
lastname
string
Oui
Nom
initials
string
Non
Initiales
mail
string
Oui
Email
phone
string
Non
Numéro de téléphone
mode
string
Non
"standard"
"standard" : Par défaut, "rest" : Utilisateur WebService (API), "root_invisible" : Compte super administrateur visible dans les workflows (Assignable) ou "root_visible" : Compte super administrateur non visible dans les workflows (Non Assignable)
Exemple
{
"userId" : "utilisateur.exemple" ,
"firstname" : "Utilisateur" ,
"lastname" : "Exemple" ,
"mail" : "utilisateur@example.invalid" ,
"phone" : "+33000000000"
}
Retour
Code Http
Type
Description
Exemple
200
array
L'utilisateur a bien été créé
{"id": 21}
400
array
Un paramètre obligatoire est manquant
{"errors": "Bad Request"}
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Modification d'un utilisateur
Route
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
firstname
string
Oui
Prénom
lastname
string
Oui
Nom
initials
string
Non
Initiales
mail
string
Oui
Email
phone
string
Non
Numéro de téléphone
mode
string
Non
"standard"
"standard" : Par défaut, "rest" : Utilisateur WebService (API), "root_invisible" : Compte super administrateur visible dans les workflows (Assignable) ou "root_visible" : Compte super administrateur non visible dans les workflows (Non Assignable)
Exemple
{
"firstname" : "Utilisateur" ,
"lastname" : "Exemple" ,
"mail" : "utilisateur@example.invalid" ,
"phone" : "+33000000000"
}
Retour
Code Http
Type
Description
Exemple
204
array
L'utilisateur a bien été modifié
400
array
Un paramètre obligatoire est manquant
{"errors": "Bad Request"}
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Modification du mot de passe d'un utilisateur
Cette route permet à un utilisateur authentifié de modifier un mot de passe dont il connaît la valeur actuelle.
Route
PUT /rest/users/{id}/password
La requête doit contenir un jeton valide dans l'en-tête Authorization :
Authorization: Bearer <token>
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
Body
Valeur
Type
Obligatoire
Description
currentPassword
string
Oui
Mot de passe actuel de l'utilisateur ciblé
newPassword
string
Oui
Nouveau mot de passe respectant les règles de sécurité actives
reNewPassword
string
Oui
Confirmation du nouveau mot de passe. La valeur doit être identique à newPassword
Les règles actives peuvent être récupérées avec la route GET /rest/passwordRules . Le nouveau mot de passe ne doit pas non plus appartenir à l'historique des mots de passe interdits à la réutilisation.
Exemple
{
"currentPassword" : "AncienMotDePasse-2025" ,
"newPassword" : "NouveauMotDePasse-2026" ,
"reNewPassword" : "NouveauMotDePasse-2026"
}
Règles d'accès
Un utilisateur standard ne peut modifier que son propre mot de passe.
Pour modifier le mot de passe d'un autre compte, le compte ciblé doit être un utilisateur WebService en mode rest. L'appelant doit disposer du privilège admin_users et le compte doit appartenir à son périmètre, sauf pour un super administrateur.
Le mot de passe actuel du compte ciblé reste obligatoire, y compris pour un compte WebService.
Retour
Code HTTP
Type
Description
200
object
Le mot de passe a été modifié
400
object
Identifiant ou paramètres invalides, confirmation différente, mot de passe non conforme ou déjà utilisé
401
object
Authentification absente ou invalide, ou mot de passe actuel incorrect
403
object
Droits insuffisants, utilisateur hors périmètre ou modification du compte ciblé interdite
Exemple
Après une réponse 200 :
le mot de passe est enregistré sous forme de hash
la date de dernière modification est mise à jour
le nouveau mot de passe est ajouté à l'historique
une entrée est ajoutée à l'historique de l'utilisateur.
Ajout d'un groupe
Route
POST /rest/users/{id}/groups
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
groupId
string
Oui
Identifiant du groupe à ajouter (usergroups.group_id )
Exemple
Retour
Code Http
Type
Description
Exemple
200
array
La modification a bien été prise en compte
400
array
Un paramètre obligatoire est manquant
{"errors": "Bad Request"}
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Suppression d'un groupe
Route
DELETE /rest/users/{id}/groups/{groupId}
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Le paramètre groupId représente l'identifiant (usergroups.group_id ) du groupe à supprimer.
Retour
Code Http
Type
Description
Exemple
200
array
La modification a bien été prise en compte
400
array
Un paramètre obligatoire est manquant
{"errors": "Bad Request"}
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Ajout d'une entité
Route
POST /rest/users/{id}/entities
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
entityId
string
Oui
Identifiant (entities.entity_id ) de l'entité à ajouter
Exemple
Retour
Code Http
Type
Description
Exemple
200
array
La modification a bien été prise en compte
400
array
Un paramètre obligatoire est manquant
{"errors": "Bad Request"}
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Suppression d'une entité
Route
DELETE /rest/users/{id}/entities/{entityId}
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Le paramètre entityId représente l'identifiant (entities.entity_id ) de l'entité à supprimer.
Retour
Code Http
Type
Description
Exemple
200
array
La modification a bien été prise en compte
400
array
Un paramètre obligatoire est manquant
{"errors": "Bad Request"}
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Ajout d'un délégataire de signature
Route
PUT /rest/users/{id}/signatorySubstitute
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
destUser
integer
Oui
Identifiant (users.id ) de l'utilisateur délégataire
Exemple
Retour
Code Http
Type
Description
Exemple
200
array
La modification a bien été prise en compte
400
array
Un paramètre obligatoire est manquant
{"errors": "Id is empty or not an integer"}
Suppression d'un délégataire de signature
Route
DELETE /rest/users/{id}/signatorySubstitute
Le paramètre id de la route représente l'identifiant technique (users.id ) de l'utilisateur à modifier.
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
destUsers
array
Oui
Tableau contenant le ou les identifiant(s) (users.id ) de(s) l'utilisateur(s) délégataire(s) à supprimer
Exemple
{
"destUsers" : [ 10 , 19 ]
}
Retour
Code Http
Type
Description
Exemple
204
array
La modification a bien été prise en compte
400
array
Un paramètre obligatoire est manquant
{"errors": "Id is empty or not an integer"}
Liste des utilisateurs
Route
Retour
Code Http
Type
Description
Exemple
200
array
liste des utilisateurs
403
array
Droits insuffisants pour cette action
{"errors": "Service forbidden"}
Exemple
{
"users" : [
{
"id" : 42 ,
"user_id" : "utilisateur.exemple" ,
"firstname" : "Utilisateur" ,
"lastname" : "Exemple" ,
"status" : "OK" ,
"mail" : "utilisateur@example.invalid" ,
"mode" : "standard"
}
],
"quota" : []
}
Description des statuts utilisateur :
OK : Actif
ABS : Absent
SPD : Suspendu
Export des utilisateurs
Cette route génère un fichier CSV contenant les utilisateurs compris dans le périmètre d'administration de l'appelant.
Route
L'appelant doit disposer du privilège admin_users . Un super administrateur peut exporter tous les utilisateurs non supprimés. Pour les autres administrateurs, l'export est limité à leur périmètre d'entités et aux utilisateurs sans entité.
Paramètres
Body
Valeur
Type
Obligatoire
Valeur par défaut
Description
data
array
Non
Champs par défaut
Colonnes à exporter
data[].label
string
Oui si data est renseigné
Libellé utilisé dans l'en-tête CSV
data[].value
string
Oui si data est renseigné
Identifiant du champ à exporter
delimiter
string
Non
,
Séparateur CSV : ,, ; ou TAB
Les champs exportables sont :
Valeur
Description
id
Identifiant technique
userId
Login
firstname
Prénom
lastname
Nom
phone
Numéro de téléphone
mail
Adresse électronique
status
Statut du compte
accountType
Mode du compte
groups
Groupes associés
entities
Entités associées
baskets
Bannettes disponibles
redirectedBaskets
Bannettes redirigées vers un autre utilisateur
assignedBaskets
Bannettes attribuées par un autre utilisateur
Sans propriété data, les champs id, userId, firstname, lastname, phone et mail sont exportés. Le champ phone est retiré si l'appelant ne dispose pas du privilège view_personal_data .
Exemple
{
"delimiter" : ";" ,
"data" : [
{
"label" : "Login" ,
"value" : "userId"
},
{
"label" : "Nom" ,
"value" : "lastname"
},
{
"label" : "Statut" ,
"value" : "status"
}
]
}
Retour
Code HTTP
Type
Description
200
fichier CSV
Fichier export_maarch.csv
400
object
Aucun champ autorisé n'a été sélectionné
403
object
L'appelant ne dispose pas du privilège admin_users
La réponse 200 utilise le type de contenu application/vnd.ms-excel et l'en-tête Content-Disposition: attachment; filename=export_maarch.csv.
Import des utilisateurs
Cette route crée ou met à jour plusieurs utilisateurs. Chaque entrée est traitée indépendamment.
Route
L'appelant doit disposer du privilège admin_users . Hors super administrateur, la modification est limitée aux utilisateurs de son périmètre et aux utilisateurs sans entité.
Paramètres
Body
Valeur
Type
Obligatoire
Description
users
array
Oui
Utilisateurs à créer ou à mettre à jour
users[].id
integer
Non
Identifiant technique. Son absence déclenche une création
users[].user_id
string
Oui à la création
Login du nouvel utilisateur
users[].firstname
string
Oui à la création
Prénom, limité à 255 caractères
users[].lastname
string
Oui à la création
Nom, limité à 255 caractères
users[].mail
string
Oui à la création
Adresse électronique valide, limitée à 255 caractères
users[].phone
string
Non
Numéro de téléphone, limité à 32 caractères
Lors d'une mise à jour, seuls les champs non vides parmi firstname, lastname, mail et phone sont modifiés. La modification du téléphone nécessite le privilège manage_personal_data .
Si le login d'un nouvel utilisateur correspond à un compte au statut DEL, le compte est réactivé avec le statut OK. Si le compte existe avec un autre statut, l'entrée est rejetée.
Exemple
{
"users" : [
{
"user_id" : "utilisateur.exemple" ,
"firstname" : "Utilisateur" ,
"lastname" : "Exemple" ,
"mail" : "utilisateur@example.invalid" ,
"phone" : "+33000000000"
},
{
"id" : 42 ,
"mail" : "compte.secondaire@example.invalid"
}
]
}
Retour
Code HTTP
Type
Description
200
object
Résultat détaillé de l'import
400
object
La propriété users est absente ou n'est pas un tableau
403
object
L'appelant ne dispose pas du privilège admin_users
Une erreur sur une entrée n'interrompt pas le traitement des autres entrées. Les index présents dans warnings.details et errors.details correspondent aux index du tableau users.
Exemple
{
"success" : 1 ,
"warnings" : {
"count" : 0 ,
"details" : []
},
"errors" : {
"count" : 1 ,
"details" : [
{
"error" : "Argument mail is not correct for user 1" ,
"index" : 1 ,
"lang" : "argumentMailNotCorrect"
}
]
}
}
Consultation d'un utilisateur
Route
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
Un utilisateur peut consulter son propre compte. La consultation d'un autre compte nécessite le privilège admin_users . Seul le super administrateur peut consulter un compte en mode root_invisible.
Retour
Code HTTP
Type
Description
200
object
Informations générales de l'utilisateur
400
object
L'identifiant n'est pas un entier
403
object
Droits insuffisants ou compte root_invisible non accessible
404
object
L'utilisateur n'existe pas
Données
Valeur
Type
Description
id
integer
Identifiant technique
firstname
string
Prénom
lastname
string
Nom
enabled
boolean
false lorsque le compte est suspendu (SPD), true dans les autres cas
mail
string
Adresse électronique
phone
string
Numéro de téléphone. La propriété peut être absente si l'appelant ne peut pas consulter les données personnelles
mode
string
Mode du compte
department
string ou null
Libellé de l'entité principale
Exemple
{
"id" : 42 ,
"firstname" : "Utilisateur" ,
"lastname" : "Exemple" ,
"enabled" : true ,
"mail" : "utilisateur@example.invalid" ,
"phone" : "+33000000000" ,
"mode" : "standard" ,
"department" : "Direction générale"
}
Consultation détaillée d'un utilisateur
Route
GET /rest/users/{id}/details
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
Un utilisateur peut consulter ses propres informations détaillées. La consultation d'un autre utilisateur nécessite le privilège admin_users et reste limitée au périmètre d'administration. Seul le super administrateur peut consulter un compte en mode root_invisible.
Retour
Code HTTP
Type
Description
200
object
Informations détaillées de l'utilisateur
400
object
Identifiant invalide ou utilisateur inexistant
403
object
Droits insuffisants, utilisateur hors périmètre ou compte root_invisible non accessible
Données principales
Valeur
Type
Description
id
integer
Identifiant technique
user_id
string
Login
firstname
string
Prénom
lastname
string
Nom
status
string
Statut OK, ABS, SPD ou DEL
phone
string
Numéro de téléphone. La propriété peut être absente sans le privilège view_personal_data
mail
string
Adresse électronique
initials
string
Initiales
mode
string
Mode du compte
authorizedApi
array ou null
Routes autorisées pour un compte WebService
external_id
object
Identifiants du compte dans les services externes
absence
object ou null
Configuration de l'absence
signatures
array
Signatures de l'utilisateur, vides sans le privilège view_personal_data
emailSignatures
array
Signatures de courriel, vides sans le privilège view_personal_data
groups
array
Groupes associés
allGroups
array
Groupes que l'administrateur peut associer
entities
array
Entités associées
allEntities
array
Entités que l'administrateur peut associer
baskets
array
Bannettes de l'utilisateur
assignedBaskets
array
Bannettes attribuées par d'autres utilisateurs
redirectedBaskets
array
Bannettes redirigées
canModifyPassword
boolean
Indique si le mot de passe peut être modifié depuis l'administration
canSendActivationNotification
boolean
Indique si une notification d'activation peut être envoyée
canLinkToExternalSignatoryBook
boolean
Indique si le compte peut être lié au parapheur externe configuré
Vérification avant la suppression d'un utilisateur
Cette route indique si l'administrateur peut gérer les éléments qui bloqueraient la suppression et fournit les données nécessaires à leur réattribution.
Route
GET /rest/users/{id}/isDeletable
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
La vérification nécessite le privilège admin_users , respecte le périmètre d'administration et ne peut pas cibler le compte de l'appelant.
Retour
Code HTTP
Type
Description
200
object
Résultat de la vérification et éléments à réattribuer
400
object
Identifiant invalide ou utilisateur inexistant
403
object
Droits insuffisants, utilisateur hors périmètre ou tentative sur son propre compte
Données
Valeur
Type
Description
isDeletable
boolean
Indique si l'appelant peut prendre en charge tous les éléments bloquants
listTemplateEntities
array
Entités des modèles de liste hors du périmètre de l'appelant, présent lorsque isDeletable vaut false
listInstanceEntities
array
Entités des listes de diffusion hors du périmètre de l'appelant, présent lorsque isDeletable vaut false
listTemplates
array
Modèles de liste à traiter avant la suppression, présent lorsque isDeletable vaut true
listInstances
array
Listes de diffusion de courriers à traiter, présent lorsque isDeletable vaut true
workflowListInstances
array
Circuits de visa à traiter, présent lorsque isDeletable vaut true
Exemple
{
"isDeletable" : true ,
"listTemplates" : [],
"listInstances" : [],
"workflowListInstances" : []
}
Suspension d'un utilisateur
La suspension désactive le compte en lui attribuant le statut SPD. Elle supprime également ses redirections de bannettes et certaines associations aux listes de diffusion.
Route
PUT /rest/users/{id}/suspend
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
La suspension nécessite le privilège admin_users , respecte le périmètre d'administration et ne peut pas cibler le compte de l'appelant. Seul un super administrateur peut suspendre un compte super administrateur.
Retour
Code HTTP
Type
Description
204
aucun
L'utilisateur a été suspendu
400
object
Identifiant invalide ou utilisateur inexistant
403
object
Droits insuffisants, utilisateur hors périmètre, compte non autorisé ou présence dans une liste de diffusion ou un modèle de liste bloquant
La réponse 204 ne contient pas de corps.
Suppression d'un utilisateur
La suppression est logique : le compte est conservé avec le statut DEL. Ses associations aux groupes, entités, bannettes, redirections et listes sont supprimées. La synchronisation avec le parapheur interne peut également être déclenchée.
Route
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
La suppression nécessite le privilège admin_users , respecte le périmètre d'administration et ne peut pas cibler le compte de l'appelant. Seul un super administrateur peut supprimer un compte super administrateur.
Retour
Code HTTP
Type
Description
200
object
L'utilisateur a été supprimé logiquement
400
object
Identifiant invalide ou utilisateur inexistant
403
object
Droits insuffisants, utilisateur hors périmètre, compte non autorisé ou présence dans une liste de diffusion ou un modèle de liste bloquant
Exemple
La propriété problem vaut null lorsque la synchronisation éventuelle avec le parapheur interne n'a rencontré aucune erreur.
Consultation du statut d'un utilisateur
Cette route recherche un utilisateur par son login, sans tenir compte de la casse.
Route
GET /rest/users/{userId}/status
Paramètres
URL
Valeur
Type
Obligatoire
Description
userId
string
Oui
Login de l'utilisateur (users.user_id)
L'appelant doit disposer du privilège admin_users .
Retour
Code HTTP
Type
Description
200
object
Statut du compte, ou null si le login n'existe pas
403
object
L'appelant ne dispose pas du privilège admin_users
Exemple
Les statuts possibles sont OK (actif), ABS (absent), SPD (suspendu) et DEL (supprimé).
Modification du statut d'un utilisateur
Cette route permet de déclarer un utilisateur absent ou de le remettre en activité.
Route
PUT /rest/users/{id}/status
Paramètres
URL
Valeur
Type
Obligatoire
Description
id
integer
Oui
Identifiant technique de l'utilisateur (users.id)
Body
Valeur
Type
Obligatoire
Description
status
string
Oui
Nouveau statut : OK ou ABS
Un utilisateur peut modifier son propre statut. La modification d'un autre utilisateur nécessite le privilège admin_users et reste limitée au périmètre d'administration.
Le passage de ABS à OK efface la configuration d'absence enregistrée sur le compte. Les statuts SPD et DEL ne sont pas acceptés par cette route.
Exemple
Retour
Code HTTP
Type
Description
200
object
Statut mis à jour
400
object
Identifiant invalide, utilisateur inexistant ou statut absent ou non autorisé
403
object
Droits insuffisants ou utilisateur hors périmètre
Exemple
{
"user" : {
"status" : "ABS"
}
}
Liaison des comptes Maarch Courrier avec les comptes Maarch Parapheur
Associer un compte utilisateur Maarch Parapheur
Route
PUT /rest/users/{id}/linkToMaarchParapheur
Le paramètre id de la route représente l'identifiant technique de l'utilisateur Maarch Courrier.
Body
Valeur
Type
Obligatoire
Description
maarchParapheurUserId
integer
Oui
Identifiant technique de l'utilisateur Maarch Parapheur
Exemple
{
"maarchParapheurUserId" : 19
}
Retour
Code Http
Type
Description
Exemple
200
json
La liaison a bien été effectuée
{"success": "success"}
400
array
Message d'erreur
{"errors": "User does not exist in Maarch Parapheur"}
403
array
Utilisateur déjà lié
{"errors": "This maarch parapheur user is already linked to someone. Choose another one"}
Création d'un nouveau compte Maarch Parapheur
Il est possible de créer un nouveau compte utilisateur Maarch Parapheur et l'associer automatiquement au compte utilisateur Maarch Parapheur.
Route
PUT /rest/users/{id}/createInMaarchParapheur
Le paramètre id de la route représente l'identifiant technique de l'utilisateur Maarch Courrier.
Body
Valeur
Type
Obligatoire
Description
login
string
Oui
Identifiant technique de l'utilisateur Maarch Parapheur
Exemple
{
"login" : "utilisateur.exemple"
}
Retour
Code Http
Type
Description
Exemple
200
array
La liaison a bien été effectuée
{"externalId": 19}
400
array
Message d'erreur
{"errors": "User does not exist in Maarch Parapheur"}
403
array
Utilisateur déjà lié
{"errors": "This maarch parapheur user is already linked to someone. Choose another one"}
Exemple
{
"externalId" : 19 // Identifiant technique de l'utilisateur Maarch Parapheur créé
}
Dissocier un compte utilisateur Maarch Parapheur
Route
PUT /rest/users/{id}/unlinkToMaarchParapheur
Le paramètre id de la route représente l'identifiant technique de l'utilisateur Maarch Courrier.
Retour
Code HTTP
Type
Description
Exemple
200
json
La dissociation a bien été effectuée
{"success": "success"}
Statut de l'utilisateur Maarch Courrier dans Maarch Parapheur
Route
GET /rest/users/{id}/statusInMaarchParapheur
Le paramètre id de la route représente l'identifiant technique de l'utilisateur Maarch Courrier.
Retour
Code Http
Type
Description
Exemple
200
json
Renvoyer le login de l'utilisateur Maarch
{"link": "utilisateur.exemple", "errors": ""}
400
array
L'utilisateur n'a pas d'identifiant Maarch Parapheur
{"errors": "User does not have Maarch Parapheur Id"}
403
array
Maarch Parapheur n'est pas activé
{"errors": "maarchParapheur is not enabled"}
Exemple
{
"link" : "utilisateur.exemple" ,
"errors" : ""
}
Modifier le rôle d'un utilisateur dans un groupe
PUT /rest/users/{id}/groups/{groupId}
id est l'identifiant technique de l'utilisateur et groupId l'identifiant métier du groupe. L'appelant doit disposer de admin_users , administrer l'utilisateur et pouvoir affecter le groupe.
Valeur du body
Type
Obligatoire
Description
role
string
Non
Rôle dans le groupe, chaîne vide par défaut
{
"role" : "Responsable"
}
Code HTTP
Type
Description
200
object
{"success":"success"}
400
object
Utilisateur, identifiant ou groupe invalide
403
object
Droits, périmètre ou groupe non affectable
Lister les entités d'un utilisateur
GET /rest/users/{id}/entities
L'api vérifie uniquement l'existence de l'utilisateur, aucun privilège ou périmètre supplémentaire n'est contrôlé.
Code HTTP
Type
Description
200
object
Propriété entities
400
object
User does not exist
401
object
Authentification invalide
403
object
Route non autorisée au compte WebService
Modifier le rôle d'un utilisateur dans une entité
PUT /rest/users/{id}/entities/{entityId}
L'appelant doit disposer de admin_users et administrer l'utilisateur dans son périmètre.
Valeur
Type
Obligatoire
Description
id (URL)
integer
Oui
Identifiant technique utilisateur
entityId (URL)
string
Oui
Identifiant métier de l'entité
user_role (body)
string
Non
Rôle, chaîne vide par défaut
{
"user_role" : "Responsable"
}
Code HTTP
Type
Description
200
object
{"success":"success"}
400
object
Utilisateur ou entité absent
403
object
Droits ou périmètre insuffisants
Définir l'entité principale
PUT /rest/users/{id}/entities/{entityId}/primaryEntity
Aucun body. L'appelant doit disposer de admin_users et administrer l'utilisateur dans son périmètre.
Code HTTP
Type
Description
200
object
Propriété entities actualisée
400
object
Utilisateur ou entité absent
403
object
Droits ou périmètre insuffisants
Vérifier les usages avant de retirer une entité
GET /rest/users/{id}/entities/{entityId}
L'appelant doit disposer de admin_users et administrer l'utilisateur.
Code HTTP
Type
Description
200
object
Booléens hasListinstances et hasListTemplates
400
object
Utilisateur ou entité absent
403
object
Droits ou périmètre insuffisants
{
"hasListinstances" : false ,
"hasListTemplates" : false
}
Ajouter une signature manuscrite
POST /rest/users/{id}/signatures
L'utilisateur courant peut gérer ses signatures. Pour un autre utilisateur, manage_personal_data , admin_users et le périmètre sont requis.
Valeur du body
Type
Obligatoire
Description
base64
string
Oui
Image encodée, 2 Mo au maximum
name
string
Oui
Nom de fichier sûr
label
string
Oui
Libellé
{
"base64" : "<contenu-base64>" ,
"name" : "signature.png" ,
"label" : "Signature principale"
}
Code HTTP
Type
Description
200
object
Propriété signatures
400
object
Paramètre, nom, type ou taille invalide
403
object
Droits ou périmètre insuffisants
500
object
Docserver inaccessible
Lire le contenu d'une signature manuscrite
GET /rest/users/{id}/signatures/{signatureId}/content
L'utilisateur courant peut lire sa signature. Pour un autre utilisateur, view_personal_data , admin_users et le périmètre sont requis.
Code HTTP
Type
Description
200
binaire
Image avec son type MIME
400
object
Identifiant invalide ou signature absente
403
object
Droits ou périmètre insuffisants
404
object
Signature not found on docserver
Renommer une signature manuscrite
PUT /rest/users/{id}/signatures/{signatureId}
Même contrôle d'accès que pour l'ajout.
Valeur du body
Type
Obligatoire
Description
label
string
Oui
Nouveau libellé
Code HTTP
Type
Description
200
object
Propriété signature
400
object
Body invalide
403
object
Droits ou périmètre insuffisants
Supprimer une signature manuscrite
DELETE /rest/users/{id}/signatures/{signatureId}
Même contrôle d'accès que pour l'ajout. Aucun body.
Code HTTP
Type
Description
200
object
Propriété signatures actualisée
403
object
Droits ou périmètre insuffisants
Lister les empreintes utilisables dans le parapheur
GET /rest/users/{id}/visaSignatures
id est l'identifiant technique. Le cas d'usage interdit la consultation des signatures d'un autre utilisateur sans autorisation.
Code HTTP
Type
Description
200
array
Empreintes de signature
403
object
Accès aux signatures d'un autre utilisateur interdit
404
object
Utilisateur inexistant
La structure détaillée des empreintes n'est pas couverte par un test HTTP de contrat.
Créer des redirections de bannettes
POST /rest/users/{id}/redirectedBaskets
L'utilisateur courant peut agir pour lui-même, sinon admin_users et le périmètre sont requis. Le body est un tableau de redirections.
Valeur d'une redirection
Type
Obligatoire
Description
actual_user_id
integer
Oui
Délégataire
group_id
integer
Oui
Identifiant technique du groupe
basket_id
string
Oui
Identifiant métier de la bannette
originalOwner
integer
Non
Propriétaire initial pour une chaîne de délégation
[
{
"actual_user_id" : 43 ,
"group_id" : 6 ,
"basket_id" : "COURRIERS_A_TRAITER"
}
]
Code HTTP
Type
Description
200
object
redirectedBaskets, baskets et éventuel problem
400
object
Redirection invalide
403
object
Droits ou périmètre insuffisants
Supprimer des redirections de bannettes
DELETE /rest/users/{id}/redirectedBaskets?redirectedBasketIds[]=15
Paramètre query
Type
Obligatoire
Description
redirectedBasketIds
array
Oui
Identifiants techniques des redirections
L'utilisateur courant peut supprimer ses redirections, sinon admin_users et le périmètre sont requis. Chaque redirection doit concerner l'utilisateur ciblé comme propriétaire ou délégataire.
Code HTTP
Type
Description
200
object
baskets et éventuel problem
400
object
Paramètre ou utilisateur invalide
403
object
Redirection hors périmètre
Modifier l'affichage des bannettes d'un utilisateur
PUT /rest/users/{id}/baskets
admin_users et le périmètre sont requis.
Valeur d'un élément baskets
Type
Obligatoire
Description
basketId
string
Oui
Identifiant métier de la bannette
groupSerialId
integer
Oui
Identifiant technique du groupe
allowed
boolean
Oui
Afficher ou masquer
{
"baskets" : [
{
"basketId" : "COURRIERS_A_TRAITER" ,
"groupSerialId" : 6 ,
"allowed" : true
}
]
}
Code HTTP
Type
Description
200
object
{"success":"success"}
400
object
Relation, élément ou préférence invalide
403
object
Droits ou périmètre insuffisants
Envoyer la notification d'activation
PUT /rest/users/{id}/accountActivationNotification
Aucun body. admin_users et le périmètre sont requis. La méthode de connexion doit être standard.
Code HTTP
Type
Description
204
aucun
Notification envoyée
403
object
Droits insuffisants ou connexion non standard
Programmer une absence
PUT /rest/users/{id}/absence
L'utilisateur courant peut programmer sa propre absence, sinon admin_users et le périmètre sont requis.
Valeur du body
Type
Obligatoire
Description
absenceDate.startDate
string
Non
Date de début, non passée
absenceDate.endDate
string
Oui
Date de fin postérieure au début
redirectedBaskets
array
Oui
Redirections contenant actual_user_id, group_id et basket_id
{
"absenceDate" : {
"startDate" : "2026-09-01" ,
"endDate" : "2026-09-15"
},
"redirectedBaskets" : []
}
Code HTTP
Type
Description
204
aucun
Absence enregistrée ou absence future annulée
400
object
Date, utilisateur ou redirection invalide
403
object
Droits ou périmètre insuffisants
Lier Maarch Courrier Mobile
PATCH /rest/users/{id}/maarchCourrierMobile/link
Le cas d'usage vérifie que l'utilisateur ciblé existe et correspond à l'utilisateur courant.
Valeur du body
Type
Obligatoire
Description
mcm
object
Oui
Configuration mobile
mcm.tokens
array
Non
Jetons mobiles
mcm.preferenceNotificationMCM
array
Non
Préférences de notification
{
"mcm" : {
"tokens" : [ "<token-mobile>" ],
"preferenceNotificationMCM" : []
}
}
Code HTTP
Type
Description
204
aucun
Liaison enregistrée
400
object
id ou mcm absent
403
object
Utilisateur ciblé différent de l'utilisateur courant
Délier Maarch Courrier Mobile
PATCH /rest/users/{id}/maarchCourrierMobile/unlink
Aucun body. Le cas d'usage limite l'opération à l'utilisateur courant.
Code HTTP
Type
Description
204
aucun
Jetons mobiles supprimés
400
object
Identifiant absent
403
object
Utilisateur ciblé différent de l'utilisateur courant
Supprimer les préférences de notification mobile
DELETE /rest/users/{id}/maarchCourrierMobile/unlinkPreferenceNotification
Aucun body. Le cas d'usage limite l'opération à l'utilisateur courant.
Code HTTP
Type
Description
204
aucun
Préférences supprimées
403
object
Utilisateur ciblé différent de l'utilisateur courant
Consulter le profil courant
GET /rest/currentUser/profile
La réponse agrège identité, préférences, entités, groupes, bannettes, redirections, signatures, privilèges, règles de mot de passe, absence et délégataires. Les clauses de sécurité des groupes et bannettes sont retirées.
Code HTTP
Type
Description
200
object
Profil de l'utilisateur authentifié
401
object
Authentification invalide
Modifier le profil courant
PUT /rest/currentUser/profile
Le paramètre global canUpdateProfile doit être activé ou l'utilisateur doit posséder admin_users .
Valeur du body
Type
Obligatoire
Description
firstname
string
Oui
Prénom
lastname
string
Oui
Nom
mail
string
Oui
Adresse électronique valide
phone
string
Non
Téléphone valide
initials
string
Non
Initiales
Code HTTP
Type
Description
204
aucun
Profil modifié
400
object
Champ invalide
403
object
Modification du profil interdite
Modifier les préférences du profil courant
PUT /rest/currentUser/profile/preferences
Valeur du body
Type
Obligatoire
Description
documentEdition
string
Non
Méthode d'édition autorisée par l'application
homeGroups
valeur JSON
Non
Groupement de la page d'accueil
{
"documentEdition" : "onlyoffice"
}
Code HTTP
Type
Description
204
aucun
Préférences modifiées
400
object
Méthode d'édition interdite
Enregistrer l'état du parcours guidé
PUT /rest/currentUser/profile/featureTour
Valeur du body
Type
Obligatoire
Description
featureTour
valeur JSON non vide
Oui
État du parcours guidé
Code HTTP
Type
Description
204
aucun
État enregistré
400
object
Body featureTour is empty
Gérer les signatures de courriel personnelles
Action
Route
Body
Retour
Créer
POST /rest/currentUser/emailSignatures
title et htmlBody
200, emailSignatures
Modifier
PUT /rest/currentUser/emailSignature/{id}
title et htmlBody
200, emailSignature
Supprimer
DELETE /rest/currentUser/emailSignature/{id}
Aucun
200, emailSignatures
Lister avec contenu
GET /rest/currentUser/emailSignatures
Aucun
200, signatures personnelles et globales
Lister sans contenu
GET /rest/currentUser/emailSignaturesList
Aucun
200, signatures personnelles et globales
Consulter une personnelle
GET /rest/currentUser/emailSignatures/{id}
Aucun
200 ou 404 Signature not found
Consulter une globale
GET /rest/currentUser/globalEmailSignatures/{id}
Aucun
200, signature ou null
Le contenu HTML est nettoyé par le serveur. Les routes personnelles utilisent toujours l'utilisateur authentifié.
{
"title" : "Signature professionnelle" ,
"htmlBody" : "<p>Utilisateur Exemple</p>"
}
Modifier la couleur d'une bannette du profil courant
PUT /rest/currentUser/groups/{groupId}/baskets/{basketId}
Valeur
Type
Obligatoire
Description
groupId (URL)
integer
Oui
Identifiant technique du groupe
basketId (URL)
string
Oui
Identifiant métier de la bannette
color (body)
string
Non
Couleur, une chaîne vide pour supprimer la couleur
Code HTTP
Type
Description
200
object
Propriété userBaskets
Lister les modèles accessibles au profil courant
GET /rest/currentUser/templates?type=mail&target=attachment
Paramètre query
Type
Obligatoire
Description
type
string
Non
Type converti en majuscules
target
string
Non
Cible du modèle
Code HTTP
Type
Description
200
object
Propriété templates, limitée aux entités du profil
Lister les adresses d'expédition disponibles
GET /rest/currentUser/availableEmails
Aucun paramètre. La réponse est construite pour l'utilisateur authentifié.
Code HTTP
Type
Description
200
object
Propriété emails
Rechercher des utilisateurs
GET /rest/autocomplete/users?search=utilisateur&inEntity=SERVICE_A&serial=true
Paramètre query
Type
Obligatoire
Description
search
string
Oui
Recherche sur prénom et nom
inEntity
string ou integer
Non
Identifiant métier ou technique d'entité
serial
valeur non vide
Non
Place l'identifiant technique dans id
Les comptes supprimés, suspendus, WebService et super administrateur invisible sont exclus. Limite : 50.
Code HTTP
Type
Description
200
array
Résultats
400
object
Bad Request
[
{
"type" : "user" ,
"id" : 42 ,
"serialId" : 42 ,
"idToDisplay" : "Utilisateur Exemple" ,
"descriptionToDisplay" : "Service A" ,
"status" : "OK"
}
]
Rechercher des utilisateurs administrables
GET /rest/autocomplete/users/administration?search=utilisateur
La route limite un administrateur non super administrateur à ses entités et aux comptes sans entité.
Code HTTP
Type
Description
200
array
Au plus 50 utilisateurs
400
object
Bad Request
Rechercher des utilisateurs pour un circuit
GET /rest/autocomplete/users/circuit?search=utilisateur&circuit=opinion
Le paramètre circuit=opinion sélectionne les utilisateurs possédant le privilège avis_documents , les autres valeurs sélectionnent visa et signature. Les comptes WebService, supprimés, suspendus et invisibles sont exclus.
Code HTTP
Type
Description
200
array
Utilisateurs affectables au circuit
Rechercher des comptes Maarch Parapheur
GET /rest/autocomplete/maarchParapheurUsers?search=utilisateur&excludeAlreadyConnected=true
Paramètre query
Type
Obligatoire
Description
search
string
Oui
Recherche distante
excludeAlreadyConnected
valeur non vide
Non
Exclut les comptes déjà liés
Code HTTP
Type
Description
200
array
Comptes Maarch Parapheur
400
object
Erreur du service distant
403
object
maarchParapheur is not enabled
500
object
Configuration absente ou incomplète
Rechercher des comptes Fast Parapheur
GET /rest/autocomplete/fastParapheurUsers?search=utilisateur&excludeAlreadyConnected=true
search est obligatoire et contient au moins deux caractères. La recherche est limitée aux abonnés accessibles depuis les entités de l'appelant.
Code HTTP
Type
Description
200
array
Comptes Fast Parapheur
400
object
Recherche trop courte, configuration ou service distant en erreur
Envoyer les signatures vers Maarch Parapheur
PUT /rest/users/{id}/externalSignatures
Aucun body. L'utilisateur courant peut envoyer ses signatures, sinon admin_users et le périmètre sont requis. Maarch Parapheur doit être activé et l'utilisateur lié.
Code HTTP
Type
Description
200
object
{"success":"success"}
400
object
Aucune signature, docserver ou service distant en erreur
403
object
Accès interdit, fichier absent, utilisateur non lié ou parapheur désactivé
Lier un utilisateur à Fast Parapheur
PUT /rest/users/{id}/linkToFastParapheur
admin_users et le périmètre sont requis.
Valeur du body
Type
Obligatoire
Description
fastParapheurUserEmail
string
Oui
Adresse électronique du compte Fast Parapheur
{
"fastParapheurUserEmail" : "utilisateur@example.invalid"
}
Code HTTP
Type
Description
204
aucun
Liaison créée
400
object
Identifiant, courriel, configuration ou compte distant invalide
403
object
Droits insuffisants ou compte déjà lié
Délier un utilisateur de Fast Parapheur
PUT /rest/users/{id}/unlinkToFastParapheur
Aucun body. admin_users et le périmètre sont requis.
Code HTTP
Type
Description
204
aucun
Liaison supprimée
400
object
Identifiant invalide
403
object
Droits ou périmètre insuffisants
Consulter la liaison Fast Parapheur
GET /rest/users/{id}/statusInFastParapheur
Aucun body.
Code HTTP
Type
Description
200
object
Adresse liée dans link
400
object
Configuration ou compte distant en erreur
403
object
Fast Parapheur désactivé ou utilisateur non lié
{
"link" : "utilisateur@example.invalid"
}
1 septembre 2026
6 mars 2026