Validador de ePA-ID / KVNR (Alemanha)
Valide a autenticidade, estrutura e checksum de ePA-ID / KVNR (Alemanha).
Sobre a Validação de ePA-ID / KVNR (Alemanha)
O validador decodifica a letra inicial no padrão A=01 até Z=26 e aplica a validação de soma de produtos alternados por Módulo 10, validando conformidade com as diretrizes da Gematik.
Executado inteiramente em ambiente local sem qualquer transmissão de dados sensíveis ou conexões externas.
Anatomia & Estrutura da ePA-ID (KVNR)
A ePA-ID é baseada no padrão KVNR de 10 caracteres definido pela gematik (§ 290 SGB V):
| Posição | Campo | Tamanho | Significado & Regra | Exemplo |
|---|---|---|---|---|
| 1 | Letra Inicial | 1 letra | Letra maiúscula (A-Z) convertida em código numérico de 2 dígitos (A=01 a Z=26) | A |
| 2 a 9 | Serial do Segurado | 8 dígitos | Número sequencial individual intransmissível atribuído pelo plano de saúde | 12345678 |
| 10 | Prüfziffer (DV) | 1 dígito | Dígito de controle calculado via Módulo 10 com Quersumme | 9 |
Algoritmo de Validação da ePA-ID (Módulo 10 Ponderado com Quersumme)
A gematik estabelece o cálculo ponderado 1-2-1-2 com soma dos dígitos dos produtos parciais:
P = sum(Quersumme(d_i * w_i)) % 10
- 1. Converta a letra inicial em 2 dígitos correspondentes à sua posição no alfabeto (A=01, B=02, ..., Z=26).
- 2. Monte o vetor de 10 dígitos base com os 2 dígitos da letra seguidos pelos 8 dígitos do segurado.
- 3. Multiplique cada posição pelos pesos alternados: [1, 2, 1, 2, 1, 2, 1, 2, 1, 2].
- 4. Calcule a soma dos dígitos (Quersumme) para qualquer produto maior ou igual a 10.
- 5. Some todas as Quersummen e calcule o resto da divisão por 10. O resultado é o dígito verificador na 10ª posição.