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

➕ Criar Funcionário

POST
/v1/employees

📖 Descrição#

Cria um novo funcionário na empresa.

🎯 Exemplo Prático Detalhado#

Cenário: Empresa com identify_key: "document" (CPF obrigatório)

✅ ANA SILVA - Será gravada com SUCESSO#

{
  "name": "Ana Silva",
  "document": "12345678901",  // CPF válido (11 dígitos)
  "email": "ana@empresa.com",
  "phone": "11987654321",
  "internal_id": "EMP001",
  "fields": [
    {"id": "uuid-filter-departamento", "value": "TI"},
    {"id": "uuid-filter-cargo", "value": "Desenvolvedora"}
  ],
  "include_campaign": true,
  "is_on_leave": false
}
Resultado: ✅ Status 201 Created
{
  "data": {
    "id": "9c73a4aa-8094-4241-ad05-658436f471fe",  // ⭐ UUID gerado
    "name": "Ana Silva",
    "document": "12345678901",
    "email": "ana@empresa.com",
    "internal_id": "EMP001",
    "created_at": "2024-01-01T10:00:00+00:00"
  }
}

❌ BEATRIZ SOUZA - Falhará na validação#

{
  "name": "Beatriz Souza",
  "document": "123",  // ❌ CPF inválido (apenas 3 dígitos)
  "email": "beatriz@empresa.com",
  "fields": [
    {"id": "uuid-filter-departamento", "value": "RH"}
  ],
  "include_campaign": true,
  "is_on_leave": false
}
Resultado: ❌ Status 422 Validation Error
{
  "id": "validation-error-uuid",
  "status": 422,
  "title": "Validation Error",
  "detail": "The document format is invalid",
  "meta": {
    "errors": {
      "document": ["The document format is invalid."]
    }
  }
}

🔑 Campos Condicionais (Identify Key)#

Identify KeyCampo ObrigatórioValidação
documentCPF (11 dígitos)Algoritmo brasileiro + unicidade global
emailEmail válidoRFC 5322 + unicidade global
internal_idMatrículaunicidade global

🆔 UUID de Retorno#

O POST retorna o UUID do funcionário criado:
Use este UUID para PUT e DELETE
Exemplo: PUT /v1/employees/9c73a4aa-8094-4241-ad05-658436f471fe
Exemplo: DELETE /v1/employees/9c73a4aa-8094-4241-ad05-658436f471fe

📋 Fields Obrigatórios#

Todos os filtros com is_required=true devem estar presentes.
📖 Dois formatos aceitos: Ver Sistema de Fields
1.
Primeiro: Liste os filtros obrigatórios:
2.
Depois: Inclua todos no array fields (escolha um formato):
Formato ID + Value (Recomendado):
{
  "fields": [
    {"id": "uuid-filter-departamento", "value": "TI"},
    {"id": "uuid-filter-cargo", "value": "Desenvolvedor"}
  ]
}
Formato Key + Value (Alternativo):
{
  "fields": [
    {"key": "departamento", "value": "TI"},
    {"key": "cargo", "value": "Desenvolvedor"}
  ]
}

👤 Criação sem Document#

Se identify_key ≠ DOCUMENT: Funcionário pode ser criado sem CPF
Se identify_key = DOCUMENT: CPF obrigatório e deve ser válido (11 dígitos)
// ✅ Válido para identify_key="email"
{
  "name": "Carlos Silva",
  "email": "carlos@empresa.com",  // Email obrigatório
  "document": null,  // CPF opcional
  "fields": [...]
}

🔗 Links Relacionados#

Listar Filtros - Para obter IDs dos filtros obrigatórios
Atualizar Funcionário - Para usar o UUID retornado
Listar Empresas - Para verificar identify_key

Requisição

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

Parâmetros Bodyapplication/json

Examples
{
    "name": "Maria Santos Silva",
    "social_name": "Maria Santos",
    "email": "maria@empresa.com",
    "phone": "11987654321",
    "document": "98765432109",
    "internal_id": "FUNC001",
    "birthdate": "15/03/1985",
    "hiring_date": "01/06/2020",
    "fields": [
        {
            "id": "uuid-filter-departamento",
            "value": "Recursos Humanos"
        },
        {
            "id": "uuid-filter-cargo",
            "value": "Analista"
        },
        {
            "id": "uuid-filter-cidade",
            "value": "São Paulo"
        }
    ],
    "include_campaign": true,
    "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 POST '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": "Maria Santos Silva",
    "social_name": "Maria Santos",
    "email": "maria@empresa.com",
    "phone": "11987654321",
    "document": "98765432109",
    "internal_id": "FUNC001",
    "birthdate": "15/03/1985",
    "hiring_date": "01/06/2020",
    "fields": [
        {
            "id": "uuid-filter-departamento",
            "value": "Recursos Humanos"
        },
        {
            "id": "uuid-filter-cargo",
            "value": "Analista"
        },
        {
            "id": "uuid-filter-cidade",
            "value": "São Paulo"
        }
    ],
    "include_campaign": true,
    "is_on_leave": false,
    "id_leader_key": "98765432108"
}'

Respostas

🟢201Criado
application/json
✅ Funcionário criado com sucesso
Body

Exemplo
{
    "data": {
        "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
        "name": "string",
        "social_name": "string",
        "email": "user@example.com",
        "phone": "string",
        "document": "stringstrin",
        "internal_id": "string",
        "language": "pt_br",
        "birthdate": "2019-08-24T14:15:22Z",
        "hiring_date": "2019-08-24T14:15:22Z",
        "firing_date": "2019-08-24T14:15:22Z",
        "is_voluntary_firing": true,
        "reason_firing": "string",
        "is_on_leave": true,
        "fields": [
            {
                "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
                "value": "string"
            }
        ],
        "created_at": "2019-08-24T14:15:22Z",
        "updated_at": "2019-08-24T14:15:22Z",
        "id_leader_key": "string"
    }
}
🟠422Erro de Parâmetro
Modificado em 2025-12-08 22:09:26
Página anterior
📋 Listar Funcionários
Próxima página
🔍 Visualizar Funcionário
Built with