POST
/api/usersCriar usuário
Cria uma pessoa (ou um sistema) que entra na clínica com e-mail e senha.
- Exige o token de acesso — como obter
- Permissão “Adicionar usuário”
(users.create)
Headers
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
Authorization | string | Sim | Bearer {access_token}, com o token que o login devolve. |
Content-Type | string | Sim | application/json |
Corpo da requisição
| Nome | Tipo | Obrig. | Descrição |
|---|---|---|---|
name | string | Sim | Nome. |
email | string | Sim | E-mail de acesso. Único na clínica. |
password | string | Sim | Senha. |
role | string | Não | admin, operator (recepção e pré-laudo) ou medico. Padrão: operator. |
permission_group_ids | uuid[] | Não | Os grupos de permissão da pessoa. |
landing_page | string | Não | A tela inicial: /dashboard, /patients, /consultations, /queue, /pending-reports, /mapa-holter, /analytics ou /settings. |
Campos da resposta
| Nome | Tipo | Descrição |
|---|---|---|
id | uuid | O usuário. |
name | string | Nome. |
email | string | E-mail de acesso, em minúsculas. |
role | string | A função: admin, operator (recepção e pré-laudo) ou medico. O que a pessoa pode fazer vem dos grupos. |
permission_groups | array | Os grupos da pessoa ({ id, name }). |
permissions | string[] | As permissões somadas dos grupos. |
is_active | boolean | false: não entra mais no sistema. |
landing_page | string | null | A tela que abre depois do login. |
created_at | string | ISO 8601. |
Request URL
https://api-endosystem.imagemais.com.br/api/userscurl -X POST "https://api-endosystem.imagemais.com.br/api/users" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"Integração Sistema X","email":"integracao@clinica.com.br","password":"uma-senha-longa-e-unica","role":"operator","permission_group_ids":["1f3b5d7a-9c2e-4b4d-a6f8-0b2d4f6a8c0e"]}'{
"name": "Integração Sistema X",
"email": "integracao@clinica.com.br",
...{
"name": "Integração Sistema X",
"email": "integracao@clinica.com.br",
"password": "uma-senha-longa-e-unica",
"role": "operator",
"permission_group_ids": [
"1f3b5d7a-9c2e-4b4d-a6f8-0b2d4f6a8c0e"
]
}Respostas
{
"id": "6a8c0e2b-4d6f-4a8b-9c1e-3f5a7b9d1c3e",
"name": "Integração Sistema X",
...{
"id": "6a8c0e2b-4d6f-4a8b-9c1e-3f5a7b9d1c3e",
"name": "Integração Sistema X",
"email": "integracao@clinica.com.br",
"role": "operator",
"permission_groups": [
{
"id": "1f3b5d7a-9c2e-4b4d-a6f8-0b2d4f6a8c0e",
"name": "Integração"
}
],
"permissions": [
"patients.create",
"patients.edit"
],
"is_active": true,
"landing_page": null,
"created_at": "2026-10-14T08:00:00-03:00"
}{
"error": "name, email e password são obrigatórios"
}{
"error": "name, email e password são obrigatórios"
}{
"error": "role inválido, use admin, operator ou medico"
}{
"error": "role inválido, use admin, operator ou medico"
}{
"error": "Email já cadastrado nesta conta"
}{
"error": "Email já cadastrado nesta conta"
}{
"error": "Grupo de permissão não encontrado"
}{
"error": "Grupo de permissão não encontrado"
}{
"error": "Você não tem a permissão \"Adicionar usuário\".",
"code": "sem_permissao"
...{
"error": "Você não tem a permissão \"Adicionar usuário\".",
"code": "sem_permissao"
}{
"error": "Funcionalidade não contratada",
"message": "Esta funcionalidade não está habilitada para a sua clínica.",
...{
"error": "Funcionalidade não contratada",
"message": "Esta funcionalidade não está habilitada para a sua clínica.",
"code": "FEATURE_NOT_ENABLED"
}{
"error": "Token ausente",
"message": "Token de autenticação necessário.",
...{
"error": "Token ausente",
"message": "Token de autenticação necessário.",
"code": "TOKEN_MISSING"
}{
"error": "Token expirado",
"message": "Sua sessão expirou. Faça login novamente.",
...{
"error": "Token expirado",
"message": "Sua sessão expirou. Faça login novamente.",
"code": "TOKEN_EXPIRED"
}{
"error": "Token inválido",
"message": "Token de autenticação inválido. Faça login novamente.",
...{
"error": "Token inválido",
"message": "Token de autenticação inválido. Faça login novamente.",
"code": "TOKEN_INVALID"
}{
"error": "Acesso revogado",
"message": "Seu acesso foi desativado. Procure o administrador da clínica.",
...{
"error": "Acesso revogado",
"message": "Seu acesso foi desativado. Procure o administrador da clínica.",
"code": "ACCESS_REVOKED"
}{
"error": "Erro interno do servidor"
}{
"error": "Erro interno do servidor"
}