Winx - API Integração
  1. Employees
Winx - API Integração
  • Raiz
    • Documentação de Integração
    • Companies
      • 📋 Listar Empresas
    • Filters
      • 📋 Listar Filtros
      • ➕ Criar Filtro
      • 🔍 Visualizar Filtro
      • ✏️ Atualizar Filtro
      • 🗑️ Excluir Filtro
    • Employees
      • 📋 Listar Funcionários
        GET
      • ➕ Criar Funcionário
        POST
      • 🔍 Visualizar Funcionário
        GET
      • ✏️ Atualizar Funcionário
        PUT
      • 🗑️ Excluir Funcionário
        DELETE
    • Users
      • Permissions
        • 📋 Listar Permissões
        • ➕ Criar Permissão
        • 🔍 Visualizar Permissão
        • 🗑️ Excluir Permissão
      • Profile
        • 📋 Listar Perfis
        • ➕ Criar Perfil
        • 🔍 Visualizar Perfil
        • ✏️ Atualizar Perfil
        • 🗑️ Excluir Perfil
      • 📋 Listar Usuários
      • ➕ Criar Usuário
      • 🔍 Visualizar Usuário
      • ✏️ Atualizar Usuário
      • 🗑️ Excluir Usuário
  • Esquemas
    • Schemas
      • UserCreate
      • User
      • CampaignAccess
      • UserCollection
      • PermissionCreate
      • PermissionUpdate
      • ProfileCreate
      • Profile
      • ProfileCollection
      • Company
      • Filter
      • FilterCreate
      • FilterUpdate
      • EmployeeField
      • PaginationLinks
      • PaginationMeta
      • ErrorResponse
      • ValidationErrorResponse
    • Response
      • Unauthorized
      • Forbidden
      • NotFound
      • ValidationError
  1. Employees

✏️ Atualizar Funcionário

PUT
/v1/employees/{employeeId}

📖 Descrição#

Atualiza um funcionário existente.

🔄 Atualizações de Document (CPF)#

Dependência do identify_key da empresa:

✅ Se empresa usa DOCUMENT como chave:#

Campo document é obrigatório, NÃO pode ser NULL
Possível alterar para outro CPF válido (respeitando unicidade)
// ✅ Válido - alterar CPF
{
  "document": "98765432100"  // Novo CPF válido
}

// ❌ Inválido - tentar limpar CPF
{
  "document": null  // Será rejeitado
}

🔄 Se empresa usa EMAIL/PHONE como chave:#

Campo document é opcional (nullable)
Porém, update() ignora valores nulos - campo NÃO será atualizado para NULL
// ⚠️ Será ignorado (não atualiza para NULL)
{
  "document": null  // Sistema ignora este valor
}

// ✅ Válido - alterar CPF
{
  "document": "98765432100"  // CPF será atualizado
}

🔄 Diferenças do POST#

CampoPOSTPUT
include_campaignObrigatórioOpcional
remove_campaignNão existeObrigatório

🎯 Gestão de Campanhas#

{
  "remove_campaign": false,  // Mantém nas campanhas atuais
  // OU
  "remove_campaign": true    // Remove de todas campanhas
}
⚠️ Importante: include_campaign e remove_campaign são mutuamente excludentes.

🏁 Firing Date vs Soft Delete#

📅 firing_date - Desligamento com Histórico#

Para: Desligamento mantendo funcionário no sistema
Permite datas retroativas (data real do desligamento)
Funcionário permanece ativo para pesquisas de offboarding
Entrevistas de desligamento ainda possíveis
EmployeeObserver dispara soft delete automático
{
  "firing_date": "15/11/2024",  // Data real (pode ser passada)
  "is_voluntary_firing": false,  // Obrigatório quando firing_date preenchido
  "reason_firing": "Reestruturação",
  "remove_campaign": true  // Se quiser remover de campanhas
}
Resultado: Funcionário é soft-deleted automaticamente mas NÃO é removido de campanhas (exceto se remove_campaign: true)

🗑️ DELETE - Remoção Definitiva#

Para: Remoção completa do sistema
Soft delete imediato
Some das consultas normais
Remove de campanhas automaticamente
Apaga fields/relacionamentos
Histórico preservado no banco

🔄 Processo Completo de Desligamento#

// 1. Primeiro: registrar desligamento
PUT /v1/employees/{id}
{
  "firing_date": "31/12/2024",
  "is_voluntary_firing": true,
  "reason_firing": "Pedido de demissão",
  "remove_campaign": true,
  "fields": [
    {"id": "uuid-status", "value": "Desligado"}
  ]
}

// 2. Depois: exclusão definitiva (opcional)
DELETE /v1/employees/{id}

🔗 Links Relacionados#

Excluir Funcionário - Para remoção definitiva
Listar Empresas - Para verificar identify_key
Visualizar Funcionário

Requisição

Authorization
Forneça seu token bearer no cabeçalho
Authorization
ao fazer requisições para recursos protegidos.
Exemplo:
Authorization: Bearer ********************
Parâmetros de Caminho

Parâmetros Header

Parâmetros Bodyapplication/json

Examples
{
    "name": "João Silva Santos",
    "email": "joao.santos@empresa.com",
    "phone": "11999888777",
    "remove_campaign": false,
    "is_on_leave": false,
    "id_leader_key": "98765432108"
}

Exemplos de Requisição

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
cURL
curl --location --request PUT 'https://scenic-tokyo-3bje4ahyb4rd.on-vapor.com/api/v1/employees/' \
--header 'Resource-Id: 9c73a4aa-8094-4241-ad05-658436f471fe' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "João Silva Santos",
    "email": "joao.santos@empresa.com",
    "phone": "11999888777",
    "remove_campaign": false,
    "is_on_leave": false,
    "id_leader_key": "98765432108"
}'

Respostas

🟢200OK
application/json
✅ Funcionário atualizado com sucesso
Body

Exemplo
{
    "id": "not-found-uuid",
    "status": 404,
    "title": "Not Found",
    "detail": "Funcionário não encontrado"
}
🟠404Registro Não Encontrado
🟠422Erro de Parâmetro
Modificado em 2025-12-08 22:09:39
Página anterior
🔍 Visualizar Funcionário
Próxima página
🗑️ Excluir Funcionário
Built with