NAV Refund Claims

NAV refund claims (inntektsmeldinger) allow employers to claim reimbursement from NAV (the Norwegian Labour and Welfare Administration) for employee absences. The API supports preparing and submitting claims for sick pay, parental leave, and care days.

Claims are created from existing employee leaves and submitted to NAV via the Altinn/Maskinporten integration.

Endpoints

List Claims

GET /api/v2/payroll/nav-claims

Retrieves a paginated list of NAV refund claims.

Query Parameters

Parameter Type Required Description
client_account_id integer Yes Filter by client account
business_partner_id integer No Filter by employee
claim_type string No Filter by claim type: SYKEPENGER, FORELDREPENGER, or PLEIEPENGER
status string No Filter by status: DRAFT, SUBMITTED, ACCEPTED, or REJECTED

Response

{
  "data": [
    {
      "id": 1,
      "created_by_id": 7,
      "created_at": "2024-06-01T10:00:00Z",
      "client_account_id": 7,
      "business_partner_id": 56,
      "leave_id": 12,
      "claim_type": "SYKEPENGER",
      "status": "SUBMITTED",
      "monthly_income": "45000.000000",
      "first_absence_date": "2024-05-15",
      "arbeidsforhold_id": "1",
      "payload": { },
      "response": { },
      "error_details": null,
      "submitted_at": "2024-06-01T10:05:00Z",
      "submitted_by_id": 7,
      "nav_case_id": "NAV-2024-12345"
    }
  ],
  "meta": {
    "page": 1,
    "pages": 1,
    "per_page": 50,
    "records": 1
  }
}

Get Claim

GET /api/v2/payroll/nav-claims/{id}

Retrieves a specific NAV refund claim by ID.

Response

Returns a single claim object (same shape as the list response items).


Create Claim

POST /api/v2/payroll/nav-claims

Prepares a new NAV refund claim from an existing employee leave record. The claim is created in DRAFT status with a pre-calculated monthly income and NAV payload.

Request Body

Field Type Required Description
leave_id integer Yes ID of the employee leave to create a claim for

Example Request

{
  "leave_id": 12
}

Response

Returns the created claim with status 201 Created.

How Monthly Income is Calculated

The system calculates the employee’s average monthly income by looking at the 3 most recent posted payroll runs before the leave start date. It sums all taxable earnings from those runs and divides by 3.

Leave Type to Claim Type Mapping

Leave Type Claim Type
SICK_SELF_CERTIFIED SYKEPENGER
SICK_DOCTOR_CERTIFIED SYKEPENGER
PARENTAL FORELDREPENGER
CARE_DAYS PLEIEPENGER

Submit Claim

POST /api/v2/payroll/nav-claims/{id}/submit

Submits a draft claim to NAV. The claim must be in DRAFT status. After submission, the status is updated to either SUBMITTED (success) or REJECTED (failure).

Response

Returns the updated claim object.

Submission Results

  • Success: Status is set to SUBMITTED, nav_case_id is populated with the NAV case reference, and submitted_at is recorded.
  • Failure: Status is set to REJECTED and error_details contains the error information from the NAV API.

Example Error Details (on rejection)

{
  "error_details": {
    "status_code": 422,
    "message": "Validation failed",
    "response_body": "..."
  }
}

Attributes

Attribute Type Description
id integer Unique identifier (read-only)
created_by_id integer ID of the creating user (read-only)
created_at datetime Creation timestamp (read-only)
client_account_id integer ID of the client account (read-only)
business_partner_id integer ID of the employee (read-only)
leave_id integer ID of the associated employee leave (read-only)
claim_type string Type of claim: SYKEPENGER, FORELDREPENGER, or PLEIEPENGER (read-only)
status string Current status: DRAFT, SUBMITTED, ACCEPTED, or REJECTED (read-only)
monthly_income decimal Calculated average monthly income (read-only)
first_absence_date date First day of absence (read-only)
arbeidsforhold_id string Employment relationship ID for NAV (read-only)
payload object The NAV inntektsmelding request payload (read-only)
response object The NAV API response (read-only)
error_details object Error information if submission failed (read-only)
submitted_at datetime When the claim was submitted (read-only)
submitted_by_id integer ID of the user who submitted the claim (read-only)
nav_case_id string NAV case/claim reference number (read-only)

Claim Types

Value Norwegian Description
SYKEPENGER Sykepenger Sick pay refund
FORELDREPENGER Foreldrepenger Parental leave pay refund
PLEIEPENGER Pleiepenger Care/nursing days pay refund

Claim Statuses

Value Description
DRAFT Claim prepared but not yet submitted to NAV
SUBMITTED Successfully submitted to NAV, awaiting processing
ACCEPTED Accepted by NAV
REJECTED Rejected by NAV or submission failed

Error Responses

Status Code Description
400 Invalid request (missing leave_id, claim not in DRAFT status)
403 Forbidden (no access to client account)
404 Claim or employee leave not found

Business Rules

  1. Claims are created from existing employee leave records — you cannot create a claim without a leave
  2. All claim fields are read-only after creation; the system calculates income and builds the NAV payload automatically
  3. Only claims in DRAFT status can be submitted
  4. The employer sick pay period (arbeidsgiverperioden) is 16 days and is automatically included in sick pay claims