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.

Dichiarazione di codifica XML (Windows-1252) L'AT richiede la codifica Windows-1252. Le dichiarazioni UTF-8 vengono rifiutate silenziosamente. encoding.declaration 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. encoding.bom Verificare un NIF portoghese: controllo gratuito e regole Mod-11 Verifica subito qualsiasi NIF portoghese: 9 cifre, prefisso valido e cifra di controllo Mod-11. Più come funziona l'algoritmo e gli errori più comuni. nif.mod11 Formato dell'ATCUD: controllo gratuito e regole dal 2023 Codice univoco di documento obbligatorio: codice di validazione di almeno 8 caratteri, trattino e numero del documento. Include un controllo ATCUD gratuito. atcud.format Date dell'header: StartDate, EndDate, FiscalYear, DateCreated Invarianti temporali che l'AT impone sul blocco Header del SAF-T. header.dates 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. feature.inline-editor 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. nif.vies Data del documento dentro la finestra di reporting dell'header Ogni data di Invoice / Payment / WorkDocument / StockMovement deve ricadere dentro Header.StartDate – Header.EndDate. invoice.date.out_of_range I totali di blocco riconciliano con i documenti figli NumberOfEntries conta tutti i documenti (annullati inclusi); TotalDebit e TotalCredit devono corrispondere agli importi delle righe senza IVA, esclusi i documenti annullati, con tolleranza di 0,01. totals.reconciliation 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.currency.exchange Coerenza tra codice di stato e data della fattura InvoiceStatus deve essere uno tra N/S/A/R/F e InvoiceStatusDate deve essere >= InvoiceDate. invoice.status

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