6 min de leitura
Mensagens de erro do SAF-T na AT: "Ficheiro inválido", "Rejeitado" e erros cvc-
O que significa cada mensagem do Portal das Finanças e do validador SAF-T da AT e como corrigir: "Ficheiro inválido", estados do ficheiro, erros de envio, e cvc-pattern-valid, cvc-identity-constraint e outras mensagens do validador.
As mensagens da AT são curtas e quase nunca dizem que linha do ficheiro está errada. Abaixo estão as que é mais provável ver, com o que cada uma significa e como corrigir. As mensagens do Portal das Finanças estão citadas tal como aparecem; as do validador são técnicas e em inglês.
"Ficheiro inválido"
A rejeição mais comum. Significa que o ficheiro não respeita a estrutura definida para o SAF-T (PT) (Portaria n.º 302/2016), e a AT não diz onde. Variantes mais antigas que ainda pode encontrar: "Ficheiro SAF-T (PT) inválido" e "O ficheiro seleccionado não está de acordo com o formato exigido".
Causas habituais, por ordem de frequência:
- Codificação: o ficheiro está em UTF-8, ou os bytes não correspondem à declaração da primeira linha. Como corrigir.
- Um BOM (byte order mark) antes de
<?xml. - Um erro de esquema: um campo obrigatório em falta, um valor no formato errado, uma referência a um cliente ou artigo que não consta do ficheiro. As mensagens do validador abaixo indicam qual.
Correção: valide o ficheiro para ver todos os problemas com o número da linha, corrija, exporte de novo e volte a submeter.
Estado do ficheiro "Rejeitado" ou "Integrado parcialmente"
Depois do envio, o e-Fatura mostra um estado para o ficheiro. Segundo a AT:
- Pendente / Em processamento: à espera ou a ser processado.
- Integrado com sucesso: todos os documentos foram registados.
- Integrado parcialmente: alguns documentos não foram registados. Normalmente já tinham sido comunicados (por um ficheiro anterior ou por webservice) e são ignorados como duplicados, o que não é um problema.
- Rejeitado: um problema de conteúdo impediu o processamento, ou nenhum documento foi registado. Também acontece quando todos os documentos do ficheiro já tinham sido comunicados por webservice sem alterações.
Antes de voltar a submeter um ficheiro rejeitado, confirme se o seu programa já envia as faturas por webservice: comunica-se por ficheiro ou por webservice, não pelos dois.
"Ocorreu um erro ao enviar o ficheiro"
O envio em si falhou; o ficheiro nem foi verificado. Confirme a ligação à internet e se uma firewall ou proxy bloqueia o site do e-Fatura, e tente de novo.
"Falhou o Envio. O cliente da linha de comandos que está a utilizar não se encontra atualizado"
O seu programa submete através do cliente de linha de comandos da AT (um ficheiro Java chamado FACTEMICLI…jar) e essa versão já não é aceite. Descarregue a versão atual no site do e-Fatura, substitua o ficheiro antigo onde o seu programa o guarda e envie de novo. Os ficheiros grandes, que o envio pelo portal não aceita, também passam por este cliente.
Mensagens do validador: cvc-…
O validador da AT indica os erros de esquema com as mensagens padrão do Java (Xerces). Os códigos são enigmáticos, mas precisos:
cvc-pattern-valid: Value '…' is not facet-valid with respect to pattern '…'
Um valor tem o formato errado. Exemplo: o InvoiceNo tem de ser o tipo de documento, um espaço, a série, uma barra e o número, como FT A/123; FT123 falha.
cvc-minLength-valid: Value with length = '0' is not facet-valid with respect to minLength '1'
Um campo obrigatório está vazio: muitas vezes um artigo sem descrição, ou uma empresa ou cliente sem localidade.
cvc-maxLength-valid: Value '…' with length = '…' is not facet-valid with respect to maxLength '…'
Um valor é demasiado longo, como um código de artigo com mais de 60 caracteres ou um nome com mais de 100.
cvc-enumeration-valid: Value '…' is not facet-valid with respect to enumeration '[…]'
Um código não está na lista permitida, por exemplo um tipo de documento ou código de imposto inventado pelo programa. Se o valor rejeitado for FS (fatura simplificada), o validador está desatualizado: FS é válido na versão 1.04_01.
cvc-complex-type.2.4.a: Invalid content was found starting with element '…'. One of '{…}' is expected.
Faltam elementos ou estão pela ordem errada. A mensagem indica o elemento encontrado e o que era esperado nessa posição.
cvc-identity-constraint.4.3: Key '…' with value '…' not found for identity constraint
Um documento aponta para algo que não consta do ficheiro. InvoiceCustomerIDConstraint: uma fatura usa um CustomerID sem cliente correspondente no ficheiro. InvoiceProductCodeConstraint: o mesmo para um artigo. Normalmente a exportação filtrou a lista de clientes ou artigos de forma diferente dos documentos.
Ver todos os erros de uma vez
O SAFTCheck valida com o esquema atual da AT e mostra estes problemas em linguagem simples com o número da linha, e ainda as verificações que o esquema não consegue exprimir (codificação, dígitos de controlo do NIF, ATCUD, datas). Valide o seu SAF-T; a primeira validação é grátis e não precisa de conta.