APIAtualizada em 12/11/2026·Versão texto (para IA)·Abrir a Central

API de Colaboradores — dados do eSocial

Base: https://central.proocupacional.com.br/api
Versão: 11/11/2026 · Nova Central do Cliente (beta)

A API mostra os colaboradores de cada cliente com os dados do contrato (matrícula, cargo, CBO, admissão e demissão) já no valor mais confiável disponível. Ela também permite atualizar esses dados sem depender do SOC ou do SGG, de duas formas:

  1. Corrigir ou completar um colaborador (PUT). O dado entra como fonte CLIENTE.
  2. Enviar o relatório oficial do eSocial (POST /colaboradores/esocial). É o CSV "Relação de Trabalhadores" que o próprio cliente baixa no portal do eSocial com o certificado da empresa. O dado entra como fonte ESOCIAL, a de maior prioridade.

#1. Autenticação

A API usa a mesma sessão da Central, um cookie ncp.auth válido por 12 horas e renovado com o uso.

POST /api/login
Content-Type: application/json

{ "Email": "usuario@empresa.com.br", "Senha": "••••••" }
RespostaSignificado
200Logado. O cookie ncp.auth vem no Set-Cookie e deve ser enviado nas próximas chamadas.
401E-mail ou senha inválidos.

Para sair: POST /api/logout.

Sem o cookie, toda rota abaixo responde 401.

#1.1 Token de integração (para sistemas)

Um sistema de fora (folha, contabilidade, robô do cliente) usa um token em vez do login de tela. O token vai em todas as chamadas, no cabeçalho:

Authorization: Bearer pro_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Na Central: menu Gestão › Tokens de API, visível só para a equipe Pró. A tela cria o token (nome, escopo, permissão e validade), mostra o token uma vez com botão de copiar, lista os tokens com o último uso e a quantidade de usos, e revoga.

As mesmas ações pela API (só a equipe Pró, logada na tela):

AçãoRota
CriarPOST /api/tokens com { "Nome": "Folha da Empresa X", "UsuarioClienteId": 0, "PodeEscrever": true, "DiasValidade": 365 } (UsuarioClienteId 0 = todas as empresas)
ListarGET /api/tokens (mostra o prefixo, o escopo, o último uso e a quantidade de usos, nunca o token)
RevogarDELETE /api/tokens/{id}

Escopo: cada usuário vê e altera somente os clientes e unidades liberados no cadastro de acesso dele. Um colaborador fora do escopo responde como se não existisse (404 ou 400 "fora do seu acesso"). A equipe Pró vê todos os clientes.


#2. De onde vem cada dado (fontes e prioridade)

Cada campo guarda a sua fonte, devolvida pela API nos campos *Fonte:

FonteO que éPrioridade
ESOCIALO que a empresa declarou ao governo (relatório "Relação de Trabalhadores")1 (maior)
CLIENTEInformado pelo cliente na Central ou por esta API2
ATENDIMENTOVeio da guia ou da ficha do exame3
SOC, SGG, PRO, GUIA…Cadastro do sistema de origem. Só aparece quando nenhuma fonte acima informou o campo—

Regras de atualização:

Se o cliente muda o cargo hoje, o novo cargo vale até chegar um relatório do eSocial com alteração posterior. Em caso de empate na data, vale a fonte de maior prioridade.


#3. Endpoints

#3.0 Empresas

Uma empresa é um cliente da Pró, identificado pela raiz do CNPJ (8 dígitos). As unidades são os estabelecimentos dela (CNPJ completo).

GET /api/empresas?busca=&comTotais=false&comEstabelecimentos=false&todas=false&pagina=1&tamanho=100

Por padrão, vêm só as empresas com pelo menos um colaborador ativo (ativo, afastado ou em férias). São cerca de 14 mil das 19 mil cadastradas; as demais são clientes antigos ou avulsos sem ninguém ativo. Use todas=true para trazer todas. A base junta os clientes do SOC, os do cadastro da Pró (que também vêm do SOC) e os do SGG.

Cada empresa traz CnpjRaiz (8 dígitos) e CnpjMatriz (14 dígitos: o estabelecimento ativo de menor CNPJ, o 0001 quando existe). Com comEstabelecimentos=true, traz também Estabelecimentos: a lista dos CNPJs completos de todos os estabelecimentos ativos que o token enxerga. O CnpjMatriz vem vazio para empregador pessoa física, cadastrado por CPF.

Fluxo para um sistema de eSocial:

  1. GET /api/empresas?comEstabelecimentos=true&tamanho=500, página a página, para pegar todas as empresas do token com os CNPJs.
  2. Para cada empresa, chamar GET /api/empresas/cnpj/{CnpjRaiz}/colaboradores?tamanho=1000 para trazer a empresa inteira. Para um estabelecimento só, use o CNPJ de 14 dígitos dele. Cada colaborador traz UnidadeCnpj, o estabelecimento onde trabalha.
  3. Nas rodadas seguintes, use alteradosDesde (ver "Sincronização").
ParâmetroDescrição
buscaNome, nome fantasia, raiz do CNPJ ou CNPJ completo de uma unidade
comTotaistrue traz, por empresa, os colaboradores ativos e quantos estão sem matrícula, cargo, CBO ou admissão. Deixa a consulta mais lenta quando o escopo tem muitas empresas
todastrue traz também as empresas sem nenhum colaborador ativo
comEstabelecimentostrue traz a lista dos CNPJs completos dos estabelecimentos
pagina, tamanhoO tamanho vai de 1 a 500, padrão 100. Cada página de 500 leva alguns segundos para a equipe Pró, que enxerga todas as empresas

Os nomes saem sem os espaços sobrando que existem no cadastro de origem.

{ "Total": 14102,
  "Itens": [ { "ClienteId": 10, "CnpjRaiz": "11222333", "CnpjMatriz": "11222333000101", "Nome": "EMPRESA EXEMPLO LTDA", "NomeFantasia": "Exemplo",
               "Estabelecimentos": ["11222333000101", "11222333000202"],
               "Ativo": true, "Unidades": 7, "UltimoArquivoEsocial": "2026-11-11T10:58:03",
               "Ativos": 224, "SemMatricula": 1, "SemCargo": 0, "SemCbo": 219, "SemAdmissao": 0 } ],
  "Pagina": 1, "Tamanho": 100 }

Os campos Ativos a SemAdmissao só vêm com comTotais=true.

GET /api/empresas/{clienteId}

Devolve Empresa (os dados acima, mais CNAE e grau de risco) e Unidades. Cada unidade traz UnidadeId, Tipo (J para CNPJ ou F para CPF), Inscricao (o CNPJ completo), RazaoSocial, NomeUnidade, Cidade, Uf e Ativo. O UnidadeId é o que se usa para cadastrar colaborador novo.

GET /api/empresas/{clienteId}/colaboradores?unidadeId=&situacao=&pendencia=&busca=&pagina=1&tamanho=500

Lista todos os colaboradores da empresa, com até 1000 por página. A resposta e os filtros são os mesmos da lista geral (3.1). Cada item traz também ClienteId e UnidadeCnpj.

Para percorrer tudo: chame GET /api/empresas para pegar as empresas. Depois, para cada empresa, chame GET /api/empresas/{id}/colaboradores?pagina=1,2,3… até somar o Total.

#Pelo CNPJ (recomendado para sistemas de eSocial)

Se o sistema conhece a empresa pelo CNPJ, use estas rotas e não precisa do ClienteId:

GET /api/empresas/cnpj/{cnpj}
GET /api/empresas/cnpj/{cnpj}/colaboradores?alteradosDesde=&situacao=&pendencia=&pagina=1&tamanho=1000

#Sincronização: só o que mudou (alteradosDesde)

Cada colaborador traz AlteradoEm, a última vez que mudou o contrato, o cadastro próprio, o eSocial ou a pessoa. A resposta traz ConsultadoEm, a hora do servidor no começo da consulta.

Rotina recomendada:

  1. Primeira carga: chame sem alteradosDesde, percorra as páginas e guarde o ConsultadoEm da primeira página.
  2. Próximas rodadas: chame com alteradosDesde=<ConsultadoEm guardado>. Vêm só as admissões, demissões e alterações desde então, ordenadas por AlteradoEm. Guarde o novo ConsultadoEm.
  3. Uma rodada por dia costuma bastar. A carga interna do SOC/SGG roda a cada 30 minutos.

Se houver uma recarga completa do cadastro de origem, muitos colaboradores podem aparecer como alterados de uma vez, mesmo sem mudança real. Trate a sincronização como "atualizar se diferente", não como "evento novo".

#Campos para montar os eventos do eSocial

Além dos campos da lista (3.1), cada colaborador traz:

CampoConteúdo
DataNascimento, SexoDo cadastro da pessoa
Categoria, CategoriaFonteCódigo da categoria do trabalhador (Tabela 01 do eSocial, ex.: 101). Prioriza o eSocial e, sem ele, usa o SGG. Os vínculos vindos só do SOC costumam vir sem categoria
Funcao, RegimeFunção e regime, quando o cadastro de origem informa
UnidadeCnpjCNPJ do estabelecimento (local de trabalho)
AlteradoEmÚltima alteração (ver acima)

#3.1 Listar colaboradores

GET /api/colaboradores?clienteId=&cnpj=&unidadeId=&busca=&situacao=&pendencia=&alteradosDesde=&pagina=1&tamanho=25
ParâmetroTipoDescrição
clienteIdintUma empresa, pelo id da lista de empresas
cnpjtextoUma empresa pelo CNPJ, só números: raiz (8 dígitos) para a empresa inteira, completo (14 dígitos) para só aquele estabelecimento. CNPJ fora do acesso devolve 404
unidadeIdintUma unidade (estabelecimento), pelo id de /api/empresas/{id}
alteradosDesdedata/horaSó quem mudou a partir daqui (ver "Sincronização")
buscatextoNome, CPF (com ou sem pontuação), matrícula exata ou parte do cargo
situacaoint1 ativo · 2 afastado · 3 desligado · 4 candidato · 5 férias
pendenciatextoSemMatricula · SemCargo · SemCbo · SemAdmissao · Divergente (eSocial diferente do cadastro) · DesligadoNoEsocial (ativo no cadastro, desligado no eSocial) · Completo
pagina, tamanhointPaginação. O tamanho vai de 1 a 1000, padrão 25

Sem clienteId, cnpj ou unidadeId, a lista traz todos os colaboradores do acesso. Para um usuário de uma empresa é a empresa dele; para a equipe Pró ou um token "todas as empresas" é a base inteira, que é mais lenta. Para integração, filtre sempre por empresa.

Resposta 200:

{
  "Kpis": {
    "Total": 1240, "Ativos": 1102,
    "SemMatricula": 37, "SemCargo": 0, "SemCbo": 214, "SemAdmissao": 12,
    "ConferidosNoEsocial": 1180, "Divergentes": 41, "DesligadosNoEsocial": 6,
    "Completos": 1015, "UltimoArquivoEsocial": "2026-11-11T10:58:03"
  },
  "Total": 41,
  "Itens": [
    {
      "VinculoId": 1844, "VinculoCadastroId": 26, "PessoaId": 2066,
      "Nome": "Fulana de Tal", "Cpf": 12345678909,
      "UnidadeId": 54, "Unidade": "EMPRESA EXEMPLO - FILIAL BH", "Setor": "Operação",
      "Matricula": "004587", "MatriculaFonte": "ESOCIAL",
      "Cargo": "Operadora de caixa", "Cbo": "421125", "CargoFonte": "ESOCIAL",
      "DataAdmissao": "2021-03-14T00:00:00", "AdmissaoFonte": "ESOCIAL",
      "DataDemissao": null, "DemissaoFonte": null,
      "Situacao": 1,
      "NoEsocial": true, "Divergencias": 2, "DesligadoNoEsocial": false, "Completo": true
    }
  ],
  "Pagina": 1, "Tamanho": 25
}

#3.2 Detalhe de um colaborador

GET /api/colaboradores/{vinculoId}
GET /api/colaboradores/cadastro/{vinculoCadastroId}

Resposta 200:

{
  "Colaborador": { "...": "mesmos campos da lista + Cliente, DataNascimento, Sexo, Funcao, MotivoDemissao, OrigemVinculo" },
  "Esocial": [
    { "EsocialVinculoId": 1, "Matricula": "004587", "DataAdmissao": "2021-03-14T00:00:00", "DataDesligamento": null,
      "CodCategoria": "101", "Categoria": "Empregado - Geral", "Cargo": "Operadora de caixa", "CboCargo": "421125",
      "EstabelecimentoInscricao": 11222333000505, "DataUltAlteracao": "2024-02-01T00:00:00",
      "Arquivo": "relacao_trabalhadores.csv", "ImportadoEm": "2026-11-11T10:58:03", "EsteContrato": true }
  ],
  "Divergencias": [ { "Esocial_Matricula": "004587", "Cadastro_Matricula": "4587", "MatriculaDifere": true, "...": "..." } ],
  "Historico": [
    { "Campo": "Cargo", "ValorAntes": "Auxiliar de loja | CBO 521110", "ValorDepois": "Operadora de caixa | CBO 421125",
      "FonteAntes": "CLIENTE", "Fonte": "ESOCIAL", "Referencia": "ESOCIAL:arquivo 12", "Em": "2026-11-11T10:58:03" }
  ]
}

404 quando o colaborador não existe ou está fora do escopo.

#3.3 Corrigir ou completar

PUT /api/colaboradores/{vinculoId}
PUT /api/colaboradores/cadastro/{vinculoCadastroId}
Content-Type: application/json

{
  "Matricula": "004587",
  "Cargo": "Operadora de caixa",
  "Cbo": "4211-25",
  "DataAdmissao": "2021-03-14",
  "DataDemissao": null,
  "MotivoDemissao": null
}

Todos os campos são opcionais: envie só o que quer alterar. O CBO aceita 4211-25 ou 421125.

Resposta 200:

{ "Ok": 1, "VinculoCadastroId": 26, "VinculoId": 1844, "Alteracoes": 1,
  "NaoAplicado": "Matricula mantida em 004587 (informada pelo ESOCIAL). " }

Erros 400 ({ "erro": "..." }):

MensagemQuando
CBO deve ter 6 digitos (ex.: 4110-05).CBO fora do formato
Data de admissao fora do esperado. / Data de demissao fora do esperado.Data antes de 1940 ou mais de 90 dias no futuro
A demissao nao pode ser antes da admissao.Demissão anterior à admissão
Nada para salvar.Corpo sem nenhum campo
Colaborador fora do seu acesso.Vínculo de outro cliente

#3.3.1 Atualizar em lote (integração)

PUT /api/colaboradores/lote
Authorization: Bearer pro_...
Content-Type: application/json

{
  "Itens": [
    { "Cpf": "390.533.447-05", "Cnpj": "11.222.333/0001-01", "Cargo": "Assistente administrativo", "Cbo": "4110-05" },
    { "Cpf": "12345678909", "ClienteId": 10, "MatriculaAtual": "004587", "DataDemissao": "2026-11-05", "MotivoDemissao": "02 - Rescisao sem justa causa" },
    { "VinculoId": 1585, "Matricula": "M1807" },
    { "Cpf": "11144477735", "ClienteId": 10, "CriarSeNaoExistir": true, "Nome": "Novo Colaborador", "UnidadeId": 54,
      "DataAdmissao": "2026-11-02", "Matricula": "L-9", "Cargo": "Auxiliar", "Cbo": "514320" }
  ]
}

São até 500 itens por chamada. Cada item indica quem é o colaborador por uma destas formas:

Como identificarCampos
Pelo id da listaVinculoId ou VinculoCadastroId
Pelo CPF na empresaCpf + ClienteId ou Cnpj (raiz de 8 dígitos ou CNPJ completo de 14). Se o CPF tiver mais de um contrato na empresa (matrículas diferentes), informe também MatriculaAtual

E diz o que atualizar, com os mesmos campos do PUT (3.3): Matricula, Cargo, Cbo, DataAdmissao, DataDemissao e MotivoDemissao. As mesmas regras de prioridade valem.

Com CriarSeNaoExistir: true, um CPF que não existe na empresa é cadastrado como colaborador novo. Para isso o item precisa de Nome, UnidadeId e DataAdmissao.

Resposta 200, item a item, na mesma ordem do envio:

{ "Total": 4, "Ok": 3, "Erros": 1,
  "Itens": [
    { "Indice": 0, "Ok": true, "Acao": "atualizado", "VinculoId": 1843, "VinculoCadastroId": 31, "Alteracoes": 2, "NaoAplicado": null,
      "MesmoContrato": 2, "VinculosMesmoContrato": "1907,2210", "Erro": null },
    { "Indice": 1, "Ok": false, "Erro": "Mais de um contrato para esse CPF: informe a matricula." },
    { "Indice": 2, "Ok": true, "Acao": "atualizado", "VinculoId": 1585, "Alteracoes": 0, "NaoAplicado": "Matricula mantida em M1807 (informada pelo ESOCIAL). " },
    { "Indice": 3, "Ok": true, "Acao": "criado", "VinculoId": null, "VinculoCadastroId": 54, "Alteracoes": 3 }
  ] }

Um item com erro não impede os outros. Corrija e reenvie só os itens que falharam.

Erro do itemQuando
Informe VinculoId, VinculoCadastroId ou Cpf + empresa.Faltou a identificação
Empresa nao encontrada no seu acesso.ClienteId ou Cnpj fora do escopo do token
Colaborador nao encontrado nessa empresa.CPF sem contrato na empresa. Use CriarSeNaoExistir para cadastrar
Mais de um contrato para esse CPF: informe a matricula.O CPF tem contratos com matrículas diferentes (ou sem matrícula) na empresa. Informe MatriculaAtual ou mande pelo VinculoId
Mensagens do PUT (CBO, datas, acesso)Validação do dado

#O mesmo contrato em mais de um vínculo

Na lista, a mesma pessoa pode aparecer mais de uma vez na mesma empresa com a mesma matrícula, cada vez numa unidade, com o mesmo PessoaId e VinculoId diferentes. Não são contratos diferentes: é o mesmo contrato que chegou à Pró por mais de um sistema de origem, ou que ficou na loja antiga depois de uma transferência. Para o eSocial, matrícula é única por empregador.

Por isso:

Exemplo: a pessoa tem os vínculos 231003, 235280 e 253612, todos com matrícula 67682. Um item com "VinculoId": 231003 e a admissão do eSocial corrige os três. A resposta traz "MesmoContrato": 2, "VinculosMesmoContrato": "235280,253612".

#3.4 Cadastrar colaborador novo

POST /api/colaboradores
Content-Type: application/json

{
  "Cpf": "529.982.247-25",
  "Nome": "Novo Colaborador",
  "UnidadeId": 54,
  "Matricula": "N-001",
  "Cargo": "Auxiliar de serviços gerais",
  "Cbo": "514320",
  "DataAdmissao": "2026-11-01"
}

Cpf (válido), Nome, UnidadeId (do seu escopo) e DataAdmissao são obrigatórios. A resposta é igual à do PUT, com VinculoId: null. O colaborador passa a aparecer na lista na hora, mesmo antes de existir no SOC ou no SGG.

O cadastro é recusado quando o mesmo CPF já está ativo no cliente com a mesma admissão ou a mesma matrícula. Nesse caso, a mensagem orienta a abrir o cadastro existente.

#3.5 Enviar o relatório do eSocial (CSV)

O cliente baixa o relatório no portal do eSocial, com o certificado da própria empresa:

  1. Acesse login.esocial.gov.br e entre com o certificado digital.
  2. Abra o card Emissão de Relatórios Gerenciais.
  3. Clique em Solicitar Novo Relatório, escolha "Relação de Trabalhadores – eSocial" e marque "Todos os vínculos".
  4. O relatório fica pronto em alguns minutos ou horas. Quando a situação for Processado, baixe em CSV.

Depois envie o arquivo:

POST /api/colaboradores/esocial
Content-Type: multipart/form-data

arquivo=<relacao_trabalhadores.csv>

Resposta 200:

{
  "Resultado": { "Ok": 1, "EsocialArquivoId": 10, "Cliente": "EMPRESA EXEMPLO LTDA",
                 "Linhas": 1240, "Inseridas": 12, "Atualizadas": 1228, "Vinculadas": 1180, "Rejeitadas": 3,
                 "AlteracoesNoCadastro": 57 },
  "ColunasNaoEncontradas": []
}
CampoSignificado
LinhasLinhas de trabalhador lidas no arquivo
Inseridas / AtualizadasContratos novos e contratos já conhecidos
VinculadasContratos ligados a um vínculo do cadastro de origem
RejeitadasLinhas recusadas (CPF inválido, linha repetida, sem matrícula e sem data de início)
AlteracoesNoCadastroCampos que mudaram no cadastro por causa deste arquivo
ColunasNaoEncontradasColunas esperadas que o arquivo não trouxe (os campos ficam vazios)

Regras do envio:

#3.6 Arquivos enviados

GET /api/colaboradores/esocial/arquivos

Devolve os últimos 50 envios do escopo, com EsocialArquivoId, NomeArquivo, Cliente, Linhas, Inseridas, Atualizadas, Vinculadas, Rejeitadas, Situacao (Importado · Erro · Carregando), Erro e ImportadoEm.


#4. Exemplos com curl

# login (guarda o cookie em cookies.txt)
curl -c cookies.txt -H "Content-Type: application/json" \
     -d '{"Email":"usuario@empresa.com.br","Senha":"SUA_SENHA"}' \
     https://central.proocupacional.com.br/api/login

# ativos sem CBO
curl -b cookies.txt "https://central.proocupacional.com.br/api/colaboradores?situacao=1&pendencia=SemCbo&tamanho=100"

# corrigir cargo e CBO
curl -b cookies.txt -X PUT -H "Content-Type: application/json" \
     -d '{"Cargo":"Operadora de caixa","Cbo":"4211-25"}' \
     https://central.proocupacional.com.br/api/colaboradores/1844

# enviar o relatório do eSocial
curl -b cookies.txt -F "arquivo=@relacao_trabalhadores.csv" \
     https://central.proocupacional.com.br/api/colaboradores/esocial

Com token de integração (sem login):

TOKEN="pro_..."

# empresas do escopo do token
curl -H "Authorization: Bearer $TOKEN" "https://central.proocupacional.com.br/api/empresas?tamanho=500"

# colaboradores de uma empresa (página 1, 1000 por página)
curl -H "Authorization: Bearer $TOKEN" "https://central.proocupacional.com.br/api/empresas/10/colaboradores?tamanho=1000&pagina=1"

# pelo CNPJ: empresa inteira (raiz) e só o que mudou desde a última rodada
curl -H "Authorization: Bearer $TOKEN" "https://central.proocupacional.com.br/api/empresas/cnpj/11222333/colaboradores?tamanho=1000&alteradosDesde=2026-11-10T08:00:00"

# só um estabelecimento (CNPJ completo, só números)
curl -H "Authorization: Bearer $TOKEN" "https://central.proocupacional.com.br/api/empresas/cnpj/11222333000505/colaboradores?tamanho=1000"

# atualização em lote
curl -X PUT -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
     -d '{"Itens":[{"Cpf":"39053344705","Cnpj":"11222333","Cargo":"Assistente administrativo","Cbo":"411005"}]}' \
     https://central.proocupacional.com.br/api/colaboradores/lote

#5. Códigos de resposta

CódigoQuando
200Sucesso
400Validação recusada. O corpo traz { "erro": "mensagem" }
401Sem sessão (faça o login), token inválido, vencido ou revogado, ou token usado numa rota que não é de integração
403Token somente leitura numa rota de atualização, ou rota só da equipe Pró
404Colaborador não encontrado no seu acesso
500Erro inesperado no servidor. Tente de novo e, se repetir, avise a equipe Pró

#6. Referência técnica (equipe Pró)

PeçaOnde
EndpointsNovaCentral/NovaCentral.Api/ColaboradoresEndpoints.cs (colaboradores, lote, empresas, tokens)
Token de integraçãoNovaCentral/NovaCentral.Api/ApiTokenAuth.cs e Database/Uni/191_Api_Empresas_Tokens.sql (uni.ApiToken, ApiEmpresas, ApiEmpresa, ApiColaboradorLocalizar)
Stored procedures da APIDatabase/Uni/190_Api_Colaboradores.sql (uni.ApiColaboradores, ApiColaborador, ApiColaboradorSalvar, ApiEsocialArquivoIniciar/Concluir, ApiEsocialArquivos)
Cadastro próprio e regra de prioridadeDatabase/Uni/180_VinculoCadastro.sql (uni.VinculoCadastro, VinculoCadastroHistorico, VinculoCadastroGravar, view uni.vVinculoAtual)
Importação do relatório e divergênciasDatabase/Uni/170_Esocial_RelacaoTrabalhadores.sql (uni.EsocialVinculo, vEsocialDivergencia)
Importação pela equipe (pasta / agendada)tools/esocial/Importar-RelacaoTrabalhadores.ps1
PublicaçãoNovaCentral/scripts/deploy-vps.ps1 (VPS Hostinger, serviço novacentral)
Layout do relatórioManual "Módulo de Emissão de Relatórios Gerenciais" do eSocial (versão de 03/03/2026), item 4.1.2.1

Por que o caminho é o CSV, e não a busca automática no eSocial: o webservice oficial permite só 10 chamadas por dia por empregador, com um CPF por consulta. O portal exige hCaptcha no login, e automação ali não é permitida. O relatório "Relação de Trabalhadores" é a única forma oficial de obter todos os vínculos de uma vez.