Repository: infonl/dimpact-zaakafhandelcomponent
Pull request #2958: feat: add integration test for creating BPMN process definition
Author: login: edgarvonk
Created: 2025-03-26T16:19:45Z | Merged: 2025-03-26T17:28:31Z

Moved Kotlin BPMN code to nl.info package. Added service class to manage zaaktype - BPMN process definition relations. Added first step in integration tests for BPMN functionality: create BPMN process definition.

Solves PZ-5844


Diff:
diff --git a/.licenserc.yaml b/.licenserc.yaml
index 9b7cf571b7..18ba341064 100644
--- a/.licenserc.yaml
+++ b/.licenserc.yaml
@@ -31,6 +31,8 @@ header:
     # SPDX license headers cannot be added to JSON files so we ignore them
     # there are ways to link licensing information to JSON files however; see e.g. https://reuse.software/faq/
     - '**/**.json'
+    # SPDX license headers cannot be added to BPMN (XML) files so we ignore them
+    - '**/*.bpmn'
     - '**/**.txt'
     - '**/dist'
     - 'gradlew'
diff --git a/scripts/docker-compose/imports/openzaak-database/database/2-setup-melding-evenement-organiseren-behandelen-zaaktype.sql b/scripts/docker-compose/imports/openzaak-database/database/2-setup-melding-evenement-organiseren-behandelen-zaaktype.sql
index 90b76b1321..9c82773120 100644
--- a/scripts/docker-compose/imports/openzaak-database/database/2-setup-melding-evenement-organiseren-behandelen-zaaktype.sql
+++ b/scripts/docker-compose/imports/openzaak-database/database/2-setup-melding-evenement-organiseren-behandelen-zaaktype.sql
@@ -89,7 +89,7 @@ VALUES
 );
 
 
--- RESULTTYPES (Resultaat type)
+-- RESULTAATTYPES
 
 -- For the first JSON object
 INSERT INTO catalogi_resultaattype
diff --git a/scripts/docker-compose/imports/openzaak-database/database/3-setup-indienen-aansprakelijkstelling-zaaktype.sql b/scripts/docker-compose/imports/openzaak-database/database/3-setup-indienen-aansprakelijkstelling-zaaktype.sql
index e9447d835d..db0cdc151c 100644
--- a/scripts/docker-compose/imports/openzaak-database/database/3-setup-indienen-aansprakelijkstelling-zaaktype.sql
+++ b/scripts/docker-compose/imports/openzaak-database/database/3-setup-indienen-aansprakelijkstelling-zaaktype.sql
@@ -89,7 +89,7 @@ VALUES
 );
 
 
--- RESULTTYPES (Resultaat type)
+-- RESULTAATTYPES
 
 -- For the first JSON object
 INSERT INTO catalogi_resultaattype
@@ -709,13 +709,10 @@ VALUES
 -- ZAC required the informatie objecttype `e-mail` to be present (note the case sensitivity). Also see the 'ConfiguratieService.java' class in the ZAC code base.
 -- the informatie objecttype `bijlage` is used in the flow of creating a zaak by ZAC from an incoming 'productaanvraag' notification
 
-
 -- Factuur
 INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
 VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1 , '2023-11-22', NULL, false, 'eca3ae33-c9f1-4136-a48a-47dc3f4aaaf5', 'factuur', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
 
-
-
 -- Ontvangstbevestiging
 INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
 VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1 , '2023-11-22', NULL, false, 'bf9a7836-2e29-4db1-9abc-382f2d4a9e70', 'ontvangstbevestiging', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
@@ -760,6 +757,7 @@ VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1, '20
 INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
 VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1, '2023-11-22', NULL, false, '7397af15-44d1-4b0d-b7ea-22b20912ed80', 'besluit', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
 
+
 -- ZAAKTYPEN INFORMATIEOBJECTTYPE
 -- e-mail
 INSERT INTO catalogi_zaaktypeinformatieobjecttype
@@ -770,7 +768,6 @@ VALUES
 NULL,
 (SELECT id FROM catalogi_zaaktype WHERE uuid = 'fd2bf643-c98a-4b00-b2b3-9ae0c41ed425'), '_etag');
 
-
 -- bijlage
 INSERT INTO catalogi_zaaktypeinformatieobjecttype
 (id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
@@ -807,7 +804,6 @@ VALUES
 NULL,
 (SELECT id FROM catalogi_zaaktype WHERE uuid = 'fd2bf643-c98a-4b00-b2b3-9ae0c41ed425'), '_etag');
 
-
 -- bewijs
 INSERT INTO catalogi_zaaktypeinformatieobjecttype
 (id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
diff --git a/scripts/docker-compose/imports/openzaak-database/database/4-setup-bpmn-test-zaaktype.sql b/scripts/docker-compose/imports/openzaak-database/database/4-setup-bpmn-test-zaaktype.sql
new file mode 100644
index 0000000000..0de019c2e3
--- /dev/null
+++ b/scripts/docker-compose/imports/openzaak-database/database/4-setup-bpmn-test-zaaktype.sql
@@ -0,0 +1,810 @@
+-- SQL script that creates the 'Indienen aansprakelijkstelling door derden behandelen' zaaktype in the Open Zaak database
+
+-- note that we currently use the public https://selectielijst.openzaak.nl/ VNG Selectielijst service here
+INSERT INTO catalogi_zaaktype
+(
+  id,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid,
+  concept,
+  uuid,
+  identificatie,
+  zaaktype_omschrijving,
+  zaaktype_omschrijving_generiek,
+  vertrouwelijkheidaanduiding,
+  doel,
+  aanleiding,
+  toelichting,
+  indicatie_intern_of_extern,
+  handeling_initiator,
+  onderwerp,
+  handeling_behandelaar,
+  doorlooptijd_behandeling,
+  servicenorm_behandeling,
+  opschorting_en_aanhouding_mogelijk,
+  verlenging_mogelijk,
+  verlengingstermijn,
+  trefwoorden,
+  publicatie_indicatie,
+  publicatietekst,
+  verantwoordingsrelatie,
+  versiedatum,
+  producten_of_diensten,
+  selectielijst_procestype,
+  referentieproces_naam,
+  referentieproces_link,
+  catalogus_id,
+  selectielijst_procestype_jaar,
+  _etag,
+  verantwoordelijke,
+  broncatalogus_domein,
+  broncatalogus_rsin,
+  broncatalogus_url,
+  bronzaaktype_identificatie,
+  bronzaaktype_omschrijving,
+  bronzaaktype_url
+)
+VALUES
+(
+    (SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktype) + 1, -- Assuming auto-increment is not set for id
+    '2025-01-01', -- datum_begin_geldigheid
+    NULL, -- datum_einde_geldigheid
+    false, -- concept
+    '26076928-ce07-4d5d-8638-c2d276f6caca', -- uuid (derived from the URL)
+    'bpmn-test-zaaktype', -- identificatie
+    'BPMN test zaaktype', -- zaaktype_omschrijving
+    'BPMN test zaaktype', -- zaaktype_omschrijving_generiek
+    'openbaar', -- vertrouwelijkheidaanduiding
+    'BPMN test zaaktype', -- doel
+    'BPMN test zaaktype', -- aanleiding
+    '', -- toelichting
+    'extern', -- indicatie_intern_of_extern
+    'Indienen', -- handeling_initiator
+    'Schade en aansprakelijkheid', -- onderwerp
+    'Behandelen', -- handeling_behandelaar
+    'P30D', -- doorlooptijd_behandeling
+    NULL, -- servicenorm_behandeling
+    true, -- opschorting_en_aanhouding_mogelijk
+    true, -- verlenging_mogelijk
+    'P1M', -- verlengingstermijn
+    '{}', -- trefwoorden (empty array)
+    false, -- publicatie_indicatie
+    '', -- publicatietekst
+    '{}', -- verantwoordingsrelatie (empty array)
+    '2025-01-01', -- versiedatum
+    '{}', -- producten_of_diensten (empty array)
+    'https://selectielijst.openzaak.nl/api/v1/procestypen/1e12ad30-b900-4e7f-b3b7-569673cee0b0', -- selectielijst_procestype
+    'BPMN test zaaktype', -- referentieproces_naam
+    '', -- referentieproces_link
+    1, -- catalogus_id, assuming a lookup is required
+    2020, -- selectielijst_procestype_jaar (assuming this remains constant)
+    '_etag', -- _etag (Placeholder, assuming it needs to be generated or provided elsewhere)
+    '002564440',    -- verantwoordelijke
+    '',            -- broncatalogus_domein
+    '',            -- broncatalogus_rsin
+    '',            -- broncatalogus_url
+    '',            -- bronzaaktype_identificatie
+    '',            -- bronzaaktype_omschrijving
+    ''             -- bronzaaktype_url
+);
+
+
+-- RESULTAATTYPES
+
+-- For the first JSON object
+INSERT INTO catalogi_resultaattype
+(
+  id,
+  uuid,
+  omschrijving,
+  resultaattypeomschrijving,
+  omschrijving_generiek,
+  selectielijstklasse,
+  archiefnominatie,
+  archiefactietermijn,
+  brondatum_archiefprocedure_afleidingswijze,
+  brondatum_archiefprocedure_datumkenmerk,
+  brondatum_archiefprocedure_einddatum_bekend,
+  brondatum_archiefprocedure_objecttype,
+  brondatum_archiefprocedure_registratie,
+  brondatum_archiefprocedure_procestermijn,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  indicatie_specifiek,
+  procesobjectaard,
+  procestermijn,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  -- Adjust ID as needed
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_resultaattype) + 1,
+  '940a8805-1117-45e8-838a-c3874b780996', -- UUID
+  'Geweigerd', -- Omschrijving
+  'https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/1f750958-431c-4916-bc01-af5d3a753b41', -- Resultaattypeomschrijving
+  'Geweigerd', -- Omschrijving Generiek
+  'https://selectielijst.openzaak.nl/api/v1/resultaten/2431e1ee-cacd-44af-bd12-ea7280a8928b', -- Selectielijstklasse
+  'vernietigen', -- Archiefnominatie
+  'P1Y', -- Archiefactietermijn
+  'afgehandeld', -- Brondatum Archiefprocedure Afleidingswijze
+  '', -- Brondatum Archiefprocedure Datumkenmerk
+  false, -- Brondatum Archiefprocedure Einddatum Bekend
+  '', -- Brondatum Archiefprocedure Objecttype
+  '', -- Brondatum Archiefprocedure Registratie
+  NULL, -- Brondatum Archiefprocedure Procestermijn
+  'Het afhandelen van een geschil dat door een derde aanhangig wordt gemaakt omdat deze een (vermeend) nadeel heeft ondervonden door het (niet) handelen van de instelling', -- Toelichting
+  -- Assuming zaaktype_id needs to be retrieved from the URL, adjust as needed
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'),
+  '_etag',
+  NULL,
+  '',
+  NULL,
+  NULL,
+  NULL
+);
+
+-- For the second JSON object
+INSERT INTO catalogi_resultaattype
+(
+  id,
+  uuid,
+  omschrijving,
+  resultaattypeomschrijving,
+  omschrijving_generiek,
+  selectielijstklasse,
+  archiefnominatie,
+  archiefactietermijn,
+  brondatum_archiefprocedure_afleidingswijze,
+  brondatum_archiefprocedure_datumkenmerk,
+  brondatum_archiefprocedure_einddatum_bekend,
+  brondatum_archiefprocedure_objecttype,
+  brondatum_archiefprocedure_registratie,
+  brondatum_archiefprocedure_procestermijn,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  indicatie_specifiek,
+  procesobjectaard,
+  procestermijn,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_resultaattype) + 1, -- Adjust ID as needed
+  '82442c7f-05f2-4e9d-a0ae-c038344809af', -- UUID
+  'Afgebroken',
+  'https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/ce8cf476-0b59-496f-8eee-957a7c6e2506',
+  'Afgebroken',
+  'https://selectielijst.openzaak.nl/api/v1/resultaten/0d978967-6bf2-452f-951a-c16bff338f42',
+  'vernietigen',
+  'P1Y',
+  'afgehandeld',
+  '',
+  false,
+  '',
+  '',
+  NULL,
+  'Het afhandelen van een geschil dat door een derde aanhangig wordt gemaakt omdat deze een (vermeend) nadeel heeft ondervonden door het (niet) handelen van de instelling',
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'),
+  '_etag',
+  NULL,
+  '',
+  NULL,
+  NULL,
+  NULL
+);
+
+-- For the third JSON object
+INSERT INTO catalogi_resultaattype
+(
+  id,
+  uuid,
+  omschrijving,
+  resultaattypeomschrijving,
+  omschrijving_generiek,
+  selectielijstklasse,
+  archiefnominatie,
+  archiefactietermijn,
+  brondatum_archiefprocedure_afleidingswijze,
+  brondatum_archiefprocedure_datumkenmerk,
+  brondatum_archiefprocedure_einddatum_bekend,
+  brondatum_archiefprocedure_objecttype,
+  brondatum_archiefprocedure_registratie,
+  brondatum_archiefprocedure_procestermijn,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  indicatie_specifiek,
+  procesobjectaard,
+  procestermijn,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_resultaattype) + 1, -- Adjust ID as needed
+  '9dbda017-0945-4fbb-8c53-ab336292ccb9', -- UUID
+  'Toegekend', -- Omschrijving
+  'https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/fb65d251-1518-4185-865f-b8bdcfad07b1', -- Resultaattypeomschrijving
+  'Toegekend', -- Omschrijving Generiek
+  'https://selectielijst.openzaak.nl/api/v1/resultaten/2431e1ee-cacd-44af-bd12-ea7280a8928b', -- Selectielijstklasse
+  'vernietigen', -- Archiefnominatie
+  'P1Y', -- Archiefactietermijn
+  'afgehandeld', -- Brondatum Archiefprocedure Afleidingswijze
+  '', -- Brondatum Archiefprocedure Datumkenmerk
+  false, -- Brondatum Archiefprocedure Einddatum Bekend
+  '', -- Brondatum Archiefprocedure Objecttype
+  '', -- Brondatum Archiefprocedure Registratie
+  NULL, -- Brondatum Archiefprocedure Procestermijn
+  'Het afhandelen van een geschil dat door een derde aanhangig wordt gemaakt omdat deze een (vermeend) nadeel heeft ondervonden door het (niet) handelen van de instelling', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',
+  NULL,
+  '',
+  NULL,
+  NULL,
+  NULL
+);
+
+-- For the fourth JSON object
+INSERT INTO catalogi_resultaattype
+(
+  id,
+  uuid,
+  omschrijving,
+  resultaattypeomschrijving,
+  omschrijving_generiek,
+  selectielijstklasse,
+  archiefnominatie,
+  archiefactietermijn,
+  brondatum_archiefprocedure_afleidingswijze,
+  brondatum_archiefprocedure_datumkenmerk,
+  brondatum_archiefprocedure_einddatum_bekend,
+  brondatum_archiefprocedure_objecttype,
+  brondatum_archiefprocedure_registratie,
+  brondatum_archiefprocedure_procestermijn,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  indicatie_specifiek,
+  procesobjectaard,
+  procestermijn,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_resultaattype) + 1, -- Adjust ID as needed
+  'a1f99809-74d0-4973-bd4a-356d8c8462ca', -- UUID
+  'Buiten behandeling', -- Omschrijving
+  'https://selectielijst.openzaak.nl/api/v1/resultaattypeomschrijvingen/ce8cf476-0b59-496f-8eee-957a7c6e2506', -- Resultaattypeomschrijving
+  'Afgebroken', -- Omschrijving Generiek
+  'https://selectielijst.openzaak.nl/api/v1/resultaten/949daaef-57e6-43aa-a1f2-4aeea5d4f7fc', -- Selectielijstklasse
+  'vernietigen', -- Archiefnominatie
+  'P1Y', -- Archiefactietermijn
+  'afgehandeld', -- Brondatum Archiefprocedure Afleidingswijze
+  '', -- Brondatum Archiefprocedure Datumkenmerk
+  false, -- Brondatum Archiefprocedure Einddatum Bekend
+  '', -- Brondatum Archiefprocedure Objecttype
+  '', -- Brondatum Archiefprocedure Registratie
+  NULL, -- Brondatum Archiefprocedure Procestermijn
+  'Het afhandelen van een geschil dat door een derde aanhangig wordt gemaakt omdat deze een (vermeend) nadeel heeft ondervonden door het (niet) handelen van de instelling', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',
+  NULL,
+  '',
+  NULL,
+  NULL,
+  NULL
+);
+
+
+-- STATUSTYPES
+-- For the first JSON object
+INSERT INTO catalogi_statustype
+(
+  id,
+  uuid,
+  statustype_omschrijving,
+  statustype_omschrijving_generiek,
+  statustypevolgnummer,
+  informeren,
+  statustekst,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  doorlooptijd,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_statustype) + 1, -- Adjust ID as needed
+  '4ec71651-2039-427c-9d22-b31615738de0', -- UUID
+  'Afgerond', -- Statustype Omschrijving
+  '', -- Statustype Omschrijving Generiek
+  12, -- Statustypevolgnummer
+  false, -- Informeren
+  '', -- Statustekst
+  '', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag', -- Placeholder
+  NULL,            -- doorlooptijd
+  NULL,            -- datum_begin_geldigheid
+  NULL             -- datum_einde_geldigheid
+);
+
+-- For the second JSON object
+INSERT INTO catalogi_statustype
+(
+  id,
+  uuid,
+  statustype_omschrijving,
+  statustype_omschrijving_generiek,
+  statustypevolgnummer,
+  informeren,
+  statustekst,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  doorlooptijd,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_statustype) + 1, -- Adjust ID as needed
+  '35c18981-7104-4088-a0e5-be402d1b3c39', -- UUID
+  'Wacht op aanvullende informatie', -- Statustype Omschrijving
+  '', -- Statustype Omschrijving Generiek
+  11, -- Statustypevolgnummer
+  false, -- Informeren
+  '', -- Statustekst
+  '', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag', -- Placeholder
+  NULL,            -- doorlooptijd
+  NULL,            -- datum_begin_geldigheid
+  NULL             -- datum_einde_geldigheid
+);
+
+-- For the third JSON object
+INSERT INTO catalogi_statustype
+(
+  id,
+  uuid,
+  statustype_omschrijving,
+  statustype_omschrijving_generiek,
+  statustypevolgnummer,
+  informeren,
+  statustekst,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  doorlooptijd,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_statustype) + 1, -- Adjust ID as needed
+  'cfbae35e-b106-4e29-9011-057dcc0fafc8', -- UUID
+  'Onderzoek afgerond', -- Statustype Omschrijving
+  '', -- Statustype Omschrijving Generiek
+  10, -- Statustypevolgnummer
+  false, -- Informeren
+  '', -- Statustekst
+  '', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',    -- _etag (Placeholder)
+  NULL,       -- doorlooptijd
+  NULL,       -- datum_begin_geldigheid
+  NULL        -- datum_einde_geldigheid
+);
+
+-- For the fourth JSON object
+INSERT INTO catalogi_statustype
+(
+  id,
+  uuid,
+  statustype_omschrijving,
+  statustype_omschrijving_generiek,
+  statustypevolgnummer,
+  informeren,
+  statustekst,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  doorlooptijd,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_statustype) + 1, -- Adjust ID as needed
+  '5d38db5b-588b-4f1d-8c8e-0978a2d26609', -- UUID
+  'Heropend', -- Statustype Omschrijving
+  '', -- Statustype Omschrijving Generiek
+  9, -- Statustypevolgnummer
+  false, -- Informeren
+  '', -- Statustekst
+  '', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',    -- _etag (Placeholder)
+  NULL,       -- doorlooptijd
+  NULL,       -- datum_begin_geldigheid
+  NULL        -- datum_einde_geldigheid
+);
+
+INSERT INTO catalogi_statustype
+(
+  id,
+  uuid,
+  statustype_omschrijving,
+  statustype_omschrijving_generiek,
+  statustypevolgnummer,
+  informeren,
+  statustekst,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  doorlooptijd,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_statustype) + 1, -- Adjust ID as needed
+  '9ebd3a4d-0c05-46b4-82bf-caff6cf1119e', -- UUID
+  'In behandeling', -- Statustype Omschrijving
+  '', -- Statustype Omschrijving Generiek
+  8, -- Statustypevolgnummer
+  false, -- Informeren
+  '', -- Statustekst
+  '', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag', -- Placeholder
+  NULL,            -- doorlooptijd
+  NULL,            -- datum_begin_geldigheid
+  NULL             -- datum_einde_geldigheid
+);
+
+INSERT INTO catalogi_statustype
+(
+  id,
+  uuid,
+  statustype_omschrijving,
+  statustype_omschrijving_generiek,
+  statustypevolgnummer,
+  informeren,
+  statustekst,
+  toelichting,
+  zaaktype_id,
+  _etag,
+  doorlooptijd,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_statustype) + 1, -- Adjust ID as needed
+  'a5574210-c112-4935-8b37-a9a52413fa92', -- UUID
+  'Intake', -- Statustype Omschrijving
+  '', -- Statustype Omschrijving Generiek
+  7, -- Statustypevolgnummer
+  false, -- Informeren
+  '', -- Statustekst
+  '', -- Toelichting
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',    -- _etag (Placeholder)
+  NULL,       -- doorlooptijd
+  NULL,       -- datum_begin_geldigheid
+  NULL        -- datum_einde_geldigheid
+);
+
+
+-- PROPERTIES (eigenschappen)
+-- no properties are defined for this zaaktype
+
+-- ROLTYPEN
+-- Note that these rol types must be known to ZAC as defined in the 'AardVanRol' Java enum in the ZAC code base.
+
+-- For the first JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  'fcc9db56-6684-4696-9f46-c62224c0866a', -- UUID
+  'Melder', -- Omschrijving
+  'initiator', -- Omschrijving Generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the second JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  '351814c8-aff7-4151-9d20-376b3411acb2', -- UUID
+  'Behandelaar', -- Omschrijving
+  'behandelaar', -- Omschrijving Generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the third JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  '051d5db6-c725-4d22-a7fd-a75c5628dc54', -- UUID
+  'Belanghebbende',                     -- omschrijving
+  'belanghebbende',                 -- omschrijving_generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the 4th JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  'd1245029-1991-4ae5-b932-44ec257a35a8', -- uuid
+  'Medeaanvrager',                     -- omschrijving
+  'mede_initiator',                 -- omschrijving_generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the 5th JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  'e69266e6-b8e6-4767-99de-e56aa598c24e', -- uuid
+  'Contactpersoon',                     -- omschrijving
+  'belanghebbende',                 -- omschrijving_generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the 6th JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  'b98fda66-b4b4-4801-a812-5452b74adfc4', -- uuid
+  'Gemachtigde',                     -- omschrijving
+  'belanghebbende',                 -- omschrijving_generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the 7th JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  '65eaa4a6-da78-41be-9af5-8be8549dffc4', -- uuid
+  'Plaatsvervanger',                     -- omschrijving
+  'belanghebbende',                 -- omschrijving_generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+-- For the 8th JSON object
+INSERT INTO catalogi_roltype
+(
+  id,
+  uuid,
+  omschrijving,
+  omschrijving_generiek,
+  zaaktype_id,
+  _etag,
+  datum_begin_geldigheid,
+  datum_einde_geldigheid
+)
+VALUES
+(
+  (SELECT COALESCE(MAX(id),0) FROM catalogi_roltype) + 1,
+  '6541c52a-7bda-4fca-af35-0ecdf3dcc27a', -- uuid
+  'Bewindvoerder',                     -- omschrijving
+  'belanghebbende',                 -- omschrijving_generiek
+  (SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), -- Zaaktype ID
+  '_etag',                          -- _etag (Placeholder)
+  NULL,                             -- datum_begin_geldigheid
+  NULL                              -- datum_einde_geldigheid
+);
+
+
+--  ZAAKTYPE 2 INFORMATION OBJECT TYPES
+-- ZAC required the informatie objecttype `e-mail` to be present (note the case sensitivity). Also see the 'ConfiguratieService.java' class in the ZAC code base.
+-- the informatie objecttype `bijlage` is used in the flow of creating a zaak by ZAC from an incoming 'productaanvraag' notification
+
+-- Factuur
+INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
+VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1 , '2023-11-22', NULL, false, 'a8dfd5b8-8657-48bf-b624-f962709f6e19', 'factuur', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
+
+-- Ontvangstbevestiging
+INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
+VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1 , '2023-11-22', NULL, false, '12dbb9de-6b5c-4649-b9f3-06e6190f2cc6', 'ontvangstbevestiging', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
+
+-- Brief
+INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
+VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1, '2023-11-22', NULL, false, 'ce22f2f5-d8d1-4c6e-8649-3b24f6c2c38a', 'brief', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
+
+-- Bewijs
+INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
+VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1, '2023-11-22', NULL, false, '8ca36dd0-7da4-498b-b095-12ac50d13677', 'bewijs', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
+
+-- Afbeelding
+INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
+VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1, '2023-11-22', NULL, false, 'e30d5680-cce3-4e8a-b895-4d358d354198', 'afbeelding', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
+
+-- Advies
+INSERT INTO catalogi_informatieobjecttype (id, datum_begin_geldigheid, datum_einde_geldigheid, concept, uuid, omschrijving, vertrouwelijkheidaanduiding, catalogus_id, _etag, omschrijving_generiek_definitie, omschrijving_generiek_herkomst, omschrijving_generiek_hierarchie, omschrijving_generiek_informatieobjecttype, omschrijving_generiek_opmerking, trefwoord, informatieobjectcategorie)
+VALUES ((SELECT COALESCE(MAX(id),0) FROM catalogi_informatieobjecttype) + 1, '2023-11-22', NULL, false, 'ecdb5ee6-846e-4afe-bb87-bee2a87109a9', 'advies', 'openbaar', 1, '_etag', '', '', '', '', '', '{}', 'onbekend');
+
+
+-- ZAAKTYPEN INFORMATIEOBJECTTYPE
+-- e-mail
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, '601340f6-c7d4-49bb-9c0f-a5a6d23e0d07', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = 'efc332f2-be3b-4bad-9e3c-49a6219c92ad'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- bijlage
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, 'c37522f0-a73a-4b14-89bc-6a8b37fb9200', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = 'b1933137-94d6-49bc-9e12-afe712512276'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- factuur
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, '5a6d0e86-25a8-4b2d-8ae3-5309a0e3f0a5', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = 'a8dfd5b8-8657-48bf-b624-f962709f6e19'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- ontvangstbevestiging
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, '2ce1b340-7e92-42ad-a763-19c62c411577', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = '12dbb9de-6b5c-4649-b9f3-06e6190f2cc6'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- brief
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, 'aad35ca2-9532-4d7c-bcac-0bae4be836ab', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = 'ce22f2f5-d8d1-4c6e-8649-3b24f6c2c38a'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- bewijs
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, '44ef324d-7762-40ca-8c06-ea083dbe06fb', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = '8ca36dd0-7da4-498b-b095-12ac50d13677'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- afbeelding
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, '75d6a734-e56e-43b9-af15-e3f97a008815', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = 'e30d5680-cce3-4e8a-b895-4d358d354198'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+-- advies
+INSERT INTO catalogi_zaaktypeinformatieobjecttype
+(id, uuid, volgnummer, richting, informatieobjecttype_id, statustype_id, zaaktype_id, _etag)
+VALUES
+((SELECT COALESCE(MAX(id),0) FROM catalogi_zaaktypeinformatieobjecttype) + 1, 'cf1e8015-748b-4acb-aee7-c34afbf4f7ee', (SELECT id FROM catalogi_zaaktypeinformatieobjecttype ORDER BY volgnummer DESC LIMIT 1) + 1, 'inkomend',
+(SELECT id FROM catalogi_informatieobjecttype WHERE uuid = 'ecdb5ee6-846e-4afe-bb87-bee2a87109a9'),
+NULL,
+(SELECT id FROM catalogi_zaaktype WHERE uuid = '26076928-ce07-4d5d-8638-c2d276f6caca'), '_etag');
+
+
diff --git a/src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt b/src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
index e41ef7c3bc..7e3d2cb60a 100644
--- a/src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
+++ b/src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
@@ -11,7 +11,10 @@ import io.kotest.matchers.shouldBe
 import nl.info.zac.itest.client.ItestHttpClient
 import nl.info.zac.itest.config.ItestConfiguration.DATE_2023_09_21
 import nl.info.zac.itest.config.ItestConfiguration.DATE_2023_10_01
-import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BEHANDELEN
+import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_BPMN_TEST_DESCRIPTION
+import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_BPMN_TEST_IDENTIFICATIE
+import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_BPMN_TEST_UUID
+import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BEHANDELEN_IDENTIFICATIE
 import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_DESCRIPTION
 import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_UUID
 import nl.info.zac.itest.config.ItestConfiguration.ZAAKTYPE_MELDING_KLEIN_EVENEMENT_DESCRIPTION
@@ -53,6 +56,34 @@ class HealthCheckRestServiceTest : BehaviorSpec({
             And("the body contains all the performed checks") {
                 responseBody shouldEqualJson """
                     [
+                      {                     
+                        "besluittypeAanwezig": false,
+                        "informatieobjecttypeEmailAanwezig": true,
+                        "resultaattypeAanwezig": true,
+                        "resultaattypesMetVerplichtBesluit": [],
+                        "rolBehandelaarAanwezig": true,
+                        "rolInitiatorAanwezig": true,
+                        "rolOverigeAanwezig": true,
+                        "statustypeAanvullendeInformatieVereist": true,
+                        "statustypeAfgerondAanwezig": true,
+                        "statustypeAfgerondLaatsteVolgnummer": true,
+                        "statustypeHeropendAanwezig": true,
+                        "statustypeInBehandelingAanwezig": true,
+                        "statustypeIntakeAanwezig": true,
+                        "valide": false,
+                        "zaakafhandelParametersValide": false,
+                        "zaaktype": {
+                          "beginGeldigheid": "2025-01-01",
+                          "doel": "$ZAAKTYPE_BPMN_TEST_DESCRIPTION",
+                          "identificatie": "$ZAAKTYPE_BPMN_TEST_IDENTIFICATIE",
+                          "nuGeldig": true,
+                          "omschrijving": "$ZAAKTYPE_BPMN_TEST_DESCRIPTION",
+                          "servicenorm": false,
+                          "uuid": "$ZAAKTYPE_BPMN_TEST_UUID",
+                          "versiedatum": "2025-01-01",
+                          "vertrouwelijkheidaanduiding": "openbaar"
+                        }
+                      },  
                       {
                         "besluittypeAanwezig": true,
                         "informatieobjecttypeEmailAanwezig": true,
@@ -72,7 +103,7 @@ class HealthCheckRestServiceTest : BehaviorSpec({
                         "zaaktype": {
                           "beginGeldigheid": "$DATE_2023_10_01",
                           "doel": "$ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_DESCRIPTION",
-                          "identificatie": "$ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BEHANDELEN",
+                          "identificatie": "$ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BEHANDELEN_IDENTIFICATIE",
                           "nuGeldig": true,
                           "omschrijving": "$ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_DESCRIPTION",
                           "servicenorm": false,
@@ -109,7 +140,7 @@ class HealthCheckRestServiceTest : BehaviorSpec({
                           "vertrouwelijkheidaanduiding": "openbaar"
                         }
                       }
-                    ]
+                    ]    
                 """.trimIndent()
             }
         }
diff --git a/src/itest/kotlin/nl/info/zac/itest/ProcessDefinitionRestServiceTest.kt b/src/itest/kotlin/nl/info/zac/itest/ProcessDefinitionRestServiceTest.kt
index 2e69aac09e..4af3361265 100644
--- a/src/itest/kotlin/nl/info/zac/itest/ProcessDefinitionRestServiceTest.kt
+++ b/src/itest/kotlin/nl/info/zac/itest/ProcessDefinitionRestServiceTest.kt
@@ -5,26 +5,60 @@
 package nl.info.zac.itest
 
 import io.github.oshai.kotlinlogging.KotlinLogging
-import io.kotest.assertions.json.shouldEqualJson
+import io.kotest.core.spec.Order
 import io.kotest.core.spec.style.BehaviorSpec
 import io.kotest.matchers.shouldBe
 import nl.info.zac.itest.client.ItestHttpClient
+import nl.info.zac.itest.config.ItestConfiguration.BPMN_TEST_PROCESS
+import nl.info.zac.itest.config.ItestConfiguration.TEST_SPEC_ORDER_INITIAL
 import nl.info.zac.itest.config.ItestConfiguration.ZAC_API_URI
+import nl.info.zac.itest.util.shouldEqualJsonIgnoringExtraneousFields
+import java.io.File
 
+@Order(TEST_SPEC_ORDER_INITIAL)
 class ProcessDefinitionRestServiceTest : BehaviorSpec({
     val logger = KotlinLogging.logger {}
     val itestHttpClient = ItestHttpClient()
 
     Given("No existing BPMN process definitions") {
+        When("the integration test BPMN process definition is created from our BPMN test process file") {
+            val bpmnTestProcessFileContent = Thread.currentThread().contextClassLoader.getResource(
+                BPMN_TEST_PROCESS
+            )?.let {
+                File(it.path)
+            }!!.readText(Charsets.UTF_8).replace("\"", "\\\"").replace("\n", "\\n")
+            val response = itestHttpClient.performJSONPostRequest(
+                url = "$ZAC_API_URI/process-definitions",
+                requestBodyAsString = """
+                {
+                    "filename": "$BPMN_TEST_PROCESS",
+                    "content": "$bpmnTestProcessFileContent"
+                }
+                """.trimIndent()
+            )
+            Then("the response is successful") {
+                val responseBody = response.body!!.string()
+                logger.info { "Response: $responseBody" }
+                response.isSuccessful shouldBe true
+            }
+        }
         When("the process definitions are retrieved") {
             val response = itestHttpClient.performGetRequest(
                 "$ZAC_API_URI/process-definitions"
             )
-            Then("the response is empty") {
+            Then("the response contains the BPMN process definition that was just created") {
                 val responseBody = response.body!!.string()
                 logger.info { "Response: $responseBody" }
                 response.isSuccessful shouldBe true
-                responseBody shouldEqualJson "[]"
+                responseBody shouldEqualJsonIgnoringExtraneousFields """
+                 [  
+                  {
+                    "key": "bpmnTest",
+                    "name": "bpmn test",
+                    "version": 1
+                  }
+                ]  
+                """.trimIndent()
             }
         }
     }
diff --git a/src/itest/kotlin/nl/info/zac/itest/config/ItestConfiguration.kt b/src/itest/kotlin/nl/info/zac/itest/config/ItestConfiguration.kt
index 53a053799d..4f9b845e7b 100644
--- a/src/itest/kotlin/nl/info/zac/itest/config/ItestConfiguration.kt
+++ b/src/itest/kotlin/nl/info/zac/itest/config/ItestConfiguration.kt
@@ -47,6 +47,7 @@ object ItestConfiguration {
     const val BETROKKENE_IDENTIFICATION_TYPE_BSN = "BSN"
     const val BETROKKENE_IDENTIFACTION_TYPE_VESTIGING = "VN"
     const val BETROKKENE_ROL_TOEVOEGEN_REDEN = "Toegekend door de medewerker tijdens het behandelen van de zaak"
+    const val BPMN_TEST_PROCESS = "bpmnTestProcess.bpmn"
     const val BRON_ORGANISATIE = "123443210"
     const val CONFIG_MAX_FILE_SIZE_IN_MB = 80L
     const val CONFIG_GEMEENTE_CODE = "9999"
@@ -96,7 +97,7 @@ object ItestConfiguration {
     const val ROLTYPE_NAME_MEDEAANVRAGER = "Medeaanvrager"
     const val ROLTYPE_UUID_BELANGHEBBENDE = "4c4cd850-8332-4bb9-adc4-dd046f0614ad"
     const val ROLTYPE_UUID_MEDEAANVRAGER = "b14cf056-0480-4060-a376-1dd522a50431"
-    const val ROLTYPE_COUNT = 16
+    const val ROLTYPE_COUNT = 24
     const val SCREEN_EVENT_TYPE_TAKEN_VERDELEN = "TAKEN_VERDELEN"
     const val SCREEN_EVENT_TYPE_TAKEN_VRIJGEVEN = "TAKEN_VRIJGEVEN"
     const val SCREEN_EVENT_TYPE_ZAKEN_VERDELEN = "ZAKEN_VERDELEN"
@@ -288,12 +289,14 @@ object ItestConfiguration {
      */
     const val ZAC_MANAGEMENT_URI = "http://localhost:$ZAC_MANAGEMENT_PORT"
     const val ZAC_HEALTH_READY_URL = "$ZAC_MANAGEMENT_URI/health/ready"
+    const val ZAAKTYPE_BPMN_TEST_IDENTIFICATIE = "bpmn-test-zaaktype"
+    const val ZAAKTYPE_BPMN_TEST_DESCRIPTION = "BPMN test zaaktype"
     const val ZAAKTYPE_MELDING_KLEIN_EVENEMENT_IDENTIFICATIE = "melding-evenement-organiseren-behandelen"
     const val ZAAKTYPE_MELDING_KLEIN_EVENEMENT_DESCRIPTION = "Melding evenement organiseren behandelen"
     const val ZAAKTYPE_MELDING_KLEIN_EVENEMENT_REFERENTIEPROCES = "melding klein evenement"
     const val ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_IDENTIFICATIE =
         "indienen-aansprakelijkstelling-door-derden-behandelen"
-    const val ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BEHANDELEN = "indienen-aansprakelijkstelling-behandelen"
+    const val ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BEHANDELEN_IDENTIFICATIE = "indienen-aansprakelijkstelling-behandelen"
     const val ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_DESCRIPTION =
         "Indienen aansprakelijkstelling door derden behandelen"
     const val ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_BETROKKENE_BELANGHEBBENDE = "3bb6928b-76de-4716-ac5f-fa3d7d6eca36"
@@ -341,9 +344,11 @@ object ItestConfiguration {
     val DATE_TIME_2024_01_01: ZonedDateTime = DATE_2024_01_01.atStartOfDay(TimeZone.getDefault().toZoneId())
     val DATE_TIME_2024_01_31: ZonedDateTime = DATE_2024_01_31.atStartOfDay(TimeZone.getDefault().toZoneId())
 
+    val ZAAKTYPE_BPMN_TEST_UUID: UUID = UUID.fromString("26076928-ce07-4d5d-8638-c2d276f6caca")
     val ZAAKTYPE_MELDING_KLEIN_EVENEMENT_UUID: UUID = UUID.fromString("448356ff-dcfb-4504-9501-7fe929077c4f")
     val ZAAKTYPE_INDIENEN_AANSPRAKELIJKSTELLING_DOOR_DERDEN_BEHANDELEN_UUID: UUID =
         UUID.fromString("fd2bf643-c98a-4b00-b2b3-9ae0c41ed425")
+
     val START_DATE: LocalDateTime = LocalDateTime.now()
 
     /**
diff --git a/src/itest/resources/bpmnTestProcess.bpmn b/src/itest/resources/bpmnTestProcess.bpmn
new file mode 100644
index 0000000000..b4b6d4cca7
--- /dev/null
+++ b/src/itest/resources/bpmnTestProcess.bpmn
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:design="http://flowable.org/design" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://flowable.org/test" design:palette="flowable-core-process-palette">
+  <process id="bpmnTest" name="bpmn test" isExecutable="true" flowable:candidateStarterGroups="flowableUser">
+    <extensionElements>
+      <design:stencilid><![CDATA[BPMNDiagram]]></design:stencilid>
+      <design:creationdate><![CDATA[2024-09-10T13:48:29.993Z]]></design:creationdate>
+      <design:modificationdate><![CDATA[2025-03-25T13:38:14.635Z]]></design:modificationdate>
+    </extensionElements>
+    <serviceTask id="ServiceTask_1" name="Status naar Intake" flowable:class="net.atos.zac.flowable.delegate.UpdateZaakJavaDelegate">
+      <extensionElements>
+        <flowable:field name="statustypeOmschrijving">
+          <flowable:string><![CDATA[Intake]]></flowable:string>
+        </flowable:field>
+        <design:stencilid><![CDATA[ServiceTask]]></design:stencilid>
+        <design:stencilsuperid><![CDATA[Task]]></design:stencilsuperid>
+      </extensionElements>
+    </serviceTask>
+    <startEvent id="startnoneevent1" flowable:initiator="initiator">
+      <extensionElements>
+        <design:stencilid><![CDATA[StartNoneEvent]]></design:stencilid>
+      </extensionElements>
+    </startEvent>
+    <endEvent id="EndNoneEvent_1">
+      <extensionElements>
+        <design:stencilid><![CDATA[EndNoneEvent]]></design:stencilid>
+      </extensionElements>
+    </endEvent>
+    <sequenceFlow id="SequenceFlow_4" sourceRef="ServiceTask_1" targetRef="EndNoneEvent_1">
+      <extensionElements>
+        <design:stencilid><![CDATA[SequenceFlow]]></design:stencilid>
+      </extensionElements>
+    </sequenceFlow>
+    <sequenceFlow id="SequenceFlow_3" sourceRef="startnoneevent1" targetRef="ServiceTask_1">
+      <extensionElements>
+        <design:stencilid><![CDATA[SequenceFlow]]></design:stencilid>
+      </extensionElements>
+    </sequenceFlow>
+  </process>
+  <bpmndi:BPMNDiagram id="BPMNDiagram_bpmnTest">
+    <bpmndi:BPMNPlane bpmnElement="bpmnTest" id="BPMNPlane_bpmnTest">
+      <bpmndi:BPMNShape bpmnElement="ServiceTask_1" id="BPMNShape_ServiceTask_1">
+        <omgdc:Bounds height="80.0" width="100.0" x="489.0" y="137.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="startnoneevent1" id="BPMNShape_startnoneevent1">
+        <omgdc:Bounds height="30.0" width="30.0" x="330.0" y="162.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNShape bpmnElement="EndNoneEvent_1" id="BPMNShape_EndNoneEvent_1">
+        <omgdc:Bounds height="28.0" width="28.0" x="703.0" y="163.0"></omgdc:Bounds>
+      </bpmndi:BPMNShape>
+      <bpmndi:BPMNEdge bpmnElement="SequenceFlow_4" id="BPMNEdge_SequenceFlow_4" flowable:sourceDockerX="50.0" flowable:sourceDockerY="40.0" flowable:targetDockerX="14.0" flowable:targetDockerY="14.0">
+        <omgdi:waypoint x="589.0" y="177.0"></omgdi:waypoint>
+        <omgdi:waypoint x="703.0" y="177.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+      <bpmndi:BPMNEdge bpmnElement="SequenceFlow_3" id="BPMNEdge_SequenceFlow_3" flowable:sourceDockerX="15.0" flowable:sourceDockerY="15.0" flowable:targetDockerX="50.0" flowable:targetDockerY="40.0">
+        <omgdi:waypoint x="360.0" y="177.0"></omgdi:waypoint>
+        <omgdi:waypoint x="489.0" y="177.0"></omgdi:waypoint>
+      </bpmndi:BPMNEdge>
+    </bpmndi:BPMNPlane>
+  </bpmndi:BPMNDiagram>
+</definitions>
diff --git a/src/main/kotlin/net/atos/zac/app/admin/ProcessDefinitionRestService.kt b/src/main/kotlin/net/atos/zac/app/admin/ProcessDefinitionRestService.kt
index ddd5c14d02..6c274371e2 100644
--- a/src/main/kotlin/net/atos/zac/app/admin/ProcessDefinitionRestService.kt
+++ b/src/main/kotlin/net/atos/zac/app/admin/ProcessDefinitionRestService.kt
@@ -18,8 +18,8 @@ import jakarta.ws.rs.core.MediaType
 import jakarta.ws.rs.core.Response
 import net.atos.zac.app.admin.model.RestProcessDefinition
 import net.atos.zac.app.admin.model.RestProcessDefinitionContent
-import net.atos.zac.flowable.bpmn.BpmnService
 import net.atos.zac.policy.PolicyService
+import nl.info.zac.flowable.bpmn.BpmnService
 import nl.info.zac.util.NoArgConstructor
 
 @Singleton
diff --git a/src/main/kotlin/net/atos/zac/app/zaak/ZaakRestService.kt b/src/main/kotlin/net/atos/zac/app/zaak/ZaakRestService.kt
index 358d3176ab..fb3d8ab619 100644
--- a/src/main/kotlin/net/atos/zac/app/zaak/ZaakRestService.kt
+++ b/src/main/kotlin/net/atos/zac/app/zaak/ZaakRestService.kt
@@ -88,7 +88,6 @@ import net.atos.zac.app.zaak.model.toRestZaakBetrokkenen
 import net.atos.zac.documenten.OntkoppeldeDocumentenService
 import net.atos.zac.event.EventingService
 import net.atos.zac.flowable.ZaakVariabelenService
-import net.atos.zac.flowable.bpmn.BpmnService
 import net.atos.zac.flowable.cmmn.CMMNService
 import net.atos.zac.flowable.task.FlowableTaskService
 import net.atos.zac.healthcheck.HealthCheckService
@@ -114,6 +113,7 @@ import nl.info.client.zgw.ztc.ZtcClientService
 import nl.info.client.zgw.ztc.model.extensions.isNuGeldig
 import nl.info.zac.authentication.LoggedInUser
 import nl.info.zac.configuratie.ConfiguratieService
+import nl.info.zac.flowable.bpmn.BpmnService
 import nl.info.zac.productaanvraag.ProductaanvraagService
 import nl.info.zac.util.AllOpen
 import nl.info.zac.util.NoArgConstructor
diff --git a/src/main/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverter.kt b/src/main/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverter.kt
index c962c6173e..b86bf84908 100644
--- a/src/main/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverter.kt
+++ b/src/main/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverter.kt
@@ -24,7 +24,6 @@ import net.atos.zac.app.zaak.model.toGeometry
 import net.atos.zac.app.zaak.model.toRestGeometry
 import net.atos.zac.app.zaak.model.toRestZaakStatus
 import net.atos.zac.flowable.ZaakVariabelenService
-import net.atos.zac.flowable.bpmn.BpmnService
 import net.atos.zac.policy.PolicyService
 import net.atos.zac.search.model.ZaakIndicatie
 import net.atos.zac.util.time.PeriodUtil
@@ -35,6 +34,7 @@ import nl.info.client.zgw.ztc.ZtcClientService
 import nl.info.client.zgw.ztc.model.generated.StatusType
 import nl.info.client.zgw.ztc.model.generated.ZaakType
 import nl.info.zac.configuratie.ConfiguratieService
+import nl.info.zac.flowable.bpmn.BpmnService
 import java.time.LocalDate
 import java.time.Period
 import java.util.EnumSet
diff --git a/src/main/kotlin/net/atos/zac/flowable/bpmn/BpmnService.kt b/src/main/kotlin/nl/info/zac/flowable/bpmn/BpmnService.kt
similarity index 94%
rename from src/main/kotlin/net/atos/zac/flowable/bpmn/BpmnService.kt
rename to src/main/kotlin/nl/info/zac/flowable/bpmn/BpmnService.kt
index 8bae6af6c8..49c63d4bad 100644
--- a/src/main/kotlin/net/atos/zac/flowable/bpmn/BpmnService.kt
+++ b/src/main/kotlin/nl/info/zac/flowable/bpmn/BpmnService.kt
@@ -2,16 +2,16 @@
  * SPDX-FileCopyrightText: 2021 Atos, 2024 Dimpact
  * SPDX-License-Identifier: EUPL-1.2+
  */
-package net.atos.zac.flowable.bpmn
+package nl.info.zac.flowable.bpmn
 
 import jakarta.enterprise.context.ApplicationScoped
 import jakarta.inject.Inject
 import jakarta.transaction.Transactional
 import net.atos.client.zgw.zrc.model.Zaak
 import net.atos.zac.flowable.ZaakVariabelenService
-import net.atos.zac.flowable.bpmn.exception.ProcessDefinitionNotFoundException
 import nl.info.client.zgw.util.extractUuid
 import nl.info.client.zgw.ztc.model.generated.ZaakType
+import nl.info.zac.flowable.bpmn.exception.ProcessDefinitionNotFoundException
 import nl.info.zac.util.AllOpen
 import nl.info.zac.util.NoArgConstructor
 import org.flowable.engine.ProcessEngine
@@ -32,7 +32,7 @@ class BpmnService @Inject constructor(
     private val repositoryService: RepositoryService,
     private val runtimeService: RuntimeService,
     private val processEngine: ProcessEngine,
-    private val bpmnProcessDefinitionService: BpmnProcessDefinitionService
+    private val zaaktypeBpmnProcessDefinitionService: ZaaktypeBpmnProcessDefinitionService
 ) {
     companion object {
         private val LOG = Logger.getLogger(BpmnService::class.java.getName())
@@ -119,7 +119,7 @@ class BpmnService @Inject constructor(
      * Returns the BPMN process definition for the given zaaktype UUID or null if no process definition is found.
      */
     fun findProcessDefinitionForZaaktype(zaaktypeUUID: UUID) =
-        bpmnProcessDefinitionService.findZaaktypeProcessDefinition(zaaktypeUUID)
+        zaaktypeBpmnProcessDefinitionService.findZaaktypeProcessDefinitionByZaaktypeUuid(zaaktypeUUID)
 
     /**
      * Returns a process instance for the given zaak UUID or null if no process instance is found.
diff --git a/src/main/kotlin/net/atos/zac/flowable/bpmn/BpmnProcessDefinitionService.kt b/src/main/kotlin/nl/info/zac/flowable/bpmn/ZaaktypeBpmnProcessDefinitionService.kt
similarity index 64%
rename from src/main/kotlin/net/atos/zac/flowable/bpmn/BpmnProcessDefinitionService.kt
rename to src/main/kotlin/nl/info/zac/flowable/bpmn/ZaaktypeBpmnProcessDefinitionService.kt
index 0a798f94f4..7d4bb9f00e 100644
--- a/src/main/kotlin/net/atos/zac/flowable/bpmn/BpmnProcessDefinitionService.kt
+++ b/src/main/kotlin/nl/info/zac/flowable/bpmn/ZaaktypeBpmnProcessDefinitionService.kt
@@ -2,14 +2,13 @@
  * SPDX-FileCopyrightText: 2025 Lifely
  * SPDX-License-Identifier: EUPL-1.2+
  */
-
-package net.atos.zac.flowable.bpmn
+package nl.info.zac.flowable.bpmn
 
 import jakarta.enterprise.context.ApplicationScoped
 import jakarta.inject.Inject
 import jakarta.persistence.EntityManager
 import jakarta.transaction.Transactional
-import net.atos.zac.flowable.bpmn.model.ZaaktypeBpmnProcessDefinition
+import nl.info.zac.flowable.bpmn.model.ZaaktypeBpmnProcessDefinition
 import nl.info.zac.util.AllOpen
 import nl.info.zac.util.NoArgConstructor
 import java.util.UUID
@@ -18,14 +17,22 @@ import java.util.UUID
 @Transactional
 @NoArgConstructor
 @AllOpen
-class BpmnProcessDefinitionService @Inject constructor(
+class ZaaktypeBpmnProcessDefinitionService @Inject constructor(
     private val entityManager: EntityManager
 ) {
+    fun createZaaktypeBpmnProcessDefinition(zaaktypeBpmnProcessDefinition: ZaaktypeBpmnProcessDefinition) {
+        entityManager.persist(zaaktypeBpmnProcessDefinition)
+    }
+
+    fun deleteZaaktypeBpmnProcessDefinition(zaaktypeBpmnProcessDefinition: ZaaktypeBpmnProcessDefinition) {
+        entityManager.remove(zaaktypeBpmnProcessDefinition)
+    }
+
     /**
      * Returns the zaaktype - BPMN process definition relation for the given zaaktype UUID or 'null'
      * if no BPMN process definition could be found for the given zaaktype UUID.
      */
-    fun findZaaktypeProcessDefinition(zaaktypeUUID: UUID): ZaaktypeBpmnProcessDefinition? =
+    fun findZaaktypeProcessDefinitionByZaaktypeUuid(zaaktypeUUID: UUID): ZaaktypeBpmnProcessDefinition? =
         entityManager.criteriaBuilder.let { criteriaBuilder ->
             criteriaBuilder.createQuery(ZaaktypeBpmnProcessDefinition::class.java).let { query ->
                 query.from(ZaaktypeBpmnProcessDefinition::class.java).let {
diff --git a/src/main/kotlin/net/atos/zac/flowable/bpmn/exception/ProcessDefinitionNotFoundException.kt b/src/main/kotlin/nl/info/zac/flowable/bpmn/exception/ProcessDefinitionNotFoundException.kt
similarity index 80%
rename from src/main/kotlin/net/atos/zac/flowable/bpmn/exception/ProcessDefinitionNotFoundException.kt
rename to src/main/kotlin/nl/info/zac/flowable/bpmn/exception/ProcessDefinitionNotFoundException.kt
index d285116d02..ae95668e48 100644
--- a/src/main/kotlin/net/atos/zac/flowable/bpmn/exception/ProcessDefinitionNotFoundException.kt
+++ b/src/main/kotlin/nl/info/zac/flowable/bpmn/exception/ProcessDefinitionNotFoundException.kt
@@ -2,6 +2,6 @@
  * SPDX-FileCopyrightText: 2025 Lifely
  * SPDX-License-Identifier: EUPL-1.2+
  */
-package net.atos.zac.flowable.bpmn.exception
+package nl.info.zac.flowable.bpmn.exception
 
 class ProcessDefinitionNotFoundException(override val message: String) : RuntimeException(message)
diff --git a/src/main/kotlin/net/atos/zac/flowable/bpmn/model/ZaaktypeBpmnProcessDefinition.kt b/src/main/kotlin/nl/info/zac/flowable/bpmn/model/ZaaktypeBpmnProcessDefinition.kt
similarity index 96%
rename from src/main/kotlin/net/atos/zac/flowable/bpmn/model/ZaaktypeBpmnProcessDefinition.kt
rename to src/main/kotlin/nl/info/zac/flowable/bpmn/model/ZaaktypeBpmnProcessDefinition.kt
index e53bbd70ae..346a7f08cd 100644
--- a/src/main/kotlin/net/atos/zac/flowable/bpmn/model/ZaaktypeBpmnProcessDefinition.kt
+++ b/src/main/kotlin/nl/info/zac/flowable/bpmn/model/ZaaktypeBpmnProcessDefinition.kt
@@ -2,7 +2,7 @@
  * SPDX-FileCopyrightText: 2025 Lifely
  * SPDX-License-Identifier: EUPL-1.2+
  */
-package net.atos.zac.flowable.bpmn.model
+package nl.info.zac.flowable.bpmn.model
 
 import jakarta.persistence.Column
 import jakarta.persistence.Entity
diff --git a/src/test/kotlin/net/atos/zac/app/zaak/ZaakRestServiceTest.kt b/src/test/kotlin/net/atos/zac/app/zaak/ZaakRestServiceTest.kt
index 7d11306711..ac7ba7fd4d 100644
--- a/src/test/kotlin/net/atos/zac/app/zaak/ZaakRestServiceTest.kt
+++ b/src/test/kotlin/net/atos/zac/app/zaak/ZaakRestServiceTest.kt
@@ -72,8 +72,6 @@ import net.atos.zac.documenten.OntkoppeldeDocumentenService
 import net.atos.zac.documenten.model.OntkoppeldDocument
 import net.atos.zac.event.EventingService
 import net.atos.zac.flowable.ZaakVariabelenService
-import net.atos.zac.flowable.bpmn.BpmnService
-import net.atos.zac.flowable.bpmn.model.createZaaktypeBpmnProcessDefinition
 import net.atos.zac.flowable.cmmn.CMMNService
 import net.atos.zac.flowable.task.FlowableTaskService
 import net.atos.zac.healthcheck.HealthCheckService
@@ -118,6 +116,8 @@ import nl.info.zac.authentication.LoggedInUser
 import nl.info.zac.authentication.createLoggedInUser
 import nl.info.zac.configuratie.ConfiguratieService
 import nl.info.zac.exception.InputValidationFailedException
+import nl.info.zac.flowable.bpmn.BpmnService
+import nl.info.zac.flowable.bpmn.model.createZaaktypeBpmnProcessDefinition
 import nl.info.zac.productaanvraag.ProductaanvraagService
 import nl.info.zac.productaanvraag.createProductaanvraagDimpact
 import nl.info.zac.test.date.toDate
diff --git a/src/test/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverterTest.kt b/src/test/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverterTest.kt
index bfda99a7e5..6fd94db61c 100644
--- a/src/test/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverterTest.kt
+++ b/src/test/kotlin/net/atos/zac/app/zaak/converter/RestZaakConverterTest.kt
@@ -18,7 +18,6 @@ import net.atos.zac.app.zaak.model.createRestGroup
 import net.atos.zac.app.zaak.model.createRestUser
 import net.atos.zac.app.zaak.model.createRestZaaktype
 import net.atos.zac.flowable.ZaakVariabelenService
-import net.atos.zac.flowable.bpmn.BpmnService
 import net.atos.zac.policy.PolicyService
 import net.atos.zac.policy.output.createZaakRechten
 import nl.info.client.zgw.brc.BrcClientService
@@ -31,6 +30,7 @@ import nl.info.client.zgw.shared.ZGWApiService
 import nl.info.client.zgw.ztc.ZtcClientService
 import nl.info.client.zgw.ztc.model.createZaakType
 import nl.info.zac.configuratie.ConfiguratieService
+import nl.info.zac.flowable.bpmn.BpmnService
 import java.util.Optional
 
 class RestZaakConverterTest : BehaviorSpec({
diff --git a/src/test/kotlin/net/atos/zac/flowable/bpmn/BpmnServiceTest.kt b/src/test/kotlin/nl/info/zac/flowable/bpmn/BpmnServiceTest.kt
similarity index 91%
rename from src/test/kotlin/net/atos/zac/flowable/bpmn/BpmnServiceTest.kt
rename to src/test/kotlin/nl/info/zac/flowable/bpmn/BpmnServiceTest.kt
index 7c7f07f4ab..86f7421e97 100644
--- a/src/test/kotlin/net/atos/zac/flowable/bpmn/BpmnServiceTest.kt
+++ b/src/test/kotlin/nl/info/zac/flowable/bpmn/BpmnServiceTest.kt
@@ -2,7 +2,7 @@
  * SPDX-FileCopyrightText: 2025 Lifely
  * SPDX-License-Identifier: EUPL-1.2+
  */
-package net.atos.zac.flowable.bpmn
+package nl.info.zac.flowable.bpmn
 
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.core.spec.style.BehaviorSpec
@@ -15,12 +15,12 @@ import net.atos.zac.flowable.ZaakVariabelenService.VAR_ZAAKTYPE_OMSCHRIJVING
 import net.atos.zac.flowable.ZaakVariabelenService.VAR_ZAAKTYPE_UUUID
 import net.atos.zac.flowable.ZaakVariabelenService.VAR_ZAAK_IDENTIFICATIE
 import net.atos.zac.flowable.ZaakVariabelenService.VAR_ZAAK_UUID
-import net.atos.zac.flowable.bpmn.exception.ProcessDefinitionNotFoundException
-import net.atos.zac.flowable.bpmn.model.createZaaktypeBpmnProcessDefinition
 import nl.info.client.zgw.model.createZaak
 import nl.info.client.zgw.ztc.model.createReferentieProcess
 import nl.info.client.zgw.ztc.model.createZaakType
 import nl.info.test.org.flowable.engine.repository.createProcessDefinition
+import nl.info.zac.flowable.bpmn.exception.ProcessDefinitionNotFoundException
+import nl.info.zac.flowable.bpmn.model.createZaaktypeBpmnProcessDefinition
 import org.flowable.engine.ProcessEngine
 import org.flowable.engine.RepositoryService
 import org.flowable.engine.RuntimeService
@@ -33,12 +33,12 @@ class BpmnServiceTest : BehaviorSpec({
     val repositoryService = mockk<RepositoryService>()
     val runtimeService = mockk<RuntimeService>()
     val processEngine = mockk<ProcessEngine>()
-    val bpmnProcessDefinitionService = mockk<BpmnProcessDefinitionService>()
+    val zaaktypeBpmnProcessDefinitionService = mockk<ZaaktypeBpmnProcessDefinitionService>()
     val bpmnService = BpmnService(
         repositoryService,
         runtimeService,
         processEngine,
-        bpmnProcessDefinitionService
+        zaaktypeBpmnProcessDefinitionService
     )
 
     beforeEach {
@@ -123,7 +123,9 @@ class BpmnServiceTest : BehaviorSpec({
     Given("A valid zaaktype UUID with a process definition") {
         val zaaktypeUUID = UUID.randomUUID()
         val zaaktypeBpmnProcessDefinition = createZaaktypeBpmnProcessDefinition()
-        every { bpmnProcessDefinitionService.findZaaktypeProcessDefinition(zaaktypeUUID) } returns zaaktypeBpmnProcessDefinition
+        every {
+            zaaktypeBpmnProcessDefinitionService.findZaaktypeProcessDefinitionByZaaktypeUuid(zaaktypeUUID)
+        } returns zaaktypeBpmnProcessDefinition
 
         When("finding the process definition for the zaaktype") {
             val result = bpmnService.findProcessDefinitionForZaaktype(zaaktypeUUID)
@@ -136,7 +138,7 @@ class BpmnServiceTest : BehaviorSpec({
 
     Given("A valid zaaktype UUID without a process definition") {
         val zaaktypeUUID = UUID.randomUUID()
-        every { bpmnProcessDefinitionService.findZaaktypeProcessDefinition(zaaktypeUUID) } returns null
+        every { zaaktypeBpmnProcessDefinitionService.findZaaktypeProcessDefinitionByZaaktypeUuid(zaaktypeUUID) } returns null
 
         When("finding the process definition for the zaaktype") {
             val result = bpmnService.findProcessDefinitionForZaaktype(zaaktypeUUID)
diff --git a/src/test/kotlin/nl/info/zac/flowable/bpmn/ZaaktypeBpmnProcessDefinitionServiceTest.kt b/src/test/kotlin/nl/info/zac/flowable/bpmn/ZaaktypeBpmnProcessDefinitionServiceTest.kt
new file mode 100644
index 0000000000..844b0da106
--- /dev/null
+++ b/src/test/kotlin/nl/info/zac/flowable/bpmn/ZaaktypeBpmnProcessDefinitionServiceTest.kt
@@ -0,0 +1,108 @@
+/*
+ * SPDX-FileCopyrightText: 2025 Lifely
+ * SPDX-License-Identifier: EUPL-1.2+
+ */
+package nl.info.zac.flowable.bpmn
+
+import io.kotest.core.spec.style.BehaviorSpec
+import io.kotest.matchers.shouldBe
+import io.mockk.Runs
+import io.mockk.checkUnnecessaryStub
+import io.mockk.every
+import io.mockk.just
+import io.mockk.mockk
+import io.mockk.verify
+import jakarta.persistence.EntityManager
+import jakarta.persistence.criteria.CriteriaBuilder
+import jakarta.persistence.criteria.CriteriaQuery
+import jakarta.persistence.criteria.Path
+import jakarta.persistence.criteria.Predicate
+import jakarta.persistence.criteria.Root
+import nl.info.zac.flowable.bpmn.model.ZaaktypeBpmnProcessDefinition
+import nl.info.zac.flowable.bpmn.model.createZaaktypeBpmnProcessDefinition
+import java.util.Optional
+import java.util.UUID
+
+class ZaaktypeBpmnProcessDefinitionServiceTest : BehaviorSpec({
+    val criteriaBuilder = mockk<CriteriaBuilder>()
+    val criteriaQuery = mockk<CriteriaQuery<ZaaktypeBpmnProcessDefinition>>()
+    val root = mockk<Root<ZaaktypeBpmnProcessDefinition>>()
+    val predicate = mockk<Predicate>()
+    val pathUuid = mockk<Path<UUID>>()
+    val entityManager = mockk<EntityManager>()
+    val zaaktypeBpmnProcessDefinitionService = ZaaktypeBpmnProcessDefinitionService(entityManager)
+
+    beforeEach {
+        checkUnnecessaryStub()
+    }
+
+    Given("A zaaktype - BPMN process definition relation") {
+        val zaaktypeBpmnProcessDefinition = createZaaktypeBpmnProcessDefinition()
+        every { entityManager.persist(zaaktypeBpmnProcessDefinition) } just Runs
+
+        When("the zaaktype BPMN process definition relation is created") {
+            zaaktypeBpmnProcessDefinitionService.createZaaktypeBpmnProcessDefinition(zaaktypeBpmnProcessDefinition)
+
+            Then("the zaaktype BPMN process definition relation is persisted") {
+                verify(exactly = 1) {
+                    entityManager.persist(zaaktypeBpmnProcessDefinition)
+                }
+            }
+        }
+    }
+    Given("A stored zaaktype BPMN process definition relation") {
+        val zaaktypeBpmnProcessDefinition = createZaaktypeBpmnProcessDefinition()
+        every { entityManager.remove(zaaktypeBpmnProcessDefinition) } just Runs
+
+        When("the zaaktype BPMN process definition relation is deleted") {
+            zaaktypeBpmnProcessDefinitionService.deleteZaaktypeBpmnProcessDefinition(zaaktypeBpmnProcessDefinition)
+
+            Then("the zaaktype BPMN process definition relation is removed") {
+                verify(exactly = 1) {
+                    entityManager.remove(zaaktypeBpmnProcessDefinition)
+                }
+            }
+        }
+    }
+    Given("A valid zaaktype UUID with a corresponding BPMN process definition") {
+        val zaaktypeUUID = UUID.randomUUID()
+        val zaaktypeBpmnProcessDefinition = createZaaktypeBpmnProcessDefinition(zaaktypeUuid = zaaktypeUUID)
+        every { entityManager.criteriaBuilder } returns criteriaBuilder
+        every { criteriaBuilder.createQuery(ZaaktypeBpmnProcessDefinition::class.java) } returns criteriaQuery
+        every { criteriaQuery.from(ZaaktypeBpmnProcessDefinition::class.java) } returns root
+        every { criteriaQuery.where(predicate) } returns criteriaQuery
+        every { criteriaBuilder.equal(pathUuid, zaaktypeUUID) } returns predicate
+        every { root.get<UUID>("zaaktypeUuid") } returns pathUuid
+        every {
+            entityManager.createQuery(criteriaQuery).resultStream.findFirst()
+        } returns Optional.of(zaaktypeBpmnProcessDefinition)
+
+        When("finding the BPMN process definition by zaaktype UUID") {
+            val result = zaaktypeBpmnProcessDefinitionService.findZaaktypeProcessDefinitionByZaaktypeUuid(zaaktypeUUID)
+
+            Then("the BPMN process definition is returned") {
+                result shouldBe zaaktypeBpmnProcessDefinition
+            }
+        }
+    }
+    Given("A valid zaaktype UUID without a corresponding BPMN process definition") {
+        val zaaktypeUUID = UUID.randomUUID()
+        every { entityManager.criteriaBuilder } returns criteriaBuilder
+        every { criteriaBuilder.createQuery(ZaaktypeBpmnProcessDefinition::class.java) } returns criteriaQuery
+        every { criteriaQuery.from(ZaaktypeBpmnProcessDefinition::class.java) } returns root
+        every { criteriaQuery.where(predicate) } returns criteriaQuery
+        every { criteriaBuilder.equal(pathUuid, zaaktypeUUID) } returns predicate
+        every { root.get<UUID>("zaaktypeUuid") } returns pathUuid
+        every {
+            entityManager.createQuery(criteriaQuery).resultStream.findFirst()
+        } returns Optional.empty()
+
+        When("finding the BPMN process definition by zaaktype UUID") {
+            val result = zaaktypeBpmnProcessDefinitionService.findZaaktypeProcessDefinitionByZaaktypeUuid(zaaktypeUUID)
+
+            Then("null is returned") {
+                result shouldBe null
+            }
+        }
+    }
+})
diff --git a/src/test/kotlin/net/atos/zac/flowable/bpmn/model/FlowableBpmnFixtures.kt b/src/test/kotlin/nl/info/zac/flowable/bpmn/model/FlowableBpmnFixtures.kt
similarity index 91%
rename from src/test/kotlin/net/atos/zac/flowable/bpmn/model/FlowableBpmnFixtures.kt
rename to src/test/kotlin/nl/info/zac/flowable/bpmn/model/FlowableBpmnFixtures.kt
index 6d2bbc4fae..05330cf378 100644
--- a/src/test/kotlin/net/atos/zac/flowable/bpmn/model/FlowableBpmnFixtures.kt
+++ b/src/test/kotlin/nl/info/zac/flowable/bpmn/model/FlowableBpmnFixtures.kt
@@ -2,7 +2,7 @@
  * SPDX-FileCopyrightText: 2025 Lifely
  * SPDX-License-Identifier: EUPL-1.2+
  */
-package net.atos.zac.flowable.bpmn.model
+package nl.info.zac.flowable.bpmn.model
 
 import java.util.UUID
 


Reviews:
user: login: hsiliev
state: APPROVED
author_association: CONTRIBUTOR
submitted_at: 2025-03-26T16:30:18Z
user: login: edgarvonk
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-26T16:31:23Z
user: login: edgarvonk
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-26T16:32:15Z
user: login: edgarvonk
state: COMMENTED
author_association: MEMBER
submitted_at: 2025-03-26T16:37:52Z

Review comments:
diff_hunk: @@ -108,8 +139,8 @@ class HealthCheckRestServiceTest : BehaviorSpec({
                           "versiedatum": "$DATE_2023_09_21",
                           "vertrouwelijkheidaanduiding": "openbaar"
                         }
-                      }
-                    ]
+                      }            
+                    ]                    
path: src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
user: login: hsiliev
body: I guess detekt does not mind, but I think we can remove the whitespaces at the end
created_at: 2025-03-26T16:27:04Z
author_association: CONTRIBUTOR
diff_hunk: @@ -108,8 +139,8 @@ class HealthCheckRestServiceTest : BehaviorSpec({
                           "versiedatum": "$DATE_2023_09_21",
                           "vertrouwelijkheidaanduiding": "openbaar"
                         }
-                      }
-                    ]
+                      }            
+                    ]                    
path: src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
user: login: edgarvonk
body: weird. Detekt should definitely mind.. 
created_at: 2025-03-26T16:31:23Z
author_association: MEMBER
diff_hunk: @@ -108,8 +139,8 @@ class HealthCheckRestServiceTest : BehaviorSpec({
                           "versiedatum": "$DATE_2023_09_21",
                           "vertrouwelijkheidaanduiding": "openbaar"
                         }
-                      }
-                    ]
+                      }            
+                    ]                    
path: src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
user: login: edgarvonk
body: ah but not in a literal string I guess
created_at: 2025-03-26T16:32:15Z
author_association: MEMBER
diff_hunk: @@ -108,8 +139,8 @@ class HealthCheckRestServiceTest : BehaviorSpec({
                           "versiedatum": "$DATE_2023_09_21",
                           "vertrouwelijkheidaanduiding": "openbaar"
                         }
-                      }
-                    ]
+                      }            
+                    ]                    
path: src/itest/kotlin/nl/info/zac/itest/HealthCheckRestServiceTest.kt
user: login: edgarvonk
body: fixed
created_at: 2025-03-26T16:37:52Z
author_association: MEMBER

PR comments:
user: login: github-actions[bot]
created_at: 2025-03-26T16:37:22Z
body: ## unit-test-results
 90 files  +1  131 suites  +1   1m 57s ⏱️ +3s
525 tests +4  524 ✅ +4  1 💤 ±0  0 ❌ ±0 
642 runs  +4  640 ✅ +4  2 💤 ±0  0 ❌ ±0 

Results for commit d7ff2f7c. ± Comparison against base commit 5ca215e7.

<details>
  <summary>This pull request <b>removes</b> 6 and <b>adds</b> 10 tests. <i>Note that renamed tests count towards both.</i></summary>

```
net.atos.zac.flowable.bpmn.BpmnServiceTest ‑ Then: 'false is returned
net.atos.zac.flowable.bpmn.BpmnServiceTest ‑ Then: 'true is returned
net.atos.zac.flowable.bpmn.BpmnServiceTest ‑ Then: a 'process definition not found exception' is thrown
net.atos.zac.flowable.bpmn.BpmnServiceTest ‑ Then: a Flowable BPMN process instance should be started
net.atos.zac.flowable.bpmn.BpmnServiceTest ‑ Then: null is returned
net.atos.zac.flowable.bpmn.BpmnServiceTest ‑ Then: the correct process definition is returned
```

```
nl.info.zac.flowable.bpmn.BpmnServiceTest ‑ Then: 'false is returned
nl.info.zac.flowable.bpmn.BpmnServiceTest ‑ Then: 'true is returned
nl.info.zac.flowable.bpmn.BpmnServiceTest ‑ Then: a 'process definition not found exception' is thrown
nl.info.zac.flowable.bpmn.BpmnServiceTest ‑ Then: a Flowable BPMN process instance should be started
nl.info.zac.flowable.bpmn.BpmnServiceTest ‑ Then: null is returned
nl.info.zac.flowable.bpmn.BpmnServiceTest ‑ Then: the correct process definition is returned
nl.info.zac.flowable.bpmn.ZaaktypeBpmnProcessDefinitionServiceTest ‑ Then: null is returned
nl.info.zac.flowable.bpmn.ZaaktypeBpmnProcessDefinitionServiceTest ‑ Then: the BPMN process definition is returned
nl.info.zac.flowable.bpmn.ZaaktypeBpmnProcessDefinitionServiceTest ‑ Then: the zaaktype BPMN process definition relation is persisted
nl.info.zac.flowable.bpmn.ZaaktypeBpmnProcessDefinitionServiceTest ‑ Then: the zaaktype BPMN process definition relation is removed
```
</details>

[test-results]:data:application/gzip;base64,H4sIAP0v5GcC/02MSQ7DIBAEv2JxzmEGs5h8JsIsEoqXCMMpyt8Djk18rOqZehMfJreRe6fg1pEth7QT9ljQ5qhTWJcqUBZRxlRnTvlJjy0bsyv2V8/wqj9NeB2mIqAJF+MaDxPzUpuC0QPOpGDQzK/YLi7Bna89s85zSAWIld5TL41FhRpgsMojHfoRUIxOcBConRgHRT5f36d4twgBAAA=

:recycle: This comment has been updated with latest results.
author_association: CONTRIBUTOR
user: login: github-actions[bot]
created_at: 2025-03-26T16:52:15Z
body: ## integration-test-results
 32 files  ±0   32 suites  ±0   41s ⏱️ -1s
116 tests +1  116 ✅ +1  0 💤 ±0  0 ❌ ±0 
129 runs  +1  129 ✅ +1  0 💤 ±0  0 ❌ ±0 

Results for commit d7ff2f7c. ± Comparison against base commit 5ca215e7.

<details>
  <summary>This pull request <b>removes</b> 1 and <b>adds</b> 2 tests. <i>Note that renamed tests count towards both.</i></summary>

```
nl.info.zac.itest.ProcessDefinitionRestServiceTest ‑ Then: the response is empty
```

```
nl.info.zac.itest.ProcessDefinitionRestServiceTest ‑ Then: the response contains the BPMN process definition that was just created
nl.info.zac.itest.ProcessDefinitionRestServiceTest ‑ Then: the response is successful
```
</details>

[test-results]:data:application/gzip;base64,H4sIAL0w5GcC/13MSw7CIBSF4a00jB1wqVJwM4bXTYhtMTxGxr2LpLbo8PtPcp4E/ewSuQ4jOw0kFZ8P2RJV9mGtPkN1nfJnBOBf3VIx5j/d/aMmugdUfv4JLsYQtxLL2j6Z3LBfduV4bO4Om/s/E5bF5wpiJ0SGk7EgQVEqrERgYtQUuHb8Qjkox7WQ5PUGDOjv3QYBAAA=

author_association: CONTRIBUTOR
user: login: codecov[bot]
created_at: 2025-03-26T16:52:46Z
body: ## [Codecov](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/pull/2958?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl) Report
All modified and coverable lines are covered by tests :white_check_mark:
> Project coverage is 43.99%. Comparing base [(`5ca215e`)](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/commit/5ca215e7312d34918168a27716d0c32108021e8d?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl) to head [(`d7ff2f7`)](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/commit/d7ff2f7cd191a008d9f1283b016be65061ae6b89?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl).
> Report is 1 commits behind head on main.

:white_check_mark: All tests successful. No failed tests found.

<details><summary>Additional details and impacted files</summary>


```diff
@@             Coverage Diff              @@
##               main    #2958      +/-   ##
============================================
+ Coverage     43.92%   43.99%   +0.06%     
- Complexity     3547     3555       +8     
============================================
  Files          1341     1341              
  Lines         32361    32365       +4     
  Branches       3085     3079       -6     
============================================
+ Hits          14216    14238      +22     
+ Misses        17333    16927     -406     
- Partials        812     1200     +388     
```

| [Flag](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/pull/2958/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl) | Coverage Δ | |
|---|---|---|
| [integrationtests](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/pull/2958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl) | `51.61% <42.85%> (+0.08%)` | :arrow_up: |
| [unittests](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/pull/2958/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl) | `30.15% <100.00%> (+0.03%)` | :arrow_up: |

Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl#carryforward-flags-in-the-pull-request-comment) to find out more.

</details>

[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/infonl/dimpact-zaakafhandelcomponent/pull/2958?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl).   
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=infonl).

<details><summary> :rocket: New features to boost your workflow: </summary>

- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
author_association: NONE