Husforsikring (Home Insurance)
This documentation is under development and may be updated.
API Documentation for Home Insurance integration with the Consumer Council's insurance service.
Request from Consumer Council
When the Consumer Council sends a request to the insurance company, it will be in JSON format. This request contains information about the person to be insured, as well as details about the home to be insured.
Example Request
{
"id": "f7a28936-8a58-49a5-a989-76c8a752dbdf",
"person": {
"pid": "01019612345",
"firstName": "Ole",
"lastName": "Nordmann",
"addresses": [
{
"source": "National Registry",
"streetName": "Ole Nordmanns Gate 1",
"postalCode": "0123",
"postalLocation": "OSLO"
}
],
"memberships": [
{
"membershipId": "MEMB-001",
"membershipName": "Tekna"
}
]
},
"offerRequest": [
{
"id": "haus-123456",
"type": "hus",
"data": {
"id": "hus-tjorvagen-12",
"coverage": "standard",
"addons": ["vannstopper", "sopp_og_råte", "naturskade"],
"residence": [
{
"address": {
"source": "National Registry",
"streetName": "Tjorvågen 12",
"postalCode": "4352",
"postalLocation": "KLEPPE"
},
"bathroom": {
"totalBathrooms": "2",
"oldestLastRenovated": "2019",
"olderThanFiftyYears": false
},
"basement": {
"present": true,
"arealLiving": "45",
"totalRooms": "2"
},
"fireAlarm": {
"present": true,
"fgApproved": true
},
"water": {
"waterAlarm": {
"present": true,
"fgApproved": true,
"automaticResponseAlarm": false
},
"stopper": {
"present": true,
"automatic": true,
"fgApproved": true
},
"waterCheckLastFiveYears": true,
"checkValve": true,
"pipeInPipe": true,
"pipesLastRenovated": "2019"
},
"burglarAlarm": {
"present": true,
"fgApproved": true
},
"electric": {
"passedInspection": true,
"inspectedWithThermography": true,
"lastInspected": "2022",
"lastRenovated": "2019",
"automaticCircuitBreaker": true
},
"renovation": {
"renovated": true,
"roofAngle": "38",
"roofCondition": true,
"oldestRoofSection": "2015",
"buildingStandard": "god",
"buildingCondition": "meget_god",
"needsRehab": false
},
"damages": {
"totalLastThreeYears": "0",
"pest": "0",
"otherDamages": "0",
"deductibleFromDamage": "0",
"waterDamage": "0",
"buildingMoistureProblem": false
},
"type": "enebolig",
"inhabited": true,
"inhabitedByOwner": true,
"pant": true,
"fullValue": "4500000",
"constructionYear": "1995",
"listed": false,
"buildingMaterial": "tre",
"totalUnits": "1",
"rentingStatus": false,
"partiallyRented": false,
"totalRentedUnits": "0",
"rentedToFamily": false,
"rentedToBusiness": false,
"Areal": "180",
"usedAreal": "180",
"livedSpacedAreal": "135",
"notLivedSpacesAreal": "45",
"moreThan50PercentEmpty": false,
"stoveGuard": true,
"totalResidents": "4"
}
]
}
}
],
"requestAt": "2024-10-16T12:06:00Z"
}
Request Field Descriptions
Root Level Fields
| Field | Type | Description |
|---|---|---|
id | string | The unique ID for the request |
requestAt | string | The date and time when the request was sent |
Person Object
| Field | Type | Description |
|---|---|---|
pid | string | The personal identification number of the person to be insured. Example: "01019612345" |
firstName | string | The first name of the person to be insured. Example: "Ole" |
lastName | string | The last name of the person to be insured. Example: "Nordmann" |
addresses | array | Information about the address of the person to be insured |
memberships | array | Information about various memberships of the person to be insured |
Address Object
| Field | Type | Description |
|---|---|---|
source | string | Source of the address. Example: "National Registry" |
streetName | string | Street name of the address. Example: "Ole Nordmanns Gate 1" |
postalCode | string | Postal code of the address. Example: "0123" |
postalLocation | string | Postal location of the address. Example: "OSLO" |
Membership Object
| Field | Type | Description |
|---|---|---|
membershipId | string | The ID of the membership. Example: "MEMB-001" |
membershipName | string | The name of the membership. Example: "Tekna" |
Offer Request Object
| Field | Type | Description |
|---|---|---|
id | string | The unique ID for the offer request. Example: "haus-123456" |
type | string | Type of product. Value: "hus" |
data | object | Data for the offer |
Offer Data Object
| Field | Type | Description |
|---|---|---|
id | string | Unique identifier for the home. Example: "hus-tjorvagen-12" |
coverage | string | Coverage level for the insurance. Values: "standard", "pluss", "ekstra" |
addons | array | Additional services. Example: ["vannstopper", "sopp_og_råte", "naturskade"] |
residence | array | Array of residence information objects |
Residence Object
The residence object contains detailed information about the property to be insured.
Property Address
| Field | Type | Description |
|---|---|---|
address.source | string | Source of the address. Example: "National Registry" |
address.streetName | string | Street name. Example: "Tjorvågen 12" |
address.postalCode | string | Postal code. Example: "4352" |
address.postalLocation | string | Postal location. Example: "KLEPPE" |
Basic Property Information
| Field | Type | Description |
|---|---|---|
type | string | Type of housing. Example: "enebolig" |
inhabited | boolean | Whether the home is inhabited |
inhabitedByOwner | boolean | Whether the home is inhabited by the owner |
pant | boolean | Whether there is a mortgage on the property |
fullValue | string | Full value of the property in NOK. Example: "4500000" |
constructionYear | string | Year the building was constructed. Example: "1995" |
listed | boolean | Whether the building is listed/heritage protected |
buildingMaterial | string | Main building material. Values: "tre", "mur", "betong" |
totalUnits | string | Total number of units in the building. Example: "1" |
totalResidents | string | Total number of residents. Example: "4" |
stoveGuard | boolean | Whether a stove guard is installed |
Area Information
| Field | Type | Description |
|---|---|---|
Areal | string | Total area in square meters. Example: "180" |
usedAreal | string | Usable area in square meters. Example: "180" |
livedSpacedAreal | string | Living space area in square meters. Example: "135" |
notLivedSpacesAreal | string | Non-living space area in square meters. Example: "45" |
moreThan50PercentEmpty | boolean | Whether more than 50% of the property is empty |
Rental Information
| Field | Type | Description |
|---|---|---|
rentingStatus | boolean | Whether the property is being rented out |
partiallyRented | boolean | Whether the property is partially rented |
totalRentedUnits | string | Number of rented units. Example: "0" |
rentedToFamily | boolean | Whether rented to family members |
rentedToBusiness | boolean | Whether rented for business purposes |
Bathroom Object
| Field | Type | Description |
|---|---|---|
totalBathrooms | string | Total number of bathrooms. Example: "2" |
oldestLastRenovated | string | Year the oldest bathroom was last renovated. Example: "2019" |
olderThanFiftyYears | boolean | Whether any bathroom is older than 50 years |
Basement Object
| Field | Type | Description |
|---|---|---|
present | boolean | Whether the building has a basement |
arealLiving | string | Living area in basement in square meters. Example: "45" |
totalRooms | string | Total number of rooms in basement. Example: "2" |
Fire Alarm Object
| Field | Type | Description |
|---|---|---|
present | boolean | Whether a fire alarm is installed |
fgApproved | boolean | Whether the fire alarm is FG-approved |
Water Object
The water object contains information about water-related safety measures.
Water Alarm
| Field | Type | Description |
|---|---|---|
waterAlarm.present | boolean | Whether a water alarm is installed |
waterAlarm.fgApproved | boolean | Whether the water alarm is FG-approved |
waterAlarm.automaticResponseAlarm | boolean | Whether the alarm has automatic emergency response |
Water Stopper
| Field | Type | Description |
|---|---|---|
stopper.present | boolean | Whether a water stopper is installed |
stopper.automatic | boolean | Whether the stopper automatically shuts off water |
stopper.fgApproved | boolean | Whether the stopper is FG-approved |
Pipes and Plumbing
| Field | Type | Description |
|---|---|---|
waterCheckLastFiveYears | boolean | Whether a water check was performed in the last 5 years |
checkValve | boolean | Whether a check valve/backflow preventer is installed |
pipeInPipe | boolean | Whether pipe-in-pipe system is installed |
pipesLastRenovated | string | Year the pipes were last renovated. Example: "2019" |
Burglar Alarm Object
| Field | Type | Description |
|---|---|---|
present | boolean | Whether a burglar alarm is installed |
fgApproved | boolean | Whether the burglar alarm is FG-approved |
Electric Object
| Field | Type | Description |
|---|---|---|
passedInspection | boolean | Whether the electrical system passed inspection |
inspectedWithThermography | boolean | Whether inspected with thermography |
lastInspected | string | Year of last inspection. Example: "2022" |
lastRenovated | string | Year of last electrical renovation. Example: "2019" |
automaticCircuitBreaker | boolean | Whether automatic circuit breaker is installed |
Renovation Object
| Field | Type | Description |
|---|---|---|
renovated | boolean | Whether the home has been renovated |
roofAngle | string | Roof angle in degrees. Example: "38" |
roofCondition | boolean | Whether the roof is in good condition |
oldestRoofSection | string | Year of oldest roof section. Example: "2015" |
buildingStandard | string | Building standard. Values: "lav", "god", "høy" |
buildingCondition | string | Building condition. Values: "dårlig", "god", "meget_god" |
needsRehab | boolean | Whether the building needs rehabilitation |
Damages Object
| Field | Type | Description |
|---|---|---|
totalLastThreeYears | string | Total damages in the last 3 years. Example: "0" |
pest | string | Number of pest damages. Example: "0" |
otherDamages | string | Number of other damages. Example: "0" |
deductibleFromDamage | string | Deductible from damage. Example: "0" |
waterDamage | string | Number of water damages. Example: "0" |
buildingMoistureProblem | boolean | Whether there are moisture problems in the building |
Response from Insurance Company
This is a description of how the response from the insurance company should be structured.
Example Response
{
"id": "string",
"company": "string",
"totalPrice": 0,
"totalDiscount": 0,
"totalOriginalPrice": 0,
"discountDescription": "string",
"products": [
{
"id": "string",
"type": "hus",
"productName": "string",
"prices": {
"price": 0,
"discount": 0,
"originalPrice": 0,
"tfa": 0.0
},
"productDetails": {
"coverage": "string",
"ipidUrls": [
{
"url": "string"
}
],
"termsUrls": [
{
"url": "string"
}
]
},
"offer": {
"fullValue": "string",
"deductible": 0,
"additionalCoverage": ["string"]
}
}
],
"purchaseUrl": "string",
"receivedAt": "string",
"responseAt": "string"
}
Response Field Descriptions
Root Level Fields
| Field | Type | Description |
|---|---|---|
id | string | The unique ID for the request |
company | string | The name of the insurance company. Example: "Forsikringsselskap" |
totalPrice | number | Total price for all products after discount. Example: 5200 |
totalDiscount | number | Total discount for all products. Example: 350 |
totalOriginalPrice | number | Total original price for all products before discount. Example: 5550 |
discountDescription | string | Description of the discount. Example: "Medlemsrabatt og boligrabatt" |
Products Array
| Field | Type | Description |
|---|---|---|
id | string | The unique ID for the product. Example: "hus-123456" |
type | string | Type of product. Value: "hus" |
productName | string | The name of the product. Example: "Husforsikring Standard" |
Prices Object
| Field | Type | Description |
|---|---|---|
price | number | Price for the product after discount. Example: 5200 |
discount | number | Discount for the product. Example: 350 |
originalPrice | number | Original price for the product before discount. Example: 5550 |
tfa | number | TFA fee for the product. Example: 0.0 |
Product Details Object
| Field | Type | Description |
|---|---|---|
coverage | string | Coverage for the product. Example: "standard" |
ipidUrls | array | List of URLs to IPID documents |
termsUrls | array | List of URLs to terms and conditions |
IPID/Terms URL Object
| Field | Type | Description |
|---|---|---|
url | string | URL to the document. Example: "https://example.com/ipid-hus.pdf" |
Offer Object
| Field | Type | Description |
|---|---|---|
fullValue | string | Full value for the home. Example: "4500000" |
deductible | number | Deductible for the product. Example: 8000 |
additionalCoverage | array | Extra coverage included. Example: ["vannstopper", "sopp_og_råte", "naturskade"] |
Additional Response Fields
| Field | Type | Description |
|---|---|---|
purchaseUrl | string | URL for purchasing the products. Example: "https://example.com/purchase/hus" |
receivedAt | string | Time when the request was received. Example: "2024-10-16 12:06:00" |
responseAt | string | Time when the response was sent. Example: "2024-10-16T12:06:30Z" |
Allowed Values
Coverage Levels
| Value | Description |
|---|---|
standard | Standard coverage |
pluss | Plus coverage |
ekstra | Extra coverage |
Building Types
| Value | Description |
|---|---|
enebolig | Detached house |
tomannsbolig | Duplex |
rekkehus | Townhouse |
leilighet | Apartment |
Building Materials
| Value | Description |
|---|---|
tre | Wood |
mur | Brick |
betong | Concrete |
Building Standard
| Value | Description |
|---|---|
lav | Low standard |
god | Good standard |
høy | High standard |
Building Condition
| Value | Description |
|---|---|
dårlig | Poor condition |
god | Good condition |
meget_god | Very good condition |
Available Addons
| Value | Description |
|---|---|
vannstopper | Water stopper coverage |
sopp_og_råte | Mold and rot coverage |
naturskade | Natural disaster coverage |
Error Handling
In case of errors, the company should respond with an appropriate HTTP status code and the following body:
{
"error": {
"code": "string",
"message": "string"
}
}
See Car Insurance Error Handling for the list of error codes.