Usuários
Gerenciamento de usuários na Catalisa Platform.
Endpoints
| Método | Endpoint | Descrição | Permissão |
|---|---|---|---|
| POST | /api/v1/users | Criar usuário | IAM_USERS_CREATE |
| POST | /api/v1/users/login | Login | Público |
| GET | /api/v1/users | Listar usuários | IAM_USERS_READ |
| GET | /api/v1/users/:id | Obter usuário | IAM_USERS_READ |
| PATCH | /api/v1/users/:id | Atualizar usuário | IAM_USERS_UPDATE |
| DELETE | /api/v1/users/:id | Excluir usuário | IAM_USERS_DELETE |
Status de Usuário
| Status | Valor | Descrição |
|---|---|---|
| Ativo | ativo | Usuário pode autenticar normalmente |
| Inativo | inativo | Usuário desativado |
| Bloqueado | bloqueado | Usuário bloqueado por segurança |
| Pendente | pendente | Aguardando confirmação |
Criar Usuário
POST /api/v1/users
Cria um novo usuário no sistema.
Request
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | Email válido e único |
password | string | Sim | Senha (mínimo 8 caracteres) |
- cURL
- JavaScript
curl -X POST 'https://iam.stg.catalisa.app/api/v1/users' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"email": "usuário@exemplo.com",
"password": "senhaSegura123"
}'
const response = await fetch('https://iam.stg.catalisa.app/api/v1/users', {
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'usuário@exemplo.com',
password: 'senhaSegura123',
}),
});
const user = await response.json();
Response (201 Created)
{
"data": {
"type": "users",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"email": "usuário@exemplo.com",
"status": "ativo",
"mfaEnabled": false,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
},
"links": {
"self": "/api/v1/users/550e8400-e29b-41d4-a716-446655440000"
}
}
}
Login de Usuário
POST /api/v1/users/login
Autentica um usuário com email e senha.
informação
Este endpoint e publico e nao requer autenticacao.
Request
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Sim | Email do usuário |
password | string | Sim | Senha do usuário |
mfaCode | string | Não | Código MFA (se habilitado) |
- cURL
- JavaScript
curl -X POST 'https://iam.stg.catalisa.app/api/v1/users/login' \
-H 'Content-Type: application/json' \
-d '{
"email": "usuário@exemplo.com",
"password": "senhaSegura123"
}'
const response = await fetch('https://iam.stg.catalisa.app/api/v1/users/login', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({
email: 'usuário@exemplo.com',
password: 'senhaSegura123',
}),
});
const { accessToken, user } = await response.json();
Response (200 OK)
{
"accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"tokenType": "Bearer",
"expiresIn": 3600,
"refreshToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"type": "users",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"email": "usuário@exemplo.com",
"status": "ativo"
}
}
}
Listar Usuários
GET /api/v1/users
Lista usuários com suporte a paginação e filtros.
Query Parameters
| Parâmetro | Tipo | Descrição |
|---|---|---|
page[number] | integer | Número da página |
page[size] | integer | Itens por página |
filter[status] | string | Filtrar por status |
filter[email] | string | Filtrar por email (parcial) |
- cURL
- JavaScript
curl 'https://iam.stg.catalisa.app/api/v1/users?page[number]=1&page[size]=20&filter[status]=ativo' \
-H 'Authorization: Bearer SEU_TOKEN'
const params = new URLSearchParams({
'page[number]': '1',
'page[size]': '20',
'filter[status]': 'ativo',
});
const response = await fetch(`https://iam.stg.catalisa.app/api/v1/users?${params}`, {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const { data, meta, links } = await response.json();
Response (200 OK)
{
"data": [
{
"type": "users",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"email": "usuário@exemplo.com",
"status": "ativo",
"mfaEnabled": false
}
}
],
"meta": {
"totalItems": 50,
"totalPages": 3,
"currentPage": 1,
"itemsPerPage": 20
},
"links": {
"self": "/api/v1/users?page[number]=1&page[size]=20",
"next": "/api/v1/users?page[number]=2&page[size]=20"
}
}
Obter Usuário
GET /api/v1/users/:userId
Obtém detalhes de um usuário específico.
- cURL
- JavaScript
curl 'https://iam.stg.catalisa.app/api/v1/users/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer SEU_TOKEN'
const userId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(`https://iam.stg.catalisa.app/api/v1/users/${userId}`, {
headers: {
'Authorization': `Bearer ${token}`,
},
});
const user = await response.json();
Response (200 OK)
{
"data": {
"type": "users",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"email": "usuário@exemplo.com",
"status": "ativo",
"mfaEnabled": false,
"createdAt": "2024-01-15T10:30:00Z",
"updatedAt": "2024-01-15T10:30:00Z"
},
"links": {
"self": "/api/v1/users/550e8400-e29b-41d4-a716-446655440000"
}
}
}
Atualizar Usuário
PATCH /api/v1/users/:userId
Atualiza dados de um usuário.
Request
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email | string | Não | Novo email |
status | string | Não | Novo status |
mfaEnabled | boolean | Não | Habilitar/desabilitar MFA |
- cURL
- JavaScript
curl -X PATCH 'https://iam.stg.catalisa.app/api/v1/users/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer SEU_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"status": "inativo"
}'
const userId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(`https://iam.stg.catalisa.app/api/v1/users/${userId}`, {
method: 'PATCH',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
status: 'inativo',
}),
});
const user = await response.json();
Response (200 OK)
{
"data": {
"type": "users",
"id": "550e8400-e29b-41d4-a716-446655440000",
"attributes": {
"email": "usuário@exemplo.com",
"status": "inativo",
"mfaEnabled": false,
"updatedAt": "2024-01-15T11:00:00Z"
}
}
}
Excluir Usuário
DELETE /api/v1/users/:userId
Remove um usuário do sistema.
- cURL
- JavaScript
curl -X DELETE 'https://iam.stg.catalisa.app/api/v1/users/550e8400-e29b-41d4-a716-446655440000' \
-H 'Authorization: Bearer SEU_TOKEN'
const userId = '550e8400-e29b-41d4-a716-446655440000';
const response = await fetch(`https://iam.stg.catalisa.app/api/v1/users/${userId}`, {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${token}`,
},
});
// Status 204 No Content = sucesso
Response (204 No Content)
Sem corpo de resposta.
Erros Comuns
| Código | Erro | Descrição |
|---|---|---|
| 400 | VALIDATION | Email inválido ou senha muito curta |
| 401 | UNAUTHORIZED | Credenciais de login inválidas |
| 404 | NOT_FOUND | Usuário não encontrado |
| 409 | CONFLICT | Email já cadastrado |