Hash MD5 no epílogo do XML TISS: o que é e como conferir
3 min de leitura
Ao final de toda mensagem TISS existe o epílogo, e nele está o campo de hash. Quem fatura para convênios já viu o erro de "hash inválido" na devolução de um lote. Este artigo explica o que esse campo é, como o valor é calculado e como conferir antes de enviar.
O que é o hash do epílogo
O hash é um campo do epílogo da mensagem TISS cujo objetivo declarado é a integridade: permitir que quem recebe o arquivo confirme que o conteúdo não mudou entre a geração e o recebimento. Se qualquer valor do XML for alterado depois do cálculo, o hash deixa de bater.
Vale a ressalva: o hash serve para integridade, não é uma proteção forte. Ele não identifica quem gerou o arquivo nem impede que alguém recalcule o valor depois de editar o conteúdo.
Como é calculado
A regra está no Componente Organizacional do padrão TISS (versão 202609, itens 147 e 148):
- o algoritmo é o MD5, com o resultado em hexadecimal;
- o cálculo é feito sobre a concatenação dos valores das tags da mensagem, sem os nomes dos elementos e sem os atributos;
- o texto é tratado na codificação ISO-8859-1.
Na prática, o cálculo ignora a estrutura do XML e considera apenas o conteúdo, na ordem em que aparece. Por isso, qualquer mudança em um valor, mesmo um espaço, muda o resultado.
Erros comuns
- Alterar o XML depois de calculado o hash. Corrigir um valor, um código ou um nome no arquivo já pronto invalida o hash. Depois de qualquer edição, recalcule.
- Codificação diferente. Se o hash for calculado sobre o texto em UTF-8, e não em ISO-8859-1, o resultado muda sempre que houver acentos ou caracteres especiais.
- Considerar nomes de tags ou atributos no cálculo. Só os valores entram na concatenação.
Como conferir no Validador TISS
O Validador TISS da Healthchess roda no navegador e calcula o hash MD5 do arquivo, para você comparar com o valor gravado no epílogo antes de enviar o lote. Ele também exporta o resultado para Excel.
A conferência do hash complementa a validação da estrutura. Para checar o XML contra o XSD, veja Como validar o XML TISS antes de enviar. Para saber o que muda entre as versões do padrão, consulte Versões do padrão TISS: do 04.01.00 ao 04.03.00. A versão a usar é a vigente conforme as regras de transição da ANS e o que foi acordado com a operadora.
Perguntas frequentes
O hash do TISS é obrigatório?
Ele faz parte do epílogo da mensagem no padrão TISS. Confirme com a operadora como ela trata a conferência no recebimento do lote.
O hash é uma assinatura digital?
Não. Ele confere integridade do conteúdo, mas não prova autoria e não oferece proteção forte contra adulteração.
Por que meu hash não bate com o da operadora?
As causas mais comuns são edição do XML depois do cálculo e codificação diferente de ISO-8859-1. Recalcule sobre o arquivo final e confira os valores concatenados.
Preciso instalar algo para conferir?
No Validador TISS, não: ele funciona direto no navegador.