Serviços para Gerenciadoras de Consentimento e Ciência (GCC)
A Portaria
A Portaria SENATRAN nº 139, de 2025 regulamenta o acesso aos dados dos sistemas informatizados da Secretaria Nacional de Trânsito (Senatran) por entidades públicas e privadas. O objetivo é garantir que o compartilhamento de informações siga diretrizes de segurança, conformidade legal e governança de dados.
Impacto para as GCC e Consumo das APIs
As Gerenciadoras de Consentimento e Ciência (GCC) terão um papel essencial na intermediação entre os usuários e os sistemas da Senatran, garantindo transparência e conformidade regulatória. Com isso, ao integrar as APIs da Senatran, as GCC poderão:
- Gerenciar e armazenar consentimentos de usuários para acesso aos seus dados veiculares e de trânsito.
- Fornecer interfaces seguras para consulta e compartilhamento de dados com terceiros autorizados.
- Assegurar conformidade com LGPD e outras normativas, evitando acesso indevido ou uso irregular das informações.
- Automatizar processos de verificação e validação de consentimento, facilitando a experiência do usuário final.
Passos Recomendados para as GCC
- Analisar a portaria e identificar requisitos específicos aplicáveis à sua operação.
- Adequar seus processos internos para garantir segurança da informação e conformidade com as regras da Senatran.
- Integrar as APIs da Senatran de forma segura, utilizando boas práticas de autenticação e auditoria.
- Capacitar equipes técnicas e jurídicas para manter a operação dentro das diretrizes regulatórias.
- Acompanhar atualizações e auditorias da Senatran para evitar riscos regulatórios.
Fluxo de consentimento

Com a implementação correta dessas diretrizes, as GCC poderão desempenhar um papel estratégico no gerenciamento de consentimentos e compartilhamento seguro de dados dentro do ecossistema da Senatran.
PORTARIA SENATRAN Nº 139, DE 20 DE FEVEREIRO DE 2025
Fluxo de Geração de Hash de Consulta
Este fluxo descreve as etapas para geração e uso do hash de consulta, envolvendo o Usuário, a Gerenciadora de Consentimento e Ciência (GCC), a Plataforma de Gerenciamento de Consentimento e Ciência (PGCC) e os Estruturantes.
Participantes
- Usuário: Solicitante da consulta.
- GCC: Gerenciadora de Consentimento e Ciência.
- PGCC: Plataforma de Gerenciamento de Consentimento e Ciência.
- Estruturantes: Sistemas responsáveis por fornecer os dados solicitados.
Etapas do Fluxo
1. Solicitação de Geração do Hash de Consulta
- O Usuário solicita à GCC a geração de um hash de consulta, informando:
- CPF do titular
- TemplateID do consentimento
- CNPJ da GCC
- CNPJ do usuário
- CNPJ do anuente
2. Geração do Hash pela GCC
- A GCC processa os dados recebidos e gera o hash de consulta.
3. Registro do Hash de Consulta na PGCC
- A GCC envia o hash de consulta para a PGCC, solicitando seu registro.
4. Validação e Salvamento pela PGCC
- A PGCC valida a chave do hash de consulta.
- Após validação, a PGCC salva o hash em seu sistema.
5. Confirmação para a GCC
- A PGCC confirma à GCC que o hash de consulta foi salvo com sucesso.
6. Retorno ao Usuário
- A GCC retorna ao Usuário o hash da solicitação de consulta.
Diagrama do Fluxo
sequenceDiagram
autonumber
user->>gcc: Solicita geração hash de consulta (cpf, templateid, cnpjGCC, cnpjUsuario, cnpjAnuente, HashConsentimento)
activate gcc
gcc->>gcc: Gerar Hash
deactivate gcc
gcc-->>pgcc: Registrar Hash
activate pgcc
pgcc->>pgcc: Validação\ndo metadados Hash
pgcc->>pgcc: Salva Hash
pgcc-->>gcc: Hash salvo
deactivate pgcc
gcc-->>user: Hash da solicitação
Observações
- Para a geração do hash de consulta para os casos de uso que exijam consentimento é necessário que exista um consentimento aprovado pelo titular, .
- O hash de consulta garante a rastreabilidade e a integridade das solicitações de dados.
- Todo o processo deve seguir as diretrizes de segurança e conformidade estabelecidas pela Senatran.
🧠 Como funciona o modelo de Hash JWT
1️⃣ Concatenação dos Dados
Os mesmos campos usados anteriormente continuam sendo parte do payload, mas agora são incorporados diretamente dentro do JWT (sem concatenação manual).
Campos típicos do payload:
- cpfTitular
- templateId
- isConsentimento
- cnpjUsuário
- cnpjAnuente
- cnpjGcc
- numeroHashConsentimento
- dataCriacao
- dataExpiracao
Exemplo de payload JSON:
{
"cpfTitular": "70100944035",
"templateId": "136987",
"isConsentimento": true,
"cnpjUsuário": "05884765000164",
"cnpjAnuente": "03452307000111",
"cnpjGcc": "03452307000111",
"dataCriacao": "2025-10-21T10:45:00",
"dataExpiracao": "2025-12-31T23:59:59"
}
2️⃣ Assinatura Digital com JWT (RS256)
A GCC assina o payload com sua chave privada RSA, gerando um JWT assinado no formato:
header.payload.signature
Header
{
"alg": "RS256",
"typ": "JWT"
}
Exemplo de JWT final
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...
3️⃣ Envio para a PGCC
O JWT é enviado para o endpoint:
POST /api/v1/hash
A PGCC executa as seguintes etapas:
1. Extrai o CNPJ do remetente do cabeçalho x-cnpj-consulta.
2. Busca a chave pública associada a esse CNPJ.
3. Valida a assinatura RSA (garantindo autenticidade).
4. Decodifica o payload e o armazena para processamento e auditoria.
Se a assinatura for inválida → HTTP 401 Unauthorized.
Se válida → HTTP 202 Accepted ("Hash validado e aceito para processamento").
4️⃣ Processamento Assíncrono
Após validação, o hash é enfileirado para processamento posterior.
Essa etapa pode envolver workers, batch jobs ou job schedulers para armazenar e auditar os dados.
🧾 Observações Importantes
- Para consultas que exijam consentimento, deve existir um consentimento ativo pelo titular.
- Todo o processo segue as diretrizes de segurança e conformidade da Senatran.
- A GCC é responsável por gerar e assinar o JWT, enquanto a PGCC apenas valida e processa.
🔄 Diagrama de Sequência – Fluxo de Criação e Validação do JWT (GCC → PGCC)
sequenceDiagram
title Fluxo de criação e validação do JWT (GCC → PGCC)
participant GCC
participant JwtBuilder
participant ChavePrivada
participant API_PGCC
participant JwtValidator
participant RepositorioChavesPublicas
participant FilaProcessamento
participant HashService
participant HashInfoDTO
GCC->>JwtBuilder: Monta header (alg=RS256, typ=JWT)
GCC->>JwtBuilder: Adiciona payload (idTemplate, cnpjs, etc)
JwtBuilder->>ChavePrivada: Solicita assinatura digital
ChavePrivada-->>JwtBuilder: Retorna assinatura RSA-SHA256
JwtBuilder-->>GCC: Retorna JWT (header.payload.signature)
GCC->>API_PGCC: Envia JWT via requisição HTTP POST
API_PGCC->>JwtValidator: Recebe JWT e inicia validação
JwtValidator->>RepositorioChavesPublicas: Busca chave pública do remetente (por CNPJ)
RepositorioChavesPublicas-->>JwtValidator: Retorna chave pública
JwtValidator->>JwtValidator: Verifica assinatura (RSA)
alt Assinatura inválida
JwtValidator-->>API_PGCC: Retorna erro de autenticação
API_PGCC-->>GCC: HTTP 401 Unauthorized\n(assinatura inválida)
else Assinatura válida
JwtValidator-->>API_PGCC: Retorna payload validado
API_PGCC->>FilaProcessamento: Enfileira requisição\npara processamento posterior
API_PGCC-->>GCC: HTTP 202 Accepted\n("Hash validado e aceito para processamento")
end
Note right of FilaProcessamento: Processamento assíncrono posterior\n(Worker, Batch ou Job Scheduler)
FilaProcessamento->>HashService: Inicia processamento do hash validado
HashService->>HashInfoDTO: Cria DTO com os campos do payload
HashInfoDTO-->>HashService: Retorna objeto DTO
HashService->>API_PGCC: Atualiza status do processamento\n(SUCCESS ou FAILURE)
API_PGCC->>GCC: Opcional: envia callback HTTP 200\ncom DTO processado
📅 Versão e Manutenção
- Versão: 2.0 (JWT assinado via RS256)
- Data: 21/10/2025
- Responsável: SERPRO – Projeto PGCC
- Descrição: Substituição do cálculo SHA-256 por modelo JWT com assinatura RSA.
📚 Guias e Roteiros para GCCs
Credenciamento
- Passo a Passo: Credenciamento Completo - Guia detalhado com screenshots do processo de credenciamento
- Fluxo de Credenciamento GCC - Diagrama e explicação do fluxo completo
Demonstração de Interoperabilidade
- Visão Geral dos Roteiros - Índice e resumo dos roteiros de demonstração
- Roteiro: APIs Credencia - Demonstração de credenciamento e vínculos (~1h)
- Roteiro: APIs PGCC - Demonstração de consentimento, hash, chaves e webhooks (~3h)