Giter VIP home page Giter VIP logo

saf-t-ao's Introduction

SAF-T AO

GitHub All Releases GitHub issues GitHub tag (latest SemVer) License Discussion

Official XSD from the Government of Angola for use in SAF-T AO.

The Standard Audit File for Tax Purposes (SAF-T) is a standardized XML file used for exporting the accounting information of a company to the tax authorities. The file contains accounting data that can be exported from an original accounting system for a specific time period.

The SAF-T file is based on a directive by the Organization for Economic Co-operation and Development (OECD).

Oracle, JD Edwards EnterpriseOne Applications OECD Standard Audit File for Tax Purposes (SAF-T) Localizations Implementation Guide.

VAT implementation in Angola

The VAT legislation will take effect starting in October 2019. This deadline applies to software billing solutions, SAF-T file, and invoicing rules:

  • Software solutions must follow the requirements of the new legal system in order to process sales documents, invoices, and other financial documents in accordance with the legal framework. This rule applies to all the subjects of the VAT scheme.
  • Software creators must apply to a software certification program by the government which is mandatory.
  • Starting from 1 January 2020 it will be mandatory to produce a monthly SAF-T file and send it to the government tax authorities.
  • From 1 January 2020, all taxpayers with an annual turnover of more than AKZ 50,000,000 will be required to produce the above referred SAF-T files and use certified software.

XML Validation

Unix

Windows

Installing xmllint

sudo apt install libxml2-utils

XML validation against XSD

xmllint -schema schema.xsd file.xml --noout

saf-t-ao's People

Contributors

assoftpt avatar bacelar-eticadata avatar cryptolopes avatar gtiiva avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

saf-t-ao's Issues

Vários erros ao Validar o SAF-T de Aquisições Bens e Serviços

Boa tarde,

ao validar um ficheiro SAF-T de Aquisição de bens e serviços ocorrem vários erros, por exemplo:

  • O campo AuditFile.SourceDocuments.PurchaseInvoices.Invoice.DocumentTotals.Deductible.DeductibleAmount no ficheiro está na posição errada.

  • O campo AuditFile.SourceDocuments.PurchaseInvoices.Invoice.DocumentTotals.Deductible.DeductibleTaxType no ficheiro está na posição errada.

  • AuditFile.SourceDocuments.PurchaseInvoices.1Invoice.DocumentTotals.1Deductible.DeductibeAmount é um campo de preenchimento obrigatório

  • Formato ou tipo errado do campo AuditFile.SourceDocuments.PurchaseInvoices.1Invoice.DocumentTotals.1Deductible.DeductiblePercentage.

Analisando o ficheiro .xsd não estou a conseguir perceber onde está o problema!

Será o validador da AGT que tem algum problema?

Envio em anexo um ficheiro SAF-T de exemplo.

SAFT_STDAOK_01-12-2019_31-12-2019.zip

Cumprimentos.

ExchangeRate - Sales Invoice

Bom dia,

ao validar o ficheiro SAF-T de Faturação no validador que existe no site da AGT, devolve um erro no campo ExchangeRate.
"Formato errado do AuditFile.SourceDocuments.SalesInvoices.1Invoice.DocumentTotals.Currency.ExchangeRate"

Tenho um valor com mais de 4 casas décimais. Caso altere para 4 casas décimais já não ocorre o erro.

Podem pf confirmar qual é o limite máximo de casas décimais para este campo?

ExchangeRate

Casas Decimais - Erro no TaxPayable e no CreditTotal

Caros,
podem, por favor, clarificar se o validador faz as contas com quantidade X preçounitário ou se utiliza os campos do "DocumentTotals" para calcular o TaxPayable e o CreditTotal ?
Os campos do "DocumentTotals" só passam no XSD com duas casas decimais mas o validador do site da AGT está a dar o TaxPayable como errado, só podendo ser por arredondamento de casas decimais.
Como se pode resolver esta situação?

obrigado,
Pedro

Pedido de esclarecimento

  1. Quanto a tabela de imposto, DP 312/18, campo 2.5.1.4, quando se tratar de IVA não aplicável ou não sujeito, como deverá ser preenchida informação no ficheiro XML? Preenchemos com 0 ou N/A (não aplicável)?
  2. Ainda sobre as tabelas do mesmo decreto, para o ficheiro F, referente a facturação, o mesmo não contempla dados de forncedores na sua descrição. A nossa dúvida consiste no seguinte: caso o software de facturação comtemple dados dos forncedores, deveremos incluí-los no ficheiro XML ou não?

Erro ao validar xml - SupplierCountry

Bom dia,

experimentei validar um simples ficheiro saft e ocorre o erro que se encontra na imagem que está em anexo.

Penso que o problema esteja no tipo "SupplierCountry" (linha 1832 do xsd) mas não consigo perceber qual é a causa problema.

Erro_Validar_Saft

Para validar usei o software NotePad ++ e a última versão do xsd.

Deixo um link para download do ficheiro saft que usei.
https://we.tl/t-ekc3cjub2c

Cumprimentos,

Miguel Silva

Sequencial chronological numbering issue

Dear all,
Have some of you faced this issue : it appears that the sequencial chronological numbering of the invoicing software is not considering debit notes and invoices as 2 different types of documents.
But it seems to be compulsory to have a separate numbering for each of those documents : invoices, credit notes and debit notes. To upgrade the software it will take a lot of times.
Thank you for your help,

Validador falha de modo diferente se a factura estiver isolada ou no meio de outras facturas

Num ficheiro completo SAFT-AO tenho erros de validação em 3 Invoices. No caso do Invoice 5, por exemplo, tenho diversos erros:

Falha na validação, AuditFile.SourceDocuments.SalesInvoices.TotalCredit da parte do ficheiro está mal calculado

Falha na validação, porque o TaxPayable do AuditFile.SourceDocuments.SalesInvoices.5Invoice está mal calculado
Falha na validação, porque o TaxPayable do AuditFile.SourceDocuments.SalesInvoices.8Invoice está mal calculado
Falha na validação, porque o TaxPayable do AuditFile.SourceDocuments.SalesInvoices.12Invoice está mal calculado
Formato errado do AuditFile.SourceDocuments.SalesInvoices.5Invoice.1Line.Quantity
O AuditFile.SourceDocuments.SalesInvoices.5Invoice.DocumentTotals.1Payment.PaymentMechanism no arquivo não é permitido repetição
O AuditFile.SourceDocuments.SalesInvoices.13Invoice.DocumentTotals.1Payment.PaymentMechanism no arquivo não é permitido repetição
Formato errado do AuditFile.SourceDocuments.SalesInvoices.5Invoice.DocumentTotals.1Payment.PaymentAmount
O AuditFile.SourceDocuments.SalesInvoices.5Invoice.DocumentTotals.1Payment.PaymentAmount no arquivo não é permitido repetição

O AuditFile.SourceDocuments.SalesInvoices.13Invoice.DocumentTotals.1Payment.PaymentAmount no arquivo não é permitido repetição
O AuditFile.SourceDocuments.SalesInvoices.5Invoice.DocumentTotals.1Payment.PaymentDate no arquivo não é permitido repetição
O AuditFile.SourceDocuments.SalesInvoices.13Invoice.DocumentTotals.1Payment.PaymentDate no arquivo não é permitido repetição
Formato errado do AuditFile.SourceDocuments.SalesInvoices.5Invoice.1WithholdingTax.WithholdingTaxAmount
Falha na validação, AuditFile.SourceDocuments.WorkingDocuments.TotalCredit da parte do ficheiro está mal calculado
Formato errado do AuditFile.SourceDocuments.WorkingDocuments.TotalCredit

No entanto, se fizer um ficheiro SAFT-AO onde inclui APENAS esse documento, apenas tenho um erro, que aliás, não consigo compreender porque:

Falha na validação, AuditFile.SourceDocuments.SalesInvoices.TotalCredit da parte do ficheiro está mal calculado

No entanto, o Invoice parece estar bem construido:


1
0
6182.36

FR Z1.2019/5

N
2019-10-23T12:05:24
pcasqueiro
P

52624fb6c43babae8b8e94fbd739c3d3d880b5a65e4ec13d0b0f87dcfa5760a843fbc19358ee9cad1b9226e65a3256298fc8250bf665fdbef11ca8f543c21c78
1
10
2019-10-23
FR

0
0
0

pcasqueiro
2019-10-23T12:05:24
12


1

FR Z1.2019/5
2019-10-23

11
Manual L. Portuguesa 6ª
1
UN
919.2
2019-10-23
Manual L. Portuguesa 6ª
919.2

IVA
AO
ISE
0

Isento IVA Artigo 12 d)
M02


2

FR Z1.2019/5
2019-10-23

6
Dossier de 4 furos
1
UN
5263.1579
2019-10-23
Dossier de 4 furos
5263.1579

IVA
AO
NOR
14



736.84
6182.36
6919.2

CD
6919.2
2019-10-23



736.84



Pedido de esclarecimento ficheiro XML

Boa tarde Caros Senhores,

Solicitamos o esclarecimento das seguintes dúvidas abaixo, relativamente ao ficheiro XML:

1- No campo 2.4.1_ Indicador de produto ou service, devemos prrencher com P, S, O, E ou T, no nosso entendimento o O - Outros, deve ser usado para o caso dos adiantamentos, e outros, o que significa que sempre que não se aplicar o P, S ou T, confirmam? O que consideram impostos, taxas e encargos parafiscais, podem sff dar exemplos. Utilizamos E- Imposto especiais de consumo, quando? podem darnos alguns exemplos.

2- Para o campo 2.5.1.4- Descrição do imposto, no decreto, têm a seguinte redação: "No caso de imposto de selo deve ser preenchido com a descrição da verba respectiva," ou seja no nosso entendimento com o valor do imposto de selo e quando se tratem de outros impostos como o IVA, ou nenhum imposto, como preencher, com o valor do IVA e em branco respectivamente ou zero? vimos um exemplo em que este campo foi preenchido com IVA Isento e com IVA a taxa Normal, com que outras descrições pode ser prrenchido? no caso de não sujeição por exemplo.

3- O campo 4.1.4.3.1 - Estado actual do document, deve ser preenchido com:
N- normal;
S- Autofacturação;
R - documento de resumo doutros documentos criados noutras aplicações e gerado nesta aplicação;
F- documento facturado;

Quando devemos usar cada um deles? o que se considera um estado do documento N - normal? Podem dar-nos um exemplo do tipo R, não percebemos o que é um documento de resumo doutros documentos criados noutras aplicações e gerado nesta aplicação, podem sff exclarecer.

4- 4.1.4.19.12.1 - Numero de série, para o caso de serviços, não se aplicam os numeros de série, como preencher este campo? com NA - Não aplicavel; deixar em branco; com zero, por extenso ou zero numero?, sendo que o campo é de Texto.

5- 4.1.4.20.6.2 - Montante do pagamento, deve ser indicado o montante por cada tipo de pagamento, o nosso entendimento é que aqui para cada factura deve ser indicado o valor recebido, de acordo com o tipo de pagamento usado pelo cliente, ou seja se a factura foi paga por transferência bancária e dinheiro, devemos preencher com o montante pago em dinheiro e em transferência bancária?

6-para os campos não obrigatorios ou não aplicaveis, devemos simplesmente não preencher, ou colocar N/A - Não aplicave, ou colocar zero?

Ficamos aguardar.
Muito obrigada.

Erro no SoftwareValidationNumber

Viva,
no validador online com o seguinte SoftwareValidationNumber no formato
0/AGT/xxxx
não há qualquer problema.
A submeter, dá o erro
Falha na validação, a informação AuditFile.Header.SoftwareValidationNumber não está conforme com a do programa validado

Alguém pode ajudar? É o formato que está errado?

DateCreated - Verifica se data de fim do ficheiro é menor ou igual à data de criação

No Validador temos esta mensagem

Ficheiro AuditFile.Header.DateCreated - Verifica se data de fim do ficheiro é menor ou igual à data de criação

Declarei da seguinte forma:

	<FiscalYear>2020</FiscalYear>
	<StartDate>2020-03-01</StartDate>
	<EndDate>2020-03-31</EndDate>
	<CurrencyCode>AOA</CurrencyCode>
	<DateCreated>2020-04-06</DateCreated>

Chequei que em todos os documentos, não há nenhum fora do intevalo do periodo StartDate e EndDate.

O primeiro documento começa com 2020-03-13 e termina com 2020-03-26.

O campo DateCreated, imagino eu, que é somente a data que foi criado o XML - SAFT AO.

Que pela lógica, pode ser datas posteriores ao mês pesquisado.

Notei isto apartir da declaração do mês de fevereiro.

Até imaginei que era por ser o ano Bissexto e o validador não reconhecia o dia 29/02/2020.
Como devemos proceder.

tutorial

hello is there any tutorial to follow how should i apply this on systems i'm having great difficulty

Validação do XML - Resposta ao modelo8

Bom dia Caríssimos,

Obtenho sempre este erro nas linhas que contenplam o IVA.

Falha na validação, AuditFile.SourceDocuments.SalesInvoices.TotalCredit da parte do ficheiro está mal calculado

Falha na validação de AuditFile.SourceDocuments.SalesInvoices.3Invoice.1Line.5UnitPrice
Falha na validação de AuditFile.SourceDocuments.SalesInvoices.3Invoice.1Line.5UnitPrice.5CreditAmount
Falha na validação de AuditFile.SourceDocuments.SalesInvoices.4Invoice.1Line.7UnitPrice
Falha na validação de AuditFile.SourceDocuments.SalesInvoices.4Invoice.1Line.7UnitPrice.7CreditAmount
Falha na validação de AuditFile.SourceDocuments.SalesInvoices.7Invoice.2Line.15UnitPrice
Falha na validação de AuditFile.SourceDocuments.SalesInvoices.7Invoice.2Line.15UnitPrice.15CreditAmount

Como devemos calcular correctamente o IVA? Seguimos, inclusive, os modelos enviados pela AGT e o erro manté-mse.

tabela Payments – Payment

Informações ultrapassadas:

Executei vários procedimento de actualização da estrutura do saft.

Informações sobre a chave HASH
Realmente, tinha toda a razão sobre a chave HASH. Consegui ultrapassar a falha de validação. Era realmente o GROSSTOTAL junto com outros componentes e casas decimais informadas em vários lugares.

Informações sobre a tabela MasterFiles - TAXTABLE
A tabela TAXTABLE, já consegui entender sobre a duplicidade, bastava acrescentar informações extras em Description, pois eu só informava “IMPOSTO SOBRE O VALOR ACRESCENTADO”, agora passei a incrementar com o percentual de 14%, 2% quando houver taxa a 2% e quando tiver isenção.
Passou no validador.

Informações sobre a tabela SourceDocuments - SalesInvoices - TaxExemptionReason

<TaxExemptionReason>Isento nos termos da alinea a) do no2 do artigo 14.o</TaxExemptionReason>
<TaxExemptionCode>M85</TaxExemptionCode>

Consegui entender o que era para ser informado.

Emiti vários tipos e esta dando mensagem de validado no portal de testes da AGT.

**tabela Payments – Payment **

Agora eu tenho este problema em relação ao que é informado na tabela Payments – Payment

Estas são as mensagens do testador da AGT:

  1. Falha na validação, o campo AuditFile.SourceDocuments.Payments.5Payment.DocumentTotals.TaxPayable do ficheiro está mal calculado
  2. O campo AuditFile.SourceDocuments.Payments.5Payment.1Line.Tax no ficheiro não permite repetição

Testes que executei nos recibos

Fiz experimentos com:

  1. recibo de um documento factura com taxas (imposto) – PASSOU
  2. recibo de um documento factura COM ISENÇÃO (sem taxas) – PASSOU
  3. recibo de um documento factura com taxas (imposto) e com desconto – PASSOU
  4. recibo de um documento factura COM ISENÇÃO (sem taxas) e com desconto – PASSOU

Agora, somente uma situação que encontrei este problema:

  1. RECIBO DE UM DOCUMENTO FACTURA COM DOIS ITENS:
    1.1. UM ITEM COM TAXA (IVA 14%)
    1.2 UM ITEM COM ISENÇÃO (SEM TAXA)

Estrutura XML abaixo:

 <Payment>
<!--   PaymentId 5  -->
<PaymentRefNo>RC RE20/5</PaymentRefNo>
<Period>05</Period>
<TransactionDate>2020-05-19</TransactionDate>
<PaymentType>RC</PaymentType>
<Description>RECIBO</Description>
<SystemId>RE2000005</SystemId>
<DocumentStatus>
<PaymentStatus>N</PaymentStatus>
<PaymentStatusDate>2020-05-19T11:13:42</PaymentStatusDate>
<SourceId>Marcos Aurelio</SourceId>
<SourcePayment>I</SourcePayment>
</DocumentStatus>
<PaymentMethod>
<PaymentMechanism>NU</PaymentMechanism>
<PaymentAmount>31140.00</PaymentAmount>
<PaymentDate>2020-05-19</PaymentDate>
</PaymentMethod>
<SourceId>Marcos Aurelio</SourceId>
<SystemEntryDate>2020-05-19T11:13:42</SystemEntryDate>
<CustomerID>0045</CustomerID>
<Line>
<LineNumber>1</LineNumber>
<SourceDocumentId>
<OriginatingOn>FT FT20/8</OriginatingOn>
<InvoiceDate>2020-05-19</InvoiceDate>
</SourceDocumentId>
<SettlementAmount>0.00000</SettlementAmount>
<CreditAmount>31000.00000</CreditAmount>
<Tax>
<TaxType>IVA</TaxType>
<TaxCountryRegion>AO</TaxCountryRegion>
<TaxCode>NOR</TaxCode>
<TaxPercentage>14.00</TaxPercentage>
</Tax>
<Tax>
<TaxType>IVA</TaxType>
<TaxCountryRegion>AO</TaxCountryRegion>
<TaxCode>ISE</TaxCode>
<TaxPercentage>0.00</TaxPercentage>
</Tax>
<TaxExemptionReason>
Isento nos termos da alinea a) do no2 do artigo 14.o
</TaxExemptionReason>
<TaxExemptionCode>M85</TaxExemptionCode>
</Line>
<DocumentTotals>
<TaxPayable>140.00</TaxPayable>
<NetTotal>31000.000</NetTotal>
<GrossTotal>31140.00</GrossTotal>
</DocumentTotals>
</Payment>

Como pode ver, esta factura FT FT20/8;
N parte que informo o TAX, sou obrigado a informar dois tipos de Taxas:

  1. Com Taxa a 14%
  2. Com isenção, taxa a 0%

Resumo dos valores:
Tem dois artigos:

  1. um com taxa 14% IVA – valor incidência – 1.000,00 – Taxa – 140,00
  2. um segundo artigo com isenção – incidência 30.000,00 – Taxa 0,00 –

O NETTOTAL 31.000
TAXPAYABLE 140,00
GROSSTOTA 31.140,00

Primeiro, o SAFT NÃO ACEITA DUPLICIDADE NO TAX EM PaymentS - Payment.

Por conta desta duplicidade, o SAFT NÃO CONSEGUE DETECTAR O VALOR CORRECTO PARA O TAXPAYABLE.

Não sei mais a quem recorrer, pois exemplos da tabela Payments, não encontro para fazer comparação e os que encontrei, são com taxa ou só isenções. Não encontro com ambas, pois vai ocorrer com todos os sistemas.

Aqui a parte que é declarada da factura em SalesInvoices:

                                               <Invoice>
                                                               <!--  InvoiceId 19 -->
                                                               <InvoiceNo>FT FT20/8</InvoiceNo>
                                                               <DocumentStatus>
                                                                               <InvoiceStatus>N</InvoiceStatus>
                                                                               <InvoiceStatusDate>2020-05-19T11:10:47</InvoiceStatusDate>
                                                                               <SourceID>Marcos Aurelio</SourceID>
                                                                               <SourceBilling>P</SourceBilling>
                                                               </DocumentStatus>
                                               <Hash>jUEJNVy5E0Gf3obvmYiGDgmMN6IMGD1yvCE4oJFKnJeD88IqnUfikPHv67LTsC8wKlhVx/A6v0aPwKatWW/b9pbAl0JqmMFCWRNNRjnbCZvq2+6pLw6mqt/YOk7U8yDeYXvWoQDrQYJDHkKq42Fkcs7pUfYquD7+nNWnuDekn3w=</Hash>
                                                               <HashControl>1.0-FT FT20/8</HashControl>
                                                               <Period>05</Period>
                                                               <InvoiceDate>2020-05-19</InvoiceDate>
                                                               <InvoiceType>FT</InvoiceType>
                                                               <SpecialRegimes>
                                                                               <SelfBillingIndicator>0</SelfBillingIndicator>
                                                                               <CashVATSchemeIndicator>0</CashVATSchemeIndicator>
                                                                               <ThirdPartiesBillingIndicator>0</ThirdPartiesBillingIndicator>
                                                               </SpecialRegimes>
                                                               <SourceId>Marcos Aurelio</SourceId>
                                                               <SystemEntryDate>2020-05-19T11:09:42</SystemEntryDate>
                                                               <CustomerID>0045</CustomerID>
                                                               <Line>
                                                                               <LineNumber>1</LineNumber>
                                                                               <ProductCode>0000007</ProductCode>
                                                                               <ProductDescription>Produtos Alimentares</ProductDescription>
                                                                               <Quantity>1.00</Quantity>
                                                                               <UnitOfMeasure>Un.</UnitOfMeasure>
                                                                               <UnitPrice>30000.00</UnitPrice>
                                                                               <TaxPointDate>2020-05-19</TaxPointDate>
                                                                               <Description>Produtos Alimentares</Description>
                                                                               <ProductSerialNumber>
                                                                                              <SerialNumber>0000007</SerialNumber>
                                                                               </ProductSerialNumber>
                                                                               <CreditAmount>30000.00000</CreditAmount>
                                                                               <Tax>
                                                                                              <TaxType>IVA</TaxType>
                                                                                              <TaxCountryRegion>AO</TaxCountryRegion>
                                                                                              <TaxCode>ISE</TaxCode>
                                                                                              <TaxPercentage>0.00</TaxPercentage>
                                                                               </Tax>
                                                                               <TaxExemptionReason>Isento nos termos da alinea a) do no2 do artigo 14.o</TaxExemptionReason>
                                                                               <TaxExemptionCode>M85</TaxExemptionCode>
                                                               </Line>
                                                               <Line>
                                                                               <LineNumber>2</LineNumber>
                                                                               <ProductCode>0000009</ProductCode>
                                                                               <ProductDescription>artigo venda</ProductDescription>
                                                                               <Quantity>1.00</Quantity>
                                                                               <UnitOfMeasure>Un.</UnitOfMeasure>
                                                                               <UnitPrice>1000.00</UnitPrice>
                                                                               <TaxPointDate>2020-05-19</TaxPointDate>
                                                                               <Description>artigo venda</Description>
                                                                               <ProductSerialNumber>
                                                                                              <SerialNumber>0000009</SerialNumber>
                                                                               </ProductSerialNumber>
                                                                               <CreditAmount>1000.00000</CreditAmount>
                                                                               <Tax>
                                                                                              <TaxType>IVA</TaxType>
                                                                                              <TaxCountryRegion>AO</TaxCountryRegion>
                                                                                              <TaxCode>NOR</TaxCode>
                                                                                              <TaxPercentage>14.00</TaxPercentage>
                                                                               </Tax>
                                                               </Line>
                                                               <DocumentTotals>
                                                                               <TaxPayable>140.00</TaxPayable>
                                                                               <NetTotal>31000.00</NetTotal>
                                                                               <GrossTotal>31140.00</GrossTotal>
                                                                               <Payment>
                                                                                              <PaymentMechanism>NU</PaymentMechanism>
                                                                                              <PaymentAmount>31140.00</PaymentAmount>
                                                                                              <PaymentDate>2020-05-19</PaymentDate>
                                                                               </Payment>
                                                               </DocumentTotals>
                                               </Invoice>

BuildingAddress não deve ser obrigatorio

Na tabela Customer o endereço é obrigatorio, mas tem um monte de cituações em que não é possivel se saber a localização do cliente, ex: no caso do Cliente final, ou em estabelecimento como armazens ou bombas que não parece viavel perguntar ao cliente onde vive.

Mesmo que seja obrigatorio pelo menos deveria aceitar que todos os campos estejam em branco.

Erro ao Validar o SAF-T de Aquisições Bens e Serviços

Boa tarde,

ao validar o ficheiro SAF-T de Aquisições Bens e Serviços (TaxAccountingBasis = A) com a última versão do .xsd ocorre o seguinte erro:

ERROR: Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}Invoices': This element is not expected. Expected is one of ( {urn:OECD:StandardAuditFile-Tax:AO_1.01_01}GeneralLedgerEntries, {urn:OECD:StandardAuditFile-Tax:AO_1.01_01}SourceDocuments ).

No Decreto Presidencial não está previsto as tabelas "GeneralLedgerEntries" e "SourceDocuments" mas sim só a tabela "Invoices".

Erro SourceDocuments2

Erro SourceDocuments

Cumprimentos.

Reposição do elemento SelfBillingIndicator conforme original

Olá.

Mais alguém está com este problema?
Quando incluímos no SAFT um documento com cativação de IVA que, segundo o XSD, deve ir <SelfBillingIndicator>2</SelfBillingIndicator>, obtemos a seguinte mensagem:

Formato ou tipo errado do campo AuditFile.SourceDocuments.SalesInvoices.26Invoice.SpecialRegimes.SelfBillingIndicator

No XSD, a especificação é:

<xs:element name="SelfBillingIndicator">
    <xs:annotation>
      <xs:documentation>
        PROPOSTA:
        Deve ser preenchido:
        com “1” se respeitar a autofacturação,
        Com “2” se é obrigado a cativar o IVA,
        Com ”3” se tiver IVA cativo e autofacturação,
        com “0” (zero) no caso de não cumprir com nenhuma condição .
      </xs:documentation>
    </xs:annotation>
    <xs:simpleType>
      <xs:restriction base="xs:integer">
        <xs:minInclusive value="0" />
        <xs:maxInclusive value="3" />
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

se enviarmos com o valor 0 ou 1 não dá qualquer problema.

Obrigado

Documentos importados de outras aplicações

Facilitar a importação de documentos oriundos de outras aplicações validadas pela AGT e permitir o seu reporte num único ficheiro SAF-T pela aplicação final.

Propõe-se o seguinte:

  • Para além do elemento SourceBilling com o valor de I, que marca o documento como integrado e produzido noutra aplicação.
  • Passar a escrever o elemento HashControl com a seguinte formatação: SoftwareValidationNumber-Version em que Version é o valor correspondente à versão da chave privada da solução que produziu o documento original.

Exemplo:

<HashControl>0/AGT/2019-1</HashControl>

Deste modo é possível reportar num só ficheiro SAF-T um conjunto de informação oriunda de múltiplas soluções de software, permitindo a validação de todas as cadeias de assinaturas, pois todos os documentos identificam inequivocamente a aplicação onde foram produzidos.

XSD

Validador falha com erro em TaxPayable

Boas,
Lamento repetir este issue, porque já vi que alguém reportou o mesmo problema, mas o issue está marcado como fechado e fiquei sem saber qual a solução.

Ao validar o xml com o xsd funciona bem.
Ao testar o mesmo xml no validador da AGT, é gerado um erro "Falha na validação, porque o TaxPayable do AuditFile.SourceDocuments.SalesInvoices.XInvoice está mal calculado", onde X é o número que identifica a factura/documento.

Depois fazer vários testes, continuo sem entender a origem do problema.

Vejamos o exemplo de linhas validadas com sucesso:

  1. Factura com apenas uma linha de produto ao preço de 1000 com IVA a 14%.
    ...
    <TaxBase>1000.00</TaxBase>
    ...
<Tax>
	<TaxType>IVA</TaxType>
	<TaxCountryRegion>AO</TaxCountryRegion>
	<TaxCode>NOR</TaxCode>
	<TaxPercentage>14</TaxPercentage>
</Tax>

...

<DocumentTotals>
	<TaxPayable>140.0000</TaxPayable>
	<NetTotal>1000.00</NetTotal>
	<GrossTotal>1140.00</GrossTotal>
</DocumentTotals>

Aqui o sistema valida correctamente os valores:

  • TaxPayable: 140,00
  • NetTotal: 1000,00
  • GrossTotal: 1140,00
  1. Factura com apenas uma linha de produto ao preço de 1000, com desconto de 10% e IVA a 14%
    ...
    <TaxBase>900.00</TaxBase>
    ...
<Tax>
	<TaxType>IVA</TaxType>
	<TaxCountryRegion>AO</TaxCountryRegion>
	<TaxCode>NOR</TaxCode>
	<TaxPercentage>14</TaxPercentage>
</Tax>

...

<DocumentTotals>
	<TaxPayable>126.0000</TaxPayable>
	<NetTotal>900.00</NetTotal>
	<GrossTotal>1026.00</GrossTotal>
</DocumentTotals>

Mais uma vez o sistema valida com sucesso esta factura assumindo como correctos os valores:

  • TaxPayable: 126,00
  • NetTotal: 900,00
  • GrossTotal: 1026,00

Para testar um exemplo incluído nos requisitos para validação de aplicações e que deve ser enviado à AGT, gerei o seguinte documento:

Factura com apenas uma linha de produto com as seguintes características:

  • Preço Unitário: 0.55 (-8,8%) = 50.16
  • Quantidade: 100
  • Desconto: 8,8%
  • IVA: 14%

Pelo meu entendimento e a julgar pelos exemplos acima, aqui deverei considerar:

  • TaxBase deverá ser: 50.16 (0.55 * 100 - 8.8%)
  • TaxPayable: 7.0224 (TaxBase * percentagem do imposto)

E os dados no xml:
...
<TaxBase>50.16</TaxBase>
...

<Tax>
	<TaxType>IVA</TaxType>
	<TaxCountryRegion>AO</TaxCountryRegion>
	<TaxCode>NOR</TaxCode>
	<TaxPercentage>14</TaxPercentage>
</Tax>

...
<SettlementAmount>4.8400</SettlementAmount>
...

<DocumentTotals>
	<TaxPayable>7.0224</TaxPayable>
	<NetTotal>50.16</NetTotal>
	<GrossTotal>57.18</GrossTotal>
</DocumentTotals>

Anexo um xml onde constam os 3 documentos.

PS: No xml, para o campo TaxPayable alterei o número de casas decimais para 4. O XSD tem como schema de validação, 2 decimais.

Obrigado a todos

Paulo Matos
sample_xml.txt

Formato de InvoiceNO validado no XSD mas com erro no validador online

Caros,
o sistema de validação online começou a dar um erro no formato do InvoiceNO que no nosso caso deveria estar correcto: FR SED.FR.20/1
Falha na validação do formato do campo AuditFile.SourceDocuments.SalesInvoices.1Invoice.InvoiceNo

Podem ajudar ?

obrigado,
Pedro

Erro ao validar Contablidade integrada com a facturação

suponhamos que eu tenha um documento sem facturas para fornecedores, o que pode acontecer com clientes que prestem apenas serviços, então sempre que for gerar saft para contablidade integrada(I), o nó Supplier é de caráter obrigatório, se passar void, ele reclama dos campos obrigatórios existentes em supplier, se retirar-mos o Nó ele diz que o nó supplier é obrigatório.
Eu acho que o xsd deveria permitir passar tais documentos que tenham apenas faturas de Clientes. pois poderemos ter sempre clientes, mais existem casos em que não teremos fornecedores.

bug_issues

Erro WithholdingTaxType ao validar um SAF-T de Faturação

Boa tarde,

ao validar um ficheiro SAF-T de faturação contra o schema obtemos o seguinte erro:

ERROR: Element '{urn:OECD:StandardAuditFile-Tax:AO_1.01_01}WithholdingTaxAmount': This element is not expected. Expected is ( {urn:OECD:StandardAuditFile-Tax:AO_1.01_01}WithholdingTaxType ).

Analisando o decreto este campo não é obrigatório.

Experimentei validar no validador que temos acesso e o ficheiro foi validado com sucesso.

Será que é o schema que está errado ou é um erro da nossa parte?

Segue o ficheiro:
SAFT_STDAOK_01032020_31032020.zip

Cumprimentos.

Na tabela de Produtos - UNNumber

Boa tarde,

ao validar o ficheiro com a última versão, ocorre um erro na tabela de produtos se antes do campo UNNumber não estiver preenchido o campo CustomDetails.

Segundo o Decreto Presidencial, o campo CustomDetails não é de preenchimento obrigatório.

UNNumber

Cumprimentos,

Miguel Silva.

Existe algum tutorial?

Existe algum tutorial sobre como implementar essa Biblioteca?
Já verifiquei as Issues, as Wiki deste repositório e ainda assim não há nenhum lugar que indique como fazer a implementação da mesma.

Agradecia muito a ajuda de quem já fez, trabalho com PHP (Laravel) e qualquer ajuda relacionada será apreciada, se for muito extenso, o meu email é [email protected].

Documentos comerciais de fornecedores

Ao tentar validar o ficheiro de documentos comerciais de fornecedores, existem algumas incoerências com o ficheiro de validação xsd, em relação à lei.

Composição do saft na lei (a) vs no xsd (b):

        a) na lei: 
                        <InvoiceDate></InvoiceDate>
                        <Period></Period>
                        <InvoiceType></InvoiceType>
                        <SourceID></SourceID>
                        <SupplierID></SupplierID>
                        <InvoiceNo></InvoiceNo>
                        <DocumentTotals>
                                <InputTax></InputTax>
                                <TaxBase></TaxBase>
                                <GrossTotal></GrossTotal>
                        </DocumentTotals>


        b) no xsd:
                        <InvoiceNo></InvoiceNo>
                        <Period></Period>
                        <InvoiceDate></InvoiceDate>
                        <InvoiceType></InvoiceType>
                        <SourceID></SourceID>
                        <SupplierID></SupplierID>
                        <DocumentTotals>
                                <InputTax></InputTax>
                                <TaxPayable></TaxPayable>
                                <NetTotal></NetTotal>
                                <GrossTotal></GrossTotal>
                        `</DocumentTotals>`

Incoerências identificadas:

  1. ordenação dos elementos;
  2. composição do elemento "DocumentTotals", em que, na lei existem 3 elementos: InputTax, TaxBase e GrossTotal; e no xsd temos: InputTax, TaxPayable, NetTotal e GrossTotal.

Falha no validador da AGT - TaxPayable

Após validar o ficheiro SAFT com o XSD, tentei utilizar o validador da AGT e recebi a seguinte mensagem:

"Falha na validação, porque o TaxPayable do AuditFile.SourceDocuments.SalesInvoices.5Invoice está mal calculado"

Os valores parecem estar iguais aos calculados pelo ficheiro Excel enviado pelo AGT para testes.

SAFT_20190801_20190930_201909061122.txt

Ajuda sobre o elemento SalesInvoices | SourceBilling

Estimados,

Boa tarde,
Preciso da vossa ajuda na correcta interpretação do campo: SalesInvoices | SourceBilling

Deve ser preenchido com:
P - Documento produzido na aplicação
I - Documento integrado e produzido noutra aplicação
M - Documento proveniente de recuperação ou emissão manual

No caso, a minha dúvida se refere a um módulo de "mobilidade" da nossa aplicação e que, mesmo que não precise funcionar de forma integrada, pertence à mesma aplicação.

A diferença é que funciona sem precisar estar permanentemente ligada à aplicação principal para emissão de documentos.

A integração é feita à pedido do utilizador ou em momentos específicos, como por exemplo no momento de descarregar dados para a aplicação principal.

Neste caso que opção deverei escolher, "P" (mesma aplicação) ou "I" (integrado e produzido em outra aplicação"?

Obrigado e até breve

PM

Cálculos e Arredondamentos

Num conjunto de 63 facturas existentes no SAFT de um dia, tenho uma factura com 6 linhas que está a dar erro no validador a dizer que o NetTotal está mal calculado. Tenho noção que é um problema de arredondamentos mas já tentei fazer as contas de todas as maneiras mas não consigo ultrapassar a situação. Isolei a factura no SAFT e muito agracecia se alguem me dissesse como ultrapassar a situação.
so-Doc59.xml.txt
public_phpPOS_1024.pem.txt

Validação do SAFT-AO

Estou a desenvolver o ficheiro de Aquisição de Bens e Serviços. Submeti o ficheiro gerado ao XSD disponibilizado (SAFTAO1.01_01.xsd) e passou com sucesso, corrigindo a questão do padrão obrigatório para o InvoiceNo.
Ao submeter no Portal das Finanças de Angola e dá erros.
A parte do ficheiro relativo aos Documentos comerciais de Fornecedores (Invoice)



1

FT 1/45
9
2019-09-11
FT
MLAUREANO
0000001542

29105.26
14.00
207894.74
237000.00
29105.26
100



Os erros que ocorrem no portal:

O nóAuditFile.SourceDocuments.PurchaseInvoices.InvoiceNo no arquivo não deve existir.

O nóAuditFile.SourceDocuments.PurchaseInvoices.Period no arquivo não deve existir.
O nóAuditFile.SourceDocuments.PurchaseInvoices.InvoiceDate no arquivo não deve existir.
O nóAuditFile.SourceDocuments.PurchaseInvoices.InvoiceType no arquivo não deve existir.
O nóAuditFile.SourceDocuments.PurchaseInvoices.SourceID no arquivo não deve existir.
O nóAuditFile.SourceDocuments.PurchaseInvoices.SupplierID no arquivo não deve existir.
O nóAuditFile.SourceDocuments.PurchaseInvoices.Invoice no arquivo não deve existir.

Alguém pode ajudar a despistar este erro?
Aparentemente não espera estes campos na SourceDocuments.PurchaseInvoices.

Falha na validação do Hash da parte AuditFile

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

Elemento SourceDocuments | MovementOfGoods: AGTDocCodeID

Estimados,

Boa tarde a todos.
No XSD existe um elemento que não consta da estrutura 318/12 que é o 'AGTDocCodeID' em SourceDocuments | MovementOfGoods.

Deparei-me com um apontamento meu sobre esse novo elemento e ao testar o xml contra o XSD actualizado, noto que é um elemento obrigatório.

Alguém pode por gentileza me explicar que informação deve ser colocada neste elemento?

Aproveito para perguntar se esse elemento já é validado pelo portal de testes do produtor?

Obrigado a todos e até breve

Paulo Matos

Tag CUD não está considerada.

Apesar de não definida nos documentos legais, Decreto Presidencial n.º 312/18,, nas FAQs da AGT, FAQ n.º 56, esta tag é definida com o nome "CUD" e, até definição posterior, deve ser preenchida com o valor "0".
No entanto esta tag não está definida no ficheiro XSD para os ficheiros "4.2. Movimentação de Mercadorias" (4.2.3.2) e "4.3. Documentos de Conferência" (4.3.4.2).

Nota: estranhamente não existe uma tag similar para o ficheiro "4.1. Documentos Comerciais".

Certificação de Software em Angola

Boa tarde,

Alguém que já tenha feito a certificação do software na AGT, pode pff dar algum input sobre o processo?

Como se despoleta? Como decorre? Como podemos validar o ficheiro SAFT que estamos a desenvolver?

Obrigado desde já,
Filipe

Elemento SoftwareValidationNumber

O elemento SoftwareValidationNumber foi atualizado para passar a validar o número do certificado de acordo com a última formação definida pela AGT.

Exemplo:

<SoftwareValidationNumber>123456/AGT/2019</SoftwareValidationNumber>

Ver Commit

Erro ao validar saftao.XML no portal

Describe your question

A clear and concise description of what the question is.

Bom dia, estou tendo esse erro ao tentar validar o ficheiro xml pelo portal,

  • . Alguém tem uma ideia de que se trata ou qual a origem deste Erro:
    Existem erros de sintaxe xml no ficheiro (Falha validação xsd)
    image

Nota: Noutras validações pare tudo bem e este erro nao aprece, (Pelo terminal usando xmllint ou no meu metodo psefl validation* que uso dentro da minha aplicação)

  • . Alguem sabe como validar ate o Hash do satfao.xml com o ficheiro XSD?

Campo NumberOfEntries

Caros,
podem confirmar se o campo NumberOfEntries é suposto ter o numero de documentos ou o numero das linhas de todos os documentos ?

obrigado,
Pedro

ERRO VALIDAÇÃO SAF-T Falha na validação do Hash da parte AuditFile.SourceDocuments.SalesInvoices.2Invoice

Boa tarde pessoal,

Estou tentado validar um XML de Facturas e NC mas está me retornado o erro: Falha na validação do Hash da parte AuditFile.SourceDocuments.SalesInvoices.2Invoice, alguém saberia me dizer o que pode estar errado no HASH? Abaixo segue o XML da validação:

Exemplo:
FT 111111/111

N
2020-01-30T00:00:00

3
P

q1ZOID6iCvuekctgVQdwohllU2J/krFQ0sFth/+IS7+ntBvL2V3c6FqiJZpa4dND1P49xm+C099JJVY/AH5fcBlBRhH6Gmb6df/1G3zssq3i/59pi1aVfFaoxJTYnS0slB8N7oD0uvr+vDEQo5qWdQrpSAQOX8TJVVBFHhN1J44=
1
ctwE0gmR8rabb+A+42NYq5ZtG+nVmkHCu4HeqYaeZ9MVAP1bvYlqK51MUn7ClISTww9kwL2XsVxUkqofSJmx2ll3PROKxz9rJ+ccppdzX4zjjooAq92X+b26WghEYyTZSiFpZhmSOztTI2AkoTOla1IB/yggPC5l1MSDDSf1aHU=
1

Campo SoftwareValidationNumber não deve ser numerico no XSD

Iniciámos a submissão de ficheiro de SAFT-AO e deu um erro. Após confirmação com a AGT, pediram para alterarmos o campo SoftwareValidationNumber de "204" para 204/AGT/2019. Com esta alteração já foi possivel submeter o ficheiro SAFT-AO, MAS a validação contra o XSD dá erro:
Severity: error
Description: '204/AGT/2019' is not a valid value for 'integer'.
Start location: 26:35
End location: 26:47
Severity: error
Description: The value '204/AGT/2019' of element 'SoftwareValidationNumber' is not valid.
Start location: 26:35
End location: 26:47

O validador online da AGT não dá qualquer erro.

Podem, por favor, fazer reflectir esta opção de string nnn/AGT/yyyy no XSD ?

obrigado,
Pedro Casqueiro
TEXTO EDITORES

Numeração de Documentos para 2020

Olá bom dia a todos.

Temos aqui uma questão para a qual agradeciamos a vossa ajuda.

Segundo as indicações que foram referidas nas conf. call da AGT a que assistimos, entendemos que todas as séries de numeração devem agora começar no número 1 (e a AGT foi bem explicita a indicar que 001 era diferente de 1).
Neste sentido, como devemos proceder se para um determinado tipo de documento (por exemplo Facturas), tivermos várias séries definidas e activas no mesmo período (por exemplo uma referente a uma loja em Luanda, outra numa loja em Cacuaco)? Não podemos repetir a numeraçao (ou seja, não podemos ter 2 facturas com o número 1) - Não é legal, nem permitido pelos proprios sistemas (Ver Imagem A, em anexo, quando tentamos "dar a volta" e usar um prefixo diferente, por exemplo):

A_-_Erro_ao_tentar_criar_2_séries_com_range_de_numeração_sobreposta

Neste sentido, podemos na propria range de numeração que baliza as séries incluir este prefixo, garantindo que começará por xxxx1 por exemplo (Ver imagem B, em anexo)?

B_-_Solução_Alternativa_proposta_a_analisar_com_a_AGT

Basicamente garantimos desta forma que não há repetição da numeração e que a mesma é sequencial para todos os documentos emitidos, mantendo as funcionalidades de assegurarmos várias séries por tipo de documento (o que facilita a análise e controlo dentro do negócio).

Obrigada desde já pela vossa atenção e disponibilidade para ajudar.
Inês

SAFT_AO_Tipo_F.zip

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

Estou usando o openssl no windows e fazendo passagem de linha de comando.

PRIMEIRO DOCUMENTO FACTURA PARA ASSINATURA

CONTEUDO DO FICHEIRO texto.inf

2020-03-20;2020-03-20T18:27:39;FR FR20/16;178845.15;

primeira linha de comando
Assinar documentos usando a chave privada - valor guardada num ficheiro

openssl.exe dgst -sha1 -sign keypriv.pem -out registoout.sh1 texto.inf

O openssl cria então o ficheiro registoout.sh1

Lá dentro esta escrito com caracteres especias.

registoout.sh1 
ꧭᲟꩠ᠟촆羵膊뺤䯃匑꓉㤑洰❪喱咔ꔆ㕚Ꮒ鴤뵌滮ꕠ㥳�遅덢肜⒫ㆯ犘㛉跃㭠붥ᗿ渖뉁﹩ꆄ햸퓱鉦晋날�肘㯵꩐漟剑௻겈댷㚖は
¬­ü_RÄãÎÌhkÈàÍx&reg; ��ÃíÄ

APÓS ISTO ENVIO A LINHA DE COMANDO PARA
codificar assinatura em base64

openssl.exe enc -in registoout.sh1 -base64 -A -out registoout.b64

O CONTEUDO DO FICHEIRO registoout.b64 É ESTE ABAIXO QUE É A PRÓPRIA CHAVE HASH

registoout.b64 
rK38X1LE487MaGvI4M14riAOBMPtxACc+Xvy24xTiVkyHmgvS8Umhz+GeotUOgNSk/KRLgf2ZTdFBrWIR97IR9g06uPZ9HLSRrdSvSr1fblA+Z2svH5TJytcaIV7yK9aJkAOBpfOAL2rDmCfQ4Or7znWmutblcX9eiJjjgas5R4=

Aproveitei e verifiquei se esta correto com a chave publica e a mensagem é OK.
verificar assinatura com a chave pública

openssl.exe dgst -sha1 -verify keypublic.pem -signature registoout.sh1 texto.inf

esta dado verificação OK

Segunda factura

conteudo do ficheiro texto.inf

2020-03-20;2020-03-20T18:44:24;FR FR20/17;6899.00; rK38X1LE487MaGvI4M14riAOBMPtxACc+Xvy24xTiVkyHmgvS8Umhz+GeotUOgNSk/KRLgf2ZTdFBrWIR97IR9g06uPZ9HLSRrdSvSr1fblA+Z2svH5TJytcaIV7yK9aJkAOBpfOAL2rDmCfQ4Or7znWmutblcX9eiJjjgas5R4=;

Atenção, obedeci o comando colocando o caracter ; para separar todos os argumentos.

Criando a assinatura
openssl.exe dgst -sha1 -sign keypriv.pem -out registoout.sh1 texto.inf

Conteudo do ficheiro registoout.sh1

ǶÇÀ°�êÒ�ú�öFéÍ[„�¦Mõg)ô�„G£�âå^6�Ûü4¦ß�ËÁ®G+r@Ô¥ºäŒ]�ì¿LŸ dßcÎyé1¯m¯íÍ·ÐÞk�2&copy;2 8e¡wÂÄ?b��L��‚D­aêY¨‚TÑa£Ý�wÔ&trade;N¶!Ü2¥¿h~<sup>3</sup>Jÿ—à�

APÓS ISTO ENVIO A LINHA DE COMANDO PARA
codificar assinatura em base64

openssl.exe enc -in registoout.sh1 -base64 -A -out registoout.b64

registoout.b64  
x7bHwLAH6tIL+hr2RunNW4QDpk31Zyn0G4RHowHi5V42F9v8YDSm3xLLwa5HXCtyQNSluuSMXRDsv0yfCWTfY8556bmvbWCv7c230N5rGTKpMgw4ZaF3wsQ/YhISTAsVgkStYepZqIJU0WGj3QJ31JlOtiHcMqW/aH6zSv+X4Bc=

Esta é a segunda chave HASH

verificação
openssl.exe dgst -sha1 -verify keypublic.pem -signature registoout.sh1 texto.inf
esta dado verificação OK

revi diversas vezes e infelizmente no site de testes da AGT continua o meu calvário.

Já desisti e não tenho mais opções.

Li em algum momento que o próprio site de testes tinha algum problema.

Vi os dois tópicos que fala sobre este assunto, mas li e reli e fiz várias tentativa e nada.

Sistema para validação do SAFT-AO.

Tenho meu xml criado e validei o arquivo com o (xmllint) agora queria saber se existe alguma plataforma da (AGT) que permite validar o arquivo ? Pra eu ter certeza que está tudo certo antes de colocar a funcionalidade em produção.

Payments declarados como recibo RC

Payments declarados como recibo RC

Na minha ultima reunião de avaliação do sistema para certificação final, exibi o meu modelo de recibo, pois o técnico da AGT tinha pedido para mostrar.

Numero do Recibo - Modelo do meu sistema : RC RE20/3

RC - RECIBO EMITIDO
É o tipo de documento declarado nesta parte do SAFT AO - Payments - PaymentType

Na arquitectura do sistema, declarei todos os recibos somente nesta parte do SAFT.

Não declaro recibos em SourceDocuments - SalesInvoices.

Pois na minha óptica, o cliente pode liquidar vários documentos (facturas) com um (único) pagamento, por isto que a parte declarada em Payments é encaixado perfeitamente, de acordo com o meu controle de conta corrente.

O técnico da AGT me informou que declarasse como RE - RECIBO, mas este tipo (InvoiceType) em
SourceDocuments - SalesInvoices.

Acho que estou procedendo perfeitamente, por que RE não esta listado como um PaymentType em Payments - PaymentType

Imagino, de acordo com a aquitectura, estou declarando perfeitamente

Alguém aqui, já passou por esta questão?

Estou aberto a sugestões

Purchase Invoice: InvoiceNo deve ser string sem pattern

No campo InvoiceNo das Aquisições exige-se presentemente que cumpra o pattern igual ao das faturas de vendas (tipo interno de documento, espaço, série, barra, número interno.
Isso não faz sentido porque a fatura pode ter uma numeração diferente deste padrão, basta ser uma fatura estrangeira.
Além disso não permite duplicados. Isso também não faz sentido, porque pode haver um número igual de fornecedores diferentes.

Documento (anulado) com total a 0 - Erro no validador

Viva,

tenho uma situação, em que um documento que foi anulado tem o total a 0.
Mesmo que o documento não estivesse anulado, é uma situação que pode ocorrer.
O validador dá o erro:

No ficheiro AuditFile.SourceDocuments.SalesInvoices.3Invoice,Deve atenderSUM (Line.CreditAmount) > SUM (Line.DebitAmount)

Obriga a que o total a crédito seja superior ao total a débito.
Caso não inclua o documento, dá erro de Hash no documento seguinte, como é compreensível.
Neste momento consigo contornar o problema porque este documento é o primeiro num dos dias, e, tirando o SAFT apenas desse dia para a frente, se o eliminar do ficheiro não dá erro.
Esta situação deve ser reportada à AGT, pois é um erro.

TaxTable - Tabela de impostos

TaxTable - Tabela de impostos

Normalmente declaramos aqui os impostos que existem no SAFT AO do movimento do cliente.

Um cliente que esta com isenção ao IVA - Regime transitório, declaramos da seguinte forma, em MasterFiles:

<TaxTable>
    <TaxTableEntry>
       <TaxType>IVA</TaxType>
       <TaxCode>ISE</TaxCode>
       <Description>IMPOSTO SOBRE O VALOR ACRESCENTADO</Description>
       <TaxExpirationDate>2019-07-02</TaxExpirationDate>
       <TaxPercentage>0.00000</TaxPercentage>
   </TaxTableEntry>
</TaxTable>

E temos a seguinte situação, quando encontramos um cliente que esta no regime geral

<TaxTable>
    <TaxTableEntry>
       <TaxType>IVA</TaxType>
       <TaxCode>NOR</TaxCode>
       <Description>IMPOSTO SOBRE O VALOR ACRESCENTADO</Description>
       <TaxExpirationDate>2019-07-02</TaxExpirationDate>
       <TaxPercentage>14.00000</TaxPercentage>
   </TaxTableEntry>
</TaxTable>

E agora a seguinte situação, quando este mesmo cliente que esta em Cabinda

Sabendo que Cabinda esta numa região de regime especial, tendo dois tipos de percentuais do IVA.

Tipos de IVA:

  1. 14% - para prestação de serviço
  2. 02% - para mercadorias vendidas na região de Cabinda
  3. ISE - Tipos de prestações de serviços isentos, com o código de isenção M34 - Isento nos termos da alínea e) do artigo 15.º do CIVA

Deveríamos ter declarado da seguinte maneira, pelo menos na lógica:

<TaxTable>
    <TaxTableEntry>
       <TaxType>IVA</TaxType>
       <TaxCode>NOR</TaxCode>
       <Description>IMPOSTO SOBRE O VALOR ACRESCENTADO</Description>
       <TaxExpirationDate>2019-07-02</TaxExpirationDate>
       <TaxPercentage>14.00000</TaxPercentage>
   </TaxTableEntry>
</TaxTable>
<TaxTable>
    <TaxTableEntry>
       <TaxType>IVA</TaxType>
       <TaxCode>NOR</TaxCode>
       <Description>IMPOSTO SOBRE O VALOR ACRESCENTADO</Description>
       <TaxExpirationDate>2019-07-02</TaxExpirationDate>
       <TaxPercentage>2.00000</TaxPercentage>
   </TaxTableEntry>
</TaxTable>
<TaxTable>
    <TaxTableEntry>
       <TaxType>IVA</TaxType>
       <TaxCode>ISE</TaxCode>
       <Description>IMPOSTO SOBRE O VALOR ACRESCENTADO</Description>
       <TaxExpirationDate>2019-07-02</TaxExpirationDate>
       <TaxPercentage>0.00000</TaxPercentage>
   </TaxTableEntry>
</TaxTable>

Questão e dúvidas:

Se tenho , supostamente, dois à três variações, pois é a realidade, o validador reclama que tem mais de um tipo de imposto declarado.
Sabendo que tenho percentuais diferentes.

Para ultrapassar, tenho que omitir o segundo e o terceiro, deixando declarado somente o de 14% ou qualquer uma delas.

A minha analise na codificação esta correcta?

Se sim, há um defeito no validador?

Ou tenho que proceder eternamente assim?

Acho que são questões que muitos aqui já passaram e se questionaram.

Geração chave HASH do SAF-T-AO

Boa tarde caríssimos,

Pretendo algumas dicas de como encriptar os dados usando a criptografia RSA, quando o tamanho do dado a encriptar é superior ao tamanho da chave (1024), e garantir que o texto encriptado não passe dos 172 bytes, usando a aplicação OpenSSL corre bem, mais a usar o C#, ou o VB.NET me deparo com a dificuldade acima exposta.

Osvaldo Mateus

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.