# Uniforme registratie van zaken

**Auteur**: Joeri Diederen | **Status**: In voorbereiding

## Aanleiding

Bij het aanmaken van een zaak wordt een bericht richting de ZGW-API gestuurd. De definitie van het zaakobject schrijft voor welke waarden verplicht zijn. Voor passende dienstverlening en optimaal zaakgericht werken zijn meer voorschriften nodig, om maximaal dienstverlenend te zijn.

Mogelijke doeleinden zijn:

* Het weergeven van een zaak en haar details op een klantportaal
* Het weergeven van een zaak binnen een KCC-applicatie
* Het weergeven van data binnen een rapportage-tool

## Constateringen

**Invulling**

In de praktijk wordt opgemerkt dat door verschillende leveranciers verschillende invullingen worden gegeven aan de beoogde inhoud van bepaalde velden. Dat beperkt standaardisatie richting bijvoorbeeld klantportalen.

**Timing**

Ook opgemerkt wordt dat de momenten waarop data in Open Zaak wordt geplaatsts verschilt. Sommige taakapplicaties posten informatie direct wanneer deze beschikbaar is, anderen per statusovergang, en anderen pas als de zaak afgesloten is.&#x20;

## Gevolg

Omdat de richtlijnen over invulling, timing en operaties niet strak gedefineerd zijn, worden deze per leverancier anders geïnterpreteerd.&#x20;

Dat leidt tot dubbele gesprekken met leveranciers, om ze te bewegen te voldoen aan hun lokale gewenste subset. Voor een leverancier met een landelijke afzetmarkt is dat problematisch. En, als het ene processysteem optimaal werkt met een specifiek portaal, omdat het de waarden registreert die in het portaal weergegeven worden, is dat portaal niet meer goed vervangbaar.&#x20;

De vele losse operaties leiden ook tot terughoudendheid in de adoptie van de ZGW-API, ook bij product owners, omdat veel ervaring rondom het zaakgericht werken vereist is om de data op de juiste manier te registreren.

## Doelstellingen

1. Handelingen definiëren rondom de levenscyclus van een zaak, van creatie tot afhandeling
2. Voorbeeldberichten documenteren rondom registratie vanuit deze handelingen
3. Optioneel: Wellicht eenvoudiger gebruik door de creatie van convenience API's

### Principes

* Een zaak heeft altijd een actuele behandelaar of afdeling

* De doorlooptijden van een zaak worden bij iedere statusupdate gecontroleerd

* Het procesobject wordt gebruikt als er een product of dienst geleverd wordt

* Zaak aanmaken

* Statusupdate

* Betrokkene update

* Resultaat update

* Document registreren

* Documenten locken

* Object relateren (BAG, ORC, Etc)

* Zaak opschorten, hervatten, verlengen (datumberekening uitwerken)

* Besluit registreren (met procesobject)

* Zaak relateren

*

Twijfelachtig

* Contactmoment aanmaken

## Best practices

{% tabs %}
{% tab title="Zaak registreren" %}
{% @mermaid/diagram content="sequenceDiagram
Participant ZTC
Participant ZAC
Participant ZRC
Participant KLI
activate ZAC
ZAC->>ZTC: GET metadata
ZAC->>ZRC: Creer zaak
ZAC->>ZRC: Relateer status
ZAC->>ZRC: Relateer documenten
ZAC->>ZRC: Relateer objecten
ZAC->>KLI: Creer contactmoment
deactivate ZAC
" %}

#### GET metadata

{% hint style="info" %}
Later
{% endhint %}

#### Creeer zaak

{% hint style="info" %}
Naar ZRC-API 1.5. | POST /zaken
{% endhint %}

<table data-header-hidden><thead><tr><th width="340">Key</th><th width="72" data-type="checkbox">ZGW</th><th width="253">Toelichting</th></tr></thead><tbody><tr><td><code>identificatie</code></td><td>true</td><td>Wordt automatisch gegenereerd</td></tr><tr><td><code>bronorganisatie</code>*</td><td>true</td><td></td></tr><tr><td><code>omschrijving</code></td><td>true</td><td>Klant ziet dit op portaal</td></tr><tr><td><code>toelichting</code></td><td>true</td><td><a data-footnote-ref href="#user-content-fn-1">Optionele toelichting voor intern gebruik</a></td></tr><tr><td><code>zaaktype*</code></td><td>true</td><td></td></tr><tr><td><code>registratiedatum</code></td><td>true</td><td>Indien niet opgegeven, wordt de datum van vandaag gebruikt.</td></tr><tr><td><code>verantwoordelijkeOrganisatie</code>*</td><td>true</td><td></td></tr><tr><td><code>startdatum</code>*</td><td>true</td><td></td></tr><tr><td><code>einddatumGepland</code></td><td>true</td><td>Berekenen op basis van startdatum + ZTC  servicenorm</td></tr><tr><td><code>uiterlijkeEinddatumAfdoening</code></td><td>true</td><td>Berekenen op basis van startdatum + ZTC doorlooptijd</td></tr><tr><td><code>publicatiedatum</code></td><td>false</td><td></td></tr><tr><td><code>communicatiekanaal</code></td><td>true</td><td>Conform referentielijsten-API-values</td></tr><tr><td><code>productenOfDiensten</code></td><td>false</td><td></td></tr><tr><td><code>vertrouwelijkheidaanduiding</code></td><td>true</td><td>Indien niet opgegeven, wordt de waarde uit de ZTC gebruikt.</td></tr><tr><td><code>betalingsindicatie</code></td><td>true</td><td></td></tr><tr><td><code>laatsteBetaaldatum</code></td><td>true</td><td>Als er sprake is van betaling</td></tr><tr><td><code>zaakgeometrie</code></td><td>true</td><td>Als de zaak een locatie heeft</td></tr><tr><td><code>verlenging</code></td><td>false</td><td></td></tr><tr><td><code>opschorting</code></td><td>false</td><td></td></tr><tr><td><code>selectielijstklasse</code></td><td>false</td><td></td></tr><tr><td><code>hoofdzaak</code></td><td>true</td><td>Als er sprake is van een hoofdzaak</td></tr><tr><td><code>relevanteAndereZaken</code></td><td>true</td><td>Als er sprake is van andere zaken</td></tr><tr><td><code>kenmerken</code></td><td>false</td><td></td></tr><tr><td><code>archiefnominatie</code></td><td>false</td><td>Inherited?</td></tr><tr><td>archiefstatus</td><td>false</td><td></td></tr><tr><td>archiefactiedatum</td><td>false</td><td></td></tr><tr><td><code>opdrachtgevendeOrganisatie</code></td><td>true</td><td>Optioneel</td></tr><tr><td><code>processobjectaard</code></td><td>true</td><td>Joeri Bekker</td></tr><tr><td><code>startdatumBewaartermijn</code></td><td>false</td><td>Niet in deze fase</td></tr><tr><td><code>processobject</code></td><td>false</td><td>Joeri Bekker</td></tr></tbody></table>

#### Relateer status

{% hint style="info" %}
Naar ZRC-API 1.5. | POST /status
{% endhint %}

<table><thead><tr><th width="317">Key</th><th width="80" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td><code>zaak</code>*</td><td>true</td><td></td></tr><tr><td><code>statustype</code>*</td><td>true</td><td></td></tr><tr><td><code>datumStatus</code>*</td><td>true</td><td></td></tr><tr><td><code>statustoelichting</code></td><td>false</td><td>Optioneel</td></tr><tr><td><code>gezetdoor</code></td><td>false</td><td>Optioneel</td></tr></tbody></table>

#### Relateer documenten

{% hint style="info" %}
Naar ZRC-API 1.5. | POST /zaakinformatieobjecten

Use case: documenten die vanuit het aanvraagcomponent reeds opgeslagen zijn in de drc-api
{% endhint %}

<table><thead><tr><th width="341">Key</th><th width="76" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td>zaak</td><td>true</td><td></td></tr><tr><td>informatieobject</td><td>true</td><td></td></tr><tr><td></td><td>false</td><td></td></tr></tbody></table>

**Relateer zaakobjecten**

<table><thead><tr><th width="340">Key</th><th width="80" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td>zaak</td><td>true</td><td></td></tr><tr><td>object</td><td>true</td><td></td></tr><tr><td>objectType</td><td>true</td><td></td></tr><tr><td></td><td>false</td><td></td></tr></tbody></table>

**Creeer contactmoment**

<table><thead><tr><th width="344">Key</th><th width="73" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td></td><td>true</td><td></td></tr><tr><td></td><td>true</td><td></td></tr><tr><td></td><td>true</td><td></td></tr></tbody></table>
{% endtab %}

{% tab title="Rol toevoegen" %}
{% @mermaid/diagram content="sequenceDiagram
Participant ZTC
Participant ZAC
Participant ZRC
Participant Open-Klant
activate ZAC
ZAC->>ZTC: GET metadata
ZAC->>ZRC: POST rol
ZAC->>Open-Klant: POST klant vraagteken
deactivate ZAC
" %}

#### Relateer Rollen

{% hint style="info" %}
Naar ZRC-API 1.5. | POST /rollen
{% endhint %}

{% hint style="warning" %}
Let op:&#x20;

Verwerk altijd de INITIATOR\
Verwerk altijd de BEHANDELAAR of ORGANISATIE-ONDERDEEL\
\
\ <mark style="background-color:orange;">ZAC: we leggen bij betrokkeneIdentificatie alleen het BSN, KvK, Vestigingsnummer vast</mark><br>

<mark style="background-color:orange;">Hoe om te gaan met Open Klant in relatie tot het vastleggen van deze klantgegevens, mag dat als kopie aan de zaak, of moet dat als verwijzing naar de bron?</mark>\
\ <mark style="background-color:orange;">Welke data leg je standaard vast?</mark>\
\ <mark style="background-color:orange;">Hoe gaan we om met correspondentie-adressen?</mark>\
\ <mark style="background-color:orange;">Waar wordt het mailadres van de klant opgehaald?</mark>
{% endhint %}

**Relateer rol natuurlijk persoon**

<table><thead><tr><th width="343">Key</th><th width="72" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td><code>zaak</code>*</td><td>true</td><td></td></tr><tr><td><code>betrokkene</code></td><td>false</td><td>Alleen als je gebruik maakt van HaalCentraal en of KvK-API. <br><br><mark style="background-color:orange;">Dit moet een keuze zijn denk ik, want je wil werken met de gegeven die de klant heeft goedgekeurd in de aanvraag</mark></td></tr><tr><td><code>betrokkeneType</code>*</td><td>true</td><td>Altijd vullen</td></tr><tr><td><code>afwijkendeNaamBetrokkene</code></td><td>false</td><td><mark style="background-color:orange;">Bespreken</mark></td></tr><tr><td><code>roltype</code>*</td><td>true</td><td>Altijd vullen</td></tr><tr><td><code>roltoelichting</code>*</td><td>true</td><td><mark style="background-color:orange;">Bespreken, verplicht veld in spec</mark></td></tr><tr><td><code>indicatieMachtiging</code>*</td><td>false</td><td><mark style="background-color:orange;">Wordt uitgebreid nav</mark> <a href="https://dienstverleningsplatform.gitbook.io/platform-generieke-dienstverlening-public/patronen/vertegenwoordiging-en-machtiging/datadefinities"><mark style="background-color:orange;">https://dienstverleningsplatform.gitbook.io/platform-generieke-dienstverlening-public/patronen/vertegenwoordiging-en-machtiging/datadefinities</mark></a></td></tr><tr><td><code>contactpersoonRol</code></td><td>true</td><td><mark style="background-color:orange;">Als er sprake is van een contactpersoon, relatie met Open Klant?</mark></td></tr><tr><td><code>betrokkeneIdentificatie</code></td><td>true</td><td>Object [natuurlijk persoon]</td></tr></tbody></table>

**Object contactpersoon**

<table><thead><tr><th width="343">Key</th><th width="72" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td><code>emailadres</code></td><td>false</td><td>Idealiter zou je hier relateren naar de 'partij' in Open Klant, áls je een actueel mailadres wilt gebruiken. Waar leggen we die relatie vast?</td></tr><tr><td><code>functie</code></td><td>false</td><td><br></td></tr><tr><td><code>telefoonnummer</code></td><td>false</td><td></td></tr><tr><td><code>naam</code></td><td>false</td><td></td></tr></tbody></table>

\
**Object natuurlijk persoon**<br>

<table><thead><tr><th width="343">Key</th><th width="72" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td><code>ipBsn</code></td><td>true</td><td>Als bekend</td></tr><tr><td><code>anpIdentificatie</code></td><td>true</td><td><mark style="background-color:orange;">Voor eIDAS?</mark><br></td></tr><tr><td><code>inpA_nummer</code></td><td>false</td><td><mark style="background-color:orange;">Geen output van authenticatiemethode toch? Dus moet handmatig opgevoerd worden. Waar?</mark></td></tr><tr><td><code>geslachtnaam</code></td><td>false</td><td></td></tr><tr><td><code>voorvoegselGeslachtsnaam</code></td><td>false</td><td></td></tr><tr><td><code>voorletters</code></td><td>false</td><td></td></tr><tr><td><code>voornamen</code></td><td>false</td><td></td></tr><tr><td><code>geslachtsaanduiding</code></td><td>false</td><td></td></tr><tr><td><code>geboortedatum</code></td><td>false</td><td></td></tr><tr><td><code>verblijfsadres</code></td><td>false</td><td><mark style="background-color:orange;">Object, waar put SD / Xential uit haar informatie voor een briefhoofd. Is dat specifiek samengesteld per zaak, of wordt dat opgehaald?</mark></td></tr><tr><td><code>subVerblijfBuitenland</code></td><td>false</td><td></td></tr></tbody></table>

Object verblijfsadres\
\
subVerblijfBuitenland
{% endtab %}

{% tab title="Statusupdate" %}

#### Relateer status

{% hint style="info" %}
Naar ZRC-API 1.5. | POST /status
{% endhint %}

<table><thead><tr><th width="317">Key</th><th width="80" data-type="checkbox">ZGW</th><th>Toelichting</th></tr></thead><tbody><tr><td><code>zaak</code>*</td><td>true</td><td></td></tr><tr><td><code>statustype</code>*</td><td>true</td><td></td></tr><tr><td><code>datumStatus</code>*</td><td>true</td><td></td></tr><tr><td><code>statustoelichting</code></td><td>false</td><td>Optioneel</td></tr><tr><td><code>gezetdoor</code></td><td>false</td><td>Optioneel</td></tr></tbody></table>

{% endtab %}

{% tab title="Besluit registreren" %}

{% endtab %}

{% tab title="Zaak publiceren" %}

{% endtab %}
{% endtabs %}

[^1]: Toetsen bij OIP en NLPortal


---

# 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://dienstverleningsplatform.gitbook.io/platform-generieke-dienstverlening-public/best-practices/uniforme-registratie-van-zaken.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.
