# Authenticatie, invoer en resultaat

### Headers

<table><thead><tr><th width="152">Name</th><th width="145">Type</th><th>Description</th></tr></thead><tbody><tr><td>Content-Type</td><td>string</td><td>application/json</td></tr><tr><td>x-api-key<mark style="color:red;">*</mark></td><td>string</td><td>Unieke API-sleutel van Altum. Verkrijg er een via Mopsus (https://mopsus.altum.ai)</td></tr></tbody></table>

Dit is de hoofdendpoint van de API. Deze haalt een lijst met subsidies op op basis van de postcode van een gebruiker en, indien opgegeven, hun persoonlijke en financiële gegevens voor leen-geschiktheid.

<mark style="color:green;">**`POST`**</mark> `https://api.altum.ai/subsidy`&#x20;

### Request body

**Subsidy Request Model**

| **Veld**                                   | **Type**       | **Beschrijving**                                                                                                   |
| ------------------------------------------ | -------------- | ------------------------------------------------------------------------------------------------------------------ |
| postcode<mark style="color:red;">\*</mark> | string         | **Verplicht.** De Nederlandse postcode (bijv. "3511 AA")                                                           |
| level                                      | Array\[string] | Optioneel. Een lijst met niveaus om subsidies op te filteren. Mogelijk: \["national", "province", "municipality"]. |
| limit                                      | integer        | Optioneel. Het maximum aantal subsidies per niveau. Standaard 10. Min 1, Max 100.                                  |
| applicant                                  | Applicant      | Optionee&#x6C;**.** Een object met gegevens van de aanvrager voor leen-geschiktheid.                               |

**Applicant Model**

| **Veld**                                                              | **Type**        | **Beschrijving**                                                                                                                                                 |
| --------------------------------------------------------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| age<mark style="color:red;">\*</mark>                                 | integer         | **Verplicht.** De leeftijd van de aanvrager                                                                                                                      |
| is\_homeowner<mark style="color:red;">\*</mark>                       | boolean         | **Verplicht.** Of de aanvrager eigenaar van de woning is.                                                                                                        |
| is\_occupant<mark style="color:red;">\*</mark>                        | boolean         | **Verplicht.** Of de aanvrager de woning zelf bewoont.                                                                                                           |
| residence\_country<mark style="color:red;">\*</mark>                  | string          | **Verplicht.** Het land van verblijf van de aanvrager.                                                                                                           |
| property\_use\_residential\_percent<mark style="color:red;">\*</mark> | integer         | **Verplicht.** Het percentage van het onroerend goed dat voor woondoeleinden wordt gebruikt.                                                                     |
| credit\_approved<mark style="color:red;">\*</mark>                    | boolean         | **Verplicht.** Of de aanvrager is goedgekeurd voor studiepunten.                                                                                                 |
| previously\_rejected\_nwf1<mark style="color:red;">\*</mark>          | boolean         | **Verplicht.** Of de aanvrager eerder is afgewezen voor een NWF1-lening.                                                                                         |
| rejection\_reason                                                     | RejectionReason | Optioneel. De reden voor een eerdere afwijzing. Kan 'inkomen' of 'overig' zijn.                                                                                  |
| requested\_amount<mark style="color:red;">\*</mark>                   | integer         | **Verplicht.** Het bedrag van de lening die de aanvrager aanvraagt.                                                                                              |
| existing\_nwf\_loan\_balance                                          | integer         | Optioneel. Het bestaande NWF-leningssaldo van de aanvrager. Standaardwaarde is 0.                                                                                |
| specific\_target\_group                                               | boolean         | Optioneel. Of de aanvrager tot een specifieke doelgroep voor NWF2-leningen behoort. Standaardwaarde is false.                                                    |
| collective\_neighborhood                                              | boolean         | Optioneel. Of de aanvrager deel uitmaakt van een collectief buurtinitiatief voor EBH-leningen. Standaardwaarde is 'onwaar'.                                      |
| has\_mortgage\_security                                               | boolean         | Optioneel. Of de aanvrager hypothecaire zekerheid heeft voor EBH-leningen. Standaardwaarde is 'onwaar'.                                                          |
| business\_part\_connected                                             | boolean         | Optioneel. Of het zakelijke deel van het onroerend goed verbonden is met het woongedeelte. Vereist als property\_use\_residential\_percent tussen 75 en 99 ligt. |
| gross\_household\_income<mark style="color:red;">\*</mark>            | integer         | **Verplicht.** Het bruto jaarlijks huishoudinkomen in EUR.                                                                                                       |
| desired\_loan\_period\_years<mark style="color:red;">\*</mark>        | integer         | **Verplicht.** De gewenste looptijd van de lening in jaren (1–20).                                                                                               |

**Example Complete Input**

Een geldige `POST`-aanvraagtekst ziet er als volgt uit:

```
{
  "postcode": "9400 AA",
  "level": ["municipality", "national"],
  "limit": 10,
  "applicant": {
    "age": 45,
    "is_homeowner": true,
    "is_occupant": true,
    "residence_country": "Netherlands",
    "property_use_residential_percent": 100,
    "credit_approved": true,
    "previously_rejected_nwf1": false,
    "rejection_reason": null,
    "requested_amount": 10000,
    "existing_nwf_loan_balance": 0,
    "specific_target_group": false,
    "collective_neighborhood": false,
    "has_mortgage_security": false,
    "business_part_connected": null,
    "gross_household_income": 75000,
    "desired_loan_period_years": 12
  }
}
```

Bij een succesvolle POST-aanvraag retourneert de API de status <mark style="color:green;">200 OK</mark> met een JSON-object dat de resultaten bevat.

### Subsidies API Response Model

| **Veld**     | **Type** | **Beschrijving**                                      |
| ------------ | -------- | ----------------------------------------------------- |
| postal\_code | string   | De gebruikte postcode.                                |
| municipality | string   | De gemeente die bij de postcode hoort.                |
| province     | string   | De provincie die bij de postcode hoort.               |
| disclaimer   | string   | Een disclaimer over de actualiteit van de gegevens    |
| Loans        | object   | Een object met in aanmerking komende leenprogramma’s. |
| subsidies    | object   | Een object met subsidies per niveau.                  |

**Loans Object**

| **Veld**           | **Type**       | **Beschrijving**                                                                                                             |
| ------------------ | -------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| eligible\_programs | Array\[object] | Een lijst met leenprogramma’s waarvoor de aanvrager in aanmerking komt. Elk object bevat financiële details en berekeningen. |

**subsidies Object**

| **Field**               | **Type**       | **Description**                   |
| ----------------------- | -------------- | --------------------------------- |
| municipality\_subsidies | Array\[object] | Subsidies op gemeentelijk niveau. |
| province\_subsidies     | Array\[object] | Subsidies op provinciaal niveau.  |
| national\_subsidies     | Array\[object] | Subsidies op nationaal niveau.    |

### Output <a href="#id-5.-output" id="id-5.-output"></a>

Bij een succesvolle `POST`-aanvraag retourneert de API een **200 OK** en een JSON-object met de resultaten

**Voorbeeld volledige output**

```
{
"postal_code": "9400 AA",
"municipality": "Assen",
"province": "Drenthe",
"disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify the status on the official websites.",
"Loans": {
 	"eligible_programs": [
		{
		"program_name": "Energy Savings Loan (NWF 1)",
		"description": "Standard loan for homeowners (≤75 years old) to finance energy-saving home improvements.",
		"min_max_loan_amount": [1000,28000],
		"max_loan_period_years": 20,
		"interest_type": "Income-based: 0% if household income ≤€60,000, otherwise 3.61% fixed",
		"repayment": "Monthly annuity (up to 20 years; 15 years for heat pumps/batteries if >33% of loan)",
		"key_features": [
		"Requires professional contractor installation",
		"Applies to 18 defined energy-saving measures",
		"Early repayment allowed without penalty (min €250)",
		"No mortgage required; construction deposit used"],
		"loan_amount": 10000,
		"loan_period_years": 12,
		"applied_interest_rate_percent": 3.61,
		"total_interest": 2336.7,
		"total_cost": 12336.7,
		"monthly_payment": 85.67},
		{
		 ... (more loans)
		]
	},
"subsidies": {
		"municipality_subsidies": [
			{
			"name": "Fixteams en advies",
			"description": "De subsidie 'Fixteams en advies' is bedoeld voor stichtingen, coöperaties en andere maatschappelijke organisaties die inwoners in bepaalde wijken van Amersfoort helpen om energie te besparen. De subsidie kan worden gebruikt voor de installatie van kleine energiebesparende maatregelen en het geven van advies over mogelijke oplossingen en geldregelingen. Het doel is om de energiezuinigheid van woningen te verbeteren.",
			"url": "https://www.amersfoort.nl/subsidieregeling-fixteams-en-advies",
			"level": "municipality",
			"location_name": "Amersfoort",
			"eligibility": "De organisatie moet een stichting, coöperatie of andere maatschappelijke organisatie zijn; De organisatie moet ingeschreven staan bij de KvK; De organisatie moet een zakelijk bankrekeningnummer hebben; De organisatie moet contacten hebben in de wijk; De organisatie moet kantoor houden in de wijk; De organisatie moet ervaring hebben met het begeleiden van vrijwilligers en/of mensen op een stage- of werkervaringsplaats; De organisatie moet ervaring hebben met het toepassen van energiebesparende maatregelen"
			} 
			{
			... (municipality subsidies)
			}
		],
		"province_subsidies": [],
		"national_subsidies": [
			{
				"name": "Circulaire economie en MIA\\Vamil",
				"description": "In een circulaire economie bestaat geen afval en worden grondstoffen steeds opnieuw gebruikt. Investeert u in bedrijfsmiddelen die de circulaire economie bevorderen?&nbsp;Dan heeft u mogelijk belastingvoordeel met de MIA\\Vamil. Dit voordeel kan oplopen tot ruim 14% van de investeringskosten.\n",
				"url": "https://www.rvo.nl/subsidies-financiering/mia-vamil/ondernemers/circulaire-economie",
				"level": "national",
				"location_name": "Netherlands",
				"eligibility": "Grootbedrijf, MKB (ook zzp)"
			},
			{
			... (national subsidies)
			}
}
```

{% tabs %}
{% tab title="200: OK Standard response" %}

```
{
"postal_code": "9400 AA",
"municipality": "Assen",
"province": "Drenthe",
"disclaimer": "These subsidies were available at the moment of scraping and may have closed since. Please verify the status on the official websites.",
"Loans": {
 	"eligible_programs": [
		{
		"program_name": "Energy Savings Loan (NWF 1)",
		"description": "Standard loan for homeowners (≤75 years old) to finance energy-saving home improvements.",
		"min_max_loan_amount": [1000,28000],
		"max_loan_period_years": 20,
		"interest_type": "Income-based: 0% if household income ≤€60,000, otherwise 3.61% fixed",
		"repayment": "Monthly annuity (up to 20 years; 15 years for heat pumps/batteries if >33% of loan)",
		"key_features": [
		"Requires professional contractor installation",
		"Applies to 18 defined energy-saving measures",
		"Early repayment allowed without penalty (min €250)",
		"No mortgage required; construction deposit used"],
		"loan_amount": 10000,
		"loan_period_years": 12,
		"applied_interest_rate_percent": 3.61,
		"total_interest": 2336.7,
		"total_cost": 12336.7,
		"monthly_payment": 85.67},
		{
		 ... (more loans)
		]
	},
"subsidies": {
		"municipality_subsidies": [
			{
			"name": "Fixteams en advies",
			"description": "De subsidie 'Fixteams en advies' is bedoeld voor stichtingen, coöperaties en andere maatschappelijke organisaties die inwoners in bepaalde wijken van Amersfoort helpen om energie te besparen. De subsidie kan worden gebruikt voor de installatie van kleine energiebesparende maatregelen en het geven van advies over mogelijke oplossingen en geldregelingen. Het doel is om de energiezuinigheid van woningen te verbeteren.",
			"url": "https://www.amersfoort.nl/subsidieregeling-fixteams-en-advies",
			"level": "municipality",
			"location_name": "Amersfoort",
			"eligibility": "De organisatie moet een stichting, coöperatie of andere maatschappelijke organisatie zijn; De organisatie moet ingeschreven staan bij de KvK; De organisatie moet een zakelijk bankrekeningnummer hebben; De organisatie moet contacten hebben in de wijk; De organisatie moet kantoor houden in de wijk; De organisatie moet ervaring hebben met het begeleiden van vrijwilligers en/of mensen op een stage- of werkervaringsplaats; De organisatie moet ervaring hebben met het toepassen van energiebesparende maatregelen"
			} 
			{
			... (municipality subsidies)
			}
		],
		"province_subsidies": [],
		"national_subsidies": [
			{
				"name": "Circulaire economie en MIA\\Vamil",
				"description": "In een circulaire economie bestaat geen afval en worden grondstoffen steeds opnieuw gebruikt. Investeert u in bedrijfsmiddelen die de circulaire economie bevorderen?&nbsp;Dan heeft u mogelijk belastingvoordeel met de MIA\\Vamil. Dit voordeel kan oplopen tot ruim 14% van de investeringskosten.\n",
				"url": "https://www.rvo.nl/subsidies-financiering/mia-vamil/ondernemers/circulaire-economie",
				"level": "national",
				"location_name": "Netherlands",
				"eligibility": "Grootbedrijf, MKB (ook zzp)"
			},
			{
			... (national subsidies)
			}
}
```

{% endtab %}

{% tab title="400: Bad Request Unsuccessful response" %}

```
{
// Fout bij validatie van de aanvrager:
{
  "detail": "De aanvrager moet een kredietwaardig, eigenaar-bewoner zijn van een bestaande woning in Nederland met ≥75% woonbestemming."
}

// Ongeldige leenperiode:
{
  "detail": "De gewenste leenperiode moet tussen 1 en 20 jaar liggen."
}

// Geen toepasselijke leenprogramma’s:
{
  "detail": "Er is geen toepasselijk leenprogramma gevonden voor deze aanvrager. Controleer de criteria op www.warmtefonds.nl of neem contact op met uw gemeente voor de beschikbaarheid van de Duurzaamheidslening."
}

}

```

{% endtab %}

{% tab title="404 Not Found" %}

```
{
  "detail": "Kon de postcode niet koppelen aan een gemeente."
}

```

{% endtab %}

{% tab title="500: Internal Server Error Service is not available and/or down" %}

```
{
  "detail": "Er is een onverwachte fout opgetreden bij het verwerken van de postcode."
}

```

{% endtab %}
{% endtabs %}
