Menu
Cookbooks
API reference
Skatteverket
Read what Skatteverket has on file for the company, such as filed VAT declarations and their decisions.
Endpoints
GET/api/v1/companies/:companyId/skatteverket/vat-declarations: Read a filed momsdeklaration (submitted and/or decided) from Skatteverket.
GET /api/v1/companies/:companyId/skatteverket/vat-declarations
skatteverket.vat_declarations.get · scope compliance:read
Read a filed momsdeklaration (submitted and/or decided) from Skatteverket.
Fetches the momsdeklaration for one period as Skatteverket has it on file: submitted is the declaration as filed (SKV /inlamnat), decided is Skatteverket's beslut (SKV /beslutat). Either section is null when nothing is on file for the period (or when excluded via ?state=). Query params: period_type (monthly|quarterly|yearly), year, period (1-12 monthly, 1-4 quarterly, 1 yearly), optional state (submitted|decided|both, default both). Requires the company to have an active Skatteverket connection (any member's BankID connection, or a verified ombud grant). Live read against Skatteverket, not a cached copy.
Use when: You want to verify what was actually filed for a VAT period, compare a period against last year's filed declaration, or check whether Skatteverket has decided a period.
Don't use for: Computing the declaration from the books (use the VAT report), or filing: submission is a separate BankID-signed flow.
Pitfalls
- This is a live Skatteverket read: it fails with SKATTEVERKET_NOT_CONNECTED (401) when the company has neither a member's BankID connection (made under Installningar) nor a verified ombud grant, and the response reflects SKV's state, not the books. Personal BankID sessions expire after ~1 hour by design, so an expired connection is normal: ask the user to reconnect; only a person can, so do not retry until they confirm.
- submitted=null and decided=null with HTTP 200 means "nothing on file for the period": it is not an error.
- A submitted declaration can lack a beslut for days: poll decided separately rather than assuming both appear together.
- redovisningsperiod is SKV's YYYYMM format (the period's LAST month): quarterly period 1 is 03, not 01.
Risk: low · Idempotent: yes · Reversible: no · Dry-run supported: no
Query parameters
| Name | Type | Required |
|---|---|---|
period_type | "monthly" | "quarterly" | "yearly" | yes |
year | number | yes |
period | number | yes |
state | "submitted" | "decided" | "both" | no |
Response fields
| Name | Type |
|---|---|
redovisare | string |
redovisningsperiod | string |
submitted | unknown (optional) |
decided | unknown (optional) |
Example request
{
"period_type": "quarterly",
"year": 2026,
"period": 1
}
Example response
{
"data": {
"redovisare": "165560000167",
"redovisningsperiod": "202603",
"submitted": {
"mervardesskattTillfalle": "2026-04-10"
},
"decided": null
},
"meta": {
"request_id": "req_…",
"api_version": "2026-05-12"
}
}