SAF-T Cash Register XML Reference

The SAF-T Cash Register file produced by the Norwegian localization conforms to the namespace urn:StandardAuditFile-Taxation-CashRegister:NO. The reference below describes which BC field populates each XML element so that integrators can trace data from the export back to the source.

File-level layout

The file has the following nesting:

auditfile
├── header
│   ├── fiscalYear, startDate, endDate, curCode
│   ├── dateCreated, timeCreated
│   ├── softwareDesc, softwareVersion, softwareCompanyName, auditfileVersion
│   └── auditfileSender
└── company
    ├── streetAddress, postalAddress
    ├── vatCodeDetails / vatCodeDetail
    ├── employees / employee
    ├── articles / article
    ├── basics / basic
    └── location
        ├── streetAddress
        ├── cashregister
        │   ├── event
        │   └── cashtransaction
        │       ├── ctLine (sales)
        │       ├── ctLine (income/expense)
        │       ├── rounding
        │       ├── payment
        │       ├── signature
        │       ├── keyVersion
        │       ├── voidTransaction
        │       └── trainingID

Header elements

Element Source
fiscalYear Start year of the date filter, regardless of whether the range spans one year or several. When no date filter is set, the value is startYear-endYear across all transactions in the company.
startDate / endDate Minimum and maximum value from the date filter on LSC Transaction Header.
curCode From the transaction or, if blank, from the LCY Code on General Ledger Setup.
dateCreated / timeCreated Today / current time at export.
softwareDesc Fixed string LS Nav.
softwareVersion From LSC BO Utils.getLSRetailVersion().
softwareCompanyName Fixed string LS Retail ehf.
auditfileVersion Fixed string 1.0.

Master data elements

Element Source
vatCodeDetail One per LSC POS VAT Code record. standardVatCode comes from the Fiscal ID field (see Predefined Basic ID).
employee One per LSC Staff record. Holds ID, dates, name, and roleType from Employment Type.
article One per LSC Retail Product Group record. artGroupID comes from Outbound Code.
basic (type 05 / 11 / 12 / 13) Line item types (05), transaction types (11), tender types (12 — see Tender Type Outbound Code), and POS commands with an Outbound Code (13).

Transaction-level elements

Element Source / notes
cashtransaction / nr Transaction No. on LSC Transaction Header.
transAmntIn / transAmntEx Gross / net amount including income and expense entries.
amntTp (header and ctLine) D if net amount is greater than zero; C if net amount is zero or less. See Mixed Sale and Refund.
ctLine (sales) One per LSC Trans. Sales Entry. Line type Item. Holds article ID, quantity, gross / net amount, VAT code, VAT amount.
ctLine (income/expense) One per LSC Trans. Inc./Exp. Entry. Line type Income/Expence. Quantity is always 1.
rounding / roundingAmnt Rounded field on the transaction header.
payment One per LSC Trans. Payment Entry. Contains the tender type, paid amount, staff, currency code (falls back to LCY Code), exchange rate, and payment reference.
signature Base64-encoded digital signature from LSC Transaction Signature. See Digital Signature.
keyVersion The certificate thumbprint of the key that produced the signature.
voidTransaction true when the transaction's Entry Status is Voided; otherwise false.
trainingID true when the transaction's Entry Status is Training; otherwise false. See Training Receipt.

POS log events

Each LSC POS Log record within the date range is exported as one event element under the corresponding cashregister. The fields are taken directly:

  • eventID and eventType = POS Command.
  • transID = Receipt No.
  • empID = Staff ID.
  • eventDate / eventTime = Entry Date / Entry Time.

File-naming convention

The export saves the file as:

SAF-T Cash Register_<VAT Reg No>_<timestamp>.xml

where timestamp is the current date and time stripped of separators. The download is delivered through the browser; no copy is retained on the BC service tier.

See also

Reporting - Exporting Audit File

 

Predefined Basic ID