curl --request POST \
--url https://app.tarefy.com/nodeapi/v2/employee-hr-data \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": 2807,
"primeiro_nome": "Ana",
"ultimo_nome": "Exemplo",
"whatsapp": "+5511999999999",
"data_nascimento": "1995-05-15",
"endereco_completo": "Rua Exemplo",
"numero": "100",
"cidade": "São Paulo",
"estado": "SP",
"cep": "01001000",
"data_admissao": "2026-09-01",
"tipo_contrato": "CLT",
"carga_horaria_semanal": 40,
"vale_transporte": true
}
'import requests
url = "https://app.tarefy.com/nodeapi/v2/employee-hr-data"
payload = {
"user_id": 2807,
"primeiro_nome": "Ana",
"ultimo_nome": "Exemplo",
"whatsapp": "+5511999999999",
"data_nascimento": "1995-05-15",
"endereco_completo": "Rua Exemplo",
"numero": "100",
"cidade": "São Paulo",
"estado": "SP",
"cep": "01001000",
"data_admissao": "2026-09-01",
"tipo_contrato": "CLT",
"carga_horaria_semanal": 40,
"vale_transporte": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_id: 2807,
primeiro_nome: 'Ana',
ultimo_nome: 'Exemplo',
whatsapp: '+5511999999999',
data_nascimento: '1995-05-15',
endereco_completo: 'Rua Exemplo',
numero: '100',
cidade: 'São Paulo',
estado: 'SP',
cep: '01001000',
data_admissao: '2026-09-01',
tipo_contrato: 'CLT',
carga_horaria_semanal: 40,
vale_transporte: true
})
};
fetch('https://app.tarefy.com/nodeapi/v2/employee-hr-data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.tarefy.com/nodeapi/v2/employee-hr-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => 2807,
'primeiro_nome' => 'Ana',
'ultimo_nome' => 'Exemplo',
'whatsapp' => '+5511999999999',
'data_nascimento' => '1995-05-15',
'endereco_completo' => 'Rua Exemplo',
'numero' => '100',
'cidade' => 'São Paulo',
'estado' => 'SP',
'cep' => '01001000',
'data_admissao' => '2026-09-01',
'tipo_contrato' => 'CLT',
'carga_horaria_semanal' => 40,
'vale_transporte' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.tarefy.com/nodeapi/v2/employee-hr-data"
payload := strings.NewReader("{\n \"user_id\": 2807,\n \"primeiro_nome\": \"Ana\",\n \"ultimo_nome\": \"Exemplo\",\n \"whatsapp\": \"+5511999999999\",\n \"data_nascimento\": \"1995-05-15\",\n \"endereco_completo\": \"Rua Exemplo\",\n \"numero\": \"100\",\n \"cidade\": \"São Paulo\",\n \"estado\": \"SP\",\n \"cep\": \"01001000\",\n \"data_admissao\": \"2026-09-01\",\n \"tipo_contrato\": \"CLT\",\n \"carga_horaria_semanal\": 40,\n \"vale_transporte\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.tarefy.com/nodeapi/v2/employee-hr-data")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": 2807,\n \"primeiro_nome\": \"Ana\",\n \"ultimo_nome\": \"Exemplo\",\n \"whatsapp\": \"+5511999999999\",\n \"data_nascimento\": \"1995-05-15\",\n \"endereco_completo\": \"Rua Exemplo\",\n \"numero\": \"100\",\n \"cidade\": \"São Paulo\",\n \"estado\": \"SP\",\n \"cep\": \"01001000\",\n \"data_admissao\": \"2026-09-01\",\n \"tipo_contrato\": \"CLT\",\n \"carga_horaria_semanal\": 40,\n \"vale_transporte\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tarefy.com/nodeapi/v2/employee-hr-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": 2807,\n \"primeiro_nome\": \"Ana\",\n \"ultimo_nome\": \"Exemplo\",\n \"whatsapp\": \"+5511999999999\",\n \"data_nascimento\": \"1995-05-15\",\n \"endereco_completo\": \"Rua Exemplo\",\n \"numero\": \"100\",\n \"cidade\": \"São Paulo\",\n \"estado\": \"SP\",\n \"cep\": \"01001000\",\n \"data_admissao\": \"2026-09-01\",\n \"tipo_contrato\": \"CLT\",\n \"carga_horaria_semanal\": 40,\n \"vale_transporte\": true\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"user_id": 123,
"account_id": 123,
"cpf": "<string>",
"rg": "<string>",
"rg_orgao_emissor": "<string>",
"rg_data_emissao": "2023-11-07T05:31:56Z",
"ctps": "<string>",
"ctps_serie": "<string>",
"pis": "<string>",
"cnh": "<string>",
"cnh_categoria": "<string>",
"cnh_validade": "2023-11-07T05:31:56Z",
"banco": "<string>",
"agencia": "<string>",
"conta": "<string>",
"conta_tipo": "<string>",
"pix": "<string>",
"endereco_completo": "<string>",
"cep": "<string>",
"cidade": "<string>",
"estado": "<string>",
"bairro": "<string>",
"numero": "<string>",
"complemento": "<string>",
"contato_emergencia_nome": "<string>",
"contato_emergencia_telefone": "<string>",
"contato_emergencia_parentesco": "<string>",
"data_admissao": "2023-11-07T05:31:56Z",
"data_demissao": "2023-11-07T05:31:56Z",
"tipo_contrato": "<string>",
"carga_horaria_semanal": 123,
"regime_trabalho": "<string>",
"data_validade_contrato": "2023-11-07T05:31:56Z",
"previsao_formatura": "2023-11-07T05:31:56Z",
"nome_faculdade": "<string>",
"curso": "<string>",
"cnpj": "<string>",
"razao_social": "<string>",
"vale_transporte": true,
"vale_alimentacao": true,
"vale_refeicao": true,
"plano_saude": true,
"plano_odontologico": true,
"auxilio_creche": true,
"outros_beneficios": "<string>",
"numero_dependentes": 123,
"dependentes_info": {},
"documentos_anexos": {},
"observacoes": "<string>",
"observacoes_confidenciais": "<string>",
"ativo": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}Cria 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.
Cria o cadastro; se já existir, atualiza-o. Opera sobre um usuário existente e ativo, com vínculo ativo na conta autenticada. Não cria um usuário. Campos omitidos preservam valores existentes. Nome, email, WhatsApp, LinkedIn e nascimento alteram o perfil global do usuário; os dados de RH pertencem à conta. Cargo altera o vínculo com a conta. empresa, salario e regime_trabalho são aceitos no DTO, mas não são gravados por estas operações. Após salvar, consulte GET para obter o perfil consolidado e os campos descriptografados; a resposta de escrita contém o registro de RH e pode conter valores criptografados. Não há garantia de atomicidade entre as atualizações de perfil, cargo e RH.
Veja o guia de dados pessoais.
curl --request POST \
--url https://app.tarefy.com/nodeapi/v2/employee-hr-data \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"user_id": 2807,
"primeiro_nome": "Ana",
"ultimo_nome": "Exemplo",
"whatsapp": "+5511999999999",
"data_nascimento": "1995-05-15",
"endereco_completo": "Rua Exemplo",
"numero": "100",
"cidade": "São Paulo",
"estado": "SP",
"cep": "01001000",
"data_admissao": "2026-09-01",
"tipo_contrato": "CLT",
"carga_horaria_semanal": 40,
"vale_transporte": true
}
'import requests
url = "https://app.tarefy.com/nodeapi/v2/employee-hr-data"
payload = {
"user_id": 2807,
"primeiro_nome": "Ana",
"ultimo_nome": "Exemplo",
"whatsapp": "+5511999999999",
"data_nascimento": "1995-05-15",
"endereco_completo": "Rua Exemplo",
"numero": "100",
"cidade": "São Paulo",
"estado": "SP",
"cep": "01001000",
"data_admissao": "2026-09-01",
"tipo_contrato": "CLT",
"carga_horaria_semanal": 40,
"vale_transporte": True
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
user_id: 2807,
primeiro_nome: 'Ana',
ultimo_nome: 'Exemplo',
whatsapp: '+5511999999999',
data_nascimento: '1995-05-15',
endereco_completo: 'Rua Exemplo',
numero: '100',
cidade: 'São Paulo',
estado: 'SP',
cep: '01001000',
data_admissao: '2026-09-01',
tipo_contrato: 'CLT',
carga_horaria_semanal: 40,
vale_transporte: true
})
};
fetch('https://app.tarefy.com/nodeapi/v2/employee-hr-data', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://app.tarefy.com/nodeapi/v2/employee-hr-data",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'user_id' => 2807,
'primeiro_nome' => 'Ana',
'ultimo_nome' => 'Exemplo',
'whatsapp' => '+5511999999999',
'data_nascimento' => '1995-05-15',
'endereco_completo' => 'Rua Exemplo',
'numero' => '100',
'cidade' => 'São Paulo',
'estado' => 'SP',
'cep' => '01001000',
'data_admissao' => '2026-09-01',
'tipo_contrato' => 'CLT',
'carga_horaria_semanal' => 40,
'vale_transporte' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://app.tarefy.com/nodeapi/v2/employee-hr-data"
payload := strings.NewReader("{\n \"user_id\": 2807,\n \"primeiro_nome\": \"Ana\",\n \"ultimo_nome\": \"Exemplo\",\n \"whatsapp\": \"+5511999999999\",\n \"data_nascimento\": \"1995-05-15\",\n \"endereco_completo\": \"Rua Exemplo\",\n \"numero\": \"100\",\n \"cidade\": \"São Paulo\",\n \"estado\": \"SP\",\n \"cep\": \"01001000\",\n \"data_admissao\": \"2026-09-01\",\n \"tipo_contrato\": \"CLT\",\n \"carga_horaria_semanal\": 40,\n \"vale_transporte\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://app.tarefy.com/nodeapi/v2/employee-hr-data")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"user_id\": 2807,\n \"primeiro_nome\": \"Ana\",\n \"ultimo_nome\": \"Exemplo\",\n \"whatsapp\": \"+5511999999999\",\n \"data_nascimento\": \"1995-05-15\",\n \"endereco_completo\": \"Rua Exemplo\",\n \"numero\": \"100\",\n \"cidade\": \"São Paulo\",\n \"estado\": \"SP\",\n \"cep\": \"01001000\",\n \"data_admissao\": \"2026-09-01\",\n \"tipo_contrato\": \"CLT\",\n \"carga_horaria_semanal\": 40,\n \"vale_transporte\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.tarefy.com/nodeapi/v2/employee-hr-data")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"user_id\": 2807,\n \"primeiro_nome\": \"Ana\",\n \"ultimo_nome\": \"Exemplo\",\n \"whatsapp\": \"+5511999999999\",\n \"data_nascimento\": \"1995-05-15\",\n \"endereco_completo\": \"Rua Exemplo\",\n \"numero\": \"100\",\n \"cidade\": \"São Paulo\",\n \"estado\": \"SP\",\n \"cep\": \"01001000\",\n \"data_admissao\": \"2026-09-01\",\n \"tipo_contrato\": \"CLT\",\n \"carga_horaria_semanal\": 40,\n \"vale_transporte\": true\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"user_id": 123,
"account_id": 123,
"cpf": "<string>",
"rg": "<string>",
"rg_orgao_emissor": "<string>",
"rg_data_emissao": "2023-11-07T05:31:56Z",
"ctps": "<string>",
"ctps_serie": "<string>",
"pis": "<string>",
"cnh": "<string>",
"cnh_categoria": "<string>",
"cnh_validade": "2023-11-07T05:31:56Z",
"banco": "<string>",
"agencia": "<string>",
"conta": "<string>",
"conta_tipo": "<string>",
"pix": "<string>",
"endereco_completo": "<string>",
"cep": "<string>",
"cidade": "<string>",
"estado": "<string>",
"bairro": "<string>",
"numero": "<string>",
"complemento": "<string>",
"contato_emergencia_nome": "<string>",
"contato_emergencia_telefone": "<string>",
"contato_emergencia_parentesco": "<string>",
"data_admissao": "2023-11-07T05:31:56Z",
"data_demissao": "2023-11-07T05:31:56Z",
"tipo_contrato": "<string>",
"carga_horaria_semanal": 123,
"regime_trabalho": "<string>",
"data_validade_contrato": "2023-11-07T05:31:56Z",
"previsao_formatura": "2023-11-07T05:31:56Z",
"nome_faculdade": "<string>",
"curso": "<string>",
"cnpj": "<string>",
"razao_social": "<string>",
"vale_transporte": true,
"vale_alimentacao": true,
"vale_refeicao": true,
"plano_saude": true,
"plano_odontologico": true,
"auxilio_creche": true,
"outros_beneficios": "<string>",
"numero_dependentes": 123,
"dependentes_info": {},
"documentos_anexos": {},
"observacoes": "<string>",
"observacoes_confidenciais": "<string>",
"ativo": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Todos os campos são opcionais. Omita campos que deseja preservar. Não há uma regra única de limpeza por null ou string vazia para todos os campos.
ID do usuário existente (não é o ID do registro de RH).
2807
Primeiro nome do colaborador.
Sobrenome(s) do colaborador.
Nome de registro/documentos.
Telefone internacional com código do país, preferencialmente E.164, como +5511999999999. Máscaras são removidas e o número é validado.
Email de acesso. É normalizado para minúsculas e não pode estar vazio nem pertencer a outro usuário.
Nome exato de um cargo já cadastrado na conta. Nome inexistente ou string vazia remove a associação; não cria um cargo.
Endereço do perfil no LinkedIn.
Logradouro/endereço completo.
Cidade.
UF; convertida para maiúsculas e limitada a 2 caracteres.
CEP como texto. Máscaras são removidas e apenas os primeiros 8 dígitos são mantidos.
Data de nascimento. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Nome do pai. O nome histórico do campo é nome_pais.
Nome da mãe.
Email pessoal, separado do email de acesso.
Número do título de eleitor.
Escolaridade, como Superior completo.
Estado civil.
Departamento, em texto livre.
Aceito por compatibilidade, mas não altera a empresa. Na consulta, a empresa vem da conta autenticada.
Aceito por compatibilidade, mas não altera salário. Na consulta, vem do histórico salarial e depende da permissão 18.
CPF como texto; máscaras são removidas.
RG como texto; pontos, traços e espaços são removidos e letras são convertidas para maiúsculas.
Órgão emissor do RG.
Data de emissão do RG. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Número da carteira de trabalho; máscaras são removidas.
Série da carteira de trabalho; máscaras são removidas.
Número do PIS; máscaras são removidas.
Número da CNH.
Categoria da CNH; limitada a 10 caracteres.
Data de validade da CNH. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Banco no registro de RH. Não sincroniza automaticamente o cadastro separado de dados bancários.
Agência bancária como texto, preservando zeros iniciais.
Conta bancária como texto.
Tipo de conta, em texto livre; limitado a 20 caracteres.
Chave Pix do registro de RH.
Bairro.
Número do endereço como texto; limitado a 20 caracteres.
Complemento do endereço.
Nome do contato de emergência.
Telefone do contato de emergência.
Parentesco do contato; limitado a 50 caracteres.
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).
Data de desligamento. Informar a data não desativa o usuário. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Tipo de contrato em texto livre.
Carga horária semanal em horas inteiras.
Aceito por compatibilidade, mas não é gravado por estas operações. No GET, vem do tipo de contrato do histórico salarial e depende da permissão 18.
Data de validade do contrato. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Data prevista de formatura. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Nome da instituição de ensino.
Nome do curso.
CNPJ da pessoa jurídica contratada.
Razão social da pessoa jurídica contratada.
Recebe vale-transporte.
Recebe vale-alimentação.
Recebe vale-refeição.
Possui plano de saúde.
Possui plano odontológico.
Recebe auxílio-creche.
Descrição de outros benefícios.
Quantidade de dependentes, como inteiro.
Objeto JSON com informações de dependentes. Não enviar um array na raiz.
Objeto JSON com metadados de documentos. Este campo não recebe arquivos binários.
Observações gerais em texto.
Observações confidenciais do cadastro de RH.
Response
Registro de RH salvo. Faça GET para obter os valores legíveis e os dados consolidados.
Registro de RH salvo. Não é o perfil consolidado retornado por GET.
Identificador do registro, usuário ou conta, conforme o campo. Presente quando há registro de RH.
Identificador do registro, usuário ou conta, conforme o campo. Presente quando há registro de RH.
Identificador do registro, usuário ou conta, conforme o campo. Presente quando há registro de RH.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Data de emissão do RG. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Número da CNH.
Categoria da CNH; limitada a 10 caracteres.
Data de validade da CNH. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Banco no registro de RH. Não sincroniza automaticamente o cadastro separado de dados bancários.
Agência bancária como texto, preservando zeros iniciais.
Conta bancária como texto.
Tipo de conta, em texto livre; limitado a 20 caracteres.
Chave Pix do registro de RH.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
UF; convertida para maiúsculas e limitada a 2 caracteres.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Número do endereço como texto; limitado a 20 caracteres.
Valor armazenado, que pode estar criptografado. Use GET para leitura do campo.
Nome do contato de emergência.
Telefone do contato de emergência.
Parentesco do contato; limitado a 50 caracteres.
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).
Data de desligamento. Informar a data não desativa o usuário. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Tipo de contrato em texto livre.
Carga horária semanal em horas inteiras.
Tipo de contrato do histórico salarial, ou null sem permissão 18/valor disponível.
Data de validade do contrato. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Data prevista de formatura. Envie YYYY-MM-DD (por exemplo, 2026-09-17).
Nome da instituição de ensino.
Nome do curso.
CNPJ da pessoa jurídica contratada.
Razão social da pessoa jurídica contratada.
Recebe vale-transporte.
Recebe vale-alimentação.
Recebe vale-refeição.
Possui plano de saúde.
Possui plano odontológico.
Recebe auxílio-creche.
Descrição de outros benefícios.
Quantidade de dependentes, como inteiro.
Objeto JSON com informações de dependentes. Não enviar um array na raiz.
Objeto JSON com metadados de documentos. Este campo não recebe arquivos binários.
Valor armazenado; pode conter JSON interno e texto criptografado. Use GET para observações legíveis.
Observações confidenciais do cadastro de RH.

