SAFTCheck
Blog

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.

Outros artigos