Norway SAF-T debit and credit mismatch: locate the posting

Open this fictional error →Local rule-only example; choose Check locally. Official XSD validity remains unverified.

Use the source line and XML path to fix the ERP generator, then inspect each validation layer.

Start inside one transaction

NO-BALANCE means the recognized base debit amounts and base credit amounts do not agree within a Transaction. The independent preflight adds the Amount field inside each DebitAmount or CreditAmount. It uses decimal integers with up to six decimal places, avoiding binary floating-point comparisons. A CurrencyAmount has a different role and is not silently converted or substituted for Amount. Currency conversion and the accuracy of exchange rates remain outside this scope.

Our fictional example has one debit of 10.00 and one credit of 10.00. The balance-error fixture changes the credit to 9.00. The report points to the Transaction source line and XML path. It also detects that TotalCredit no longer equals the recognized credit postings. Neither message determines which posting should change. Review the intended accounting event in the source ERP before regenerating the export.

Count transactions rather than lines

NumberOfEntries describes transactions across the journals. The teaching example has one transaction and two posting lines. Setting the declared count to two triggers NO-COUNT even though there are two Line elements. A split debit with two lines of 5.00 can still balance one credit of 10.00 without changing the transaction count. The tool reports transaction, line and account counts separately to help spot this distinction.

NO-DEBIT-CREDIT identifies a posting line with both sides or neither side. NO-AMOUNT identifies an absent, negative or unsupported decimal amount. Our partial parser accepts bounded decimal values, not an arbitrary numeric expression. An unknown profile or mismatched country prevents business validation. A malformed XML file fails the XML layer and does not create an apparent accounting result.

Follow identifiers back to master data

NO-REFERENCE means a supplied AccountID, CustomerID or SupplierID has no matching identifier in the corresponding master set in this file. These are internal keys; they do not prove a party’s registered identity. Journal identifiers must be unique across journals. Transaction identifiers are checked within their journal, and RecordID values within their transaction. The same transaction key in different journals is therefore not automatically rejected.

Correct missing master records or generator references deliberately. Do not change account keys merely to make a report pass. The check also requires a grouping category and code on each account, but does not ship standard-account descriptions or verify membership in the official mapping lists. A balanced journal with valid references can still contain the wrong account or an incorrect business event.

Keep the balance result beside the schema result

Passing NO-BALANCE only establishes equality of the amounts recognized in this transaction. It does not establish that the export has all mandatory schema fields. For the separate XSD test, UnexpectedForTest is inserted after GeneralLedgerEntries and rejected by our own teaching subset. That deliberately small schema is independent of Skatteetaten and cannot prove Norwegian official validity. The default sample runs the accounting preflight with its XSD layer visibly unexecuted.

For your own authorised original schema, preserve the source download and its notices. The local report records the file hash and supplied provenance so you can identify exactly which bytes were checked. A different schema may accept different structures even when the balance result is unchanged. Download the JSON or CSV report to retain these separate results for your migration investigation; file contents and financial identifiers stay in this browser tab. Existing Pro and Team batch limits apply when comparing several exports, with a failed file reported separately.

Primary sources and scope

Skatteetaten version documentation and the official 1.30 schema / official 1.40 schema were rechecked on 6 November 2026. The repository rights notice restricts standard-account list use. Public access and a free reference validator do not establish blanket commercial rights. No official schemas or protected rules are distributed here. Each supplied artifact requires concrete sufficient processing rights and notices.

These checks establish no tax assessment, audit acceptance, actual submission or full financial correctness. Opening and closing balances, foreign-currency conversion, official list membership and SourceDocuments business rules remain unchecked. SAF-T delivery is commonly requested for inspection; this guide does not advertise a mandatory monthly return.

Norway SAF-T validator → · Developer scope