Erros SAF-T

Erro: Value doesn’t match any pattern of [“AD|AE|AF|AG|AI|AL|AM|AO|AQ|AR|(…)

Quando o validador do SAF-T dá uma indicação parecida com esta:

../../_images/erro_saft_1.png

Significa que o validador não consegue associar um país ao imposto usado, ou ao cliente.

O problema em questão é geralmente devido a falta de dados em algum local que não permite ligar corretamente a posição fiscal do cliente ao imposto utilizado num documento.

Existem 2 locais onde a situação pode estar em falha:

Dica

Falta de dados no cliente

Foi usado um imposto cujo campo País/Região é Intracomunitário ou Extracomunitário. Nestes casos, a especificação do SAF-T manda que seja indicado o país do cliente no campo TaxCountryRegion. Se este não estiver definido, o erro é inevitável

  • Precisa de identificar o documento
    • Abra o ficheiro XML e procure pela palavra false. Suba o cursor até chegar ao identificador da fatura (ou documento similar), do tipo <InvoiceNo>FT A/00009</InvoiceNo>

  • Procure o documento no Odoo e abra-o. Clique no cliente para ser redirecionado para a ficha do contacto do cliente

  • Atribua ao cliente o país correto e grave

  • Extraia novamente o ficheiro SAF-T que o erro deve desaparecer

../../_images/v17_partner_country.png

Dica

Falta de dados no imposto

Foi usado pela primeira vez, um imposto do tipo IVA N/S. A configuração inicial do imposto em questão (IVA Não Sujeito) deixa propositadamente em branco a região, o que provoca o erro indicado. Há vários tipos de uso para o IVA N/S, com diferentes regiões possíveis. Dada a sua relativamente baixa utilização, a Exo Software optou por deixar a configuração deste imposto incompleta, sabendo que o erro em questão iria aparecer e obrigar o utilizador a completar a configuração

  • Abra a ficha do imposto IVA N/S

  • No separador Opções Avançadas, preencha o conteúdo do campo País/Região, de acordo com o tipo de utilização que fez para o imposto.

Importante

Se houver transações que necessitem do IVA N/S para mais do que um país, o imposto deve ser duplicado, ficando assinalado em cada um o país de destino.

  • Extraia novamente o ficheiro SAF-T que o erro deve desaparecer

../../_images/v17_tax_countryRegion.png

Erro: o imposto IVA N/S deve ter uma etiqueta a mencionar a região do imposto

A configuração inicial do imposto em questão (IVA Não Sujeito) deixa propositadamente em branco a região, o que provoca o erro indicado. Há vários tipos de uso para o IVA N/S, com diferentes regiões possíveis. Dada a sua relativamente baixa utilização, a Exo Software optou por deixar a configuração deste imposto incompleta, sabendo que o erro em questão iria aparecer e obrigar o utilizador a completar a configuração

Dica

  • Abra a ficha do imposto IVA N/S

  • No separador Opções Avançadas, preencha o conteúdo do campo País/Região, de acordo com o tipo de utilização que fez para o imposto.

Importante

Se houver transações que necessitem do IVA N/S para mais do que um país, o imposto deve ser duplicado, ficando assinalado em cada um o país de destino.

  • Extraia novamente o ficheiro SAF-T que o erro deve desaparecer

../../_images/v17_tax_countryRegion.png

Erro: Unexpected child with tag “ns:DocumentTotals” at position 12. Tag “ns:Line” expected.

Quando o validador do SAF-T dá uma indicação parecida com esta:

../../_images/erro_saft_4.png

é porque há um pagamento de cliente que não está reconciliado com nenhum fatura (nem foi cancelado). Neste caso, é o 65º pagamento a contar a partir do início do período que está a ser reportado. Dado que a AT não permite a existência de pagamentos nestas condições, teremos que o associar a uma fatura.

Dica

  • Identifique o pagamento

    • Na janela onde é apresentado o erro SAF-T, coloque o rato por cima da coluna Caminho e da linha que provocou o erro

    • Será exibido o nó XML do SAF-T com a informação do pagamento. O nº do recibo aparece logo no início, no tag <PaymentRefNo>

  • Em alternativa, vá à app Faturação / Contabilidade (dependendo respetivamente se tem versão Community ou Enterprise do Odoo) e no menu Clientes ‣ Pagamentos

    ../../_images/v17_access_payments.png
    • filtre os pagamento que estejam dentro do período e tenham o estado publicado

    • Como, infelizmente, não há forma de filtrar por pagamentos que não estejam reconciliados com nenhuma fatura, é necessário ver a ficha de cada um até aparecer o que não tem o botão de acesso rápido Faturas no topo do formulário

  • Escolha uma fatura em aberto do mesmo parceiro e reconcilie com o pagamento identificado

  • Extraia novamente o ficheiro SAF-T

Com fatura associada

../../_images/v17_payment_with_invoice.png

Sem fatura associada

../../_images/v17_payment_without_invoice.png

Erro: duplicated value (“MNBBR”) for Xsd11Unique(name=”ns:ProductCodeConstraint”)

Quando o validador do SAF-T dá uma indicação parecida com esta (o texto MNBBR pode ser diferente):

../../_images/v17_erroSaft2.png

é porque ao validar o documento SAF-T foi verificado que existe mais do que um artigo com a mesma referência interna, a causa mais comum para este erro é que exista 1 artigo ativo e 1 artigo arquivado com a mesma Referência Interna

No exemplo acima o texto MNBBR significa que existem múltiplos produtos com a Referência Interna MNBBR

Dica

  • Procure na sua base de dados os artigos que têm o valor do erro no campo Referência Interna

  • Se tiver artigos arquivados com essa Referência Interna limpe o campo

  • Se ambos os artigos estiverem ativos, modifique a Referência Interna de um deles

../../_images/v17_internalReferenceField.png

Erro: Diferença entre Total declarado e Total calculado

Por vezes ao submeter um SAF-T na AT pode acontecer de surgir a seguinte mensagem de erro:

../../_images/v17_totalsError_01.png

O mesmo significa que o total declarado no documento é diferente do total que a AT calculou com base nos documentos

A causa principal para este erro é o documento em Odoo estar numa fase diferente da que é declarada no campo próprio. Regra geral acontece com documentos que foram cancelados e que posteriormente se alterou o estado em Odoo

Importante

A localização da Exo Software calcula o total dos documentos a declarar com base no estado do documento em Odoo.

No entanto, existe um segundo campo que tem a letra que é declarada à AT sobre o estado do documento. Se o fluxo esperado não for seguido, pode existir uma discrepância entre estes valores que irão resultar no erro acima

Cada uma das linhas tem uma equivalência entre os documentos declarados e a respetiva secção de SAF-T, assim como o tipo de documentos usado para o cálculo em cada um:

  • Documentos de faturação ‣ <SalesInvoices> ‣ qualquer documento do tipo Fatura, Nota crédito e Nota débito

  • Documentos de conferência ‣ <WorkingDocuments> ‣ qualquer documento do tipo Orçamento e Nota Encomenda

  • Recibos ‣ <Payments> ‣ qualquer documento do tipo recibo

Em cada uma das secções são indicados os totais para as mesmas

../../_images/v17_totalsError_02.png ../../_images/v17_totalsError_03.png ../../_images/v17_totalsError_04.png

Para descobrir qual o documento que pode estar errado deve procurar na secção em causa o campo <InvoiceStatus>, <WorkStatus> ou <PaymentStatus> respetivamente e comparar o nº de documentos com os que existem em Odoo para cada tipo

  • N, significa que o documento está publicado

  • A, significa que o documento está cancelado

Example

No exemplo acima, consultando o SAF-T, podemos ver que o nº de documentos declarados como cancelados é 4

../../_images/v17_totalsError_05.png

No entanto, em Odoo, o nº de documentos no estado Cancelado é 3

../../_images/v17_totalsError_06.png

Consultando documento a documento, pode descobrir qual o documento que tem o estado errado e fazer a sua devida correção

Após a correção, pode extrair novamente o SAF-T e voltar a submeter