Private/SruMapping.ps1
|
# BAS account to Skatteverket SRU field code (fältkod) mapping for the INK2 # income tax return (aktiebolag). Used when exporting INFO.SRU + BLANKETTER.SRU. # # Sources: # * Account ranges: BAS kopplingstabell "INK2_P1_intervall" (bas.se/kontoplaner/sru/). # * Field codes, rows, printed signs and data types: Skatteverket's # fältnamnstabeller INK2_, INK2R_ and INK2S_SKV2002-33-01-24-04 (package # "Ändringar från och med 2025P4", Teknisk information om filöverföring). # # Amounts are written as they appear on the form: the row's printed sign (+/-) # carries the direction, so costs, deductions and a loss are positive numbers. # A negative amount is only written to go against the printed sign (e.g. a tax # income on 3.25). Rows split into a (+) and a (-) field get the field that # matches the net amount. Balance sheet rows have no printed sign. function Get-SruAccountRules { <# .SYNOPSIS Returns the ordered BAS-account-range to SRU-code rules for INK2R. .DESCRIPTION Each rule has Min/Max (inclusive BAS account range) and a Kind: Asset balance sheet asset, reported debit-positive in Sru Debt equity or liability, reported credit-positive in Sru Income income statement line; the net of all accounts matched by the rule (income positive) goes to Sru when positive and to MinusSru (as a positive amount) when negative. A rule with only Sru or only MinusSru reports the net against that field's printed sign. Rules are ordered so that more specific ranges are matched before the wider ranges that contain them. An optional AltSru on Asset/Debt rules is used, per account, when the balance has the opposite sign (an asset in credit or a liability in debit), so a debit balance on 2510 Skatteskulder is reported as a receivable rather than a negative liability. #> [CmdletBinding()] param() $r = { param($Min, $Max, $Kind, $Sru, $MinusSru = $null, $AltSru = $null) [PSCustomObject]@{ Min = $Min; Max = $Max; Kind = $Kind; Sru = $Sru; MinusSru = $MinusSru; AltSru = $AltSru } } @( # --- Balance sheet: assets (class 1) --------------------------------- & $r 1088 1088 Asset 7202 & $r 1000 1099 Asset 7201 & $r 1120 1129 Asset 7216 & $r 1180 1189 Asset 7217 & $r 1100 1199 Asset 7214 & $r 1280 1289 Asset 7217 & $r 1200 1299 Asset 7215 & $r 1310 1319 Asset 7230 & $r 1320 1329 Asset 7232 & $r 1336 1337 Asset 7233 & $r 1330 1339 Asset 7231 & $r 1346 1347 Asset 7235 & $r 1340 1349 Asset 7232 & $r 1350 1359 Asset 7233 & $r 1360 1369 Asset 7234 & $r 1370 1399 Asset 7235 & $r 1400 1429 Asset 7241 & $r 1440 1449 Asset 7242 & $r 1450 1469 Asset 7243 & $r 1470 1479 Asset 7245 & $r 1480 1489 Asset 7246 & $r 1490 1499 Asset 7244 & $r 1573 1573 Asset 7261 & $r 1560 1579 Asset 7252 & $r 1500 1599 Asset 7251 & $r 1620 1629 Asset 7262 # Skattekontot (163x): a credit balance is a skatteskuld (2.49). & $r 1630 1639 Asset 7261 -AltSru 7368 & $r 1673 1673 Asset 7261 & $r 1660 1679 Asset 7252 & $r 1600 1699 Asset 7261 & $r 1700 1799 Asset 7263 & $r 1860 1869 Asset 7270 & $r 1800 1899 Asset 7271 & $r 1900 1999 Asset 7281 # --- Balance sheet: equity and liabilities (class 2) ----------------- & $r 2000 2089 Debt 7301 & $r 2090 2099 Debt 7302 & $r 2100 2139 Debt 7321 & $r 2150 2159 Debt 7322 & $r 2140 2199 Debt 7323 & $r 2210 2219 Debt 7331 & $r 2230 2239 Debt 7332 & $r 2200 2299 Debt 7333 & $r 2300 2329 Debt 7350 & $r 2330 2339 Debt 7351 & $r 2340 2359 Debt 7352 & $r 2373 2373 Debt 7354 & $r 2360 2379 Debt 7353 & $r 2380 2399 Debt 7354 & $r 2410 2419 Debt 7361 & $r 2420 2429 Debt 7362 & $r 2430 2439 Debt 7363 & $r 2440 2449 Debt 7365 & $r 2450 2459 Debt 7364 & $r 2473 2473 Debt 7369 & $r 2460 2479 Debt 7367 & $r 2480 2489 Debt 7360 & $r 2492 2492 Debt 7366 & $r 2400 2499 Debt 7369 # Skatteskulder (25xx): a debit balance is a receivable (2.21). & $r 2500 2599 Debt 7368 -AltSru 7261 & $r 2874 2879 Debt 7367 & $r 2600 2899 Debt 7369 & $r 2900 2999 Debt 7370 # --- Income statement (class 3-8) ------------------------------------ & $r 3000 3799 Income 7410 & $r 3800 3899 Income 7412 & $r 3900 3999 Income 7413 & $r 4910 4929 Income $null 7511 & $r 4960 4969 Income $null 7512 & $r 4980 4989 Income $null 7512 & $r 4900 4999 Income 7411 7510 # BAS allows 40xx-47xx on either 3.5 or 3.6; PSLedger reports them on 3.5. & $r 4000 4899 Income $null 7511 & $r 5000 6999 Income $null 7513 & $r 7000 7699 Income $null 7514 & $r 7740 7749 Income $null 7516 & $r 7790 7799 Income $null 7516 & $r 7700 7899 Income $null 7515 & $r 7900 7999 Income $null 7517 & $r 8070 8089 Income $null 7521 & $r 8000 8099 Income 7414 7518 & $r 8113 8113 Income 7423 7530 & $r 8118 8118 Income 7423 7530 & $r 8123 8123 Income 7423 7530 & $r 8133 8133 Income 7423 7530 & $r 8170 8189 Income $null 7521 & $r 8100 8199 Income 7415 7519 & $r 8270 8289 Income $null 7521 & $r 8200 8299 Income 7416 7520 & $r 8370 8389 Income $null 7521 & $r 8300 8399 Income 7417 & $r 8400 8499 Income $null 7522 & $r 8810 8810 Income 7420 7525 & $r 8811 8811 Income $null 7525 & $r 8819 8819 Income 7420 & $r 8820 8829 Income 7419 & $r 8830 8839 Income $null 7524 & $r 8840 8849 Income $null 7527 & $r 8850 8859 Income 7421 7526 & $r 8860 8899 Income 7422 7527 & $r 8900 8989 Income $null 7528 # 899x (Årets resultat) is the result-appropriation transfer to equity, # not a P&L line, and is intentionally left unmapped. ) } function Get-SruFieldDefinitions { <# .SYNOPSIS Returns the INK2, INK2R and INK2S field definitions: form, row (ruta), SRU field code, printed sign and description. .DESCRIPTION Sign is '+' or '-' for rows that add to or subtract from the result (the form's printed sign) and '*' for information-only rows. NonNegative marks fields of Skatteverket's type Numeriskt_B, which do not accept a negative amount. Rows that the form splits into a (+) and a (-) field carry the suffix in Box (e.g. '3.15+'). Transcribed from INK2*_SKV2002-33-01-24-04 (valid from 2025P4). #> [CmdletBinding()] param() $data = @' INK2|1.1|7104|*|B|Överskott av näringsverksamhet INK2|1.2|7114|*|B|Underskott av näringsverksamhet INK2R|2.1|7201|*|A|Koncessioner, patent, licenser, varumärken, hyresrätter, goodwill och liknande rättigheter INK2R|2.2|7202|*|A|Förskott avseende immateriella anläggningstillgångar INK2R|2.3|7214|*|A|Byggnader och mark INK2R|2.4|7215|*|A|Maskiner, inventarier och övriga materiella anläggningstillgångar INK2R|2.5|7216|*|A|Förbättringsutgifter på annans fastighet INK2R|2.6|7217|*|A|Pågående nyanläggningar och förskott avseende materiella anläggningstillgångar INK2R|2.7|7230|*|A|Andelar i koncernföretag INK2R|2.8|7231|*|A|Andelar i intresseföretag och gemensamt styrda företag INK2R|2.9|7233|*|A|Ägarintressen i övriga företag och andra långfristiga värdepappersinnehav INK2R|2.10|7232|*|A|Fordringar hos koncern-, intresse- och gemensamt styrda företag INK2R|2.11|7234|*|A|Lån till delägare eller närstående INK2R|2.12|7235|*|A|Fordringar hos övriga företag som det finns ett ägarintresse i och andra långfristiga fordringar INK2R|2.13|7241|*|A|Råvaror och förnödenheter INK2R|2.14|7242|*|A|Varor under tillverkning INK2R|2.15|7243|*|A|Färdiga varor och handelsvaror INK2R|2.16|7244|*|A|Övriga lagertillgångar INK2R|2.17|7245|*|A|Pågående arbeten för annans räkning INK2R|2.18|7246|*|A|Förskott till leverantörer INK2R|2.19|7251|*|A|Kundfordringar INK2R|2.20|7252|*|A|Fordringar hos koncern-, intresse- och gemensamt styrda företag INK2R|2.21|7261|*|A|Fordringar hos övriga företag som det finns ett ägarintresse i och övriga fordringar INK2R|2.22|7262|*|A|Upparbetad men ej fakturerad intäkt INK2R|2.23|7263|*|A|Förutbetalda kostnader och upplupna intäkter INK2R|2.24|7270|*|A|Andelar i koncernföretag (kortfristiga placeringar) INK2R|2.25|7271|*|A|Övriga kortfristiga placeringar INK2R|2.26|7281|*|A|Kassa, bank och redovisningsmedel INK2R|2.27|7301|*|A|Bundet eget kapital INK2R|2.28|7302|*|A|Fritt eget kapital INK2R|2.29|7321|*|A|Periodiseringsfonder INK2R|2.30|7322|*|A|Ackumulerade överavskrivningar INK2R|2.31|7323|*|A|Övriga obeskattade reserver INK2R|2.32|7331|*|A|Avsättningar för pensioner enligt tryggandelagen INK2R|2.33|7332|*|A|Övriga avsättningar för pensioner och liknande förpliktelser INK2R|2.34|7333|*|A|Övriga avsättningar INK2R|2.35|7350|*|A|Obligationslån INK2R|2.36|7351|*|A|Checkräkningskredit (långfristig) INK2R|2.37|7352|*|A|Övriga skulder till kreditinstitut (långfristiga) INK2R|2.38|7353|*|A|Skulder till koncern-, intresse- och gemensamt styrda företag (långfristiga) INK2R|2.39|7354|*|A|Skulder till övriga företag som det finns ett ägarintresse i och övriga skulder (långfristiga) INK2R|2.40|7360|*|A|Checkräkningskredit (kortfristig) INK2R|2.41|7361|*|A|Övriga skulder till kreditinstitut (kortfristiga) INK2R|2.42|7362|*|A|Förskott från kunder INK2R|2.43|7363|*|A|Pågående arbeten för annans räkning (skuld) INK2R|2.44|7364|*|A|Fakturerad men ej upparbetad intäkt INK2R|2.45|7365|*|A|Leverantörsskulder INK2R|2.46|7366|*|A|Växelskulder INK2R|2.47|7367|*|A|Skulder till koncern-, intresse- och gemensamt styrda företag (kortfristiga) INK2R|2.48|7369|*|A|Skulder till övriga företag som det finns ett ägarintresse i och övriga skulder (kortfristiga) INK2R|2.49|7368|*|A|Skatteskulder INK2R|2.50|7370|*|A|Upplupna kostnader och förutbetalda intäkter INK2R|3.1|7410|+|A|Nettoomsättning INK2R|3.2+|7411|+|A|Förändring av lager av produkter i arbete, färdiga varor och pågående arbete (+) INK2R|3.2-|7510|-|A|Förändring av lager av produkter i arbete, färdiga varor och pågående arbete (-) INK2R|3.3|7412|+|A|Aktiverat arbete för egen räkning INK2R|3.4|7413|+|A|Övriga rörelseintäkter INK2R|3.5|7511|-|A|Råvaror och förnödenheter INK2R|3.6|7512|-|A|Handelsvaror INK2R|3.7|7513|-|A|Övriga externa kostnader INK2R|3.8|7514|-|A|Personalkostnader INK2R|3.9|7515|-|A|Av- och nedskrivningar av materiella och immateriella anläggningstillgångar INK2R|3.10|7516|-|A|Nedskrivningar av omsättningstillgångar utöver normala nedskrivningar INK2R|3.11|7517|-|A|Övriga rörelsekostnader INK2R|3.12+|7414|+|A|Resultat från andelar i koncernföretag (+) INK2R|3.12-|7518|-|A|Resultat från andelar i koncernföretag (-) INK2R|3.13+|7415|+|A|Resultat från andelar i intresseföretag och gemensamt styrda företag (+) INK2R|3.13-|7519|-|A|Resultat från andelar i intresseföretag och gemensamt styrda företag (-) INK2R|3.14+|7423|+|A|Resultat från övriga företag som det finns ett ägarintresse i (+) INK2R|3.14-|7530|-|A|Resultat från övriga företag som det finns ett ägarintresse i (-) INK2R|3.15+|7416|+|A|Resultat från övriga finansiella anläggningstillgångar (+) INK2R|3.15-|7520|-|A|Resultat från övriga finansiella anläggningstillgångar (-) INK2R|3.16|7417|+|A|Övriga ränteintäkter och liknande resultatposter INK2R|3.17|7521|-|A|Nedskrivningar av finansiella anläggningstillgångar och kortfristiga placeringar INK2R|3.18|7522|-|A|Räntekostnader och liknande resultatposter INK2R|3.19|7524|-|A|Lämnade koncernbidrag INK2R|3.20|7419|+|A|Mottagna koncernbidrag INK2R|3.21|7420|+|B|Återföring av periodiseringsfond INK2R|3.22|7525|-|B|Avsättning till periodiseringsfond INK2R|3.23+|7421|+|A|Förändring av överavskrivningar (+) INK2R|3.23-|7526|-|A|Förändring av överavskrivningar (-) INK2R|3.24+|7422|+|A|Övriga bokslutsdispositioner (+) INK2R|3.24-|7527|-|A|Övriga bokslutsdispositioner (-) INK2R|3.25|7528|-|A|Skatt på årets resultat INK2R|3.26|7450|+|B|Årets resultat, vinst INK2R|3.27|7550|-|B|Årets resultat, förlust INK2S|4.1|7650|+|B|Årets resultat, vinst INK2S|4.2|7750|-|B|Årets resultat, förlust INK2S|4.3a|7651|+|A|Bokförda kostnader som inte ska dras av: skatt på årets resultat INK2S|4.3b|7652|+|A|Bokförda kostnader som inte ska dras av: nedskrivning av finansiella tillgångar INK2S|4.3c|7653|+|A|Bokförda kostnader som inte ska dras av: andra bokförda kostnader INK2S|4.4a|7751|-|A|Kostnader som ska dras av men inte ingår i resultatet: lämnade koncernbidrag INK2S|4.4b|7764|-|A|Kostnader som ska dras av men inte ingår i resultatet: andra ej bokförda kostnader INK2S|4.5a|7752|-|A|Bokförda intäkter som inte ska tas upp: ackordsvinster INK2S|4.5b|7753|-|A|Bokförda intäkter som inte ska tas upp: utdelning INK2S|4.5c|7754|-|A|Bokförda intäkter som inte ska tas upp: andra bokförda intäkter INK2S|4.6a|7654|+|B|Beräknad schablonintäkt på periodiseringsfonder vid beskattningsårets ingång INK2S|4.6b|7668|+|A|Beräknad schablonintäkt på fondandelar ägda vid kalenderårets ingång INK2S|4.6c|7655|+|A|Mottagna koncernbidrag INK2S|4.6d|7673|+|A|Uppräknat belopp vid återföring av periodiseringsfond INK2S|4.6e|7665|+|A|Andra ej bokförda intäkter INK2S|4.7a|7755|-|B|Avyttring av delägarrätter: bokförd vinst INK2S|4.7b|7656|+|B|Avyttring av delägarrätter: bokförd förlust INK2S|4.7c|7756|-|B|Avyttring av delägarrätter: uppskov med kapitalvinst enligt blankett N4 INK2S|4.7d|7657|+|B|Avyttring av delägarrätter: återfört uppskov med kapitalvinst enligt blankett N4 INK2S|4.7e|7658|+|B|Avyttring av delägarrätter: kapitalvinst för beskattningsåret INK2S|4.7f|7757|-|B|Avyttring av delägarrätter: kapitalförlust som ska dras av INK2S|4.8a|7758|-|B|Andel i handelsbolag: bokförd intäkt/vinst INK2S|4.8b|7659|+|B|Andel i handelsbolag: skattemässigt överskott enligt N3B INK2S|4.8c|7660|+|B|Andel i handelsbolag: bokförd kostnad/förlust INK2S|4.8d|7759|-|B|Andel i handelsbolag: skattemässigt underskott enligt N3B INK2S|4.9+|7666|+|B|Skattemässig justering för avskrivningar på byggnader m.m. (+) INK2S|4.9-|7765|-|B|Skattemässig justering för avskrivningar på byggnader m.m. (-) INK2S|4.10+|7661|+|B|Skattemässig justering vid avyttring av näringsfastighet och näringsbostadsrätt (+) INK2S|4.10-|7760|-|B|Skattemässig justering vid avyttring av näringsfastighet och näringsbostadsrätt (-) INK2S|4.11|7761|-|B|Skogs-/substansminskningsavdrag (blankett N8) INK2S|4.12|7662|+|A|Återföringar vid avyttring av fastighet INK2S|4.13+|7663|+|B|Andra skattemässiga justeringar av resultatet (+) INK2S|4.13-|7762|-|B|Andra skattemässiga justeringar av resultatet (-) INK2S|4.14a|7763|-|B|Outnyttjat underskott från föregående år INK2S|4.14b|7671|+|A|Reduktion av outnyttjat underskott med hänsyn till beloppsspärr, ackord eller konkurs INK2S|4.14c|7672|+|A|Reduktion av outnyttjat underskott med hänsyn till koncernbidragsspärr, fusionsspärr m.m. INK2S|4.15|7670|+|B|Överskott (flyttas till p. 1.1) INK2S|4.16|7770|-|B|Underskott (flyttas till p. 1.2) INK2S|4.17|8020|*|A|Värdeminskningsavdrag på byggnader vid beskattningsårets utgång INK2S|4.18|8021|*|A|Värdeminskningsavdrag på markanläggningar vid beskattningsårets utgång INK2S|4.19|8023|*|B|Vid restvärdesavskrivning: återförda belopp INK2S|4.20|8026|*|B|Lån från aktieägare (fysisk person) vid räkenskapsårets utgång INK2S|4.21|8022|*|A|Pensionskostnader (som ingår i p. 3.8) INK2S|4.22|8028|*|B|Koncernbidragsspärrat och fusionsspärrat underskott m.m. '@ foreach ($line in ($data -split "`r?`n")) { if (-not $line) { continue } $f = $line -split '\|' [PSCustomObject]@{ Form = $f[0] Box = $f[1] Code = [int]$f[2] Sign = $f[3] NonNegative = ($f[4] -eq 'B') Description = $f[5] } } } function Resolve-SruInk2sField { <# .SYNOPSIS Resolves an INK2S field given either its SRU code ('7652') or its row on the form ('4.3b', '4.13+'), returning the field definition. #> [CmdletBinding()] param ( [Parameter(Mandatory)] [string]$Key, [Parameter(Mandatory)] [object[]]$Fields ) $k = ($Key -replace '\s', '').ToLowerInvariant() $ink2s = @($Fields | Where-Object Form -eq 'INK2S') if ($k -match '^\d{4}$') { $field = $ink2s | Where-Object { $_.Code -eq [int]$k } } else { $field = $ink2s | Where-Object { $_.Box.ToLowerInvariant() -eq $k } if (-not $field) { $pair = @($ink2s | Where-Object { $_.Box.ToLowerInvariant().TrimEnd('+', '-') -eq $k }) if ($pair.Count -gt 1) { throw "INK2S row '$Key' has a (+) and a (-) field; write '$($k)+' or '$($k)-'." } $field = $pair | Select-Object -First 1 } } if (-not $field) { throw "Unknown INK2S field '$Key'. Use a row on the form (e.g. '4.3b') or its SRU code (e.g. '7652')." } if ($field.Code -in 7650, 7750) { throw "INK2S $($field.Box) (årets resultat) is taken from the books and cannot be supplied as an adjustment." } $field } function Get-SruTaxAdjustmentRules { <# .SYNOPSIS Returns the BAS-account-range rules that derive INK2S tax adjustments automatically from the trial balance. .DESCRIPTION Each rule has Min/Max (inclusive BAS account range) and the INK2S field the net balance of the range goes to. DebitSru receives a net debit balance (a cost to add back) and CreditSru a net credit balance (an income to deduct); either may be $null. Assumption is $true for rules that rest on a judgement rather than on the account's own definition; the export warns when such a rule produces an amount. The unambiguous rules cover BAS accounts whose name states the tax treatment (skattefria ränteintäkter, ej avdragsgilla kostnader, ränta på skattekontot). The assumption rule treats write-downs (827x) and reversals of write-downs (828x) of shares in other companies as non-deductible and non-taxable, which holds for kapitalplaceringsaktier but not for lageraktier. #> [CmdletBinding()] param() @( # 4.3c Andra bokförda kostnader (ej avdragsgilla) [PSCustomObject]@{ Min = 6072; Max = 6072; DebitSru = 7653; CreditSru = $null; Assumption = $false; Label = 'Representation, ej avdragsgill' } [PSCustomObject]@{ Min = 6982; Max = 6982; DebitSru = 7653; CreditSru = $null; Assumption = $false; Label = 'Föreningsavgifter, ej avdragsgilla' } [PSCustomObject]@{ Min = 6992; Max = 6992; DebitSru = 7653; CreditSru = $null; Assumption = $false; Label = 'Övriga externa kostnader, ej avdragsgilla' } [PSCustomObject]@{ Min = 7622; Max = 7622; DebitSru = 7653; CreditSru = $null; Assumption = $false; Label = 'Sjuk- och hälsovård, ej avdragsgill' } [PSCustomObject]@{ Min = 7632; Max = 7632; DebitSru = 7653; CreditSru = $null; Assumption = $false; Label = 'Personalrepresentation, ej avdragsgill' } [PSCustomObject]@{ Min = 8423; Max = 8423; DebitSru = 7653; CreditSru = $null; Assumption = $false; Label = 'Räntekostnader för skatter och avgifter' } # 4.5c Andra bokförda intäkter (ej skattepliktiga) [PSCustomObject]@{ Min = 8314; Max = 8314; DebitSru = $null; CreditSru = 7754; Assumption = $false; Label = 'Skattefria ränteintäkter' } # 4.3b Nedskrivning av finansiella tillgångar / 4.5c återförda nedskrivningar [PSCustomObject]@{ Min = 8270; Max = 8289; DebitSru = 7652; CreditSru = 7754; Assumption = $true; Label = 'Ned- och uppskrivningar av andelar i andra företag' } ) } function Resolve-SruAccountRule { <# .SYNOPSIS Returns the first SRU rule whose range contains the given BAS account, or $null when the account is not classified. #> [CmdletBinding()] param ( [Parameter(Mandatory)] [int]$Account, [Parameter(Mandatory)] [object[]]$Rules ) foreach ($rule in $Rules) { if ($Account -ge $rule.Min -and $Account -le $rule.Max) { return $rule } } return $null } function ConvertTo-SruOrgNr { <# .SYNOPSIS Normalises an organisation number to the 12-digit form Skatteverket's SRU files require (SSÅÅMMDDNNNK, no hyphen). A 10-digit company number is prefixed with the century marker '16'. #> [CmdletBinding()] param ( [Parameter(Mandatory)] [string]$OrgNumber ) $digits = ($OrgNumber -replace '\D', '') switch ($digits.Length) { 12 { return $digits } 10 { return "16$digits" } default { throw "Cannot format organisation number '$OrgNumber' for SRU: expected 10 or 12 digits, got $($digits.Length)." } } } function Get-SruPeriodSuffix { <# .SYNOPSIS Returns the SRU blankett period suffix for the month a fiscal year ends in: P1 (January-April), P2 (May-June), P3 (July-August) or P4 (September-December). The income year in the blankett type string is the year the fiscal year ends. #> [CmdletBinding()] param ( [Parameter(Mandatory)] [int]$EndMonth ) if ($EndMonth -ge 1 -and $EndMonth -le 4) { return 'P1' } if ($EndMonth -ge 5 -and $EndMonth -le 6) { return 'P2' } if ($EndMonth -ge 7 -and $EndMonth -le 8) { return 'P3' } return 'P4' } |