SAFTCheck

Riferimento delle regole di validazione

Ogni regola che SAFTCheck applica al tuo SAF-T (PT) XML, in linguaggio chiaro. Ogni pagina spiega cosa richiede l'AT, i modi più comuni in cui la regola fallisce e come correggerla.

encoding.declaration

Dichiarazione di codifica XML (Windows-1252)

L'AT richiede la codifica Windows-1252. Le dichiarazioni UTF-8 vengono rifiutate silenziosamente.

encoding.bom

Byte Order Mark (BOM) all'inizio del file

L'AT rifiuta i file SAF-T che iniziano con un BOM UTF-8 o UTF-16.

nif.mod11

NIF portoghese — algoritmo Mod-11 e prefissi

Codice fiscale portoghese a 9 cifre; cifra di controllo calcolata tramite Mod-11 con pesi 9..2.

atcud.format

Formato ATCUD — VALIDAZIONE-SEQUENZA dal 2023

Codice univoco di documento obbligatorio: 8 caratteri alfanumerici maiuscoli, trattino, sequenza ≥ 1.

header.dates

Date dell'header — StartDate, EndDate, FiscalYear, DateCreated

Invarianti temporali che l'AT impone sul blocco Header del SAF-T.

feature.inline-editor

Editor inline — correggi NIF, ATCUD e date dell'header sul posto

Modifica il valore problematico accanto all'anomalia, riconvalida subito, senza tornare a esportare dall'ERP.

nif.vies

Controllo VIES — NIF registrato nel sistema IVA UE

Il NIF dell'header viene verificato contro il servizio VIES della UE e il nome registrato è confrontato con CompanyName del SAF-T.

invoice.date.out_of_range

Data del documento dentro la finestra di reporting dell'header

Ogni data di Invoice / Payment / WorkDocument / StockMovement deve ricadere dentro Header.StartDate – Header.EndDate.

totals.reconciliation

I totali di blocco riconciliano con i documenti figli

NumberOfEntries e TotalDebit+TotalCredit di ogni sezione devono corrispondere ai documenti sottostanti, entro 0,01 €.

invoice.currency.exchange

I documenti in valuta estera richiedono un blocco <Currency> completo

Quando un documento dichiara una valuta diversa da EUR, CurrencyCode + CurrencyAmount + ExchangeRate devono essere tutti presenti.

invoice.status

Coerenza tra codice di stato e data della fattura

InvoiceStatus deve essere uno tra N/S/A/R/F e InvoiceStatusDate deve essere >= InvoiceDate.

Cerchi approfondimenti narrativi? Vai al blog per i flussi completi di correzione.

Usiamo un cookie di sessione per l'accesso, un cookie locale per la preferenza linguistica e Tawk.to per il widget di chat (che imposta i propri cookie quando apri la chat). Google Analytics (GA4) si carica solo dopo la tua accettazione, con anonimizzazione dell'IP; nessun tracker pubblicitario. Vedi la nostra Informativa sulla privacy.