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 doDebitAmountdas linhas, eTotalCredit= soma doCreditAmountdas linhas. São valores sem IVA, não oGrossTotaldos documentos. Os documentos anulados ficam de fora: estadoAouFemSalesInvoices,AemWorkingDocumentsePayments.MovementOfGoods.TotalQuantityIssued= soma daQuantitydas 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
| Campo | Declarado | Real | Veredicto |
|---|---|---|---|
| SalesInvoices.NumberOfEntries | 12 | 12 (incluindo 1 anulado) | ✓ |
| SalesInvoices.NumberOfEntries | 11 | 12 | ✗ falta um documento na contagem |
| SalesInvoices.TotalCredit | 1234,56 | 1234,56 (linhas sem IVA) | ✓ |
| SalesInvoices.TotalCredit | 1518,51 | 1234,56 | ✗ IVA incluído por engano |
| SalesInvoices.TotalCredit | 1234,57 | 1234,56 | ✓ dentro da tolerância de 0,01 |
Como corrigir
- Volte a correr a exportação SAF-T do ERP depois de fechar quaisquer rascunhos.
- Se o ERP permitir override manual dos agregados de bloco, ajuste-os para os valores "reais" reportados pelo SAFTCheck.
- 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.