> ## Documentation Index
> Fetch the complete documentation index at: https://developers.tarefy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Busca dados de RH de um usuário

> Requer autenticação Bearer e pelo menos uma das permissões 18 ou 19, conforme as regras de autorização da conta. A conta é obtida da autenticação; não envie account_id.

Retorna o cadastro usado pela tela de dados pessoais do perfil. Aceita vínculo inativo para consultar ex-colaboradores. Usuário inexistente ou sem vínculo com a conta retorna HTTP 200 vazio (o serviço retorna null), e não 404.

Se o usuário pertence à conta mas não tem registro ativo de RH, retorna dados disponíveis do perfil com has_hr_data=false; campos exclusivos de RH podem estar ausentes. Com registro ativo, has_hr_data=true. empresa vem da conta autenticada. salario e regime_trabalho vêm do histórico salarial e são null sem permissão 18 ou sem valor disponível. Veja o [guia de dados pessoais](/guides/dados-pessoais).



## OpenAPI

````yaml /api-reference/pessoas.yaml get /v2/employee-hr-data/{userId}
openapi: 3.0.0
info:
  title: Tarefy API
  description: >-
    Tarefy REST API — task management, culture and performance platform.


    Endpoints are versioned at `/v2/...`. Authentication via Bearer JWT in the
    `Authorization` header.


    To get started, see the [authentication guide](/authentication) and the
    [quickstart](/quickstart).
  version: 2.0.0
  contact:
    name: Tarefy Support
    email: suporte@tarefy.com
    url: https://tarefy.com
  license:
    name: Proprietary
    url: https://tarefy.com
servers:
  - url: https://app.tarefy.com/nodeapi
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Employee HR Data
    description: >-
      Cadastro de dados pessoais e de RH dos colaboradores. Consulte o [guia de
      integração](/guides/dados-pessoais).
  - name: Performance Evaluations
    description: Performance evaluations (90°, 180°, 360°)
  - name: Feedback
    description: Structured feedbacks
  - name: PDI
    description: Individual Development Plan
  - name: Competences
    description: Competency catalog
  - name: Competence Groups
    description: Competency grouping
  - name: NPS
    description: Internal Net Promoter Score
paths:
  /v2/employee-hr-data/{userId}:
    get:
      tags:
        - Employee HR Data
      summary: Busca dados de RH de um usuário
      description: >-
        Requer autenticação Bearer e pelo menos uma das permissões 18 ou 19,
        conforme as regras de autorização da conta. A conta é obtida da
        autenticação; não envie account_id.


        Retorna o cadastro usado pela tela de dados pessoais do perfil. Aceita
        vínculo inativo para consultar ex-colaboradores. Usuário inexistente ou
        sem vínculo com a conta retorna HTTP 200 vazio (o serviço retorna null),
        e não 404.


        Se o usuário pertence à conta mas não tem registro ativo de RH, retorna
        dados disponíveis do perfil com has_hr_data=false; campos exclusivos de
        RH podem estar ausentes. Com registro ativo, has_hr_data=true. empresa
        vem da conta autenticada. salario e regime_trabalho vêm do histórico
        salarial e são null sem permissão 18 ou sem valor disponível. Veja o
        [guia de dados pessoais](/guides/dados-pessoais).
      operationId: getEmployeeHrData
      parameters:
        - in: path
          name: userId
          required: true
          schema:
            type: integer
          description: ID do usuário
      responses:
        '200':
          description: >-
            Perfil consolidado, ou corpo vazio quando o usuário não existe ou
            não pertence à conta.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmployeeHrDataRead'
              examples:
                semCadastro:
                  summary: >-
                    Usuário vinculado, ainda sem registro de RH (exemplo
                    parcial)
                  value:
                    primeiro_nome: Ana
                    ultimo_nome: Exemplo
                    email: ana@example.com
                    empresa: Empresa Exemplo
                    salario: null
                    regime_trabalho: null
                    has_hr_data: false
        '400':
          description: >-
            Parâmetro, payload ou arquivo inválido; conta ausente; ou usuário
            sem vínculo ativo em operações de escrita.
        '401':
          description: Autenticação ausente ou inválida.
        '403':
          description: Acesso não autorizado para a operação.
        '500':
          description: >-
            Falha interna. A resposta pública não expõe detalhes internos nem
            dados pessoais.
      security:
        - bearerAuth: []
components:
  schemas:
    EmployeeHrDataRead:
      type: object
      nullable: true
      description: >-
        Objeto consolidado. Campos podem estar ausentes ou nulos quando não
        houver dados de RH.
      properties:
        primeiro_nome:
          type: string
          description: Primeiro nome do colaborador.
          nullable: true
        ultimo_nome:
          type: string
          description: Sobrenome(s) do colaborador.
          nullable: true
        nome_registro:
          type: string
          description: Nome de registro/documentos.
          nullable: true
        whatsapp:
          type: string
          description: >-
            Telefone internacional com código do país, preferencialmente E.164,
            como +5511999999999. Máscaras são removidas e o número é validado.
          nullable: true
        email:
          type: string
          description: >-
            Email de acesso. É normalizado para minúsculas e não pode estar
            vazio nem pertencer a outro usuário.
          nullable: true
        cargo:
          type: string
          description: >-
            Nome exato de um cargo já cadastrado na conta. Nome inexistente ou
            string vazia remove a associação; não cria um cargo.
          nullable: true
        linkedin:
          type: string
          description: Endereço do perfil no LinkedIn.
          nullable: true
        endereco_completo:
          type: string
          description: Logradouro/endereço completo.
          nullable: true
        cidade:
          type: string
          description: Cidade.
          nullable: true
        estado:
          type: string
          description: UF; convertida para maiúsculas e limitada a 2 caracteres.
          nullable: true
        cep:
          type: string
          description: >-
            CEP como texto. Máscaras são removidas e apenas os primeiros 8
            dígitos são mantidos.
          nullable: true
        data_nascimento:
          type: string
          format: date
          description: Data de nascimento. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
          nullable: true
        nome_pais:
          type: string
          description: Nome do pai. O nome histórico do campo é nome_pais.
          nullable: true
        nome_mae:
          type: string
          description: Nome da mãe.
          nullable: true
        email_pessoal:
          type: string
          description: Email pessoal, separado do email de acesso.
          nullable: true
        titulo:
          type: string
          description: Número do título de eleitor.
          nullable: true
        escolaridade:
          type: string
          description: Escolaridade, como Superior completo.
          nullable: true
        estado_civil:
          type: string
          description: Estado civil.
          nullable: true
        departamento:
          type: string
          description: Departamento, em texto livre.
          nullable: true
        empresa:
          type: string
          description: Nome da conta autenticada.
          nullable: true
        salario:
          type: string
          description: >-
            Último salário, como string, ou null sem permissão 18/valor
            disponível.
          nullable: true
        cpf:
          type: string
          description: CPF como texto; máscaras são removidas.
          nullable: true
        rg:
          type: string
          description: >-
            RG como texto; pontos, traços e espaços são removidos e letras são
            convertidas para maiúsculas.
          nullable: true
        rg_orgao_emissor:
          type: string
          description: Órgão emissor do RG.
          nullable: true
        rg_data_emissao:
          type: string
          description: Data de emissão do RG. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
          format: date-time
          nullable: true
        ctps:
          type: string
          description: Número da carteira de trabalho; máscaras são removidas.
          nullable: true
        ctps_serie:
          type: string
          description: Série da carteira de trabalho; máscaras são removidas.
          nullable: true
        pis:
          type: string
          description: Número do PIS; máscaras são removidas.
          nullable: true
        cnh:
          type: string
          description: Número da CNH.
          nullable: true
        cnh_categoria:
          type: string
          description: Categoria da CNH; limitada a 10 caracteres.
          nullable: true
        cnh_validade:
          type: string
          description: Data de validade da CNH. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
          format: date-time
          nullable: true
        banco:
          type: string
          description: >-
            Banco no registro de RH. Não sincroniza automaticamente o cadastro
            separado de dados bancários.
          nullable: true
        agencia:
          type: string
          description: Agência bancária como texto, preservando zeros iniciais.
          nullable: true
        conta:
          type: string
          description: Conta bancária como texto.
          nullable: true
        conta_tipo:
          type: string
          description: Tipo de conta, em texto livre; limitado a 20 caracteres.
          nullable: true
        pix:
          type: string
          description: Chave Pix do registro de RH.
          nullable: true
        bairro:
          type: string
          description: Bairro.
          nullable: true
        numero:
          type: string
          description: Número do endereço como texto; limitado a 20 caracteres.
          nullable: true
        complemento:
          type: string
          description: Complemento do endereço.
          nullable: true
        contato_emergencia_nome:
          type: string
          description: Nome do contato de emergência.
          nullable: true
        contato_emergencia_telefone:
          type: string
          description: Telefone do contato de emergência.
          nullable: true
        contato_emergencia_parentesco:
          type: string
          description: Parentesco do contato; limitado a 50 caracteres.
          nullable: true
        data_admissao:
          type: string
          description: >-
            Data de admissão no cadastro de RH; tem prioridade sobre a data
            legada na consulta. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
          format: date
          nullable: true
        data_demissao:
          type: string
          description: >-
            Data de desligamento. Informar a data não desativa o usuário. Envie
            YYYY-MM-DD (por exemplo, 2026-09-17).
          format: date-time
          nullable: true
        tipo_contrato:
          type: string
          description: Tipo de contrato em texto livre.
          nullable: true
        carga_horaria_semanal:
          type: integer
          description: Carga horária semanal em horas inteiras.
          nullable: true
        regime_trabalho:
          type: string
          description: >-
            Tipo de contrato do histórico salarial, ou null sem permissão
            18/valor disponível.
          nullable: true
        data_validade_contrato:
          type: string
          description: >-
            Data de validade do contrato. Envie YYYY-MM-DD (por exemplo,
            2026-09-17).
          format: date
          nullable: true
        previsao_formatura:
          type: string
          description: >-
            Data prevista de formatura. Envie YYYY-MM-DD (por exemplo,
            2026-09-17).
          format: date
          nullable: true
        nome_faculdade:
          type: string
          description: Nome da instituição de ensino.
          nullable: true
        curso:
          type: string
          description: Nome do curso.
          nullable: true
        cnpj:
          type: string
          description: CNPJ da pessoa jurídica contratada.
          nullable: true
        razao_social:
          type: string
          description: Razão social da pessoa jurídica contratada.
          nullable: true
        vale_transporte:
          type: boolean
          description: Recebe vale-transporte.
          nullable: true
        vale_alimentacao:
          type: boolean
          description: Recebe vale-alimentação.
          nullable: true
        vale_refeicao:
          type: boolean
          description: Recebe vale-refeição.
          nullable: true
        plano_saude:
          type: boolean
          description: Possui plano de saúde.
          nullable: true
        plano_odontologico:
          type: boolean
          description: Possui plano odontológico.
          nullable: true
        auxilio_creche:
          type: boolean
          description: Recebe auxílio-creche.
          nullable: true
        outros_beneficios:
          type: string
          description: Descrição de outros benefícios.
          nullable: true
        numero_dependentes:
          type: integer
          description: Quantidade de dependentes, como inteiro.
          nullable: true
        dependentes_info:
          type: object
          description: >-
            Objeto JSON com informações de dependentes. Não enviar um array na
            raiz.
          additionalProperties: true
          nullable: true
        documentos_anexos:
          type: object
          description: >-
            Objeto JSON com metadados de documentos. Este campo não recebe
            arquivos binários.
          additionalProperties: true
          nullable: true
        observacoes:
          type: string
          description: Observações gerais em texto.
          nullable: true
        observacoes_confidenciais:
          type: string
          description: Observações confidenciais do cadastro de RH.
          nullable: true
        id:
          type: integer
          description: >-
            Identificador do registro, usuário ou conta, conforme o campo.
            Presente quando há registro de RH.
        user_id:
          type: integer
          description: >-
            Identificador do registro, usuário ou conta, conforme o campo.
            Presente quando há registro de RH.
        account_id:
          type: integer
          description: >-
            Identificador do registro, usuário ou conta, conforme o campo.
            Presente quando há registro de RH.
        has_hr_data:
          type: boolean
          description: Existe registro ativo de RH para este usuário nesta conta.
        ativo:
          type: boolean
        tempo_empresa_dias:
          type: integer
          nullable: true
          description: Dias desde a admissão; pode ser null.
        proximo_aniversario:
          type: string
          nullable: true
          description: Próximo aniversário calculado pelo serviço.
        created_at:
          type: string
          format: date-time
          nullable: true
        updated_at:
          type: string
          format: date-time
          nullable: true
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT

````