Menu
Cookbooks
API reference
- Overview
- Companies
- Capabilities
- Measures
- Packages
- Unexplained
- Liquidity forecast
- Portfolio
- Customers
- Invoices
- Collections
- Articles
- Set-offs
- Suppliers
- Supplier invoices
- Supplier payment files
- Bank payments
- Expense claims
- Transactions
- Reconciliation
- Bank accounts
- POS sales
- Webshop orders
- Journal entries
- Voucher gap explanations
- Fiscal periods
- Accounts
- Accrual schedules
- Agreements and commitments
- Tax loss carry-forwards
- Fixed assets
- Documents
- Signing requests
- Company registers
- Capital events
- Owner tax
- Inbox items
- Dimensions
- Employees
- Salary runs
- Reports
- Budgets
- Imports
- Compliance check
- Skatteverket
- Peppol
- Webhooks
- Operations
- Pending operations
- Health
- API key
- Service accounts
Tax loss carry-forwards
The underskottsregister (IL 40 kap.): per fiscal year the deficit brought forward (INK2S 4.14 a), the spärrar after an ownership change (4.14 b, 4.14 c) and the deficit carried to the next year. Save a year with its spärrar computed; the year-end tax adjustments prefill 4.14 a from it.
Endpoints
GET/api/v1/companies/:companyId/tax-loss-carryforwards: The underskottsregister: prior years' tax losses per fiscal year (IL 40 kap.), oldest first.GET/api/v1/companies/:companyId/tax-loss-carryforwards/:id: One fiscal year of the underskottsregister, checked against the year before it.POST/api/v1/companies/:companyId/tax-loss-carryforwards: Save one fiscal year of the underskottsregister: the deficit brought forward, an ownership change and the year's result.
GET /api/v1/companies/:companyId/tax-loss-carryforwards
tax-loss-carryforwards.list · scope reports:read
The underskottsregister: prior years' tax losses per fiscal year (IL 40 kap.), oldest first.
Each fiscal year with its deficit brought forward (INK2S 4.14 a), the spärrar (4.14 b beloppsspärr and similar, 4.14 c koncernbidragsspärr), the result before the deduction, and the deficit carried forward to the next year. Each year is checked against the one before it; warnings say when 4.14 a differs from what the previous year carries forward, when a spärr could not be computed, or when an earlier year changed. Read-only.
Use when: Preparing the tax provision or INK2, or checking how a company's tax losses roll forward.
Don't use for: The tax return itself (GET /reports/ink2) or booking anything (the register books nothing).
Pitfalls
- LOSS_CARRYFORWARD_UNAVAILABLE: the register is not switched on for this company.
- LOSS_CARRYFORWARD_FORM_UNSUPPORTED: only for companies that file INK2 (aktiebolag, ekonomisk förening).
- Amounts are kronor and öre; INK2 takes whole kronor.
Risk: low · Idempotent: yes · Reversible: no · Dry-run supported: no
Response fields
| Name | Type | Description |
|---|---|---|
tax_loss_carryforwards[].tax_loss_carryforward_id | string | |
tax_loss_carryforwards[].fiscal_period_id | string | |
tax_loss_carryforwards[].fiscal_period | object | |
tax_loss_carryforwards[].fiscal_year | number | The calendar year the fiscal year ends in. |
tax_loss_carryforwards[].brought_forward | number | INK2S 4.14 a: the whole deficit brought forward. |
tax_loss_carryforwards[].source | "manual" | "ink2_history" | "tax_assessment" | "computed" | |
tax_loss_carryforwards[].result_before_deficit | number | null | The year's result on INK2S before 4.14; negative for a deficit. |
tax_loss_carryforwards[].group_contributions_received | number | |
tax_loss_carryforwards[].amount_block_reduction | number | INK2S 4.14 b: cut off for good. |
tax_loss_carryforwards[].amount_block_manual | boolean | True when 4.14 b was stated rather than computed. |
tax_loss_carryforwards[].group_block_reduction | number | INK2S 4.14 c: held back by the koncernbidragsspärr this year. |
tax_loss_carryforwards[].group_block_manual | boolean | |
tax_loss_carryforwards[].deductible | number | 4.14 a less 4.14 b and 4.14 c: what the year's tax adjustments deduct. |
tax_loss_carryforwards[].taxable_result | number | null | INK2S 4.15 when positive, 4.16 when negative. |
tax_loss_carryforwards[].carried_forward | number | null | To the next year's 4.14 a (INK2 1.2: 4.16 plus 4.14 c). |
tax_loss_carryforwards[].ownership_change | object | null | |
tax_loss_carryforwards[].group_block_active | boolean | Whether a koncernbidragsspärr covers this year. |
tax_loss_carryforwards[].note | string | null | |
tax_loss_carryforwards[].document_id | string | null | |
tax_loss_carryforwards[].tax_assessment_notice_id | string | null | |
tax_loss_carryforwards[].updated_at | string | null | |
tax_loss_carryforwards[].warnings | object[] |
Example response
{
"data": {
"tax_loss_carryforwards": [
{
"tax_loss_carryforward_id": "5d1e…",
"fiscal_period_id": "7c2b…",
"fiscal_period": {
"name": "Räkenskapsår 2026",
"period_start": "2026-01-01",
"period_end": "2026-12-31"
},
"fiscal_year": 2026,
"brought_forward": 1000000,
"source": "tax_assessment",
"result_before_deficit": 100000,
"group_contributions_received": 0,
"amount_block_reduction": 400000,
"amount_block_manual": false,
"group_block_reduction": 0,
"group_block_manual": false,
"deductible": 600000,
"taxable_result": -500000,
"carried_forward": 500000,
"ownership_change": {
"date": "2026-06-01",
"source": "manual",
"amount_block": true,
"acquisition_cost": 250000,
"capital_contributions": 50000,
"amount_block_limit": 600000,
"group_block": false,
"group_block_last_year": null
},
"group_block_active": false,
"note": null,
"document_id": null,
"tax_assessment_notice_id": "9a4f…",
"updated_at": "2026-10-29T08:00:00.000Z",
"warnings": []
}
]
},
"meta": {
"request_id": "req_…",
"api_version": "2026-05-12"
}
}
GET /api/v1/companies/:companyId/tax-loss-carryforwards/:id
tax-loss-carryforwards.get · scope reports:read
One fiscal year of the underskottsregister, checked against the year before it.
The same year as the list answers, by its tax_loss_carryforward_id. Read-only.
Use when: You hold a tax_loss_carryforward_id and need its figures and warnings.
Don't use for: Finding the year for a fiscal period (list the register instead).
Pitfalls
- LOSS_CARRYFORWARD_UNAVAILABLE: the register is not switched on for this company.
- LOSS_CARRYFORWARD_NOT_FOUND: the id is not this company's.
Risk: low · Idempotent: yes · Reversible: no · Dry-run supported: no
Response fields
| Name | Type | Description |
|---|---|---|
tax_loss_carryforward_id | string | |
fiscal_period_id | string | |
fiscal_period | object | |
fiscal_year | number | The calendar year the fiscal year ends in. |
brought_forward | number | INK2S 4.14 a: the whole deficit brought forward. |
source | "manual" | "ink2_history" | "tax_assessment" | "computed" | |
result_before_deficit | number | null | The year's result on INK2S before 4.14; negative for a deficit. |
group_contributions_received | number | |
amount_block_reduction | number | INK2S 4.14 b: cut off for good. |
amount_block_manual | boolean | True when 4.14 b was stated rather than computed. |
group_block_reduction | number | INK2S 4.14 c: held back by the koncernbidragsspärr this year. |
group_block_manual | boolean | |
deductible | number | 4.14 a less 4.14 b and 4.14 c: what the year's tax adjustments deduct. |
taxable_result | number | null | INK2S 4.15 when positive, 4.16 when negative. |
carried_forward | number | null | To the next year's 4.14 a (INK2 1.2: 4.16 plus 4.14 c). |
ownership_change | object | null | |
group_block_active | boolean | Whether a koncernbidragsspärr covers this year. |
note | string | null | |
document_id | string | null | |
tax_assessment_notice_id | string | null | |
updated_at | string | null | |
warnings | object[] |
Example response
{
"data": {
"tax_loss_carryforward_id": "5d1e…",
"fiscal_period_id": "7c2b…",
"fiscal_period": {
"name": "Räkenskapsår 2026",
"period_start": "2026-01-01",
"period_end": "2026-12-31"
},
"fiscal_year": 2026,
"brought_forward": 1000000,
"source": "tax_assessment",
"result_before_deficit": 100000,
"group_contributions_received": 0,
"amount_block_reduction": 400000,
"amount_block_manual": false,
"group_block_reduction": 0,
"group_block_manual": false,
"deductible": 600000,
"taxable_result": -500000,
"carried_forward": 500000,
"ownership_change": {
"date": "2026-06-01",
"source": "manual",
"amount_block": true,
"acquisition_cost": 250000,
"capital_contributions": 50000,
"amount_block_limit": 600000,
"group_block": false,
"group_block_last_year": null
},
"group_block_active": false,
"note": null,
"document_id": null,
"tax_assessment_notice_id": "9a4f…",
"updated_at": "2026-10-29T08:00:00.000Z",
"warnings": []
},
"meta": {
"request_id": "req_…",
"api_version": "2026-05-12"
}
}
POST /api/v1/companies/:companyId/tax-loss-carryforwards
tax-loss-carryforwards.save · scope bookkeeping:write
Save one fiscal year of the underskottsregister: the deficit brought forward, an ownership change and the year's result.
Inserts or replaces the year by fiscal_period_id. 4.14 b (beloppsspärr: what exceeds 300 % of the utgift less kapitaltillskott, IL 40 kap. 15-16 §§) and 4.14 c (koncernbidragsspärr: the old deficit capped at the year's överskott without koncernbidrag, 40:18) are computed unless stated, and the deficit carried forward follows. The year's tax adjustments then prefill 4.14 a from it (4.14 a less 4.14 b and c). Books nothing. Dry-runnable: ?dry_run=true answers what would be stored.
Use when: Entering the deficit from the previous year's slutskattebesked or INK2, recording an ownership change, or closing a year's figures after bokslut.
Don't use for: Booking tax (the year-end dispositions) or filing INK2 (upload the SRU files at skatteverket.se).
Pitfalls
- LOSS_CARRYFORWARD_UNAVAILABLE: the register is not switched on for this company.
- LOSS_CARRYFORWARD_FORM_UNSUPPORTED: only for companies that file INK2 (aktiebolag, ekonomisk förening).
- FISCAL_PERIOD_NOT_FOUND: the fiscal_period_id is not this company's.
- LOSS_CARRYFORWARD_CHANGE_OUTSIDE_YEAR: the ownership change must be inside the fiscal year it is saved on.
- LOSS_CARRYFORWARD_REDUCTIONS_EXCEED: stated 4.14 b and 4.14 c together exceed 4.14 a.
- Without acquisition_cost the beloppsspärr is not computed and nothing is cut; the answer warns (amount_block_missing_cost).
- Ownership changes are entered by hand; the 40:17 a overriding-reason rule, ackord and konkurs go in as a stated 4.14 b.
Risk: medium · Idempotent: yes · Reversible: yes · Dry-run supported: yes · Stage for approval: yes (?stage=true)
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
dry_run | string | no | true (any case) previews the write without committing it, like the X-Dry-Run: true header. Any other value commits. |
stage | string | no | true stages the write for approval instead of committing it: 202 with the pending operation to approve via POST /pending-operations/{id}/approve. Absent or false commits; other values are 400. A reason in the body (why you propose it, at most 500 characters) is shown to the approver as agent_reason and kept with the decision. |
Request body
| Name | Type | Required | Description |
|---|---|---|---|
fiscal_period_id | string | yes | The fiscal year (fiscal_period_id). |
brought_forward | number | yes | INK2S 4.14 a: the whole deficit brought forward from the previous year, spärrat or not. |
source | "manual" | "ink2_history" | "tax_assessment" | "computed" | yes | Where brought_forward comes from: manual, ink2_history (the previous year's declaration), tax_assessment (the slutskattebesked) or computed (the previous year in this register). |
result_before_deficit | number | null | no | The year's result on INK2S before 4.14 (4.1 to 4.13); negative for a deficit. Omit while unknown. |
group_contributions_received | number | no | Koncernbidrag in that result the koncernbidragsspärr keeps out (40:18-19). Default 0. |
amount_block_reduction | number | null | no | A stated 4.14 b (40:17 a, ackord, konkurs or a checked figure). Omit to compute the beloppsspärr. |
group_block_reduction | number | null | no | A stated 4.14 c. Omit to compute the koncernbidragsspärr. |
ownership_change | object | null | no | An ownership change in this fiscal year that triggers a spärr. Omit when there is none. |
note | string | null | no | |
document_id | string | null | no | An archive document backing the figures (document_id). |
tax_assessment_notice_id | string | null | no | The slutskattebesked the figures come from (tax_assessment_notice_id). |
Response fields
| Name | Type | Description |
|---|---|---|
tax_loss_carryforward_id | string | |
fiscal_period_id | string | |
fiscal_period | object | |
fiscal_year | number | The calendar year the fiscal year ends in. |
brought_forward | number | INK2S 4.14 a: the whole deficit brought forward. |
source | "manual" | "ink2_history" | "tax_assessment" | "computed" | |
result_before_deficit | number | null | The year's result on INK2S before 4.14; negative for a deficit. |
group_contributions_received | number | |
amount_block_reduction | number | INK2S 4.14 b: cut off for good. |
amount_block_manual | boolean | True when 4.14 b was stated rather than computed. |
group_block_reduction | number | INK2S 4.14 c: held back by the koncernbidragsspärr this year. |
group_block_manual | boolean | |
deductible | number | 4.14 a less 4.14 b and 4.14 c: what the year's tax adjustments deduct. |
taxable_result | number | null | INK2S 4.15 when positive, 4.16 when negative. |
carried_forward | number | null | To the next year's 4.14 a (INK2 1.2: 4.16 plus 4.14 c). |
ownership_change | object | null | |
group_block_active | boolean | Whether a koncernbidragsspärr covers this year. |
note | string | null | |
document_id | string | null | |
tax_assessment_notice_id | string | null | |
updated_at | string | null | |
warnings | object[] |
Example request
{
"fiscal_period_id": "7c2b…",
"brought_forward": 1000000,
"source": "tax_assessment",
"tax_assessment_notice_id": "9a4f…",
"result_before_deficit": 100000,
"ownership_change": {
"date": "2026-06-01",
"amount_block": true,
"acquisition_cost": 250000,
"capital_contributions": 50000,
"group_block": false
}
}
Example response
{
"data": {
"tax_loss_carryforward_id": "5d1e…",
"fiscal_period_id": "7c2b…",
"fiscal_period": {
"name": "Räkenskapsår 2026",
"period_start": "2026-01-01",
"period_end": "2026-12-31"
},
"fiscal_year": 2026,
"brought_forward": 1000000,
"source": "tax_assessment",
"result_before_deficit": 100000,
"group_contributions_received": 0,
"amount_block_reduction": 400000,
"amount_block_manual": false,
"group_block_reduction": 0,
"group_block_manual": false,
"deductible": 600000,
"taxable_result": -500000,
"carried_forward": 500000,
"ownership_change": {
"date": "2026-06-01",
"source": "manual",
"amount_block": true,
"acquisition_cost": 250000,
"capital_contributions": 50000,
"amount_block_limit": 600000,
"group_block": false,
"group_block_last_year": null
},
"group_block_active": false,
"note": null,
"document_id": null,
"tax_assessment_notice_id": "9a4f…",
"updated_at": "2026-10-29T08:00:00.000Z",
"warnings": []
},
"meta": {
"request_id": "req_…",
"api_version": "2026-05-12"
}
}