f4cil — Inovação e Tecnologia Entrar
Tecnologia & Compliance

Layout do AFD da Portaria 671: a Estrutura do Arquivo Fonte de Dados, Campo a Campo

Do cabeçalho ao trailer — como é formado o arquivo que a fiscalização do trabalho lê primeiro.

Equipe F4cil
26/08/2026
14 min de leitura

O AFD é o arquivo que materializa todas as marcações de um relógio de ponto — e costuma ser o primeiro documento que um auditor-fiscal do Trabalho pede. A Portaria 671/2021 define seu formato byte a byte. Este guia destrincha cada tipo de registro (do cabeçalho ao trailer), os campos de cada um, o CRC-16, o hash SHA-256 e as regras que fazem o arquivo ser aceito — ou rejeitado.

Todo relógio de ponto eletrônico regular no Brasil precisa exportar o AFD — Arquivo Fonte de Dados. É nele que ficam registradas, em texto puro e em ordem inviolável, todas as marcações de ponto e os eventos do equipamento. Quando a fiscalização do trabalho aparece, o AFD é o primeiro arquivo pedido — e se ele estiver fora do leiaute, é como se o controle de ponto não existisse.

A boa notícia: o formato do AFD é totalmente especificado pela Portaria 671/2021. Não há margem pra interpretação — cada campo tem posição, tamanho e tipo definidos. Este guia percorre a estrutura inteira, registro por registro, pra você entender exatamente o que o seu sistema de ponto deveria estar gerando.

O que é o AFD (Arquivo Fonte de Dados)

O AFD é um arquivo de texto gerado pelo REP (Registrador Eletrônico de Ponto). Cada linha é um registro — pode ser uma marcação de ponto, um ajuste de relógio, a inclusão de um funcionário ou um evento do equipamento. Os registros são numerados sequencialmente e não podem ser alterados nem reordenados: essa imutabilidade é o que dá valor probatório ao arquivo.

  • É gerado por qualquer um dos três tipos de REP: REP-C (convencional, o relógio físico), REP-A (alternativo) e REP-P (programa/app).
  • Deve ser fornecido ao empregado, ao sindicato e à fiscalização sempre que solicitado.
  • Precisa ser guardado por 5 anos após a rescisão do contrato.

AFD, AFDT e AEJ: não confunda

A Portaria 671 cita três siglas de arquivo que vivem sendo confundidas. Vale fixar a diferença:

ArquivoO que éOrigem
AFDArquivo Fonte de Dados — o "bruto" com todas as marcações e eventos, direto do REPO próprio REP
AFDTArquivo Fonte de Dados Tratado — as marcações já tratadas para um períodoO sistema de tratamento
AEJArquivo Eletrônico de Jornada — a jornada apurada (horas devidas, extras, faltas)O sistema de tratamento

As regras gerais do arquivo

Antes dos registros em si, a Portaria fixa regras que valem pro arquivo inteiro. Ignorar qualquer uma invalida o AFD:

  1. Formato texto, codificado em ASCII / ISO 8859-1.
  2. Cada linha é um registro e termina com os caracteres 13 e 10 (CR + LF) da tabela ASCII.
  3. Os registros são ordenados pelo NSR — Número Sequencial de Registro.
  4. Sem linhas em branco.
  5. Preenchimento a partir da esquerda; posições não usadas ficam com espaço.
  6. Registros tipo 1 a 5 levam um CRC-16 ao final; o tipo 7 leva um hash SHA-256.

Os tipos de dado dos campos

SiglaTipoFormato
NNuméricosó dígitos
AAlfanuméricotexto
DDataAAAA-MM-DD
DHData e horaAAAA-MM-DDThh:mm:00ZZZZZ com fuso (ex.: 2021-04-27T16:44:00-0300)

Os tipos de registro

Um AFD é composto por registros de tipos diferentes. O caractere logo depois do NSR identifica o tipo:

TipoO que registra
1Cabeçalho do arquivo (dados do empregador e do REP)
2Inclusão/alteração da identificação da empresa no REP
3Marcação de ponto (REP-C e REP-A)
4Ajuste do relógio interno do REP
5Inclusão, alteração ou exclusão de empregado no REP
6Eventos sensíveis do REP (energia, violação, memória fiscal...)
7Marcação de ponto (REP-P)
9Trailer (fecha o arquivo com os totais)

Registro tipo 1 — Cabeçalho

A primeira linha do arquivo. Identifica o empregador e o REP que gerou o AFD. Começa com nove zeros (não tem NSR) e termina com o CRC-16:

#PosiçãoTam.TipoConteúdo
1001-0099N000000000 (fixo)
20101NTipo do registro: 1
30111NIdentificador do empregador: 1=CNPJ, 2=CPF
4012-02514NCNPJ ou CPF do empregador
5026-03914NCNO ou CAEPF, quando existir
6040-189150ARazão social ou nome do empregador
7190-20617NNº de fabricação (REP-C) / processo da CCT (REP-A) / registro INPI (REP-P)
8207-21610DData inicial dos registros no arquivo
9217-22610DData final dos registros no arquivo
10227-25024DHData e hora de geração do arquivo
11251-2533NVersão do leiaute: 003
122541NIdentificador do fabricante: 1=CNPJ, 2=CPF
13255-26814NCNPJ ou CPF do fabricante/desenvolvedor
14269-29830AModelo (no caso de REP-C)
15299-3024ACRC-16 do registro

Os registros de marcação (tipo 3 e tipo 7)

São o coração do arquivo — cada batida de ponto vira um registro. O tipo depende do REP: REP-C e REP-A usam o tipo 3; o REP-P (app/programa) usa o tipo 7, que carrega dados extras de segurança.

Tipo 3 — marcação de REP-C e REP-A

#PosiçãoTam.TipoConteúdo
1001-0099NNSR
20101ATipo do registro: 3
3011-03424DHData e hora da marcação
4035-04612NCPF do empregado
5047-0504ACRC-16 do registro
Uma marcação (tipo 3) na prática
Concatenando os campos, uma marcação fica assim (aqui com espaços só pra visualizar as fronteiras):
000000123 · 3 · 2026-08-24T08:00:00-0300 · 12345678901 · 2189

000000123 = NSR · 3 = tipo · 2026-08-24T08:00:00-0300 = data/hora com fuso · 12345678901 = CPF · 2189 = CRC-16. No arquivo real não há separadores — cada campo ocupa exatamente a sua faixa de posições.

Tipo 7 — marcação de REP-P (app/programa)

O REP-P é o ponto por aplicativo ou navegador. Como não há hardware fiscal, a Portaria exige mais dados de rastreabilidade em cada marcação — inclusive um hash encadeado que liga um registro ao anterior:

#PosiçãoTam.TipoConteúdo
1001-0099NNSR
20101ATipo do registro: 7
3011-03424DHData e hora da marcação
4035-04612NCPF do empregado
5047-07024DHData e hora da gravação do registro
6071-0722NColetor: 01=app mobile, 02=navegador, 03=desktop, 04=dispositivo, 05=outro
70731N0=marcação on-line, 1=off-line
8074-13764ACódigo hash (SHA-256)

Os registros de controle (2, 4, 5 e 6)

Além das marcações, o AFD registra tudo que muda no REP — o que impede a fraude do tipo "editei o cadastro e ninguém viu":

  • Tipo 2 — identificação da empresa: inclusão ou alteração dos dados do empregador no REP (razão social, local de prestação de serviço), com o CPF de quem alterou.
  • Tipo 4 — ajuste do relógio: guarda a data/hora antes e depois de qualquer acerto do relógio interno, mais o CPF do responsável. É o registro que denuncia manipulação de horário.
  • Tipo 5 — empregado: inclusão (I), alteração (A) ou exclusão (E) de um funcionário no REP, com CPF, nome e responsável.
  • Tipo 6 — eventos sensíveis: abertura do REP por manutenção/violação, retorno de energia, inserção/retirada de memória na Porta Fiscal, indisponibilidade de serviço (REP-P), entre outros.

Trailer (tipo 9) e assinatura digital

A última linha de dados é o trailer: fecha o AFD contando quantos registros de cada tipo existem. Se a contagem não bater com o conteúdo, o arquivo está corrompido ou foi editado.

#PosiçãoTam.TipoConteúdo
1001-0099N999999999 (fixo)
2010-0189NQuantidade de registros tipo 2
3019-0279NQuantidade de registros tipo 3
4028-0369NQuantidade de registros tipo 4
5037-0459NQuantidade de registros tipo 5
6046-0549NQuantidade de registros tipo 6
7055-0639NQuantidade de registros tipo 7
80641NTipo do registro: 9

Depois do trailer vem a assinatura digital (100 posições). No REP-A e no REP-P, o campo é preenchido com o texto literal ASSINATURA_DIGITAL_EM_ARQUIVO_P7S completado com espaços — a assinatura de fato vai num arquivo .p7s à parte.

Integridade: CRC-16 e SHA-256

Dois mecanismos garantem que ninguém edite o AFD sem deixar rastro:

CRC-16 (registros tipo 1 a 5)

Cada um desses registros termina com um CRC-16 — quatro caracteres hexadecimais que funcionam como um dígito verificador do conteúdo da linha. A Portaria especifica o padrão CRC-16/CCITT-TRUE (KERMIT).

Exemplo oficial de CRC-16
Os 9 caracteres 123456789 geram o CRC-16 de valor 0x2189 nesse algoritmo. No arquivo grava-se apenas 2189 (hexadecimal, sem o 0x). Se um único caractere da linha mudar, o CRC muda — e a adulteração fica evidente.

SHA-256 encadeado (registro tipo 7)

No REP-P, cada marcação (tipo 7) carrega um hash SHA-256 calculado sobre os próprios dados mais o hash do registro anterior. É o mesmo princípio de uma cadeia de blocos: alterar uma marcação no meio quebra o hash de todas as seguintes.

Como gerar (e não errar) o AFD

Montar o AFD na mão é inviável — cada byte fora do lugar invalida o arquivo. Na prática, quem gera é o sistema de ponto. O que você, gestor, precisa garantir:

  1. O sistema exporta o AFD no leiaute 003 da Portaria 671, com CRC-16 e (no REP-P) hash SHA-256 corretos.
  2. O arquivo é nomeado conforme a regra (a sigla AFD + identificação do REP e do empregador).
  3. Os registros de ajuste de relógio e eventos são gravados automaticamente — nunca "por fora".
  4. Você consegue baixar o AFD de qualquer período quando o fiscal, o sindicato ou o próprio empregado pedir.

Conclusão

O AFD é, ao mesmo tempo, o documento mais técnico e o mais importante do controle de ponto: é a prova de que as marcações são reais e não foram adulteradas. Seu leiaute na Portaria 671 não deixa margem — posição, tamanho e tipo de cada campo, CRC-16 nos registros de controle e hash encadeado nas marcações por app.

Você não precisa gerar o arquivo manualmente, mas precisa saber cobrar do seu sistema de ponto um AFD correto. Um arquivo fora do leiaute só aparece como problema no pior momento possível: na frente do auditor-fiscal. Entender a estrutura é o que separa quem está em compliance de quem acha que está.

Equipe F4cil
Especialistas em jornada
#Portaria 671 #AFD #Compliance #REP
Newsletter F4cil

Novidades da CLT e do ponto, sem spam

Receba os próximos guias sobre jornada, folha e compliance direto no e-mail. Só conteúdo útil, quando sai.

Link copiado!