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