Utilisateurs
Gestion des utilisateurs de la plateforme. La plupart des endpoints nécessitent le rôle manager ou supérieur.
Endpoints
| Méthode | Endpoint | Description | Rôle Minimum |
|---|---|---|---|
GET | /api/v1/users/me | Données de l'utilisateur connecté | attendant |
GET | /api/v1/users | Lister les utilisateurs | manager |
POST | /api/v1/users | Créer un utilisateur | manager |
GET | /api/v1/users/:id | Rechercher un utilisateur par ID | manager |
PUT | /api/v1/users/:id | Mettre à jour un utilisateur | manager |
Note
L'endpoint DELETE n'est pas disponible. Les utilisateurs sont désactivés via la mise à jour du champ active.
Utilisateur Actuel
Retourne les données de l'utilisateur authentifié.
GET /api/v1/users/meExemple de Requête
bash
curl -X GET https://voki.avanter.com.br/api/v1/users/me \
-H "Authorization: Bearer eyJhbGci..." \
-H "X-Tenant: avanter"Réponse de Succès (200)
json
{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "João Silva",
"email": "joao@empresa.com",
"role": "attendant",
"active": true,
"avatar_url": null,
"mfa_enabled": false,
"locale": "pt-BR",
"inserted_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-01T14:20:00Z"
}
}Lister les Utilisateurs
Retourne la liste paginée des utilisateurs du tenant.
GET /api/v1/usersQuery Parameters
| Paramètre | Type | Défaut | Description |
|---|---|---|---|
page | integer | 1 | Numéro de page |
page_size | integer | 20 | Éléments par page (max. 100) |
sort_by | string | name | Champ de tri (name, email, role, inserted_at) |
sort_order | string | asc | Direction (asc, desc) |
search | string | - | Filtre par nom ou email |
role | string | - | Filtre par rôle (attendant, supervisor, manager) |
active | boolean | - | Filtre par statut actif/inactif |
Exemple de Requête
bash
curl -X GET "https://voki.avanter.com.br/api/v1/users?page=1&page_size=10&role=attendant" \
-H "Authorization: Bearer eyJhbGci..." \
-H "X-Tenant: avanter"Réponse de Succès (200)
json
{
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "João Silva",
"email": "joao@empresa.com",
"role": "attendant",
"active": true,
"avatar_url": null,
"mfa_enabled": false,
"locale": "pt-BR",
"inserted_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-01T14:20:00Z"
},
{
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"name": "Maria Santos",
"email": "maria@empresa.com",
"role": "attendant",
"active": true,
"avatar_url": "https://example.com/avatar.jpg",
"mfa_enabled": true,
"locale": "pt-BR",
"inserted_at": "2026-01-20T08:00:00Z",
"updated_at": "2026-01-20T08:00:00Z"
}
],
"meta": {
"current_page": 1,
"page_size": 10,
"total_pages": 3,
"total_count": 25
}
}Créer un Utilisateur
Crée un nouvel utilisateur dans le tenant.
POST /api/v1/usersRequest Body
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
name | string | Oui | Nom complet (min. 2 caractères) |
email | string | Oui | Email unique dans le tenant |
password | string | Oui | Mot de passe (min. 8 caractères) |
role | string | Oui | Rôle : attendant, supervisor ou manager |
locale | string | Non | Langue : pt-BR, en-US, es-ES, fr (défaut : pt-BR) |
Exemple de Requête
bash
curl -X POST https://voki.avanter.com.br/api/v1/users \
-H "Authorization: Bearer eyJhbGci..." \
-H "X-Tenant: avanter" \
-H "Content-Type: application/json" \
-d '{
"user": {
"name": "Pedro Oliveira",
"email": "pedro@empresa.com",
"password": "motDePasseSecure123",
"role": "attendant",
"locale": "pt-BR"
}
}'Réponse de Succès (201)
json
{
"data": {
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"name": "Pedro Oliveira",
"email": "pedro@empresa.com",
"role": "attendant",
"active": true,
"avatar_url": null,
"mfa_enabled": false,
"locale": "pt-BR",
"inserted_at": "2026-02-18T10:00:00Z",
"updated_at": "2026-02-18T10:00:00Z"
}
}Erreurs
| Code | Description |
|---|---|
422 | Données invalides (email en double, mot de passe faible, etc.) |
403 | Permission insuffisante (rôle insuffisant) |
json
{
"errors": {
"email": ["déjà utilisé"]
}
}Rechercher un Utilisateur
Retourne les données d'un utilisateur spécifique.
GET /api/v1/users/:idPath Parameters
| Paramètre | Type | Description |
|---|---|---|
id | uuid | ID de l'utilisateur |
Exemple de Requête
bash
curl -X GET https://voki.avanter.com.br/api/v1/users/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer eyJhbGci..." \
-H "X-Tenant: avanter"Réponse de Succès (200)
json
{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "João Silva",
"email": "joao@empresa.com",
"role": "attendant",
"active": true,
"avatar_url": null,
"mfa_enabled": false,
"locale": "pt-BR",
"inserted_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-01T14:20:00Z"
}
}Erreurs
| Code | Description |
|---|---|
404 | Utilisateur non trouvé |
Mettre à Jour un Utilisateur
Met à jour les données d'un utilisateur existant.
PUT /api/v1/users/:idRequest Body
| Champ | Type | Obligatoire | Description |
|---|---|---|---|
name | string | Non | Nom complet |
email | string | Non | |
password | string | Non | Nouveau mot de passe |
role | string | Non | Nouveau rôle |
active | boolean | Non | Activer/désactiver |
locale | string | Non | Langue |
Exemple de Requête
bash
curl -X PUT https://voki.avanter.com.br/api/v1/users/a1b2c3d4-e5f6-7890-abcd-ef1234567890 \
-H "Authorization: Bearer eyJhbGci..." \
-H "X-Tenant: avanter" \
-H "Content-Type: application/json" \
-d '{
"user": {
"role": "supervisor",
"active": true
}
}'Réponse de Succès (200)
json
{
"data": {
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "João Silva",
"email": "joao@empresa.com",
"role": "supervisor",
"active": true,
"avatar_url": null,
"mfa_enabled": false,
"locale": "pt-BR",
"inserted_at": "2026-01-15T10:30:00Z",
"updated_at": "2026-02-18T11:00:00Z"
}
}