A resposta (formato json) da operação executada com sucesso retorna um relatório da verificação realizada:
A chave generalStatus pode conter os seguintes valores:
- VALID: assinatura íntegra e estruturalmente correta, atributos e validade dos certificados e demais artefatos;
- VALID_WITH_ALERT: assinatura íntegra e estruturalmente correta, atributos e validade dos certificados com ressalvas;
- INVALID: assinatura íntegra e estruturalmente correta, atributos e validade certificados com problemas;
- INVALID_WITH_INTEGRITY_ERROR: assinatura não íntegra e estruturalmente com problemas;
Seguem algumas orientações para auxiliar na definição do tratamento do retorno conforme o status:
- Assinatura com status VALID pode ser aceita e está aderente ao padrão;
- Assinatura com status VALID_WITH_ALERT pode ser aceita mas os alertas e riscos devem ser avaliados;
- Assinatura com status INVALID recomenda-se que não seja aceita pois não está aderente ao padrão. Porém, como não apresenta erro de integridade, pode ser aceita dependendo das regras de negócio da aplicação mas representa um risco muito alto e pode ser questionada posteriormente;
- Assinatura com status INVALID_WITH_INTEGRITY_ERROR não deve ser aceita em nenhuma hipótese pois os dados foram comprometidos.
O atributo generalStatus informa o estado geral da verificação de um arquivo. O seu valor assume o status com o maior nível de erro da lista de assinaturas contidas no arquivo.
A chave signatureFormat contém o padrão da assinatura realizada (XML/XAdES). Caso haja pelo menos uma assinatura de um padrão básico (XML) em um conjunto de assinaturas de padrão avançado (XAdES), o valor retornado será o padrão básico. Apenas quando todas as assinaturas forem do padrão avançado é que ele será retornado.
O atributo signatureStatus tem as principais informações da verificação da assinatura digital, tais como: estado do certificado do signatário e sua cadeia, carimbo do tempo de assinatura (quando presente), contra assinatura (quando presente), política de assinatura (apenas para padrões avançados).
Toda estrutura que tem a chave status contém as seguintes informações:
- infoStatus: lista contendo todas as situações encontradas com a assinatura que não afetam o seu status geral;
- alertStatus: lista contendo todas as situações encontradas com a assinatura que não a invalidam, porém não permitem considerá-la completamente válida;
- errorStatus: lista contendo todas as situações encontradas com a assinatura que a invalidam.
As listas de Infos, Alertas e Erros contêm objetos que mapeiam uma chave e uma descrição para aquela chave. A chave identifica unicamente a situação encontrada pelo verificador.