SAFTCheck

totals.reconciliation

Totais de bloco reconciliam com os documentos filhos

O NumberOfEntries conta todos os documentos (incluindo anulados); o TotalDebit e o TotalCredit têm de igualar os valores das linhas sem IVA, sem os documentos anulados, com tolerância de 0,01.

O que se verifica

Cada total ao nível de bloco dentro de SourceDocuments tem de reconciliar com os documentos por baixo:

  • NumberOfEntries = número de documentos da secção (Invoice / WorkDocument / Payment), incluindo os anulados.
  • TotalDebit = soma do DebitAmount das linhas, e TotalCredit = soma do CreditAmount das linhas. São valores sem IVA, não o GrossTotal dos documentos. Os documentos anulados ficam de fora: estado A ou F em SalesInvoices, A em WorkingDocuments e Payments.
  • MovementOfGoods.TotalQuantityIssued = soma da Quantity das linhas, sem os movimentos anulados.

A tolerância é de 0,01. Fonte: Portaria n.º 302/2016, que define estes campos como somas de controlo.

Porque é que a AT se importa

Os totais de bloco são o checksum de integridade que a AT valida à entrada. Um off-by-one na contagem é geralmente um rascunho que não fechou; um drift de cêntimos é um desencontro de arredondamentos entre o motor de linhas do ERP e o agregador SAF-T.

Exemplos

CampoDeclaradoRealVeredicto
SalesInvoices.NumberOfEntries1212 (incluindo 1 anulado)✓
SalesInvoices.NumberOfEntries1112✗ falta um documento na contagem
SalesInvoices.TotalCredit1234,561234,56 (linhas sem IVA)✓
SalesInvoices.TotalCredit1518,511234,56✗ IVA incluído por engano
SalesInvoices.TotalCredit1234,571234,56✓ dentro da tolerância de 0,01

Como corrigir

  1. Volte a correr a exportação SAF-T do ERP depois de fechar quaisquer rascunhos.
  2. Se o ERP permitir override manual dos agregados de bloco, ajuste-os para os valores "reais" reportados pelo SAFTCheck.
  3. Se a divergência é um bug conhecido de arredondamento por linha do ERP, escale-o com o fornecedor — estes agregados são calculados a jusante das linhas.

Outras regras