Saftlint
Rules

Rule catalogue

Ruleset no-saft-financial-1.40.9. All 42 content checks with explanations, remediation and sources.

Official sources do not always agree. See documented conflicts and conservative dispositions.

SeverityCheckAreaDocumented basis
errorUTF-8 XML encodingfile.encoding.utf8Header and periodsTechnical description p. 7
warningNumeric values without signsfile.numeric.unsignedHeader and periodsTechnical description p. 8
warningEmpty XML elementfile.element.emptyHeader and periodsTechnical description p. 8
errorElements marked not in usefile.element.not-in-useHeader and periodsTechnical description and XSD 'Not in use' annotations
errorKnown ISO country codefile.country-code.knownHeader and periodsXSD ISOCountryCode; CLDR 48.2 snapshot
errorKnown ISO currency codefile.currency-code.knownHeader and periodsXSD ISOCurrencyCode; CLDR 48.2 snapshot
errorValid IBANfile.iban.validHeader and periodsXSD BankAccountStructure; SWIFT IBAN Registry 102
errorSupported SAF-T versionheader.version.supportedHeader and periodsTechnical description p. 12
warningHeader comment describes the fileheader.comment.presentHeader and periodsDocumentation p. 27; Technical description p. 13
errorUnique general-ledger account IDsmaster.account.id.uniqueMaster data and referencesXSD KeyGeneralLedgerAccount
errorUnique customer IDsmaster.customer.id.uniqueMaster data and referencesTechnical description p. 17; XSD KeyCustomer
errorUnique supplier IDsmaster.supplier.id.uniqueMaster data and referencesTechnical description p. 19; XSD KeySupplier
errorUnique owner IDsmaster.owner.id.uniqueMaster data and referencesXSD KeyOwner
errorUnique tax codesmaster.tax-code.uniqueMaster data and referencesXSD KeyTaxCode
errorUnique tax typesmaster.tax-type.uniqueMaster data and referencesXSD KeyTaxType
errorReferenced master-data analysis existsmaster.analysis.reference.existsMaster data and referencesXSD RefAnalysisParty*, RefCustomerParty* and RefSupplierParty*
errorReferenced ledger account existsledger.line.account.existsMaster data and referencesXSD RefTransactionLineAccount
errorReferenced customer existsledger.line.customer.existsMaster data and referencesXSD RefGLTransactionLineCustomer
errorReferenced supplier existsledger.line.supplier.existsMaster data and referencesXSD RefGLTransactionLineSupplier
errorCustomer and supplier are mutually exclusiveledger.line.party.exclusiveMaster data and referencesTechnical description p. 31
errorParty balance account existsmaster.party.balance-account.existsMaster data and referencesXSD RefCustomerAccount and RefSupplierAccount
errorReferenced tax code existsledger.line.tax-code.existsVAT mappingsDocumentation pp. 34–35; XSD RefGLTransactionLineTaxCode
errorTaxType required with TaxCodeledger.line.tax-type.requiredVAT mappingsTechnical description p. 56
errorReferenced tax type existsledger.line.tax-type.existsVAT mappingsXSD RefGLTransactionTaxType
errorKnown standard VAT mappingmapping.tax.standard-code.knownVAT mappingsDocumentation p. 17; Technical description p. 23
errorLowercase compensation valuemapping.tax.compensation.literalVAT mappingsDocumentation pp. 8 and 17; Technical description p. 23
errorCompensation-compatible standard VAT codemapping.tax.compensation.compatibleVAT mappingsStandard VAT/Tax codes v1.14 and official XML code list
errorKnown account grouping mappingmapping.account.grouping-code.knownAccount mappingsDocumentation pp. 11 and 19–21
warningApplicable account grouping code listmapping.account.grouping-code-list.applicableAccount mappingsDocumentation pp. 9 and 19; official repository Grouping Category Code 2025-2026
warningReferenced analysis code existsledger.line.analysis.existsMaster data and referencesXSD RefGLAnalysisType and RefGLAnalysisID
errorReferenced owner existsledger.line.owner.existsMaster data and referencesXSD RefTransactionLineOwner
errorNOK tax amount requires foreign currencyledger.line.tax-nok-currencyVAT mappingsDocumentation p. 8; XSD TaxInformationStructure
warningDeclared transaction countledger.entries.countLedger reconciliationDocumentation pp. 21–22; Technical description p. 28
errorDeclared total debitledger.total.debitLedger reconciliationTechnical description p. 28
errorDeclared total creditledger.total.creditLedger reconciliationTechnical description p. 28
errorBalanced accounting transactionledger.transaction.balanceLedger reconciliationTechnical description pp. 30–33
warningVoucher type on every transactionledger.transaction.voucher-type.presentMaster data and referencesTechnical description p. 29; XSD Transaction/VoucherType annotation
warningFull unstructured person nameperson.unstructured-name.reviewMaster data and referencesTechnical description p. 52; XSD PersonNameStructure annotations
errorValid selection rangeheader.selection.rangeHeader and periodsDocumentation pp. 12 and 25–26
warningMaximum one financial yearheader.selection.maximum-one-yearHeader and periodsDocumentation pp. 12 and 21
errorTransaction falls within date selectionledger.transaction.selection-periodHeader and periodsDocumentation p. 24
errorAccounting period falls within selectionledger.transaction.accounting-periodHeader and periodsTechnical description p. 28