Registry entry

Norway Tax Return for Advance Assessment / Persons Without a Pre-Filled Return — Skattemelding for forhåndsfastsetting og for privatpersoner som ikke har mottatt forhåndsutfylt skattemelding

Skatteetaten's (the Norwegian Tax Administration) paper alternative income-tax return, used by (1) a person requesting forhåndsfastsetting — an advance tax assessment ahead of the ordinary annual cycle, most commonly a foreign worker whose temporary work stay in Norway has ended, or a deceased person's estate (dødsbo) — and (2) any privatperson (private individual) who has not received Skatteetaten's ordinary pre-filled skattemelding by 7 April and is not an electronic user able to file it online. Opens Norway's Taxes vertical: the ordinary, fully pre-filled skattemelding is filed exclusively through Skatteetaten's own BankID/ID-porten-gated online service (skatteetaten.no), which has no unauthenticated field-level equivalent, so this registry follows its own established precedent of modelling the government's own published unauthenticated paper fallback instead (the same approach already used for this jurisdiction's `notification-of-move-within-norway` civic-registration form) when the primary online channel is authentication-gated. This schema models the form's own three-page applicant-facing content in full: the taxpayer identity block, the tax-year and submission-reason selection, the foreign-worker-specific sub-section, the bounded (up to 3 rows each) wages/pension/other-work-deduction/business-income/bank/financial-holdings/real-property/other-assets/other-income tables, the minimum-deduction claim, travel and commuter-accommodation deductions, the submitter block (used when someone other than the taxpayer, e.g. an heir, is filing), and the signature date. It does not model the physical wet-ink signature itself (the source PDF has no fillable AcroForm widgets anywhere — a flat print-and-fill specimen, not an interactive form) or the form's own third-page purely-informational guidance text (rules on dødsbo eligibility, kildeskatt/source-tax consequences of choosing this route, and the deadline/reservation rules for privatpersoner), since none of that is an applicant-entered field. Filing this return is a citizen action performed directly with Skatteetaten (by post to the address printed on the form, or electronically per the form's own stated preference once the taxpayer becomes an electronic user); this schema does not file the return itself, and the live source (skatteetaten.no) is always authoritative. GovSchema is independent and is not affiliated with, endorsed by, or operated by the Kingdom of Norway or Skatteetaten.

Registry entry

no/skatteetaten/skattemelding-for-forhandsfastsetting

Jurisdiction
Norway · national
Version
1.0.0
Verification
draft

Authoritative source "Skattemelding for forhåndsfastsetting og for privatpersoner som ikke har mottatt forhåndsutfylt skattemelding" — a 3-page flat (non-AcroForm) print-and-fill specimen PDF published unauthenticated by Skatteetaten.

Machine access

Registry catalog
registry/index.jsonone record per schema id

Field reference

115 fields, read from the published schema.json, with names, types, requiredness, and validation as the document states them. The live government form remains the authoritative source.

Fields

  • taxpayerFullName string required

    The taxpayer's full name.

    length: 0–200classification: pii
  • taxpayerNationalId string required

    The taxpayer's 11-digit Norwegian fødselsnummer (national identity number) or D-nummer (temporary identification number issued to people without a fødselsnummer, e.g. many first-time foreign workers).

    patternclassification: sensitive-pii
  • taxpayerAddress string required

    The taxpayer's current mailing address.

    length: 0–300classification: pii
  • taxpayerEmail string optional

    The taxpayer's email address.

    patternlength: 0–254classification: pii
  • taxpayerPhone string optional

    The taxpayer's telephone number.

    length: 0–30classification: pii
  • taxYear integer required

    The income year this return (skattemelding) is being filed for.

    range: 2000–2100
  • submissionReason enum required

    Which of the form's three stated submission scenarios applies: a deceased person's estate (Dødsbo), a foreign worker with a temporary work stay in Norway (Utenlandsk arbeidstaker), or another reason not otherwise listed (Annet).

    enum: Dødsbo | Utenlandsk arbeidstaker | Annet
  • requiresAdvanceAssessment boolean required

    Whether the taxpayer is requesting forhåndsfastsetting (an advance/early tax assessment before the ordinary annual cycle), rather than filing this as an ordinary substitute for a pre-filled return.

  • foreignWorkerAddressAbroad string optional

    The foreign worker's home address abroad. Per the form's own guidance (page 3), this section and the fields below are relevant only when Utenlandsk arbeidstaker was selected above and forhåndsfastsetting is being requested for a temporary work stay in Norway that has ended.

    length: 0–300classification: pii
  • foreignWorkerNorwayMunicipality string optional

    The Norwegian municipality (kommune) where the foreign worker stayed during the work period being reported.

    length: 0–200
  • foreignWorkerDaysInNorway integer optional

    The number of days the foreign worker stayed in Norway during the period being reported.

    range: 0–366
  • foreignWorkerSocialSecurityExemption boolean optional

    Whether the foreign worker is claiming exemption from trygdeavgift (Norwegian social security contribution).

  • foreignWorkerStandardDeduction10Percent boolean optional

    Whether the foreign worker is claiming the 10% standard deduction available to certain foreign workers in lieu of itemized deductions.

  • foreignWorkerWorkedAtSeaOrShelf boolean optional

    Whether the foreign worker's work was performed at sea or on the continental shelf (offshore), which carries its own day-count reporting requirement below.

  • foreignWorkerDaysAtSeaOrShelf integer optional

    The number of days the foreign worker worked at sea or on the continental shelf, required whenever the box above is answered Ja.

    range: 0–366
  • wage1Employer string optional

    Row 1 of up to 3 in the "Lønn mv" (wages etc.) table: the employer's name.

    length: 0–200
  • wage1Period string optional

    Row 1 of up to 3 in the "Lønn mv" table: the employment period this wage income covers, as free text (from/to dates as printed on the form).

    length: 0–100
  • wage1Amount number optional

    Row 1 of up to 3 in the "Lønn mv" table: the wage amount in NOK for this employer/period.

    classification: financial
  • wage2Employer string optional

    Row 2 of up to 3 in the "Lønn mv" (wages etc.) table: the employer's name.

    length: 0–200
  • wage2Period string optional

    Row 2 of up to 3 in the "Lønn mv" table: the employment period this wage income covers, as free text (from/to dates as printed on the form).

    length: 0–100
  • wage2Amount number optional

    Row 2 of up to 3 in the "Lønn mv" table: the wage amount in NOK for this employer/period.

    classification: financial
  • wage3Employer string optional

    Row 3 of up to 3 in the "Lønn mv" (wages etc.) table: the employer's name.

    length: 0–200
  • wage3Period string optional

    Row 3 of up to 3 in the "Lønn mv" table: the employment period this wage income covers, as free text (from/to dates as printed on the form).

    length: 0–100
  • wage3Amount number optional

    Row 3 of up to 3 in the "Lønn mv" table: the wage amount in NOK for this employer/period.

    classification: financial
  • pension1Payer string optional

    Row 1 of up to 3 in the "Pensjon" table: the name of the payer of this pension.

    length: 0–200
  • pension1Amount number optional

    Row 1 of up to 3 in the "Pensjon" table: the pension amount in NOK.

    classification: financial
  • pension1Type string optional

    Row 1 of up to 3 in the "Pensjon" table: the type of pension (e.g. retirement, disability).

    length: 0–100
  • pension1Grade string optional

    Row 1 of up to 3 in the "Pensjon" table: the pension grade/percentage (e.g. a partial-disability pension rate).

    length: 0–20
  • pension1Period string optional

    Row 1 of up to 3 in the "Pensjon" table: the period this pension payment covers, as free text.

    length: 0–100
  • pension2Payer string optional

    Row 2 of up to 3 in the "Pensjon" table: the name of the payer of this pension.

    length: 0–200
  • pension2Amount number optional

    Row 2 of up to 3 in the "Pensjon" table: the pension amount in NOK.

    classification: financial
  • pension2Type string optional

    Row 2 of up to 3 in the "Pensjon" table: the type of pension (e.g. retirement, disability).

    length: 0–100
  • pension2Grade string optional

    Row 2 of up to 3 in the "Pensjon" table: the pension grade/percentage (e.g. a partial-disability pension rate).

    length: 0–20
  • pension2Period string optional

    Row 2 of up to 3 in the "Pensjon" table: the period this pension payment covers, as free text.

    length: 0–100
  • pension3Payer string optional

    Row 3 of up to 3 in the "Pensjon" table: the name of the payer of this pension.

    length: 0–200
  • pension3Amount number optional

    Row 3 of up to 3 in the "Pensjon" table: the pension amount in NOK.

    classification: financial
  • pension3Type string optional

    Row 3 of up to 3 in the "Pensjon" table: the type of pension (e.g. retirement, disability).

    length: 0–100
  • pension3Grade string optional

    Row 3 of up to 3 in the "Pensjon" table: the pension grade/percentage (e.g. a partial-disability pension rate).

    length: 0–20
  • pension3Period string optional

    Row 3 of up to 3 in the "Pensjon" table: the period this pension payment covers, as free text.

    length: 0–100
  • claimsMinimumDeduction boolean optional

    Whether the taxpayer is claiming minstefradrag (the standard minimum deduction against employment/pension income). The form notes the deduction amount itself is calculated automatically, so only the yes/no claim is an applicant-entered field.

  • travelExpenses number optional

    Deductible travel expenses (commuting costs) in NOK.

    classification: financial
  • commuterAccommodationExpenses number optional

    Additional deductible living costs incurred while staying away from home as a commuter (pendler), in NOK.

    classification: financial
  • otherWorkDeduction1Description string optional

    Row 1 of up to 3 in the "Andre fradrag knyttet til arbeid/øvrige fradrag" (other work-related/other deductions) table: a free-text description of the deduction claimed.

    length: 0–300
  • otherWorkDeduction1Amount number optional

    Row 1 of up to 3 in the "Andre fradrag knyttet til arbeid/øvrige fradrag" table: the deduction amount in NOK.

    classification: financial
  • otherWorkDeduction2Description string optional

    Row 2 of up to 3 in the "Andre fradrag knyttet til arbeid/øvrige fradrag" (other work-related/other deductions) table: a free-text description of the deduction claimed.

    length: 0–300
  • otherWorkDeduction2Amount number optional

    Row 2 of up to 3 in the "Andre fradrag knyttet til arbeid/øvrige fradrag" table: the deduction amount in NOK.

    classification: financial
  • otherWorkDeduction3Description string optional

    Row 3 of up to 3 in the "Andre fradrag knyttet til arbeid/øvrige fradrag" (other work-related/other deductions) table: a free-text description of the deduction claimed.

    length: 0–300
  • otherWorkDeduction3Amount number optional

    Row 3 of up to 3 in the "Andre fradrag knyttet til arbeid/øvrige fradrag" table: the deduction amount in NOK.

    classification: financial
  • businessType string optional

    The type of self-employment/business activity generating the income reported below.

    length: 0–200
  • businessIncome number optional

    Gross business/self-employment income in NOK.

    classification: financial
  • businessCosts number optional

    Business/self-employment costs in NOK.

    classification: financial
  • businessNetIncome number optional

    Net business/self-employment income in NOK (income minus costs), as the form's own label states.

    classification: financial
  • bank1Name string optional

    Row 1 of up to 3 in the "Bank" table: the name of the bank.

    length: 0–200
  • bank1DepositsOrDebt number optional

    Row 1 of up to 3 in the "Bank" table: the account balance in NOK, as a deposit (asset) or debt (liability).

    classification: financial
  • bank1InterestIncomeOrExpense number optional

    Row 1 of up to 3 in the "Bank" table: interest income or interest expense in NOK for this account.

    classification: financial
  • bank2Name string optional

    Row 2 of up to 3 in the "Bank" table: the name of the bank.

    length: 0–200
  • bank2DepositsOrDebt number optional

    Row 2 of up to 3 in the "Bank" table: the account balance in NOK, as a deposit (asset) or debt (liability).

    classification: financial
  • bank2InterestIncomeOrExpense number optional

    Row 2 of up to 3 in the "Bank" table: interest income or interest expense in NOK for this account.

    classification: financial
  • bank3Name string optional

    Row 3 of up to 3 in the "Bank" table: the name of the bank.

    length: 0–200
  • bank3DepositsOrDebt number optional

    Row 3 of up to 3 in the "Bank" table: the account balance in NOK, as a deposit (asset) or debt (liability).

    classification: financial
  • bank3InterestIncomeOrExpense number optional

    Row 3 of up to 3 in the "Bank" table: interest income or interest expense in NOK for this account.

    classification: financial
  • financial1Description string optional

    Row 1 of up to 3 in the "Finans" table: a free-text description of the financial holding (e.g. shares, fund units).

    length: 0–300
  • financial1ValueAtYearEnd number optional

    Row 1 of up to 3 in the "Finans" table: the holding's value in NOK at year end.

    classification: financial
  • financial1GainDuringYear number optional

    Row 1 of up to 3 in the "Finans" table: realized gain in NOK during the year.

    classification: financial
  • financial1LossDuringYear number optional

    Row 1 of up to 3 in the "Finans" table: realized loss in NOK during the year.

    classification: financial
  • financial1DividendDuringYear number optional

    Row 1 of up to 3 in the "Finans" table: dividend income in NOK received during the year.

    classification: financial
  • financial2Description string optional

    Row 2 of up to 3 in the "Finans" table: a free-text description of the financial holding (e.g. shares, fund units).

    length: 0–300
  • financial2ValueAtYearEnd number optional

    Row 2 of up to 3 in the "Finans" table: the holding's value in NOK at year end.

    classification: financial
  • financial2GainDuringYear number optional

    Row 2 of up to 3 in the "Finans" table: realized gain in NOK during the year.

    classification: financial
  • financial2LossDuringYear number optional

    Row 2 of up to 3 in the "Finans" table: realized loss in NOK during the year.

    classification: financial
  • financial2DividendDuringYear number optional

    Row 2 of up to 3 in the "Finans" table: dividend income in NOK received during the year.

    classification: financial
  • financial3Description string optional

    Row 3 of up to 3 in the "Finans" table: a free-text description of the financial holding (e.g. shares, fund units).

    length: 0–300
  • financial3ValueAtYearEnd number optional

    Row 3 of up to 3 in the "Finans" table: the holding's value in NOK at year end.

    classification: financial
  • financial3GainDuringYear number optional

    Row 3 of up to 3 in the "Finans" table: realized gain in NOK during the year.

    classification: financial
  • financial3LossDuringYear number optional

    Row 3 of up to 3 in the "Finans" table: realized loss in NOK during the year.

    classification: financial
  • financial3DividendDuringYear number optional

    Row 3 of up to 3 in the "Finans" table: dividend income in NOK received during the year.

    classification: financial
  • property1AddressInfo string optional

    Row 1 of up to 3 in the "Eiendom" (real property) table: the property's address.

    length: 0–300classification: pii
  • property1KNr string optional

    Row 1 of up to 3 in the "Eiendom" table: the property's kommunenummer (municipality number), part of the Norwegian matrikkel (cadastre) identifier.

    length: 0–10
  • property1GNr string optional

    Row 1 of up to 3 in the "Eiendom" table: the property's gårdsnummer (farm/holding number), part of the matrikkel identifier.

    length: 0–10
  • property1BNr string optional

    Row 1 of up to 3 in the "Eiendom" table: the property's bruksnummer (usage number), part of the matrikkel identifier.

    length: 0–10
  • property1SNrFNr string optional

    Row 1 of up to 3 in the "Eiendom" table: the property's seksjonsnummer (section number, for a sectioned condominium unit) or festenummer (leasehold number), whichever applies.

    length: 0–10
  • property1Type string optional

    Row 1 of up to 3 in the "Eiendom" table: the type of property (e.g. primary residence, secondary residence, holiday home, rental).

    length: 0–100
  • property1WealthValueShare number optional

    Row 1 of up to 3 in the "Eiendom" table: the taxpayer's share of the property's formuesverdi (assessed wealth-tax value) in NOK.

    classification: financial
  • property2AddressInfo string optional

    Row 2 of up to 3 in the "Eiendom" (real property) table: the property's address.

    length: 0–300classification: pii
  • property2KNr string optional

    Row 2 of up to 3 in the "Eiendom" table: the property's kommunenummer (municipality number), part of the Norwegian matrikkel (cadastre) identifier.

    length: 0–10
  • property2GNr string optional

    Row 2 of up to 3 in the "Eiendom" table: the property's gårdsnummer (farm/holding number), part of the matrikkel identifier.

    length: 0–10
  • property2BNr string optional

    Row 2 of up to 3 in the "Eiendom" table: the property's bruksnummer (usage number), part of the matrikkel identifier.

    length: 0–10
  • property2SNrFNr string optional

    Row 2 of up to 3 in the "Eiendom" table: the property's seksjonsnummer (section number, for a sectioned condominium unit) or festenummer (leasehold number), whichever applies.

    length: 0–10
  • property2Type string optional

    Row 2 of up to 3 in the "Eiendom" table: the type of property (e.g. primary residence, secondary residence, holiday home, rental).

    length: 0–100
  • property2WealthValueShare number optional

    Row 2 of up to 3 in the "Eiendom" table: the taxpayer's share of the property's formuesverdi (assessed wealth-tax value) in NOK.

    classification: financial
  • property3AddressInfo string optional

    Row 3 of up to 3 in the "Eiendom" (real property) table: the property's address.

    length: 0–300classification: pii
  • property3KNr string optional

    Row 3 of up to 3 in the "Eiendom" table: the property's kommunenummer (municipality number), part of the Norwegian matrikkel (cadastre) identifier.

    length: 0–10
  • property3GNr string optional

    Row 3 of up to 3 in the "Eiendom" table: the property's gårdsnummer (farm/holding number), part of the matrikkel identifier.

    length: 0–10
  • property3BNr string optional

    Row 3 of up to 3 in the "Eiendom" table: the property's bruksnummer (usage number), part of the matrikkel identifier.

    length: 0–10
  • property3SNrFNr string optional

    Row 3 of up to 3 in the "Eiendom" table: the property's seksjonsnummer (section number, for a sectioned condominium unit) or festenummer (leasehold number), whichever applies.

    length: 0–10
  • property3Type string optional

    Row 3 of up to 3 in the "Eiendom" table: the type of property (e.g. primary residence, secondary residence, holiday home, rental).

    length: 0–100
  • property3WealthValueShare number optional

    Row 3 of up to 3 in the "Eiendom" table: the taxpayer's share of the property's formuesverdi (assessed wealth-tax value) in NOK.

    classification: financial
  • otherAssets1Description string optional

    Row 1 of up to 3 in the "Annen formue" (other assets/wealth) table: a free-text description of the asset.

    length: 0–300
  • otherAssets1Amount number optional

    Row 1 of up to 3 in the "Annen formue" table: the asset's value in NOK.

    classification: financial
  • otherAssets2Description string optional

    Row 2 of up to 3 in the "Annen formue" (other assets/wealth) table: a free-text description of the asset.

    length: 0–300
  • otherAssets2Amount number optional

    Row 2 of up to 3 in the "Annen formue" table: the asset's value in NOK.

    classification: financial
  • otherAssets3Description string optional

    Row 3 of up to 3 in the "Annen formue" (other assets/wealth) table: a free-text description of the asset.

    length: 0–300
  • otherAssets3Amount number optional

    Row 3 of up to 3 in the "Annen formue" table: the asset's value in NOK.

    classification: financial
  • otherIncome1Description string optional

    Row 1 of up to 3 in the "Andre inntekter" (other income) table: a free-text description of the income.

    length: 0–300
  • otherIncome1Amount number optional

    Row 1 of up to 3 in the "Andre inntekter" table: the income amount in NOK.

    classification: financial
  • otherIncome2Description string optional

    Row 2 of up to 3 in the "Andre inntekter" (other income) table: a free-text description of the income.

    length: 0–300
  • otherIncome2Amount number optional

    Row 2 of up to 3 in the "Andre inntekter" table: the income amount in NOK.

    classification: financial
  • otherIncome3Description string optional

    Row 3 of up to 3 in the "Andre inntekter" (other income) table: a free-text description of the income.

    length: 0–300
  • otherIncome3Amount number optional

    Row 3 of up to 3 in the "Andre inntekter" table: the income amount in NOK.

    classification: financial
  • submitterFullName string optional

    The full name of the person submitting the return, if different from the taxpayer (e.g. an heir filing on behalf of a deceased person's estate, or a representative).

    length: 0–200classification: pii
  • submitterNationalId string optional

    The submitter's 11-digit Norwegian fødselsnummer or D-nummer.

    patternclassification: sensitive-pii
  • submitterAddress string optional

    The submitter's mailing address.

    length: 0–300classification: pii
  • submitterEmail string optional

    The submitter's email address.

    patternlength: 0–254classification: pii
  • submitterPhone string optional

    The submitter's telephone number.

    length: 0–30classification: pii
  • signatureDate date optional

    The date the form is signed. The form's own signature line ("Signatur") is a wet-ink signature with no corresponding fillable field, so only the date is modelled, matching this registry's established precedent for flat, non-interactive specimen forms.

Verification record

Candidate selection

GOV-3288 ("GovSchema Standard Research") is the latest firing of this registry's recurring standard-research routine. CATALOG.md's "By Jurisdiction" table showed Norway at 4/6 (Passport and Taxes open). Four parallel scouting agents were dispatched this cycle across ~30 open jurisdiction/vertical gaps; Norway's Taxes gap came back as the strongest, cleanest candidate of the batch:

  • NO Passport: re-confirmed a dead end. politiet.no's passport application flow is a 100% in-person appointment/biometric process; a fresh HTML grep for .pdf links across the booking flow found none.
  • NO Taxes: Skatteetaten's ordinary pre-filled skattemelding is filed exclusively through the BankID/ID-porten-gated online service, but Skatteetaten separately publishes, unauthenticated, a paper fallback for (a) forhåndsfastsetting requests and (b) privatpersoner who have not received their pre-filled return by 7 April — a live, no-login, no-CAPTCHA PDF.

A second candidate surfaced by the same research pass — Slovakia's 002-ziadost-o-narodne-vizum-SK.pdf ("national visa") — was independently re-checked and rejected before authoring: fetched both the national-visa and Schengen-visa PDFs from the same MZV SR document folder (via a Wayback Machine mirror, since live mzv.sk sits behind a Cloudflare challenge) and extracted both with pdfjs-dist. The two are a field-for-field match — same 33-item EU harmonized questionnaire, same checkboxes, same VIS/Schengen Borders Code prose in the declaration section — differing only in title. This is the same "national visa form reuses the EU harmonized Schengen template" pattern this registry has already found and declined for Czechia, Portugal, and Poland (see CATALOG.md's "Confirmed dead ends" section); it is recorded there as a fresh confirmation, not authored as a new schema.

Source

  • URL: https://www.skatteetaten.no/globalassets/skjema/alltid/ikke-forhandsutfylt-skattemelding.pdf
  • Fetched fresh this session with a plain HTTP GET (realistic browser User-Agent, no cookies/session): HTTP 200, 733,378 bytes, genuine %PDF-1.4 header, no login/CAPTCHA/WAF gate. Re-fetched a second time independently; both downloads share sha256 f21f20dc81095119e0d83981d0c7e85a068ad8b09aa61c3431aff48210c38bdc, confirming the source is stable and not dynamically varied per-request.
  • The form carries no printed edition code/date (unlike this jurisdiction's notification-of-move-within-norway RF-1400B sibling, which prints "RF1400B - 2019" in its footer); it is Skatteetaten's current live download as of this cycle, cited by its own on-page title rather than a form number.

Extraction technique

pdfjs-dist v3.11.174 (legacy/build/pdf.js, from a disposable /tmp install) was used two ways:

  1. page.getTextContent() per page — recovered every section heading, column label, and the full guidance/Veiledning prose on page 3, read in full to confirm which content is applicant-entered vs. purely informational.
  2. page.getAnnotations() per page0 Widget annotations across all 3 pages. This is a flat, non-interactive print-and-fill specimen, not an AcroForm — confirmed structurally, not just by visual inspection.
  3. Rendered to PNG at 2x scale via node-canvas (page.render() into a canvas, then canvas.toBuffer('image/png')) for all 3 pages, then visually inspected. This was necessary because the flat PDF's extracted text alone does not reveal table structure (column boundaries, how many blank rows a repeating table actually prints) — only the rendered image shows, for example, that "Lønn mv" prints exactly 3 blank rows under its 3 column headers, not an open-ended table.

Field mapping (fields[] only; no documents[] — the form requests no

attachments)

115 fields, organized by the form's own section headings, in this order:

  1. Den skattepliktige (5 fields) — taxpayer name, fødselsnummer/ D-nummer, address, email, phone.
  2. Skattemeldingen gjelder for (3 fields) — taxYear (integer), submissionReason (enum: Dødsbo / Utenlandsk arbeidstaker / Annet, matching the form's own three radio options exactly), and requiresAdvanceAssessment (boolean, the Ja/Nei "Krever forhåndsfastsetting" choice).
  3. Om utenlandsk arbeidstaker (7 fields) — gated with visibleWhen submissionReason equals "Utenlandsk arbeidstaker", since the section's own heading and the page-3 guidance text ("Utenlandsk arbeidstaker med midlertidig arbeidsopphold i Norge — Merk at du kun kan kreve forhåndsfastsetting hvis du...") tie it explicitly to that submission reason. foreignWorkerDaysAtSeaOrShelf additionally carries requiredWhen foreignWorkerWorkedAtSeaOrShelf equals true (and the same visibleWhen, for consistency with its sibling fields in the same block) — a real conditional dependency between two boxes on the form itself (the day-count box has no header of its own and only makes sense once "Arbeidet på sjø/sokkel" is answered Ja).
  4. Lønn mv (9 fields) — a 3-column, 3-row wages table, modelled as wage1Employer/wage1Period/wage1Amount through wage3..., following this registry's established bounded-repeating-group convention (e.g. dk/cpr/notification-of-entry's entrantN...). All rows — including row 1 — are required: false: unlike dk/cpr's "always reporting at least one person" premise, a taxpayer filing this form for capital income alone could have zero wage rows to report.
  5. Pensjon (15 fields) — 5-column, 3-row table (pension1Payer/ pension1Amount/pension1Type/pension1Grade/pension1Period ×3), same convention, all optional.
  6. Minstefradrag / Reiseutgifter / Merkostnader (3 fields) — claimsMinimumDeduction (boolean; the form notes the deduction amount itself "beregnes automatisk," so only the claim checkbox is an applicant-entered field), travelExpenses, commuterAccommodationExpenses.
  7. Andre fradrag knyttet til arbeid/øvrige fradrag (6 fields) — 2-column, 3-row table, same convention.
  8. Næringsinntekt (4 fields) — businessType/businessIncome/ businessCosts/businessNetIncome. Unlike every other table on this form, the rendered image shows only one row of cells under this section's two-column header (no 3-row grid) — modelled as a single non-repeating entry, not businessN..., since there is no second/third row printed on the source to justify a bounded-3 pattern here.
  9. Bank (9 fields) — 3-column, 3-row table (bank1Name/ bank1DepositsOrDebt/bank1InterestIncomeOrExpense ×3).
  10. Finans (15 fields) — 5-column, 3-row table (financial1Description/ ...ValueAtYearEnd/...GainDuringYear/...LossDuringYear/ ...DividendDuringYear ×3).
  11. Eiendom (21 fields) — 7-column, 3-row table (property1AddressInfo/ KNr/GNr/BNr/SNrFNr/Type/WealthValueShare ×3). K.nr./G.nr./ B.nr./S.nr. / F.nr. are the four components of the Norwegian matrikkel (cadastre) property identifier (kommunenummer/gårdsnummer/ bruksnummer/seksjonsnummer-or-festenummer); modelled as short strings rather than tightly-patterned integers, since the flat print form gives no ruled/boxed digit count to infer a precise length or numeric-only constraint from (unlike an AcroForm widget's maxLen), and a festenummer in particular is not guaranteed to be purely numeric.
  12. Annen formue (6 fields) and 13. Andre inntekter (6 fields) — both 2-column, 3-row tables, same convention.
  13. Innsendt av (5 fields) — mirrors "Den skattepliktige"'s 5 fields exactly (name/fødselsnummer/address/email/phone), for the case where someone other than the taxpayer files (e.g. an heir filing for a dødsbo). All optional, since the section is blank whenever the taxpayer files their own return.
  14. Signatur (1 field) — signatureDate only. The signature line itself has no fillable widget on this flat PDF (consistent with every other flat/non-AcroForm specimen already in this registry, e.g. the EU harmonized visa forms); no field models the wet-ink signature.

Every field's sourceRef cites its exact section heading and column label as printed on the form, in the applicant-facing language (Norwegian) the form itself uses, matching this registry's convention of quoting the source's own printed text rather than a translated paraphrase.

Conformance run

Two valid scenarios plus six single-violation mutation-control fixtures were authored with synthetic (non-real) data and checked against a disposable from-scratch checker script (/tmp/no-tax-gen/checker.mjs, not reused from any prior cycle) that evaluates every field's required/requiredWhen/visibleWhen/ validation (pattern, enum, minimum/maximum, minLength/ maxLength):

  • foreign-worker-sea-shelf-valid.json — a foreign worker requesting advance assessment, working at sea/shelf with the day-count filled in (exercises the requiredWhen path positively). 0 errors.
  • privatperson-full-income-picture-valid.json — an ordinary privatperson filing (not a foreign worker, so the foreign-worker block is correctly absent/not visible), with at least one entry in every repeating table (wages, pension, bank, financial, property, other assets, other income) plus business income and a submitter block. 0 errors.
  • invalid-missing-taxpayer-name.json — drops the unconditionally-required taxpayerFullName. 1 error.
  • invalid-missing-tax-year.json — drops the unconditionally-required taxYear. 1 error.
  • invalid-malformed-national-id.jsontaxpayerNationalId set to a 6-digit string, violating the 11-digit pattern. 1 error.
  • invalid-submission-reason-enum.jsonsubmissionReason set to "Ferie", not one of the form's three printed options. 1 error.
  • invalid-malformed-email.jsontaxpayerEmail set to a string with no @. 1 error.
  • invalid-sea-shelf-requiredwhen-violation.json — starts from the sea/shelf-valid fixture and drops foreignWorkerDaysAtSeaOrShelf, while foreignWorkerWorkedAtSeaOrShelf stays true — exercises the requiredWhen path negatively. 1 error (foreignWorkerDaysAtSeaOrShelf: required but missing), confirming the conditional-requiredness logic is correctly enforced, not silently skipped.

All eight fixtures produced exactly the error count listed above — no false positives on the two valid fixtures, no false negatives (more than the intended 1 error) on any mutation-control fixture. Both node tools/validate.mjs and node tools/validate-ajv.mjs also pass for the schema document itself; registry-index.json was regenerated via npm run build-index and the full registry re-validated at 501/501 documents passing (up from 500 before this addition).

Disclosed judgment calls

  • No documents[] entries. Unlike this jurisdiction's notification-of-move-within-norway sibling (which requires an identification copy), this form's own text requests no attachment — Skatteetaten's guidance describes it as a self-contained paper submission, so documents is correctly absent rather than an empty array-with-nothing-to-say.
  • Bounded-3 repeating groups for every table except Næringsinntekt are inferred from the rendered image's visible row count (3 blank rows under every column header), not from any printed instruction stating a maximum; the form gives no indication of what to do if a taxpayer has a 4th employer or bank account. This is disclosed here rather than invented as a stated cap, following this registry's "spec precision over cleverness" convention of not asserting a constraint the source does not actually state.
  • Matrikkel identifier fields (KNr/GNr/BNr/SNrFNr) are modelled as short free-text strings rather than integers or a tightly-derived digit-count pattern, for the reason given in the field-mapping section above (no ruled boxes to measure on a flat, non-AcroForm PDF).
  • fødselsnummer/D-nummer pattern (^[0-9]{11}$) follows this registry's existing Norwegian precedent (no/skatteetaten/notification-of-move-within-norway), even though a D-nummer is structurally a fødselsnummer with the first digit offset by 4 — both share the same 11-digit printed format the form itself asks for, and the form's own label ("Fødselsnummer/D-nummer") treats them as one field, not two.
  • taxYear bounds (20002100) are a deliberately generous sanity range, not a source-stated constraint (the form prints a blank "Årstall" box with no printed range), consistent with this registry's convention of using wide, clearly-labeled-as-generic bounds when the source itself does not state one.

View the raw record (VERIFICATION.md)

Version history

  • 1.0.0 draft latest this page has verification record schema.json

Independent and non-affiliated

GovSchema is an independent, open-source project. This reference is not produced, reviewed, or endorsed by Skatteetaten (the Norwegian Tax Administration) or any government. The authoritative source is always the live government form and its official instructions.