Norwegian SAF-T VAT codes: mapping and testing
In SAF-T, the accounting product's own TaxCode and the official StandardTaxCode are different identifiers. The export preserves the internal code and states which standard VAT code it maps to.
TaxCode is the product's own code
TaxCode identifies the VAT code used by the accounting product. It may, for example, be named OUTPUT25. Transaction lines using the code must resolve to the same code in the file's TaxTable.
StandardTaxCode is the official mapping
The official 1.40 XSD states that VAT codes are mapped to a standard code and that NA is used when mapping is not possible. The XSD restricts the value's shape; a separate content check is needed to establish that a numeric code is present in the official list.
<TaxCodeDetails>
<TaxCode>OUTPUT25</TaxCode>
<Description>Output VAT, regular rate</Description>
<TaxPercentage>25</TaxPercentage>
<Country>NO</Country>
<StandardTaxCode>3</StandardTaxCode>
</TaxCodeDetails>This example illustrates the XML mapping. It does not determine the correct VAT treatment for a particular transaction.
Examples from the standard list
| StandardTaxCode | Description in the official list |
|---|---|
0 | No VAT treatment for purchases |
1 | Deductible domestic input VAT, regular rate |
3 | Output VAT, regular rate |
5 | Domestic sales and withdrawals exempt from VAT |
NA | Used when mapping to a standard code is not possible |
This is a small selection, not a complete code list or tax guide. Always verify the current official list for the relevant format and financial year.
What to test in the export
- Every internal VAT code has a stable
TaxCodeinTaxTable. - VAT codes on transaction lines resolve to an entry in the file when
TaxTableis present. TaxTypeaccompaniesTaxCodeon the transaction line and has the valueMVA.StandardTaxCodeis present in the official list or isNA.Compensationuses the XML valuetrueorfalse, andtrueis combined only with a standard code marked for compensation.
Common exporter defects
- The internal code is copied into
StandardTaxCodeeven though it is absent from the standard list. - A transaction line references a
TaxCodemissing fromTaxTable. - The exporter assumes that an XSD-valid code is necessarily a known standard code.
- The compensation flag uses the wrong lexical form or is combined with an incompatible code.
Rules and official sources
mapping.tax.standard-code.knownledger.line.tax-code.existsledger.line.tax-type.requiredmapping.tax.compensation.compatible
Norwegian Tax Administration documentation and standard VAT codes ↗
Technical description for SAF-T Financial 1.40 ↗
Official sources reviewed 24 August 2026.