Passar para o conteúdo principal

Importação de Dados via CSV

Funcionalidade BETA

Escrito por Suporte Produto

O que é

A importação via CSV permite cadastrar em lote grandes volumes de dados no sistema sem precisar incluir cada registro manualmente. O processo ocorre em duas etapas, pré-validação e confirmação, de modo que você veja os erros antes de qualquer dado ser gravado.

Passo a passo

Etapa 1 — Pré-validação

  1. Acesse Minha conta > Organização > Importação de Dados.

  2. Selecione a opção CSV e Importar.

  3. Defina o tipo de entidade que deseja importar.

  4. Faça o upload do arquivo CSV.

  5. O sistema analisa todas as linhas e exibe um relatório com:

    • Total de linhas encontradas

    • Quantidade de linhas válidas

    • Quantidade de linhas inválidas

    • Para cada linha inválida: o número da linha e a descrição do erro

  6. Revise os erros. Você pode corrigir o arquivo ainda na tela e antes de prosseguir.

Etapa 2 — Confirmação

  1. Ao confirmar, a importação é iniciada em segundo plano. Você pode acompanhar o progresso em tempo real na tela.

  2. Ao finalizar, o sistema exibirá um dos seguintes estados:

Status

Significado

Em processamento

Importação ainda em andamento

Concluída

Todos os registros foram gravados com sucesso

Concluída com erros

Parte dos registros foi gravada; os que falharam são detalhados em um arquivo de erros disponível para download

Falhou

Nenhum registro foi gravado

  1. Se houver erros de processamento, baixe o arquivo de erros gerado, corrija as linhas indicadas e importe novamente apenas elas.


Formato do arquivo

Atributo

Valor

Extensão

.csv

Separador de colunas

(pipe)

Delimitador de texto

" (aspas duplas, opcional)

Codificação

UTF-8

Primeira linha

Cabeçalho com os nomes das colunas


Limites e tamanhos

Limite

Valor

Tamanho testado e suportado

Arquivos de até 50 MB

Limite explícito de linhas

Não há limite fixo

Atenção — arquivos grandes: O processamento ocorre em memória e não pode ser retomado em caso de interrupção (queda do servidor, reinício, timeout). Registros já gravados permanecem no banco, mas não há como saber o ponto de parada nem reprocessar apenas o restante. Prefira dividir o arquivo em lotes menores (recomendado: até 10.000 linhas) para reduzir o tempo de processamento, o risco de timeout e o impacto de uma eventual falha — além de facilitar a correção de erros.


Validações aplicadas

Pré-validação (antes de gravar)

Erro

Tratativa

Campo obrigatório em branco

Sempre que o campo está marcado como obrigatório

Formato de CPF inválido

Campos com formato 000.000.000-00

Formato de CNPJ inválido

Campos com formato 00.000.000/0000-00

Formato de data inválido

Campos de data — aceita AAAA-MM-DD ou AAAA-MM-DD HH:MM

Estrutura de campo composto inválida

Campos com separadores internos (;, @, &) — ver cada entidade

Processamento (durante a gravação)

Validação

Entidades afetadas

Data não pode ser anterior a 20 anos

ASO, Atestado Médico, Deficiência, Questionário Clínico, Vacinas, Riscos

Registros que falham nessa validação são registrados no arquivo de erros e pulados; os demais continuam sendo gravados.


Entidades suportadas


ASO

Colunas obrigatórias: individualRegistration, consultationDate, consultationType, doctorName, crm, state, motivation, scheduleDate, consultationNature, nature, emissionDate, recommendation

Colunas

Coluna

Obrigatório

Formato

Descrição

individualRegistration

Sim

CPF

CPF do colaborador. Deve ter prontuário cadastrado

consultationDate

Sim

AAAA-MM-DD HH:MM

Data e hora da consulta

minutes

Não

Inteiro

Duração da consulta em minutos. Padrão: 30

consultationType

Sim

05

Tipo de consulta — ver tabela

doctorName

Sim

Texto

Nome completo do médico

crm

Sim

Texto

Número do CRM do médico

state

Sim

UF

Estado do CRM (ex: SC, SP)

motivation

Sim

Texto

Motivo da consulta

clinicalDate

Não

AAAA-MM-DD

Data clínica do exame

indicator

Não

0 ou 1

Indicador do resultado — 0=Referencial, 1=Sequencial

result

Não

Texto

Descrição do resultado

resultIndicator

Não

0 ou 1

Indicador diagnóstico — 0=Normal, 1=Alterado

exams

Não

Composto

Exames complementares — ver estrutura abaixo

scheduleDate

Sim

AAAA-MM-DD

Data de agendamento

consultationNature

Sim

05

Natureza da consulta — ver tabela

nature

Sim

05

Natureza do ASO — ver tabela

cancelDate

Não

AAAA-MM-DD

Data de cancelamento

emissionDate

Sim

AAAA-MM-DD

Data de emissão do ASO

recommendation

Sim

02

Resultado — ver tabela

plataform

Não

true/false

Trabalho em plataforma

civilMaintenance

Não

true/false

Manutenção civil

explosives

Não

true/false

Uso de explosivos

height

Não

true/false

Trabalho em altura

excavation

Não

true/false

Escavação

electricity

Não

true/false

Eletricidade

welding

Não

true/false

Solda

confined

Não

true/false

Espaço confinado

cold

Não

true/false

Frio

radiation

Não

true/false

Radiação

pressure

Não

true/false

Pressão

loadHandling

Não

true/false

Manuseio de cargas

consultationType — Tipo de consulta

Valor

Descrição

0

Ocupacional

1

Exame Toxicológico

2

Clínica

3

Urgência

4

Qualidade de Vida

5

Monitoramento

consultationNature e nature — Natureza

Valor

Descrição

0

Admissional

1

Periódico

2

Retorno ao trabalho

3

Mudança de função

4

Demissional

5

Monitoramento pontual

recommendation — Parecer

Valor

Descrição

0

Apto

1

Inapto

2

Apto com restrições

exams — Estrutura dos exames complementares

Múltiplos exames separados por @. Cada exame: nomeCredenciado;nomeExame

"Hospital Jaraguá;Audiometria@Lab Central;Hemograma"

Exemplo

"individualRegistration" | "consultationDate" | "minutes" | "consultationType" | "doctorName" | "crm" | "state" | "motivation" | "scheduleDate" | "consultationNature" | "nature" | "emissionDate" | "recommendation" "488.569.137-04" | "2021-09-02 10:00" | "30" | "0" | "Eduardo Paz" | "45741" | "SC" | "Admissional" | "2021-09-02" | "0" | "0" | "2021-09-02" | "0"

Atestado Médico

Colunas obrigatórias: individualRegistration, dateStart, dateEnd, amountOfTreatmentDays, certificateType, doctorName, doctorCrm, crmState, doctorType

Colunas

Coluna

Obrigatório

Formato

Descrição

individualRegistration

Sim

CPF

CPF do colaborador

dateStart

Sim

AAAA-MM-DD HH:MM

Data de início do atestado

dateEnd

Sim

AAAA-MM-DD HH:MM

Data de fim do atestado

amountOfTreatmentDays

Sim

Inteiro

Quantidade de dias de tratamento

certificateType

Sim

03

Tipo do documento — ver tabela

icdId

Não

Código CID

Código CID (ex: A00.0). Não informar junto com icdGroupId

icdGroupId

Não

Código grupo CID

Grupo CID (ex: A00). Não informar junto com icdId

observation

Não

Texto

Observação livre

absenceTypeId

Não

ERP ID

ID do tipo de afastamento. Requer absenceDateStart e tipo ≠ Declaração

allowanceTypeId

Não

ERP ID

ID do tipo de abono. Requer tipo = Declaração

absenceDateStart

Não

AAAA-MM-DD HH:MM

Início do afastamento

absenceDateEnd

Não

AAAA-MM-DD HH:MM

Fim do afastamento

doctorName

Sim

Texto

Nome do médico ou dentista

doctorCrm

Sim

Texto

Número do CRM/CRO

crmState

Sim

UF

Estado do CRM (ex: SC)

doctorType

Sim

0 ou 1

Tipo de profissional — 0=Médico, 1=Dentista

certificateType — Tipo do documento

Valor

Descrição

0

Declaração

1

Atestado

2

Licença maternidade

3

Aposentadoria por invalidez

Exemplo

"individualRegistration" | "dateStart" | "dateEnd" | "amountOfTreatmentDays" | "certificateType" | "icdId" | "observation" | "doctorName" | "doctorCrm" | "crmState" | "doctorType" "488.569.137-04" | "2023-06-01 03:00" | "2023-06-03 03:00" | "3" | "1" | "A00.0" | "Repouso recomendado" | "Francisco" | "123456" | "SC" | "0"

Credenciado

Colunas obrigatórias: name, contractStart

Colunas

Coluna

Obrigatório

Formato

Descrição

name

Sim

Texto

Nome do credenciado. Deve ser único

documentNumber

Não

CNPJ

CNPJ do prestador. Deve estar ativo no sistema

contractStart

Sim

AAAA-MM-DD

Data de início do contrato

exams

Não

Composto

Exames oferecidos — ver estrutura abaixo

exams — Estrutura dos exames

Múltiplos exames separados por @. Cada exame: nomeExame;preço

"Hemograma Completo;35@Audiometria;250"

Exemplo

"name" | "documentNumber" | "contractStart" | "exams" "Health S.A." | "" | "2022-01-01" | "Hemograma Completo;35@Audiometria;250"

Deficiência

Colunas obrigatórias: individualRegistration, type, date

Colunas

Coluna

Obrigatório

Formato

Descrição

individualRegistration

Sim

CPF

CPF do colaborador

type

Sim

07

Tipo de deficiência — ver tabela

date

Sim

AAAA-MM-DD

Data do diagnóstico

recoveryDate

Não

AAAA-MM-DD

Data de recuperação. Não pode ser anterior a 20 anos

icd

Não

Código CID

Código CID (ex: A00.0). Deve existir no sistema

observation

Não

Texto

Observação livre

type — Tipo de deficiência

Valor

Descrição

0

Física

1

Visual

2

Mental

3

Auditiva

4

Psicossocial

5

Fala

6

Intelectual

7

Reabilitado

Exemplo

"individualRegistration" | "type" | "date" | "recoveryDate" | "icd" | "observation" "488.569.137-04" | "3" | "2021-09-02" | "" | "A00.0" | "Perda auditiva bilateral"

Prontuário Médico

Colunas obrigatórias: individualRegistration

Todos os demais campos são opcionais e atualizam os dados cadastrais do colaborador.

Colunas principais

Coluna

Formato

Descrição

individualRegistration

CPF

CPF do colaborador (obrigatório)

name

Texto

Nome completo

birthday

AAAA-MM-DD

Data de nascimento

candidate

true/false

É candidato

gender

0 ou 1

0=Masculino, 1=Feminino

bloodType

0N

Tipo sanguíneo

bloodDonator

true/false

Doador de sangue

smoker

true/false

Fumante

weight

Número

Peso em kg

height

Número

Altura em cm

eyeColor

Inteiro

Cor dos olhos (índice do enum)

skinColor

Inteiro

Cor da pele (índice do enum)

hairColor

Inteiro

Cor do cabelo (índice do enum)

systolicPressure

Número

Pressão sistólica

diastolicPressure

Número

Pressão diastólica

temperature

Número

Temperatura corporal

pulse

Número

Pulso

historic

Texto

Histórico clínico

Medidas antropométricas (todas opcionais, em cm)

eyeHeight, nippleLine, pubicHeight, kneeHeight, elbowHeight, armSize, forearmSize, handSize, legLength, shoeSize

Exemplo

"individualRegistration" | "name" | "birthday" | "gender" | "bloodType" | "weight" | "height" | "smoker" "18211931052" | "Saulo Mestrini" | "1998-03-26" | "0" | "0" | "92" | "190" | "false"

Questionário

Colunas obrigatórias: description, questionsGroup, quizType

Colunas

Coluna

Obrigatório

Formato

Descrição

description

Sim

Texto

Nome do questionário. Deve ser único

questionsGroup

Sim

Composto

Perguntas e opções de resposta — ver estrutura

quizType

Sim

02

Tipo do questionário — ver tabela

quizType — Tipo do questionário

Valor

Descrição

0

Saúde

1

Segurança

2

Ambos

questionsGroup — Estrutura das perguntas

Múltiplas perguntas separadas por @. Cada pergunta: textoPergunta;opção1&opção2&opção3

"Goza de boa saúde;Sim&Não@Está em tratamento médico;Sim&Não&Não sei"

Exemplo

"description" | "questionsGroup" | "quizType" "Admissional" | "Goza de boa saúde;Sim&Não@Está fazendo algum tratamento médico;Sim&Não" | "0"

Questionário Clínico

Colunas obrigatórias: individualRegistration, realizationDate, quiz, response

Colunas

Coluna

Obrigatório

Formato

Descrição

individualRegistration

Sim

CPF

CPF do colaborador

realizationDate

Sim

AAAA-MM-DD HH:MM

Data de realização. Não pode ser anterior a 20 anos

quiz

Sim

Texto

Nome do questionário. Deve existir no sistema

response

Sim

Composto

Respostas — ver estrutura

response — Estrutura das respostas

Múltiplas respostas separadas por @. Cada resposta: índiceDaOpção;detalhes
O índice corresponde à posição (0-based) da opção de resposta cadastrada no questionário.

"1;Detalhes adicionais@0;Não sei"

Exemplo

"individualRegistration" | "realizationDate" | "quiz" | "response" "488.569.137-04" | "2020-09-08 10:00" | "Admissional" | "1;Detalhes@0;Não sei"

Riscos

Colunas obrigatórias: recognitionDate, riskAgent, generatingSource, environment

Colunas

Coluna

Obrigatório

Formato

Descrição

recognitionDate

Sim

AAAA-MM-DD

Data de reconhecimento do risco

riskAgent

Sim

Composto

Agente de risco — ver estrutura

generatingSource

Sim

Texto

Fonte geradora. Criada automaticamente se não existir

environment

Sim

Texto

Ambiente físico. Criado automaticamente se não existir

costCenter

Não

Composto

Centros de custo — ver estrutura

department

Não

Composto

Departamentos — ver estrutura

occupation

Não

Composto

Cargos/funções — ver estrutura

task

Não

Composto

Tarefas — separadas por @, cada uma: nome

person

Não

Composto

Pessoas — ver estrutura

measurement

Não

Composto

Medições — ver estrutura

controlMeasure

Não

Composto

Medidas de controle — ver estrutura

ipe

Não

Composto

EPIs — cada um: codigoCA separados por @. Deve existir no sistema

training

Não

Composto

Treinamentos — ver estrutura

exam

Não

Composto

Exames — ver estrutura

riskAgent — Agente de risco

eCode;descrição;grupo;avaliação

Campo

Valor

eCode

Código eSocial do agente (deixe vazio se não houver)

descrição

Nome do agente. Criado automaticamente se não existir

grupo

0=Físico, 1=Químico, 2=Biológico, 3=Ergonômico, 4=Mecânico, 5=Perigosos, 6=Associação, 7=Outros

avaliação

0=Quantitativa, 1=Qualitativa

";Ruído;0;0"

costCenter, department, occupation — Estrutura

Múltiplos itens separados por @. Cada item: erpId;descrição Se o erpId for informado, busca por ele; caso contrário, pela descrição. Criado automaticamente se não existir.

"001;Administrativo@002;Operacional"

person — Estrutura de pessoa

Múltiplas pessoas separadas por @. Cada pessoa: erpId;nome;cpf;dataNascimento;genero

Campo

Valor

genero

0=Masculino, 1=Feminino

";João Silva;123.456.789-00;1990/05/20;0@;Maria Souza;987.654.321-00;1985/11/03;1"

measurement — Medição

Múltiplas medições separadas por @. Cada medição: data;quantidade;instrumentoDecrição

"2021/08/30;10;Decibelímetro@2021/09/01;8;Decibelímetro"

controlMeasure — Medida de controle

Múltiplas medidas separadas por @. Cada medida: nome;tipo

Tipo

Descrição

0

Proteção individual

1

Proteção coletiva

2

Monitoramento biológico

3

Medidas administrativas

4

Engenharia

5

Outros

"Uso de protetor auricular;0@Cabine acústica;1"

training — Treinamento

Múltiplos treinamentos separados por @. Cada treinamento: erpId;descrição;urgência

Urgência

Descrição

0

Indispensável

1

Desejado

2

Recomendado

";NR-15 Ruído;0@;NR-6 EPI;2"

exam — Exame por risco

Múltiplos exames separados por @. Cada exame:
descrição;tipoResultado;admissão;periódico;faixaEtária;retornoTrabalho;mudançaFunção;demissional

Campo

Valores

tipoResultado

0=Normal, 1=IBMP, 2=Itens de exame, 3=Audiométrico, 4=OrthoRater, 5=Snellen, 6=Espirometria, 7=Urinálise, 8=Otológico, 9=Raio-X, 10=Toxicológico

admissão, periódico, retornoTrabalho, mudançaFunção, demissional

true/false

faixaEtária

descrição#idadeMin#idadeMax#periodicidade#pósAdmissão (em meses/anos)

"Audiometria;3;true;true;anual#0#99#12#0;false;false;false"

Exemplo

"recognitionDate" | "riskAgent" | "generatingSource" | "environment" | "costCenter" | "ipe" "2021-08-17" | ";Ruído;0;0" | "Máquinas industriais" | "Linha de produção" | "001;Produção" | "27182"

Vacinas

Colunas obrigatórias: individualRegistration, vaccine, date, status, currentDose, dose

Colunas

Coluna

Obrigatório

Formato

Descrição

individualRegistration

Sim

CPF

CPF do colaborador. Deve ter prontuário cadastrado

vaccine

Sim

Composto

Definição da vacina — ver estrutura abaixo

batch

Não

Texto

Número do lote da vacina

date

Sim

AAAA-MM-DD ou AAAA-MM-DD HH:MM

Data de aplicação. Não pode ser anterior a 20 anos

status

Sim

02

Situação do registro — ver tabela

currentDose

Sim

03

Dose atual — ver tabela

dose

Sim

Inteiro

Número sequencial da dose (ex: 1, 2, 3)

vaccine — Definição da vacina

8 valores separados por ; na seguinte ordem:
nome;genero;idadeMin;idadeMax;reforco;intervaloReforco;intervalo2aDose;intervalo3aDose

Posição

Campo

Valores aceitos

Descrição

1

nome

Texto

Nome da vacina. Criada automaticamente se não existir

2

genero

0, 1, 2

0=Masculino, 1=Feminino, 2=Ambos

3

idadeMin

Inteiro

Idade mínima indicada, em meses

4

idadeMax

Inteiro

Idade máxima indicada, em meses

5

reforco

0, 1, 2

0=Sem reforço, 1=Periódico, 2=Único

6

intervaloReforco

Inteiro

Intervalo entre reforços, em dias

7

intervalo2aDose

Inteiro

Intervalo entre 1ª e 2ª dose, em dias

8

intervalo3aDose

Inteiro

Intervalo entre 2ª e 3ª dose, em dias

status — Situação

Valor

Descrição

0

Pendente

1

Realizada

2

Recusa

currentDose — Dose atual

Valor

Descrição

0

1ª dose

1

2ª dose

2

3ª dose

3

Reforço

Exemplo

"individualRegistration" | "vaccine" | "batch" | "date" | "status" | "currentDose" | "dose" "936.406.870-00" | "Coronavac;2;0;99;2;5;5;11" | "ABC240" | "2022-05-17 10:15" | "1" | "1" | "1"

Integrações e efeitos colaterais

A importação via CSV não gera eventos para o eSocial. Nenhuma das entidades suportadas enfileira mensagens no eSocial durante o processo de importação, inclusive o ASO, que em criações manuais dispararia o S-2220.

Respondeu à sua pergunta?