# Inputuitleg voor versie 01-01-2025

### **WWS Punten API — 01-01-2025 Regels**

#### Overzicht

Deze pagina beschrijft de JSON-structuur die vereist is voor het indienen van woninggegevens bij de API voor het berekenen van WWS-punten volgens de **01-01-2025** regels.\
Elke sectie van de JSON komt overeen met verschillende aspecten van een woning, waaronder kamers, keukenvoorzieningen, parkeren, sanitaire voorzieningen en meer.\
De specificatie is opgesplitst in:

* **A. Zelfstandige woonruimten**
* **B. Niet-zelfstandige woonruimten**

***

#### **A. Zelfstandige woonruimten**

**Algemene Woningkenmerken**

| Veld                              | Type    | Voorbeeld                                         | Validatie / Opmerkingen                                                                                                 |
| --------------------------------- | ------- | ------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `house_type`                      | `str`   | `"row house"`                                     | Verplichte string die het woningtype beschrijft.                                                                        |
| `build_year`                      | `int`   | `1995`                                            | Moet een positief geheel getal zijn. Wordt gebruikt als er geen geldig energielabel/index is.                           |
| `energy_label`                    | `str`   | `"A"`, `"B"`, `""`                                | Optioneel — toegestane waarden in code; indien leeg en `energy_index_existence` is `True`, is `energy_index` verplicht. |
| `energy_index_existence`          | `bool`  | `True`                                            | Als `True` en `energy_label` is leeg, is `energy_index` verplicht en wordt gebruikt voor puntberekening.                |
| `energy_index`                    | `float` | `1.45`                                            | Wordt alleen gebruikt als `energy_label` leeg is en `energy_index_existence` `True` is.                                 |
| `energy_performance_compensation` | `bool`  | `True`                                            | Booleaanse vlag voor compensatieberekening.                                                                             |
| `disability_costs`                | `float` | `1200.0`                                          | Geen negatieve waarden toegestaan.                                                                                      |
| `disabled_people`                 | `int`   | `1`                                               | Geheel getal ≥ 0.                                                                                                       |
| `monument`                        | `str`   | `"national"`, `"municipal"`, `"provincial"`, `""` | Kleine letters string; alleen toegestane waarden.                                                                       |
| `doorbell`                        | `bool`  | `True`                                            | Booleaanse vlag.                                                                                                        |
| `woz_value`                       | `float` | `250000.0`                                        | Moet ≥ 0 zijn; minimum WOZ gebruikt in berekening: `77582`.                                                             |
| `woz_valuation_year`              | `int`   | `2023`                                            | Moet `2023` of `2024` zijn.                                                                                             |
| `usable_surface_area`             | `float` | `85.5`                                            | Moet ≥ 0 zijn.                                                                                                          |
| `corop_area_amsterdam_or_utrecht` | `bool`  | `True`                                            | Booleaanse vlag.                                                                                                        |
| `care_home`                       | `bool`  | `True`                                            | Booleaanse vlag.                                                                                                        |

**1. `rooms` blok**

**Overzicht:** Beschrijft elke niet-keuken, niet-sanitaire ruimte.

| Veld                            | Type    | Voorbeeld | Validatie / Opmerkingen                              |
| ------------------------------- | ------- | --------- | ---------------------------------------------------- |
| `type_of_room`                  | `str`   | `"room"`  | `"room"` of `"other"`.                               |
| `attic_without_fixed_staircase` | `bool`  | `True`    | Relevant als type `"other"` is en het een zolder is. |
| `surface_area`                  | `float` | `12.5`    | Moet ≥ 0 zijn.                                       |
| `shared_addresses`              | `int`   | `1`       | ≥ 1.                                                 |
| `heated`                        | `bool`  | `True`    | Booleaanse vlag.                                     |
| `cooled`                        | `bool`  | `True`    | Booleaanse vlag.                                     |

Voorbeeld:

```json
"rooms": [
  {
    "type_of_room": "room",
    "attic_without_fixed_staircase": false,
    "surface_area": 10.0,
    "shared_addresses": 1,
    "heated": true,
    "cooled": true
  }
]
```

**2. `kitchen` blok**

| Veld                | Type      | Voorbeeld | Beschrijving                                         |
| ------------------- | --------- | --------- | ---------------------------------------------------- |
| `type_of_room`      | `string`  | `"room"`  | `"room"` of `"other"`.                               |
| `open_kitchen`      | `boolean` | `false`   | Waar als open naar een andere ruimte.                |
| `surface_area`      | `number`  | `10.0`    | Oppervlakte in m².                                   |
| `countertop_length` | `number`  | `2.5`     | Aanrechtlengte in meters.                            |
| `shared_addresses`  | `integer` | `1`       | Adressen die keuken delen.                           |
| `heated`            | `boolean` | `true`    | Heeft verwarming.                                    |
| `cooled`            | `boolean` | `true`    | Heeft koeling.                                       |
| `kitchen_features`  | `object`  | zie onder | Sleutels zijn voorzieningen, waarden zijn aantallen. |

Voorbeeld:

```json
"kitchen": [
  {
    "type_of_room": "room",
    "open_kitchen": false,
    "surface_area": 10,
    "countertop_length": 2.5,
    "shared_addresses": 1,
    "heated": true,
    "cooled": true,
    "kitchen_features": {
      "extractor_system": 1,
      "induction_hob": 1
    }
  }
]
```

***

Dezelfde structuur als 2024, geen wijzigingen, alleen `shared_addresses` wordt gebruikt (geen `shared_spaces` hier). Alle keukenvoorzieningen zijn gehele getallen.

**3. `sanitary` blok**

| Veld                | Type                 | Voorbeeld                 | Validatie / Opmerkingen                        |
| ------------------- | -------------------- | ------------------------- | ---------------------------------------------- |
| `type_of_room`      | `str`                | `"room"`                  | `"room"` of `"other"`.                         |
| `surface_area`      | `float`              | `10.0`                    | ≥ 0.                                           |
| `heated`            | `bool`               | `True`                    | Booleaanse vlag.                               |
| `cooled`            | `bool`               | `True`                    | Booleaanse vlag.                               |
| `shower_facility`   | `str`                | `"shower/bath"`           | `"bath"`, `"shower"`, `"shower/bath"`.         |
| `toilet`            | `int`                | `2`                       | Aantal.                                        |
| `wall_hung_toilet`  | `int`                | `1`                       | Aantal — **let op: int, niet bool**.           |
| `shared_addresses`  | `int`                | `1`                       | ≥ 1.                                           |
| `sanitary_features` | `dict[str,int/bool]` | `{ "washbasin": 1, ... }` | Voorzieningen aantallen of booleaanse waarden. |

Voorbeeld:

```json
"sanitary": [
  {
    "type_of_room": "room",
    "surface_area": 10,
    "heated": true,
    "cooled": true,
    "shower_facility": "shower",
    "toilet": 1,
    "shared_addresses": 1,
    "sanitary_features": {
      "washbasin": 1
    }
  }
]
```

**4. `toilet` blok**

| Veld               | Type      | Voorbeeld | Beschrijving           |
| ------------------ | --------- | --------- | ---------------------- |
| `type_of_room`     | `string`  | `"room"`  | `"room"` of `"other"`. |
| `surface_area`     | `number`  | `2.0`     | m².                    |
| `heated`           | `boolean` | `true`    | Heeft verwarming.      |
| `cooled`           | `boolean` | `false`   | Heeft koeling.         |
| `wall_hung_toilet` | `boolean` | `false`   | Hangend toilet.        |
| `washbasin`        | `integer` | `1`       | Aantal.                |
| `shared_addresses` | `integer` | `1`       | Adressen die delen.    |

Dezelfde velden als 2024, maar hier is `wall_hung_toilet` **bool**.

**5. `outdoor` blok**

| Veld               | Type      | Voorbeeld | Beschrijving        |
| ------------------ | --------- | --------- | ------------------- |
| `surface_area`     | `number`  | `50.0`    | m².                 |
| `shared_addresses` | `integer` | `1`       | Adressen die delen. |

Hetzelfde als 2024, alleen `shared_addresses` bestaat.

**6. `parking` blok**

| Veld               | Type      | Voorbeeld | Beschrijving        |
| ------------------ | --------- | --------- | ------------------- |
| `parking_type`     | `integer` | `2`       | Parkeertype code.   |
| `shared_addresses` | `integer` | `1`       | Adressen die delen. |
| `charging_station` | `boolean` | `false`   | Heeft laadpaal.     |

Hetzelfde als 2024, alleen `shared_addresses` bestaat.

#### **B. Niet-zelfstandige woonruimten**

**Algemene Woningkenmerken**

Hetzelfde als zelfstandige behalve:

* `glass_surface_living_room` (`boolean`)
* `lowest_window_frame_living_room` (`boolean`)
* `accessibility_via_landlord` (`boolean`)
* `corop_region` in plaats van Amsterdam/Utrecht vlag.

***

**Belangrijk:** Elk blok in B heeft **zowel** `shared_addresses` als `shared_spaces`.

**1. `rooms` blok (B)**

Hetzelfde als A kamers **plus**:

* `shared_spaces` (`int`) — aantal woonruimten dat de kamer deelt.

**2. `kitchen` blok (B)**

Hetzelfde als A keuken **plus**:

* `shared_spaces` (`int`) — aantal woonruimten dat de keuken deelt.

**3. `sanitary` blok (B)**

Hetzelfde als A sanitair **plus**:

* `shared_spaces` (`int`) — aantal woonruimten dat de sanitaire voorziening deelt.

**4. `toilet` blok (B)**

Hetzelfde als A toilet **plus**:

* `shared_spaces` (`int`) — aantal woonruimten dat de toiletvoorziening deelt.

*(Nog steeds: `wall_hung_toilet` is hier bool.)*

**5. `outdoor` blok (B)**

Hetzelfde als A buitenruimte **plus**:

* `shared_spaces` (`int`).

**6. `parking` blok (B)**

Hetzelfde als A parkeren **plus**:

* `shared_spaces` (`int`).

#### Body Request Voorbeeld voor Zelfstandige Woning 01/01/2025

```json
{
  "house_type": "Eengezinswoning",
  "rooms": [
    {
      "type_of_room": "room",
      "attic_without_fixed_staircase": false,
      "surface_area": 25.5,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false
    },
    {
      "type_of_room": "room",
      "attic_without_fixed_staircase": false,
      "surface_area": 15.0,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false
    },
    {
      "type_of_room": "other",
      "attic_without_fixed_staircase": false,
      "surface_area": 8.0,
      "shared_addresses": 1,
      "heated": false,
      "cooled": false
    }
  ],
  "kitchen": [
    {
      "type_of_room": "room",
      "open_kitchen": true,
      "surface_area": 10.0,
      "countertop_length": 2.5,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false,
      "kitchen_features": {
        "extractor_system": 1,
        "induction_hob": 1,
        "ceramic_hob": 0,
        "gas_hob": 0,
        "refrigerator": 1,
        "freezer": 1,
        "oven_electric": 1,
        "oven_gas": 0,
        "microwave": 1,
        "dishwasher": 1,
        "extra_cupboard_space_per_60cm": 2,
        "one_hand_mixer_tap": 1,
        "one_hand_mixer_tap_with_boiling_function": 0,
        "thermostatic_mixer_tap": 0,
        "thermostatic_mixer_tap_with_boiling_function": 0
      }
    }
  ],
  "parking": [
    {
      "parking_type": 1,
      "surface_area": 12.0,
      "shared_addresses": 1,
      "charging_station": true
    }
  ],
  "sanitary": [
    {
      "type_of_room": "other",
      "surface_area": 6.0,
      "heated": true,
      "cooled": false,
      "shower_facility": "shower/bath",
      "toilet": 1,
      "wall_hung_toilet": 1,
      "shared_addresses": 1,
      "sanitary_features": {
        "washbasin": 1,
        "multi_person_washbasin": 0,
        "cupboard_space": true,
        "power_outlet": 1,
        "build_in_cupboard": 1,
        "complete_separation_of_shower": 1,
        "bath_with_bubble_function": 0,
        "one_hand_mixer_tap": 1,
        "thermostatic_mixer_tap": 0,
        "towel_radiator": 1
      }
    }
  ],
  "outdoor": [
    {
      "surface_area": 30.0,
      "shared_addresses": 1
    }
  ],
  "toilet": [
    {
      "type_of_room": "other",
      "surface_area": 1.5,
      "heated": false,
      "cooled": false,
      "wall_hung_toilet": true,
      "washbasin": 1,
      "shared_addresses": 1
    }
  ],
  "build_year": 2010,
  "energy_label": "A+",
  "energy_index_existence": false,
  "energy_index": 0,
  "energy_performance_compensation": true,
  "disability_costs": 0,
  "disabled_people": 0,
  "monument": "",
  "doorbell": true,
  "woz_value": 350000,
  "woz_valuation_year": 2023,
  "usable_surface_area": 95.0,
  "corop_area_amsterdam_or_utrecth": false,
  "care_home": false
}
```

#### Body Request Voorbeeld voor Niet-zelfstandige Woning 01/01/2025

```json
{
  "rooms": [
    {
      "type_of_room": "room",
      "attic_without_fixed_staircase": false,
      "surface_area": 18.0,
      "shared_spaces": 1,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false
    }
  ],
  "kitchen": [
    {
      "type_of_room": "room",
      "open_kitchen": false,
      "surface_area": 12.0,
      "countertop_length": 3.5,
      "shared_spaces": 4,
      "shared_addresses": 1,
      "heated": true,
      "cooled": false,
      "kitchen_features": {
        "extractor_system": 1,
        "induction_hob": 0,
        "ceramic_hob": 0,
        "gas_hob": 1,
        "refrigerator": 2,
        "freezer": 1,
        "oven_electric": 1,
        "oven_gas": 0,
        "microwave": 1,
        "dishwasher": 1,
        "extra_cupboard_space_per_60cm": 3,
        "one_hand_mixer_tap": 1,
        "one_hand_mixer_tap_with_boiling_function": 0,
        "thermostatic_mixer_tap": 0,
        "thermostatic_mixer_tap_with_boiling_function": 0
      }
    }
  ],
  "parking": [],
  "sanitary": [
    {
      "type_of_room": "other",
      "surface_area": 5.0,
      "heated": true,
      "cooled": false,
      "shower_facility": "shower",
      "toilet": 1,
      "wall_hung_toilet": 0,
      "shared_spaces": 4,
      "shared_addresses": 1,
      "sanitary_features": {
        "washbasin": 2,
        "multi_person_washbasin": 0,
        "cupboard_space": true,
        "power_outlet": 2,
        "build_in_cupboard": 0,
        "complete_separation_of_shower": 1,
        "bath_with_bubble_function": 0,
        "one_hand_mixer_tap": 2,
        "thermostatic_mixer_tap": 0,
        "towel_radiator": 0
      }
    }
  ],
  "outdoor": [
    {
      "surface_area": 50.0,
      "shared_spaces": 4,
      "shared_addresses": 1
    }
  ],
  "toilet": [
      {
      "type_of_room": "other",
      "surface_area": 1.2,
      "heated": false,
      "cooled": false,
      "wall_hung_toilet": false,
      "washbasin": 1,
      "shared_spaces": 4,
      "shared_addresses": 1
    }
  ],
  "build_year": 1985,
  "energy_label": "C",
  "energy_index_existence": false,
  "energy_index": 0,
  "disability_costs": 0,
  "disabled_people": 0,
  "monument": "",
  "doorbell": true,
  "glass_surface_living_room": 1.5,
  "lowest_window_frame_living_room": 1.2,
  "accessibility_via_landlord": false,
  "woz_value": 500000,
  "woz_valuation_year": 2024,
  "usable_surface_area": 150.0,
  "corop_region": "utrecht",
  "care_home": false
}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.altum.ai/financieren/wws-punten-api/inputuitleg-voor-versie-01-01-2025.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
