totals.reconciliation
Totais de bloco reconciliam com os documentos filhos
NumberOfEntries e TotalDebit+TotalCredit de cada secção devem corresponder aos documentos por baixo, dentro 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= contagem de documentos filhos (Invoice/Payment/WorkDocument/StockMovement).TotalDebit + TotalCredit= soma doDocumentTotals.GrossTotalde cada documento filho, dentro de uma tolerância de 0,01 €.
Abrange quatro blocos: SalesInvoices, Payments, WorkingDocuments, MovementOfGoods.
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 | ✓ |
| SalesInvoices.NumberOfEntries | 11 | 12 | ✗ off-by-one |
| SalesInvoices.TotalCredit | 1 234,55 € | 1 234,56 € | ✗ 1 cêntimo acima da tolerância |
| Payments.NumberOfEntries | 0 | 0 | ✓ (bloco ausente ou vazio é ok) |
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.