Ontwerp een Mock API voor Geautomatiseerde Contractvalidatie en Compliance Controle
description
Met deze prompt kan de gebruiker een mock API ontwikkelen die specifiek gericht is op contractvalidatie en naleving van regelgeving, wat helpt om fouten vroegtijdig te detecteren en te simuleren in een veilige testomgeving. Dit voorkomt verrassingen in productie en verhoogt de betrouwbaarheid van integraties met externe systemen.
prompt
Help me een mock API te ontwerpen die geautomatiseerde contractvalidatie en compliance controles ondersteunt. Doel van de API: <beschrijf het doel van de API>. Belangrijke endpoints: <lijst de belangrijkste endpoints>. Contractregels en validatieregels: <beschrijf ...
try_prompt
generate_helper
disclaimerOnPageApi
tags
ai_answers
provider: openai
model: gpt-4.1-nano
Natuurlijk! Hier is een voorstel voor een mock API die geautomatiseerde contractvalidatie en compliance controles ondersteunt, gericht op standaard huurcontracten.
---
## API Specificatie
### 1. Endpoint: `/getValidationRules`
**Beschrijving:**
Geeft de huidige validatieregels en compliance-eisen terug die worden toegepast bij contractvalidatie.
**Method:** `GET`
**Response voorbeeld:**
```json
{
"rules": [
{
"id": "AVG_data_processing",
"description": "Verwerking van persoonsgegevens moet voldoen aan AVG.",
"compliance": true
},
{
"id": "huurprijs_boven_max",
"description": "Huurprijs mag niet hoger zijn dan de maximum toegestane waarde volgens lokale wetgeving.",
"compliance": true
},
{
"id": "huurcontract_duur",
"description": "Contractduur moet minimaal 6 maanden en maximaal 36 maanden zijn.",
"compliance": true
}
]
}
```
---
### 2. Endpoint: `/validateContract`
**Beschrijving:**
Valideert een huurcontract tegen de vastgestelde regels en controleert op compliance. Kan ook scenario's simuleren waarbij regels niet worden nageleefd.
**Method:** `POST`
**Input voorbeeld:**
```json
{
"contract": {
"huurprijs": 1500,
"duur": 4,
"gegevens": {
"naam_verhuurder": "Verhuurder B.V.",
"naam_huurder": "Jan Jansen",
"persoonlijke_gegevens": { /*...*/ }
}
}
}
```
**Optioneel:**
Gebruik een parameter zoals `"simulate": true` om foutscenario's te activeren.
**Response voorbeeld (goede contract):**
```json
{
"valid": true,
"fouten": [],
"waarschuwingen": [
{
"regelID": "huurprijs_boven_max",
"message": "Huurprijs ligt boven de maximum toegestane waarde volgens lokale wetgeving."
}
]
}
```
**Response voorbeeld (slechte contract):**
```json
{
"valid": false,
"fouten": [
{
"regelID": "huurprijs_boven_max",
"message": "Huurprijs is te hoog volgens lokale wetgeving."
},
{
"regelID": "contract_duur",
"message": "Contractduur is minder dan het wettelijk minimum van 6 maanden."
}
],
"waarschuwingen": []
}
```
---
## Scenario’s voor simulatie
### Scenario 1: Contract niet compliant door te hoge huurprijs
**Input:**
```json
{
"contract": {
"huurprijs": 2000,
"duur": 12
},
"simulate": true
}
```
**Output:**
```json
{
"valid": false,
"fouten": [
{
"regelID": "huurprijs_boven_max",
"message": "Huurprijs ligt boven de toegestane maximum."
}
],
"waarschuwingen": []
}
```
### Scenario 2: Contract niet compliant door te korte duur
**Input:**
```json
{
"contract": {
"huurprijs": 1200,
"duur": 3
},
"simulate": true
}
```
**Output:**
```json
{
"valid": false,
"fouten": [
{
"regelID": "huurcontract_duur",
"message": "Contractduur is te kort volgens de wetgeving."
}
],
"waarschuwingen": []
}
```
### Scenario 3: Contract bijna compliant, waarschuwing over AVG
**Input:**
```json
{
"contract": {
"huurprijs": 1000,
"duur": 12,
"gegevens": {
"persoonlijke_gegevens": { /* niet volledig geanonimiseerd */ }
}
},
"simulate": true
}
```
**Output:**
```json
{
"valid": true,
"fouten": [],
"waarschuwingen": [
{
"regelID": "AVG_data_processing",
"message": "Persoonsgegevens worden verwerkt zonder expliciete toestemming volgens AVG."
}
]
}
```
---
## Samenvatting
Deze mock API ondersteunt:
- Het ophalen van actuele validatieregels (`/getValidationRules`).
- Het valideren van contracten, inclusief scenario's voor niet-naleving, met duidelijke foutmeldingen en waarschuwingen (`/validateContract`).
- Simulatie van diverse compliance scenario's, inclusief waarschuwingen voor mogelijke risico's.
Wil je dat ik ook de implementatie in bijvoorbeeld JSON-schema of pseudocode voor de backend ontwerp?
provider: deepseek
model: deepseek-chat
Zeker, ik help je graag een mock API te ontwerpen voor contractvalidatie. Hieronder vind je een gedetailleerd ontwerp in het Nederlands.
---
### **API Ontwerp: Mock Huurcontract Validatie-API**
**Basis URL:** `https://api.mock-contractvalidator.nl/v1`
**Doel:** Automatische validatie van standaard huurcontracten tegen AVG (Algemene Verordening Gegevensbescherming) en lokale Nederlandse huurwetgeving (o.a. Burgerlijk Wetboek Boek 7).
---
### **Endpoints & Functionaliteit**
#### 1. **POST /validateContract**
Valideert een ingediend huurcontract tegen de gedefinieerde regels.
**Request Body:**
```json
{
"contractId": "string",
"verhuurder": {
"naam": "string",
"contactgegevens": "string"
},
"huurder": {
"naam": "string",
"contactgegevens": "string"
},
"contractVoorwaarden": {
"huurprijs": "number",
"waarborgsom": "number",
"looptijd": "string",
"opzegtermijn": "number",
"verzamelingPersoonsgegevens": ["string"]
}
}
```
**Response (Succesvolle Validatie):**
```json
{
"contractId": "string",
"status": "VALID",
"meldingen": [],
"samenvatting": "Contract voldoet aan alle AVG en huurrechtelijke vereisten."
}
```
**Response (Met Waarschuwingen/Fouten):**
```json
{
"contractId": "string",
"status": "INVALID",
"meldingen": [
{
"type": "WAARSCHUWING",
"code": "AVG_001",
"beschrijving": "Verzameling van BSN-nummers zonder expliciete toestemming of rechtsgrond.",
"suggestie": "Vermijd het opslaan van BSN-nummers tenzij strikt noodzakelijk en met duidelijke toestemming."
},
{
"type": "FOUT",
"code": "HUUR_003",
"beschrijving": "Waarborgsom (€2000) overschrijdt het maximale toegestane bedrag (€1800).",
"suggestie": "Pas de waarborgsom aan naar maximaal 2x de maandhuur."
}
],
"samenvatting": "Contract bevat 1 waarschuwing en 1 fout. Aanpassingen vereist voor compliance."
}
```
---
#### 2. **GET /getValidationRules**
Retourneert de huidige validatieregels die door de API worden gehanteerd.
**Response:**
```json
{
"regels": [
{
"categorie": "AVG",
"regels": [
{
"code": "AVG_001",
"beschrijving": "Verzameling gevoelige persoonsgegevens (BSN, gezondheidsdata) vereist expliciete toestemming.",
"type": "WAARSCHUWING"
},
{
"code": "AVG_002",
"beschrijving": "Ontbrekende privacyverklaring of dataretentietermijn.",
"type": "FOUT"
}
]
},
{
"categorie": "Lokaal Huurrecht",
"regels": [
{
"code": "HUUR_001",
"beschrijving": "Huurprijs overschrijdt de maximale liberalisatiegrens (2023: €808,06 voor niet-geliberaliseerde sectoren).",
"type": "FOUT"
},
{
"code": "HUUR_002",
"beschrijving": "Opzegtermijn voor verhuurder is minder dan 3 maanden voor onbepaalde tijd contracten.",
"type": "FOUT"
},
{
"code": "HUUR_003",
"beschrijving": "Waarborgsom mag niet meer zijn dan 2x de maandhuur.",
"type": "FOUT"
}
]
}
]
}
```
---
### **Gesimuleerde Niet-Compliant Scenario's (Voorbeelden)**
De API simuleert deze veelvoorkomende fouten met bijbehorende meldingen:
1. **Te hoge waarborgsom**
- *Trigger:* `waarborgsom` > 2 * `huurprijs`
- *Foutcode:* `HUUR_003`
2. **Verzamelen van BSN zonder toestemming**
- *Trigger:* `verzamelingPersoonsgegevens` bevat "BSN" zonder vermelding in privacyclausule.
- *Waarschuwingscode:* `AVG_001`
3. **Huurprijs boven liberalisatiegrens**
- *Trigger:* `huurprijs` > €808,06 (voor niet-geliberaliseerde woningen)
- *Foutcode:* `HUUR_001`
4. **Ontbrekende opzegtermijn**
- *Trigger:* `opzegtermijn` ontbreekt of is < 1 maand
- *Foutcode:* `HUUR_002`
---
### **Technische Suggesties voor Implementatie**
- Gebruik **JSON Schema Validatie** voor structuurcontrole van het contract.
- Implementeer **mock-responses** in tools zoals Postman, Mockoon of JSON Server voor snelle tests.
- Voor een realistische mock: randomiseer responses met 70% "VALID", 30% "INVALID" met variërende meldingen.
- Log alle validatiepogingen voor audits (bijv. `contractId`, timestamp, resultaat).
---
### **Gebruiksvoorbeeld (curl)**
```bash
# Contract valideren
curl -X POST https://api.mock-contractvalidator.nl/v1/validateContract \
-H "Content-Type: application/json" \
-d '{
"contractId": "HTR-2023-123",
"verhuurder": { "naam": "Jan Jansen" },
"huurder": { "naam": "Marie Boers" },
"contractVoorwaarden": {
"huurprijs": 900,
"waarborgsom": 2000,
"verzamelingPersoonsgegevens": ["BSN"]
}
}'
# Regels ophalen
curl -X GET https://api.mock-contractvalidator.nl/v1/getValidationRules
```
Hopelijk helpt dit ontwerp je verder! Pas de regels en responsecodes aan naar je specifieke use-case.