assoft-portugal / SAF-T-AO

Official XSD from the Government of Angola for use in SAF-T AO
https://www.agt.minfin.gov.ao
MIT License
56 stars 63 forks source link

Falha na validação do Hash da parte AuditFile #67

Closed rsowd014 closed 4 years ago

rsowd014 commented 4 years ago

Boa tarde,

Desde à 1 mês atrás, começamos a ter um problema de validação do ficheiro SAFT-AO por causa do HASH.

O erro que dá na validação do ficheiro é:

Falha na validação do Hash da parte AuditFile.SourceDocuments.SalesInvoices.2Invoice
Falha na validação do Hash da parte AuditFile.SourceDocuments.SalesInvoices.3Invoice

Estive a verificar e a verificar novamente todos os valores e a criação do HASH e parece tudo ok.´ ExcelDados.xlsx

No excel em anexo, além dos dados das faturas, tenho uma coluna com o HASH gerado e outro (HASHORI) com o HASH antes de ser encriptado.

Envio também o ficheiro XML para verificarem que está com os dados ok. SAFTAO.txt

Nota: o problema com a validação do HASH começou à relativamente pouco tempo, já tivemos ficheiros submetidos e validados e a forma de fazer o HASH é a mesma.

Agradeço a Vossa ajuda por favor. Obrigado. Ricardo Sousa

cryptolopes commented 4 years ago

Para validar as assinaturas é necessário a chave pública.

Atenção que esse SAF-T tem atributos que não pertencem ao schema e isso pode resultar num problema ao validar o ficheiro.

testing/SAFTAO.xml:31: element Customer: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Customer', attribute 'CustomerCount': The attribute 'CustomerCount' is not allowed.
testing/SAFTAO.xml:56: element Customer: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Customer', attribute 'CustomerCount': The attribute 'CustomerCount' is not allowed.
testing/SAFTAO.xml:80: element Customer: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Customer', attribute 'CustomerCount': The attribute 'CustomerCount' is not allowed.
testing/SAFTAO.xml:104: element Product: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Product', attribute 'ProductCount': 
The attribute 'ProductCount' is not allowed.
testing/SAFTAO.xml:112: element Product: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Product', attribute 'ProductCount': 
The attribute 'ProductCount' is not allowed.
testing/SAFTAO.xml:120: element Product: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Product', attribute 'ProductCount': 
The attribute 'ProductCount' is not allowed.
testing/SAFTAO.xml:128: element Product: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Product', attribute 'ProductCount': 
The attribute 'ProductCount' is not allowed.
testing/SAFTAO.xml:136: element Product: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Product', attribute 'ProductCount': 
The attribute 'ProductCount' is not allowed.
testing/SAFTAO.xml:145: element TaxTableEntry: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}TaxTableEntry', attribute 'TaxTableCount': The attribute 'TaxTableCount' is not allowed.
testing/SAFTAO.xml:160: element Invoice: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Invoice', attribute 'InvoiceCount': 
The attribute 'InvoiceCount' is not allowed.
testing/SAFTAO.xml:228: element Invoice: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Invoice', attribute 'InvoiceCount': 
The attribute 'InvoiceCount' is not allowed.
testing/SAFTAO.xml:296: element Invoice: Schemas validity error : Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Invoice', attribute 'InvoiceCount': 
The attribute 'InvoiceCount' is not allowed.
testing/SAFTAO.xml fails to validate
rsowd014 commented 4 years ago

Obrigado cryptolopes pela resposta. Sei que esses atributos não deveriam estar e vão ser retirados. Para já estão para mais facilmente encontrar os erros. A chave publica vai em anexo:

SACWEBPublicKey.txt (tem de mudar a extensão do ficheiro para .pem)

cryptolopes commented 4 years ago

A chave publica vai em anexo:

As assinaturas estão corretas.

$ echo -n "eLCV8o71tLbr+ANWiPUNX9TuotQgyCHGWsuwbIj00LAIUhIqJlVtIs5eWDEPLdLsImglfH4gBIS8qD5EgVKQ7F1IXde4cd+7lsX2axqsUX5Oq8ReLwRCx0/lx65BBzxqOXYAw9hU9Fc/io0VBI5YDuSvseaIpG/zWE4EIy3Z6NI=" | openssl enc -base64 -d -A > testing/sha1.sign
$ echo -n "2020-05-14;2020-05-14T14:41:15;FT UUFC20/8305;62824.26;Nm2AdcYT33BvA04ymMj4lYhHEKn8V3OofAoWctnuYoKb7zBNLJI3gprSfXdqR+6qIYtT64sGf9Fyp5gcFEm4VCNKDENh0tDtUsky0XMyoUk5y5tsQF85tBVFNa7YecsPuZwFyogYmU1VSXvvZIPSh9YvBjUeXtPpAx2BTnYSHHg=" | openssl dgst -sha1 -verify testing/SACWEBPublicKey.txt -signature testing/sha1.sign 
Verified OK 
$ echo -n "SbCiFdQNuuraErKgzRH/ooi6vRiY2mATPzUXKbFqLsQMo68jjAMJVlH0vlAqkbkBUNmofejpwV0n9FKr3M2S9Zri/0eyZ0VofgPSBnCaQQxl/I7LN4KnetH1mEoqTR/IFfsfn7gv1aGyb1FYYeAzoig9oUGpc18LIkl3FfJ4wsA=" | openssl enc -base64 -d -A > testing/sha1.sign
$ echo -n "2020-05-14;2020-05-14T14:43:53;FT UUFC20/8306;353267.76;eLCV8o71tLbr+ANWiPUNX9TuotQgyCHGWsuwbIj00LAIUhIqJlVtIs5eWDEPLdLsImglfH4gBIS8qD5EgVKQ7F1IXde4cd+7lsX2axqsUX5Oq8ReLwRCx0/lx65BBzxqOXYAw9hU9Fc/io0VBI5YDuSvseaIpG/zWE4EIy3Z6NI=" | openssl dgst -sha1 -verify testing/SACWEBPublicKey.txt -signature testing/sha1.sign
Verified OK

Possivelmente tem que ver com a plataforma de validação da AGT e insisto nos atributos que estão a mais, que podem estar a dificultar o processo.

Reparei também que existem elementos como MovementEndTime e MovementStartTimeque existem sem que exista também o elemento ShipTo a indicar que se trata de uma fatura que acompanha a mercadoria. Esses elementos não causam problemas de estrutura, mas é mesmo assim?

<MovementEndTime>2020-05-14T14:52:03</MovementEndTime>
<MovementStartTime>2020-05-14T14:52:03</MovementStartTime>
cryptolopes commented 4 years ago

Duplicate of #49

cryptolopes commented 4 years ago

Criar assinaturas através do algoritmo RSA

As assinaturas são geradas através do algoritmo RSA (algoritmo de criptografia de dados que usa o sistema de chaves assimétricas, chave pública e chave privada).

Para o efeito, cada fabricante de software necessita de criar o seu par de chaves. A chave privada é do conhecimento exclusivo do fabricante, devendo ser protegida contra disclosure a todo o custo. Já a chave pública, tal como o nome indica é pública e pode ser fornecida a qualquer entidade que tenha por fim o uso dos dados obtidos a partir da chave privada, no caso a Administração Geral Tributária (AGT).

Para que se tenha uma noção da importância da chave privada e da importância desta ter que ser preservada apenas no domínio do fabricante, caso seja conhecida por terceiros, estes podem usá-la para fins ilícitos. Por exemplo, assinar documentos em nome de ou fazendo-se passar por.

Alguns comandos gerais de OpenSSL

# Criar um certificado-auto assinado
# Criar uma chave privada
openssl req -x509 -sha1 -nodes -days 365 -newkey rsa:1024 -keyout private.key -out certificate.crt

# Em alternativa, para criar apenas uma chave privada
openssl genrsa -out private.key 1024

# Remover a passphrase de uma chave privada (limpar a chave privada)
openssl rsa -in private.key -out newprivate.key

# Guardar chave pública
openssl rsa -pubout -in private.key -out public.key

Método

De forma simples, o método usado consiste na assinatura do hash (sha1) de uma mensagem.

Por fim assinatura que se quer obter para o SAF-T consiste no hash da própria assinatura, através do algoritmo RSA, codificado em base64, conforme veremos em baixo.

# Criar mensagem
echo -n "hello world!" > message.txt

# Calcular o valor do hash SHA1
sha1sum 1 message.txt
430ce34d020724ed75a196dfc2ad67c77772d169  message.txt

# O hash SHA1 da mensagem ou do ficheiro são idênticos, como se pode verificar
echo -n "hello world!" | sha1sum
430ce34d020724ed75a196dfc2ad67c77772d169  -

Comandos de OpenSSL para criar e validar a assinatura de uma mensagem

# Assinar mensagem/ficheiro usando o digest sha1
openssl dgst -sha1 -sign private.key -out sha1.sign message.txt

# Codificar a assinatura em base64
# O parâmetro -A é usado para guardar o valor apenas numa linha
openssl enc -base64 -in sha1.sign -out sign.b64 -A

# Converter de base64 para o formato incial da assinatura
openssl enc -base64 -in sign.b64 -out b64.sign -d -A

# Verificar a assinatura do ficheiro
openssl dgst -sha1 -verify public.key -signature sha1.sign message.txt
Verified OK

openssl dgst -sha1 -verify public.key -signature b64.sign message.txt
Verified OK

Características da mensagem e regras para a criação das assinaturas dos documentos

As regras estipulam que a mensagem deve ser composta pela concatenação dos elementos que se seguem, usando ; como separador entre eles:

O objetivo é estabelecer uma relação em cadeia entre todos os documentos de uma determinada série de documentos.

# Exemplo de mensagem do primeiro documento de uma série
echo -n "2020-01-01;2020-01-01T00:30:50;FT SPOS1/1;2756.78;"

# Exemplo de mensagem do segundo (e restantes) documentos
# O separador ; deixa de existir no fim porque após o hash do documento anterior não existe mais nenhum campo para separar
echo -n "2020-01-01;2020-01-01T00:35:10;FT SPOS1/2;8000.00;vBCRgoKYCNWim/cZe8aaJhKcP3ZVNkiSnjCi2f0dC6t/Xdd+bgutrZjL7xd/JwQT2Uq4lxSaPkKpZfIlUWu7K+qRq2v6N1UkXes0bUciHV2FaAo2paV/DCpKP836jDgQzEsI6/lCvfUK7ta24M9B2dr+A2n3VLXWM3T0j8PlHUo="

Deste modo todos os documentos vão permanecer interligados entre si numa cadeia em que é sempre possível verificar o último depende do anterior e assim sucessivamente. Caso um determinado documento sofra uma alteração ao nível dos elementos contidos na mensagem ou seja removido por alguma razão, a cadeia sofre uma rutura, o que é possível de verificar facilmente através da chave pública.

Links e mais informação

Luvivila commented 4 years ago

Muito boa tarde estimados por favor peço a vossa ajuda ao tentar de validar o ficheiro saft no portal da AGT recebo o segunte erro Erro no ficheiro,AuditFile.SourceDocuments.SalesInvoices.2Invoices (FR 2020/62) . Hash está errado Não consigo identificar onde esta o erro Obedeci a regra de assinatura primeiro String assidado foi "2020-08-09;2020-08-09T16:21:45;FR 2020/61;39900,00;" Gerou o seguinte assinatura Hash p/VOPbp87I8Fmto+5XITeqrhl4nVrmJncqpoyRPfpBj/vZgoS3zZqnZOdEMCdZhsrzdoLPmKgVK8t2asIr+xSJ/u8gpRwAxvDbR6ziKDoNb8EmlC1ltMqRu7HpH+NVMPkdUMUIGLA8fvf54BsX28fzousNAjbSJm4S2LHSTqLFw=

Segundo String assidado é "2020-08-09;2020-08-09T16:23:59;FR 2020/62;60.00;p/VOPbp87I8Fmto+5XITeqrhl4nVrmJncqpoyRPfpBj/vZgoS3zZqnZOdEMCdZhsrzdoLPmKgVK8t2asIr+xSJ/u8gpRwAxvDbR6ziKDoNb8EmlC1ltMqRu7HpH+NVMPkdUMUIGLA8fvf54BsX28fzousNAjbSJm4S2LHSTqLFw=" Gerou o seguinte assinatura Hash RrrW4Y9hAL+9G01DPD0d9lTIYA+1yDeBZpCVrqripdSGWNRhS3DBnbYzzH2v0EVTWMLquHLiROohLyeeSoc6Uy9o0BfOgiin/uMZW6USLh1ZwI8pOmvXJ4iuZx4TDLTrUK73Htz8tw6MXzzrdaXzBR8NPN3oW249yTm066xfCw8=

Aqui esta os meus meus ficheiros em anexo Adao_2020-08-09.txt chavePrivada.txt chavePublica.txt

Luvivila commented 4 years ago

Muito boa tarde estimados Muito obrigado pela atenção merecida, já fiz a correção da vírgula para o ponto mais o problema persiste Erro no ficheiro,AuditFile.SourceDocuments.SalesInvoices.2Invoices (FR 2020/65) . Hash está errado Não consigo identificar onde está o erro Obedeci a regra de assinatura primeiro String assidado foi "2020-08-07;2020-08-07T16:39:53;FR 2020/64;60.00;"

Gerou o seguinte assinatura Hash

UOwzONA+IfZ1nYCGQcJ8Ohqad/6fl5FBA4GiLe3OKBdxD9QM+7xSAO9ij6bvzY1Vi/gsSGIWxJECuJVZ9XuPB4MujGUUxYpn0p86rkXLzhokTYojO2Z3f8pnRoUGdY8AvoAoUAheQM3XjiO1wbf8TIyL7xoQz42N/AdWxZdFVc0=

Segundo String assidado é "2020-08-07;2020-08-07T16:42:47;FR 2020/65;39900.00;UOwzONA+IfZ1nYCGQcJ8Ohqad/6fl5FBA4GiLe3OKBdxD9QM+7xSAO9ij6bvzY1Vi/gsSGIWxJECuJVZ9XuPB4MujGUUxYpn0p86rkXLzhokTYojO2Z3f8pnRoUGdY8AvoAoUAheQM3XjiO1wbf8TIyL7xoQz42N/AdWxZdFVc0="

Gerou o seguinte assinatura Hash

lq9q1kmATWAmFjaDVqMlqHI3XLkyXJPFrUq2jK4UKCWogfjMF8W7jVqnHbddPD6cUiXT3eGcLFN7jWuYwjHuPQvRAG7XhPw3byw5mZm3L1PuvZ/Wwm0Rvi3/45p9KhftigawDexJJIqctV7vNUc34GhPcUXAlwn0C7O0EXoC1Cg=

Já fiz a verificação com os seguintes comando usanda a minha chave publica

openssl dgst -sha1 -verify sisvendaPublica.pem -signature Registo1.sha1 Registo1.txt

verificação OK

openssl dgst -sha1 -verify sisvendaPublica.pem -signature Registo2.sha1 Registo2.txt

verificação OK Por favor peço a vossa ajuda Em anexo sisvendaPublica.txt SisVenda_2020-08-07.txt

AdilsonCosta03 commented 2 years ago

Boa tarde, Alguém obteve a certificação desenvolvendo a aplicação em C#? Estou com o erro na validação do segundo Hash já a um tempo.

Alguém pode ajudar?

Luvivila commented 2 years ago

Muito bom dia caríssimo também tive esse problema mais já foi superado, eu poderia lhe ajudar mais infelizmente a minha linguagem é java Analise primeiro o teu xds comparando com xml que produz o seu software outra coisa o conteúdo assinado não deve ter a mesmo InvoiceNo exemplo O primeiro conteúdo 2022-02-02;2022-02-02T09:18:57;FR1/01;1200.57; = Hash1 O segundo Conteúdo 2022-02-02;2022-02-02T09:18:57;FR2/02;57.32;Hash1 = Hash2

Se não der, podes entrar em contacto no seguinte terminal 924549673 Java e C# não foge muito

Em sáb., 9 de abr. de 2022 às 16:52, Adilson da Costa < @.***> escreveu:

Boa tarde, Alguém obteve a certificação desenvolvendo a aplicação em C#? Estou com o erro na validação do segundo Hash já a um tempo.

Alguém pode ajudar?

— Reply to this email directly, view it on GitHub https://github.com/assoft-portugal/SAF-T-AO/issues/67#issuecomment-1094072879, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF7EXVN6UOUASJ73AL5ERNLVEGRSRANCNFSM4NHXUHNQ . You are receiving this because you commented.Message ID: @.***>

viegasfh commented 2 years ago

Este erro pode também ocorrer quando o campo SoftwareValidationNumber, no cabeçalho for 0. Nestes casos, o hash deve ser 0 para poder ser válido. Contudo, isto aplica-se apenas a importação de informações de softwares pré-SAFT. Todos os softwares certificados devem conter um SoftwareValidationNumber no formato XXX/AGT/YYYY, onde XXX é o número atribuído pela AGT, e YYYY é o ano da certificação.

Para quem está a validar o software, devem colocar 000/AGT/YYYY, onde YYYY é o ano de válido. Mas convém colocar o ano de validação, só para quando actualizarem não cometerem mais erros. Portanto, para 2022, coloquem 000/AGT/2022 no SoftwareValidationNumber, tal como é demonstrado abaixo:

<SoftwareValidationNumber>000/AGT/2022</SoftwareValidationNumber>
FernandoManuel6107 commented 2 years ago

Eu posso. Me puxa no whatsapp. 935793301. Tenho 2 apps validadas e com c#

A quinta, 26/05/2022, 21:17, Fidel H Viegas @.***> escreveu:

Este erro pode também ocorrer quando o campo SoftwareValidationNumber, no cabeçalho for 0. Nestes casos, o hash deve ser 0 para poder ser válido. Contudo, isto aplica-se apenas a importação de informações de softwares pré-SAFT. Todos os softwares certificados devem conter um SoftwareValidationNumber no formato XXX/AGT/YYYY, onde XXX é o número atribuído pela AGT, e YYYY é o ano da certificação.

Para quem está a validar o software, devem colocar 000/AGT/YYYY, onde YYYY é o ano de válido. Mas convém colocar o ano de validação, só para quando actualizarem não cometerem mais erros. Portanto, para 2022, coloquem 000/AGT/2022 no SoftwareValidationNumber, tal como é demonstrado abaixo:

000/AGT/2022

— Reply to this email directly, view it on GitHub https://github.com/assoft-portugal/SAF-T-AO/issues/67#issuecomment-1138978847, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMBB23ZGS6QBUJJF5IVOX7LVL7L5PANCNFSM4NHXUHNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

elhadjd commented 3 months ago

Ola saudação a todos estou tentando validar o meu ficheiro saft-ao no teste do portal, e estou a receber montes de erros, se alguen poder me ajudar por favor: A ordem do campo AuditFile.Header.TaxAccountingBasis no ficheiro está errada.

O campo AuditFile.SourceDocuments.SalesInvoices.Invoice.OrderReferences no ficheiro está na posição errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.InvoiceStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.InvoiceStatusDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.SourceID no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.SourceBilling no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.Hash no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.HashControl no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.Line.Description no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.2Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.2Line.Description no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.3Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.3Line.Description no ficheiro está errada. O campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.OrderReferences no ficheiro está na posição errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.InvoiceStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.InvoiceStatusDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.SourceID no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.SourceBilling no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.Reason no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.Hash no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.HashControl no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.Line.Description no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.NumberOfEntries no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.TotalDebit no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.TotalCredit no ficheiro está errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.CustomerID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.SystemEntryDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Hash no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.HashControl no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Period no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.OrderReferences no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkStatusDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.SourceBilling no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxPayable no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.NetTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.GrossTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentTotals no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkingDocument no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2CustomerID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2SystemEntryDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Hash no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2HashControl no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Period no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2OrderReferences no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkStatusDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2SourceBilling no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxPayable no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2NetTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2GrossTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentTotals no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkingDocument no ficheiro está na posição errada. Erro no ficheiro, AuditFile.Header.EndDate não deve ser maior a DateCreated. Falha na validação do campo AuditFile.Header.ProductID Erro no ficheiro, AuditFile.MasterFiles.1Customer.CustomerTaxID é inválido. Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.TotalCredit está mal calculado. Erro no ficheiro,AuditFile.SourceDocuments.SalesInvoices.2Invoice (FT 2024/3) . Hash está errado. Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.1Invoice.DocumentTotals.TaxPayable (FT 2024/2) está mal calculado. Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentTotals.TaxPayable (FT 2024/3) está mal calculado.   Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentTotals.GrossTotal (FT 2024/3) está mal calculado. Erro no ficheiro, AuditFile.SourceDocuments.WorkingDocuments .NumberOfEntries não está conforme com o número de documentos existentes.

Luvivila commented 3 months ago

A terça, 23/07/2024, 19:42, elhadjd @.***> escreveu:

Ola saudação a todos estou tentando validar o meu ficheiro saft-ao no teste do portal, e estou a receber montes de erros, se alguen poder me ajudar por favor: A ordem do campo AuditFile.Header.TaxAccountingBasis no ficheiro está errada.

O campo AuditFile.SourceDocuments.SalesInvoices.Invoice.OrderReferences no ficheiro está na posição errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.InvoiceStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.InvoiceStatusDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.SourceID no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.DocumentStatus.SourceBilling no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.Hash no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.HashControl no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.Line.Description no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.2Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.2Line.Description no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.3Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.Invoice.3Line.Description no ficheiro está errada. O campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.OrderReferences no ficheiro está na posição errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.InvoiceStatus no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.InvoiceStatusDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.SourceID no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.SourceBilling no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentStatus.Reason no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.Hash no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.HashControl no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.Line.TaxPointDate no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.2Invoice.Line.Description no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.NumberOfEntries no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.TotalDebit no ficheiro está errada. A ordem do campo AuditFile.SourceDocuments.SalesInvoices.TotalCredit no ficheiro está errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.CustomerID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.SystemEntryDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Hash no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.HashControl no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Period no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.OrderReferences no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkStatusDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.SourceBilling no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.TaxPayable no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.NetTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.GrossTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.DocumentTotals no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.WorkingDocument no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2CustomerID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2SystemEntryDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Hash no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2HashControl no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Period no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2OrderReferences no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4WorkStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkStatusDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4SourceID no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2SourceBilling no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentStatus no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.3Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4LineNumber no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4ProductCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4ProductDescription no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4Quantity no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4UnitOfMeasure no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4UnitPrice no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4DebitAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4CreditAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxPointDate no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxType no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxCountryRegion no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxCode no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxPercentage no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4TaxAmount no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4Tax no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.4Line no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2TaxPayable no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2NetTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2GrossTotal no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2DocumentTotals no ficheiro está na posição errada. O campo AuditFile.SourceDocuments.WorkingDocuments.2WorkingDocument no ficheiro está na posição errada. Erro no ficheiro, AuditFile.Header.EndDate não deve ser maior a DateCreated. Falha na validação do campo AuditFile.Header.ProductID Erro no ficheiro, AuditFile.MasterFiles.1Customer.CustomerTaxID é inválido. Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.TotalCredit está mal calculado. Erro no ficheiro,AuditFile.SourceDocuments.SalesInvoices.2Invoice (FT 2024/3) . Hash está errado. Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.1Invoice.DocumentTotals.TaxPayable (FT 2024/2) está mal calculado. Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentTotals.TaxPayable (FT 2024/3) está mal calculado.

Erro no ficheiro, AuditFile.SourceDocuments.SalesInvoices.2Invoice.DocumentTotals.GrossTotal (FT 2024/3) está mal calculado. Erro no ficheiro, AuditFile.SourceDocuments.WorkingDocuments .NumberOfEntries não está conforme com o número de documentos existentes.

— Reply to this email directly, view it on GitHub https://github.com/assoft-portugal/SAF-T-AO/issues/67#issuecomment-2245979286, or unsubscribe https://github.com/notifications/unsubscribe-auth/AF7EXVKKJ5GEQR7PL6F3AHDZN2PX3AVCNFSM6AAAAABLK7VO4KVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDENBVHE3TSMRYGY . You are receiving this because you commented.Message ID: @.***>