Documentation conflicts
Open and resolved conflicts and confirmed limitations are shown with versioned handling history. Private correspondence is not published.
Official code-list files use misleading types and inconsistent encodings
CONFLICT-CODELIST-PACKAGING-001
The file published as STAT_Grouping_Category_Code.csv is an XLSX/ZIP workbook. The KOSTRA files use Windows-1252 and a different column order.
- Disposition
- Original artifacts and checksums are preserved. Ingestion and tests are format-aware.
- Status
- Confirmed limitation
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Offisielt SAF-T-register, revisjon 021ede90bce361e285229da15aa2ba93831a3f0d
Public pages and the repository describe different testing access
CONFLICT-TEST-SUBMISSION-001
The public page says test submission is unavailable, while the repository says a replacement is ready for invited testing.
- Disposition
- Public test submission is described as unavailable; the repository note is treated as limited, invitation-only testing.
- Status
- Open
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Skatteetaten: Testinnsending; Offisielt SAF-T-register: New submission solution
SourceDocuments has conflicting status
CONFLICT-SOURCEDOCUMENTS-001
The documentation describes SourceDocuments as future content, the XSD permits the structures but marks the section Not in use, and the repository says the complete format becomes available on 1 January 2027.
- Disposition
- SourceDocuments is not part of 1.40. The container is rejected by `file.element.not-in-use`; the function belongs to the planned 2.0 format.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Dokumentasjon v1.7; SAF-T Financial 1.40 XSD; Offisielt register: Including SourceDocuments 01.01.2027
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: Through 1.40.10, an empty container was accepted while content emitted a conservative source-conflict warning.
Current handling: From 1.40.11, SourceDocuments is rejected in 1.40 by file.element.not-in-use.
Affected rulesets: <= 1.40.10 → conservative warning/acceptance; >= 1.40.11 → error
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.
XSD identity constraints are not enforced reliably
CONFLICT-XSD-IDENTITY-001
The XSD declares keys and references, but the documentation says uniqueness is not validated during transfer, and the selectors do not work with the target namespace in tested standard validators.
- Disposition
- Saftlint implements reviewed relationships explicitly and does not claim that the XSD covers the remainder.
- Status
- Confirmed limitation
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- SAF-T Financial 1.40 XSD; Teknisk beskrivelse s. 7
The official example breaks the Owner account reference
CONFLICT-OWNER-ACCOUNT-001
The XSD declares that Owner/AccountID references GeneralLedgerAccounts, but the official example uses accounts 2250 and 1370 without exporting them as ledger accounts.
- Disposition
- The reference is enforced by `master.owner.account.exists`; the official example is wrong on this point.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- SAF-T Financial 1.40 XSD; Offisielt 1.40-eksempel
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: Through 1.40.10, the Owner/AccountID reference was not enforced.
Current handling: From 1.40.11, Owner/AccountID must resolve to GeneralLedgerAccounts.
Affected rulesets: <= 1.40.10 → not enforced; >= 1.40.11 → master.owner.account.exists
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.
The currency equation is contradicted by the official example
CONFLICT-CURRENCY-EQUATION-001
The technical description states CurrencyAmount × ExchangeRate = Amount. The official example contains values that do not satisfy the equation.
- Disposition
- Saftlint does not enforce the equation until rounding and the example are clarified.
- Status
- Open
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Teknisk beskrivelse s. 39; Offisielt 1.40-eksempel
The documentation shows the wrong element name for NOK amounts
CONFLICT-NOK-ELEMENT-001
The technical description shows Amount under DebitNOKTaxAmount, while the XSD and official example require NOKAmount.
- Disposition
- The XSD controls structural validation.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Teknisk beskrivelse s. 49; SAF-T Financial 1.40 XSD
Discovered: 2026-08-12 · Resolved: 2026-08-12
Previous handling: No separate semantic rule; the structure was validated by the XSD.
Current handling: Unchanged: the XSD requires NOKAmount.
Affected rulesets: all supported 1.40 rulesets → XSD
Resolution basis: Resolved through the documented source hierarchy: the versioned XSD controls structure.
The FAQ disagrees with the 1.40 XSD about address fields
CONFLICT-ADDRESS-CARDINALITY-001
The FAQ says City and PostalCode are mandatory, while the 1.40 XSD and change history make both optional.
- Disposition
- The versioned 1.40 XSD controls validation.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Skatteetaten: Spørsmål og svar; Dokumentasjon v1.7; SAF-T Financial 1.40 XSD
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: The optional cardinality in the 1.40 XSD was followed conservatively.
Current handling: Unchanged: City and PostalCode are optional in 1.40.
Affected rulesets: all supported 1.40 rulesets → optional
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.
The Owner/AccountID change text mixes minimum and maximum cardinality
CONFLICT-OWNER-CARDINALITY-001
The documentation says AccountID changed from 1 to unbounded while also stating 0..U. The XSD uses 0..U.
- Disposition
- The text is interpreted as changing the maximum from one to unbounded; the minimum remains zero.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Dokumentasjon v1.7; Offisielt register: About SAF-T Financial schema v1.40; SAF-T Financial 1.40 XSD
Discovered: 2026-08-12 · Resolved: 2026-08-12
Previous handling: The XSD cardinality 0..U was followed.
Current handling: Unchanged: the minimum is zero and the maximum is unbounded.
Affected rulesets: all supported 1.40 rulesets → 0..U
Resolution basis: Resolved through the documented source hierarchy and agreement between the XSD and repository note.
The mandatory 2027 format lacks a 2027 grouping list
CONFLICT-GROUPING-YEARS-001
SAF-T 1.40 becomes the only valid format from 2027, but the official repository only contains grouping lists for 2025–2026.
- Disposition
- The published lists apply to SAF-T Financial 1.40 regardless of accounting year. Saftlint uses the current list for every 1.40 file.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Skatteetaten: SAF-T-dokumentasjon; Offisielt SAF-T-register
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: Through 1.40.10, mappings were judged only for 2025–2026; other years emitted a warning.
Current handling: From 1.40.11, the pinned published list snapshot is used for every 1.40 file.
Affected rulesets: <= 1.40.10 → year-limited; >= 1.40.11 → pinned list for all 1.40 files
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.
The technical description and XSD disagree about negative amounts
CONFLICT-SIGNED-AMOUNTS-001
The technical description says signs must be avoided because the debit or credit element expresses direction. The DebitCreditIndicator XSD annotation nevertheless says that a return can produce a negative amount.
- Disposition
- Signs are rejected by `file.numeric.unsigned`; debit and credit elements express the direction.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Teknisk beskrivelse s. 8; SAF-T Financial 1.40 XSD: DebitCreditIndicator
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: Through 1.40.10, an explicit sign emitted a warning.
Current handling: From 1.40.11, signs are rejected; debit and credit elements express direction.
Affected rulesets: <= 1.40.10 → warning; >= 1.40.11 → error
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.
The stated applicability period for standard VAT codes ends in 2021
CONFLICT-VAT-CODE-PERIOD-001
Guide v1.14 describes the standard VAT/tax codes for 2012–2021, while the same XML code list is used in the SAF-T Financial 1.40 material published in 2026 without updated effective dates.
- Disposition
- The published XML list contains the valid standard codes for 1.40 and is used for mapping checks. The list is updated when codes change.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- Standard VAT/Tax Codes v1.14; SAF-T Financial 1.40-kodeliste
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: The published XML list was used as a pinned 1.40 snapshot under a conservative source review.
Current handling: Unchanged: the pinned list is used; changes require a new ruleset.
Affected rulesets: all supported 1.40 rulesets → pinned Standard Tax Codes snapshot
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.
Municipal KOSTRA CSV and XML disagree about codes 452–454
CONFLICT-KOSTRA-452-454
The CSV publishes KA_K/452, KA_K/453 and KA_K/454. The XML labels 452 and 453 as KA_KS and omits 454.
- Disposition
- KA_K/452, KA_K/453 and KA_K/454 are the correct combinations. The KA_KS values in the XML code list are treated as errors.
- Status
- Resolved
- Validation output
- Recorded in the catalogue; not emitted for every file.
- Sources
- KOSTRA_Arts_kommuner.csv; KA_K_Grouping_Category_Code.xml
Discovered: 2026-08-12 · Resolved: 2026-08-21
Previous handling: Through 1.40.10, a conservative union was accepted and KA_K/452–454 emitted a conflict warning.
Current handling: From 1.40.11, KA_K/452–454 are accepted; erroneous KA_KS/452–453 are rejected.
Affected rulesets: <= 1.40.10 → conservative union/warning; >= 1.40.11 → corrected KA_K mapping
Resolution basis: Written clarification from the Norwegian Tax Administration on 21 August 2026; the correspondence is archived by Saftlint.