diff --git a/CHANGELOG.rst b/CHANGELOG.rst index abdb3734..1bdfdb6f 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,8 @@ Change history **New features** * Updated OAF version to 0.9.0. This upgrade allows admin users managing their sessions through the admin. +* [#197] Added a ``migrate_to_v2`` management command which allows users of version ``1.0.0`` to migrate to version ``2.4.0`` + More information can be found in the `documentation ` **Bugfixes/QoL**: diff --git a/docs/development/index.rst b/docs/development/index.rst new file mode 100644 index 00000000..1bb508b3 --- /dev/null +++ b/docs/development/index.rst @@ -0,0 +1,13 @@ +.. _development_index: + +Development +============ + +**Open Klant** is open-source software. We'd love to have you +contribute! + +.. toctree:: + :maxdepth: 1 + :caption: Further reading + + migration diff --git a/docs/development/migration.rst b/docs/development/migration.rst new file mode 100644 index 00000000..ab2af210 --- /dev/null +++ b/docs/development/migration.rst @@ -0,0 +1,41 @@ +.. _migration_developer_docs: + +Migration +========= + +To test the migration command, tests are written using VCR, which records the (relevant) +outgoing requests to cassette files. Whenever tests need to be updated, consider +re-recording the corresponding cassettes. + +To re-record tests, a separate docker compose file is available to run a +version ``1.0.0`` Open Klant instance next to the ``StaticLiveServer`` (which +sets up a live server) which runs version ``2.0.0``. The `web` container from the +docker compose setup should load the corresponding fixture which reside in the +``migration/fixtures`` folder. A typical workflow, to re-record cassettes, +could look like the following: + +.. code-block:: bash + + # Start the docker compose setup + $ docker compose up --detach + + # Load a fixture for a certain test + $ docker compose exec -it web \ + ./src/manage.py loaddata migration/credentials migration/test_digitaal_adres + + # Run the corresponding test + $ ./src/manage.py test openklant.tests.test_migrate.MigrateTestCase.test_digitaal_adres + + # Stop and destroy the containers (to start with a clean slate on the next run) + $ docker compose down + + +After running the test a cassette should be created (with the test name as filename) +in the ``migration/cassettes`` folder. + +Note that the docker compose setup, with its fixtures are only needed to (re)create +cassettes for VCR. The migration tests can be ran without the docker compose setup. + +Some tests require custom responses, for example to retrieve the ``subjectIdentificatie`` +when a ``subject`` URL is supplied. For these cases a ``test_server.py`` file is added +that can be modified as needed to create a response for a cassette. diff --git a/docs/index.rst b/docs/index.rst index 3f406a44..950dde07 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -28,3 +28,4 @@ Open Klant `is`_ and only uses open source. :hidden: installation/index + development/index diff --git a/docs/installation/index.rst b/docs/installation/index.rst index 97ae3f9b..9264f40d 100644 --- a/docs/installation/index.rst +++ b/docs/installation/index.rst @@ -15,3 +15,4 @@ this. :caption: Further reading config + migration diff --git a/docs/installation/migration.rst b/docs/installation/migration.rst new file mode 100644 index 00000000..24f7235c --- /dev/null +++ b/docs/installation/migration.rst @@ -0,0 +1,21 @@ +.. _migration_user_docs: + +Migration +========= + +Users of Open Klant version ``1.0.0`` willing to migrate to version ``2.4.0`` or higher +can make use of the ``migrate_to_v2`` management command. This command **only** migrates +``Klant`` instances from version ``1.0.0``. The command expects two URLs; a URL for the +Open Klant instance of version ``1.0.0`` and a URL for version ``2.0.0``. + +The command also expects a ``ACCESS_TOKEN`` environment variable to be set, to authenticate to +the Open Klant ``1.0.0`` instance. For the ``2.0.0`` instance a dummy token will be +created. This dummy token will be removed after the command ran (be it successfully or not). + +An example of how one might want to run this command can be seen below: + + .. code-block:: bash + + $ ACCESS_TOKEN="openklant-v1-token" ./src/manage.py migrate_to_v2 \ + https://example.openklant.nl \ + https://example.klantinteracties.nl diff --git a/migration/cassettes/test_digitaal_adres.yaml b/migration/cassettes/test_digitaal_adres.yaml new file mode 100644 index 00000000..e7879fc3 --- /dev/null +++ b/migration/cassettes/test_digitaal_adres.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/dbfdb3f2-e153-49ea-9e26-e55220605c14","bronorganisatie":"215906846","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"example@maykinmedia.nl","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"0","inpANummer":"","geslachtsnaam":"Greene","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Lori","geslachtsaanduiding":"","geboortedatum":"1981-04-15","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '726' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_existing_dummy_tokens.yaml b/migration/cassettes/test_existing_dummy_tokens.yaml new file mode 100644 index 00000000..0a368282 --- /dev/null +++ b/migration/cassettes/test_existing_dummy_tokens.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/7853958c-4ff1-4b62-bb81-1277346692bf","bronorganisatie":"719250341","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"Harry","voorvoegselAchternaam":"","achternaam":"Potter","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"024325818","anpIdentificatie":"0","inpANummer":"","geslachtsnaam":"Huffman","voorvoegselGeslachtsnaam":"","voorletters":"H","voornamen":"Frank","geslachtsaanduiding":"","geboortedatum":"2005-09-30","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '727' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_incorrect_subject_url.yaml b/migration/cassettes/test_incorrect_subject_url.yaml new file mode 100644 index 00000000..839a9b6a --- /dev/null +++ b/migration/cassettes/test_incorrect_subject_url.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/c59c00b3-3445-4731-8a6b-ee26992a5358","bronorganisatie":"892036175","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":null,"aanmaakkanaal":"","geverifieerd":false}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '416' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_natuurlijk_persoon.yaml b/migration/cassettes/test_natuurlijk_persoon.yaml new file mode 100644 index 00000000..fa75768c --- /dev/null +++ b/migration/cassettes/test_natuurlijk_persoon.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/c29538c1-98b8-4773-8ac1-f0af110d92f9","bronorganisatie":"620357848","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"Harry","voorvoegselAchternaam":"","achternaam":"Potter","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"024325818","anpIdentificatie":"0","inpANummer":"","geslachtsnaam":"Williams","voorvoegselGeslachtsnaam":"","voorletters":"H","voornamen":"Nicole","geslachtsaanduiding":"","geboortedatum":"1973-02-23","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '729' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_niet_natuurlijk_persoon.yaml b/migration/cassettes/test_niet_natuurlijk_persoon.yaml new file mode 100644 index 00000000..d02ddcd8 --- /dev/null +++ b/migration/cassettes/test_niet_natuurlijk_persoon.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/abd7a618-1177-4d17-a9d9-a3b6f9ee8606","bronorganisatie":"613907826","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"niet_natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"innNnpId":"807371440","annIdentificatie":"","statutaireNaam":"Foobar + Inc.","innRechtsvorm":"vereniging_van_eigenaars","bezoekadres":"Masonhof 351\n6335 + OX\nMetslawier","subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '660' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_no_subject_and_no_subject_identificatie.yaml b/migration/cassettes/test_no_subject_and_no_subject_identificatie.yaml new file mode 100644 index 00000000..839a9b6a --- /dev/null +++ b/migration/cassettes/test_no_subject_and_no_subject_identificatie.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/c59c00b3-3445-4731-8a6b-ee26992a5358","bronorganisatie":"892036175","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":null,"aanmaakkanaal":"","geverifieerd":false}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '416' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_no_subject_and_subject_identificatie.yaml b/migration/cassettes/test_no_subject_and_subject_identificatie.yaml new file mode 100644 index 00000000..fa75768c --- /dev/null +++ b/migration/cassettes/test_no_subject_and_subject_identificatie.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/c29538c1-98b8-4773-8ac1-f0af110d92f9","bronorganisatie":"620357848","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"Harry","voorvoegselAchternaam":"","achternaam":"Potter","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"024325818","anpIdentificatie":"0","inpANummer":"","geslachtsnaam":"Williams","voorvoegselGeslachtsnaam":"","voorletters":"H","voornamen":"Nicole","geslachtsaanduiding":"","geboortedatum":"1973-02-23","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '729' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_pagination.yaml b/migration/cassettes/test_pagination.yaml new file mode 100644 index 00000000..3087417c --- /dev/null +++ b/migration/cassettes/test_pagination.yaml @@ -0,0 +1,74 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":200,"next":"http://localhost:8000/klanten/api/v1/klanten?page=2","previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/19881d0f-dadb-4cdf-ae53-84a1b334c9c2","bronorganisatie":"539207615","klantnummer":"199","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"199","inpANummer":"","geslachtsnaam":"Lewis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Pamela","geslachtsaanduiding":"","geboortedatum":"2009-04-08","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/d7cff673-4948-4d85-aac3-1fa97dda53cc","bronorganisatie":"724319864","klantnummer":"198","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"198","inpANummer":"","geslachtsnaam":"Wilkerson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Garrett","geslachtsaanduiding":"","geboortedatum":"1978-12-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/1bf494f0-e9cb-4784-9ece-539f4b9c86ad","bronorganisatie":"657093816","klantnummer":"197","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"197","inpANummer":"","geslachtsnaam":"Kramer","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Steven","geslachtsaanduiding":"","geboortedatum":"1980-02-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/33c813db-f59e-4e78-b486-fc95c5d6945d","bronorganisatie":"023897144","klantnummer":"196","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"196","inpANummer":"","geslachtsnaam":"Mosley","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kayla","geslachtsaanduiding":"","geboortedatum":"2002-03-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/6b621745-52e8-4bd3-a38a-c2ec2cf64d97","bronorganisatie":"915243702","klantnummer":"195","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"195","inpANummer":"","geslachtsnaam":"Cummings","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michelle","geslachtsaanduiding":"","geboortedatum":"1974-12-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/447e99a9-2dd4-4bda-90fe-81cffedb1879","bronorganisatie":"023715947","klantnummer":"194","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"194","inpANummer":"","geslachtsnaam":"Harris","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nicholas","geslachtsaanduiding":"","geboortedatum":"2000-06-12","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5abe72fc-a377-4d8f-be6d-94143e400557","bronorganisatie":"376421095","klantnummer":"193","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"193","inpANummer":"","geslachtsnaam":"Friedman","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nathan","geslachtsaanduiding":"","geboortedatum":"1999-08-03","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5f7ca842-0cc1-4afc-9685-421aaa7d75cf","bronorganisatie":"890326150","klantnummer":"192","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"192","inpANummer":"","geslachtsnaam":"Johnson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Calvin","geslachtsaanduiding":"","geboortedatum":"2010-08-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/cf57b6d1-9b3c-4f1b-96dc-bc8139f2b222","bronorganisatie":"470651283","klantnummer":"191","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"191","inpANummer":"","geslachtsnaam":"Smith","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Andrea","geslachtsaanduiding":"","geboortedatum":"2002-05-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/951e1a51-cce3-4d54-957c-593cb9574373","bronorganisatie":"807423658","klantnummer":"190","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"190","inpANummer":"","geslachtsnaam":"Garcia","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"William","geslachtsaanduiding":"","geboortedatum":"1987-01-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/3a0bdaf1-32dd-4811-82ed-45c541f66fc8","bronorganisatie":"217689541","klantnummer":"189","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"189","inpANummer":"","geslachtsnaam":"Patterson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jennifer","geslachtsaanduiding":"","geboortedatum":"2005-04-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9ba19420-e1e2-4333-977a-6bee0c27716a","bronorganisatie":"182953464","klantnummer":"188","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"188","inpANummer":"","geslachtsnaam":"Burke","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Anthony","geslachtsaanduiding":"","geboortedatum":"2021-01-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/ebc31a5a-fac9-4c7c-a7d6-7ecb22b6c7e9","bronorganisatie":"560934178","klantnummer":"187","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"187","inpANummer":"","geslachtsnaam":"Boone","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Zachary","geslachtsaanduiding":"","geboortedatum":"1992-07-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/dae1c31d-91d8-4e0e-b266-f1b8f72a6c23","bronorganisatie":"975468133","klantnummer":"186","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"186","inpANummer":"","geslachtsnaam":"Mendoza","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brenda","geslachtsaanduiding":"","geboortedatum":"1991-12-29","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/f709dc26-a89d-4d36-a719-236e9a627f2d","bronorganisatie":"329041782","klantnummer":"185","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"185","inpANummer":"","geslachtsnaam":"Lawrence","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Carla","geslachtsaanduiding":"","geboortedatum":"1990-11-25","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/bc861874-aa37-4e19-a874-fc40b0974385","bronorganisatie":"529630783","klantnummer":"184","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"184","inpANummer":"","geslachtsnaam":"Nichols","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Elizabeth","geslachtsaanduiding":"","geboortedatum":"2008-08-03","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b7bd6023-eff7-4d9e-912a-4f909fc453ff","bronorganisatie":"862093570","klantnummer":"183","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"183","inpANummer":"","geslachtsnaam":"Peterson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christine","geslachtsaanduiding":"","geboortedatum":"2001-09-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7f7a1b9f-0d79-4502-831f-76252d4cc82b","bronorganisatie":"241076389","klantnummer":"182","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"182","inpANummer":"","geslachtsnaam":"Oliver","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Richard","geslachtsaanduiding":"","geboortedatum":"1970-09-08","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a0ecdbcf-eff7-4e32-978a-dc2096ff00e9","bronorganisatie":"325064179","klantnummer":"181","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"181","inpANummer":"","geslachtsnaam":"Woods","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"James","geslachtsaanduiding":"","geboortedatum":"2004-04-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/fcf1a496-db41-49cc-b272-1b14045f6a4e","bronorganisatie":"158632941","klantnummer":"180","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"180","inpANummer":"","geslachtsnaam":"Rogers","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Dawn","geslachtsaanduiding":"","geboortedatum":"2003-03-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5c4f8ece-9cef-4a5a-b9c8-60e9e7a873ab","bronorganisatie":"430951267","klantnummer":"179","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"179","inpANummer":"","geslachtsnaam":"Johnson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Tiffany","geslachtsaanduiding":"","geboortedatum":"2011-05-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/41331235-25c5-4bbe-be59-6f8cda0aca90","bronorganisatie":"387902168","klantnummer":"178","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"178","inpANummer":"","geslachtsnaam":"Henderson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Courtney","geslachtsaanduiding":"","geboortedatum":"2007-04-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/608cb840-6cdc-4dc4-824f-528bc6f146be","bronorganisatie":"219850744","klantnummer":"177","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"177","inpANummer":"","geslachtsnaam":"Johnson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Teresa","geslachtsaanduiding":"","geboortedatum":"2008-10-02","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c1a2900b-0ad0-4ead-a0a0-bf2da4407c88","bronorganisatie":"209647589","klantnummer":"176","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"176","inpANummer":"","geslachtsnaam":"Castillo","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jasmine","geslachtsaanduiding":"","geboortedatum":"1985-02-09","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4b87db13-23b8-4728-95d4-0682b3045d01","bronorganisatie":"178420967","klantnummer":"175","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"175","inpANummer":"","geslachtsnaam":"Chapman","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"2018-12-07","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/8b649473-6a85-4aae-8fa8-b2a36623783b","bronorganisatie":"835147605","klantnummer":"174","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"174","inpANummer":"","geslachtsnaam":"Wilson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Susan","geslachtsaanduiding":"","geboortedatum":"1975-11-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/57d3a2c0-869d-443d-b097-94cfcc4a83d4","bronorganisatie":"659873242","klantnummer":"173","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"173","inpANummer":"","geslachtsnaam":"Boyd","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Patricia","geslachtsaanduiding":"","geboortedatum":"2011-12-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/1fdb4a34-a0c6-4965-8b71-f4578bcbcf84","bronorganisatie":"591740266","klantnummer":"172","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"172","inpANummer":"","geslachtsnaam":"Levy","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Dustin","geslachtsaanduiding":"","geboortedatum":"1996-08-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5c76959f-6f3d-4fd7-bfc5-454d16ce71b1","bronorganisatie":"064529186","klantnummer":"171","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"171","inpANummer":"","geslachtsnaam":"Robbins","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brandon","geslachtsaanduiding":"","geboortedatum":"1970-08-15","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/407ad165-d9f9-4355-a09e-6357271b20b8","bronorganisatie":"369754086","klantnummer":"170","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"170","inpANummer":"","geslachtsnaam":"Brown","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Katherine","geslachtsaanduiding":"","geboortedatum":"2024-05-31","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/59548b59-9646-4bb1-9a4d-b334d50ee124","bronorganisatie":"640921371","klantnummer":"169","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"169","inpANummer":"","geslachtsnaam":"Elliott","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Bonnie","geslachtsaanduiding":"","geboortedatum":"1971-05-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/ecd151e9-8822-4197-a5ca-4cb332e975ab","bronorganisatie":"295740383","klantnummer":"168","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"168","inpANummer":"","geslachtsnaam":"Waters","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Marissa","geslachtsaanduiding":"","geboortedatum":"1980-06-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/605bcd3b-b818-4f4a-85d9-1af859b15de2","bronorganisatie":"835046199","klantnummer":"167","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"167","inpANummer":"","geslachtsnaam":"Ayers","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Ashley","geslachtsaanduiding":"","geboortedatum":"2017-11-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/afcc48a6-dfd1-49a9-ae34-530d498e591b","bronorganisatie":"617459836","klantnummer":"166","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"166","inpANummer":"","geslachtsnaam":"Long","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kelly","geslachtsaanduiding":"","geboortedatum":"2024-07-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9a8399b3-ffca-4283-a6c4-30259adebc75","bronorganisatie":"947581029","klantnummer":"165","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"165","inpANummer":"","geslachtsnaam":"Hernandez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Zachary","geslachtsaanduiding":"","geboortedatum":"2016-01-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/fbda62f9-00e0-4ddd-9f87-3b379607d8eb","bronorganisatie":"864290135","klantnummer":"164","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"164","inpANummer":"","geslachtsnaam":"Brooks","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Daniel","geslachtsaanduiding":"","geboortedatum":"1976-09-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/dde600fa-9e69-42ac-8b1c-c34936e54267","bronorganisatie":"820367540","klantnummer":"163","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"163","inpANummer":"","geslachtsnaam":"Conway","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sara","geslachtsaanduiding":"","geboortedatum":"1997-05-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/81b3e20e-a2da-4fbf-a9f7-96ce0b12ee28","bronorganisatie":"518342700","klantnummer":"162","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"162","inpANummer":"","geslachtsnaam":"Jarvis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Cameron","geslachtsaanduiding":"","geboortedatum":"2017-11-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/12ec9c37-b1bf-44eb-b2b4-b004bea3c682","bronorganisatie":"582146902","klantnummer":"161","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"161","inpANummer":"","geslachtsnaam":"Manning","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Mariah","geslachtsaanduiding":"","geboortedatum":"1986-09-15","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/f63d0bb5-2a99-425a-8bb4-02487eea33bb","bronorganisatie":"536940289","klantnummer":"160","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"160","inpANummer":"","geslachtsnaam":"Morales","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Allison","geslachtsaanduiding":"","geboortedatum":"1987-01-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/f03210d1-5d09-40bc-bc17-5de9e4e4228f","bronorganisatie":"017539845","klantnummer":"159","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"159","inpANummer":"","geslachtsnaam":"Preston","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jessica","geslachtsaanduiding":"","geboortedatum":"1976-07-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/79e7d190-fce0-4141-8dfd-3ed116bd0bb7","bronorganisatie":"578013290","klantnummer":"158","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"158","inpANummer":"","geslachtsnaam":"Fischer","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"1973-05-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/14ddcf12-f726-4cc5-97e4-d053dab3ca20","bronorganisatie":"780463924","klantnummer":"157","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"157","inpANummer":"","geslachtsnaam":"Brown","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Ricky","geslachtsaanduiding":"","geboortedatum":"2011-08-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/2fbb2b77-a287-4d71-b303-b44f3a477920","bronorganisatie":"240798132","klantnummer":"156","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"156","inpANummer":"","geslachtsnaam":"Vincent","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nathan","geslachtsaanduiding":"","geboortedatum":"1987-02-08","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c0e19609-8330-4847-b4fc-4be74c9a20cb","bronorganisatie":"198307561","klantnummer":"155","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"155","inpANummer":"","geslachtsnaam":"Dougherty","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brenda","geslachtsaanduiding":"","geboortedatum":"1995-07-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/314a3e4a-31ad-4488-a99d-69dffb08a82c","bronorganisatie":"916402538","klantnummer":"154","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"154","inpANummer":"","geslachtsnaam":"Hughes","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christopher","geslachtsaanduiding":"","geboortedatum":"2017-03-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9033cc19-441e-445f-8742-057f4fd334e4","bronorganisatie":"290541360","klantnummer":"153","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"153","inpANummer":"","geslachtsnaam":"Elliott","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Amber","geslachtsaanduiding":"","geboortedatum":"1988-09-19","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/0801961d-44bd-4331-ba52-968a2bc9f0e2","bronorganisatie":"107483968","klantnummer":"152","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"152","inpANummer":"","geslachtsnaam":"Jordan","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Edward","geslachtsaanduiding":"","geboortedatum":"1971-02-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a1bcbaae-7293-4495-8567-39e4f260de36","bronorganisatie":"278051947","klantnummer":"151","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"151","inpANummer":"","geslachtsnaam":"Sanchez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Duane","geslachtsaanduiding":"","geboortedatum":"2017-07-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7682938f-2cce-4fb5-aea9-a0a51a51baf4","bronorganisatie":"813706920","klantnummer":"150","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"150","inpANummer":"","geslachtsnaam":"Grimes","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Charlene","geslachtsaanduiding":"","geboortedatum":"2021-11-22","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/157b5908-7aa4-49fb-9a99-eb1e1aa3aff3","bronorganisatie":"351972808","klantnummer":"149","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"149","inpANummer":"","geslachtsnaam":"Harrell","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Caitlyn","geslachtsaanduiding":"","geboortedatum":"2008-06-08","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/87ffc0f7-0dd1-41c2-9205-38953e05213e","bronorganisatie":"234157896","klantnummer":"148","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"148","inpANummer":"","geslachtsnaam":"Holden","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Leroy","geslachtsaanduiding":"","geboortedatum":"1999-12-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/1f88c345-702d-4c71-a401-c019e5ffb48d","bronorganisatie":"310584620","klantnummer":"147","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"147","inpANummer":"","geslachtsnaam":"Rodgers","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Preston","geslachtsaanduiding":"","geboortedatum":"1985-12-16","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5926cfd5-9e66-4b8a-92f5-a1cd7bf6335e","bronorganisatie":"517482368","klantnummer":"146","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"146","inpANummer":"","geslachtsnaam":"Martinez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Stephanie","geslachtsaanduiding":"","geboortedatum":"2015-02-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/1b31f822-f033-43c3-85d6-e73b05d9570f","bronorganisatie":"542138700","klantnummer":"145","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"145","inpANummer":"","geslachtsnaam":"Carter","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sierra","geslachtsaanduiding":"","geboortedatum":"2000-10-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/0a18bfef-986c-44c3-a13f-c0febf79b0a7","bronorganisatie":"542198605","klantnummer":"144","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"144","inpANummer":"","geslachtsnaam":"Hanson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jesse","geslachtsaanduiding":"","geboortedatum":"1997-08-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b362f8a9-99aa-4587-b099-f0e530d46dc5","bronorganisatie":"182703599","klantnummer":"143","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"143","inpANummer":"","geslachtsnaam":"Guzman","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kimberly","geslachtsaanduiding":"","geboortedatum":"1980-05-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/97a7eab1-47b5-4c62-a6b4-1ae9956b6193","bronorganisatie":"214058979","klantnummer":"142","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"142","inpANummer":"","geslachtsnaam":"Miller","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Robert","geslachtsaanduiding":"","geboortedatum":"2012-12-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/30607ee7-5f95-4dd7-a44a-02a534605c16","bronorganisatie":"902581636","klantnummer":"141","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"141","inpANummer":"","geslachtsnaam":"Cox","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Katherine","geslachtsaanduiding":"","geboortedatum":"2000-01-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/60e9bec2-8bb7-4cec-b950-de49df535607","bronorganisatie":"587064298","klantnummer":"140","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"140","inpANummer":"","geslachtsnaam":"Vasquez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christopher","geslachtsaanduiding":"","geboortedatum":"1970-10-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/6d55784f-9291-49f8-8370-8f5122a75a18","bronorganisatie":"617045288","klantnummer":"139","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"139","inpANummer":"","geslachtsnaam":"Matthews","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Donald","geslachtsaanduiding":"","geboortedatum":"1981-05-25","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/66e21a48-5ad9-4fa2-b8b9-7d419c01b4b4","bronorganisatie":"169370586","klantnummer":"138","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"138","inpANummer":"","geslachtsnaam":"Jenkins","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Cindy","geslachtsaanduiding":"","geboortedatum":"2009-02-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c194e759-e9fa-4695-baae-42024f0b1761","bronorganisatie":"718264058","klantnummer":"137","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"137","inpANummer":"","geslachtsnaam":"Grant","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Margaret","geslachtsaanduiding":"","geboortedatum":"1984-09-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4869779c-ee50-44f0-9c9c-9aa3365a12c0","bronorganisatie":"701294565","klantnummer":"136","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"136","inpANummer":"","geslachtsnaam":"Hughes","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Mike","geslachtsaanduiding":"","geboortedatum":"1975-08-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5422bf87-52a5-43be-9db0-b470b285ac61","bronorganisatie":"940672832","klantnummer":"135","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"135","inpANummer":"","geslachtsnaam":"Farrell","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Chris","geslachtsaanduiding":"","geboortedatum":"1972-11-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/d9b03131-da09-4d8f-a75b-ecbb2e8a5cba","bronorganisatie":"258614079","klantnummer":"134","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"134","inpANummer":"","geslachtsnaam":"Booth","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Molly","geslachtsaanduiding":"","geboortedatum":"2003-05-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/e44aa532-9cb4-484c-a961-cfa0c058cb6f","bronorganisatie":"238549707","klantnummer":"133","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"133","inpANummer":"","geslachtsnaam":"Rodgers","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kevin","geslachtsaanduiding":"","geboortedatum":"1973-07-07","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/fbad50d0-babf-4863-a475-8d7d9d0075fa","bronorganisatie":"410869752","klantnummer":"132","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"132","inpANummer":"","geslachtsnaam":"Miller","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christopher","geslachtsaanduiding":"","geboortedatum":"2010-02-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9bc992fc-bb18-445c-8437-8bb6cec9bca7","bronorganisatie":"508647915","klantnummer":"131","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"131","inpANummer":"","geslachtsnaam":"Rios","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Heather","geslachtsaanduiding":"","geboortedatum":"2006-09-29","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b5062b21-a0b0-4680-9dc2-efa9bfe650f8","bronorganisatie":"537142964","klantnummer":"130","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"130","inpANummer":"","geslachtsnaam":"Thomas","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kenneth","geslachtsaanduiding":"","geboortedatum":"2015-01-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/13c47905-a2c5-4d0f-9043-0f770067c8b2","bronorganisatie":"684317527","klantnummer":"129","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"129","inpANummer":"","geslachtsnaam":"Williams","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christine","geslachtsaanduiding":"","geboortedatum":"2005-06-29","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5b022a05-6724-4a22-bbeb-dec3ab919c4e","bronorganisatie":"305718496","klantnummer":"128","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"128","inpANummer":"","geslachtsnaam":"Jimenez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Robert","geslachtsaanduiding":"","geboortedatum":"1996-12-19","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/64278f7b-cf6a-4142-81d8-4414c141e473","bronorganisatie":"129365403","klantnummer":"127","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"127","inpANummer":"","geslachtsnaam":"Hawkins","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"David","geslachtsaanduiding":"","geboortedatum":"2023-09-07","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b3d6b35b-8608-4a4b-90f1-db8c0b5867e4","bronorganisatie":"612954730","klantnummer":"126","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"126","inpANummer":"","geslachtsnaam":"Padilla","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nicole","geslachtsaanduiding":"","geboortedatum":"1979-12-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b1ff1ff2-7f08-451a-a4c0-24bab3017bd2","bronorganisatie":"762948139","klantnummer":"125","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"125","inpANummer":"","geslachtsnaam":"Collins","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michele","geslachtsaanduiding":"","geboortedatum":"2009-01-16","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/71ae9f2b-be3a-437f-9ab2-c71cc5433861","bronorganisatie":"739658141","klantnummer":"124","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"124","inpANummer":"","geslachtsnaam":"Wilson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Shannon","geslachtsaanduiding":"","geboortedatum":"1976-01-03","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b983f8ee-eda9-46a9-8225-d8e56eaa2750","bronorganisatie":"038679425","klantnummer":"123","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"123","inpANummer":"","geslachtsnaam":"Carroll","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Charles","geslachtsaanduiding":"","geboortedatum":"2015-10-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/ffbcb13d-5ca7-4e72-a182-bfa9c3c1aef1","bronorganisatie":"856391049","klantnummer":"122","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"122","inpANummer":"","geslachtsnaam":"Lee","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Reginald","geslachtsaanduiding":"","geboortedatum":"1972-11-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/753a33b0-7779-410f-b729-2a029add5e91","bronorganisatie":"267389048","klantnummer":"121","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"121","inpANummer":"","geslachtsnaam":"Walters","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Steven","geslachtsaanduiding":"","geboortedatum":"1993-08-07","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/d74f8244-3e9b-4a4a-ba5f-0b85f0daded1","bronorganisatie":"765201495","klantnummer":"120","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"120","inpANummer":"","geslachtsnaam":"Mccall","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Robert","geslachtsaanduiding":"","geboortedatum":"2011-12-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/21a86b32-bb20-44be-8fed-d3ea0280e560","bronorganisatie":"430957816","klantnummer":"119","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"119","inpANummer":"","geslachtsnaam":"Gordon","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Ethan","geslachtsaanduiding":"","geboortedatum":"2018-05-08","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a77ea761-4d79-4a60-aa11-bfee7849c50c","bronorganisatie":"719064326","klantnummer":"118","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"118","inpANummer":"","geslachtsnaam":"Pearson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Amber","geslachtsaanduiding":"","geboortedatum":"2015-02-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/036f3a13-2d38-4a54-a072-331fc2d6d0d6","bronorganisatie":"163809240","klantnummer":"117","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"117","inpANummer":"","geslachtsnaam":"Miller","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Heather","geslachtsaanduiding":"","geboortedatum":"1988-05-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/073d5e47-07e7-4beb-a477-28ea3bea1eba","bronorganisatie":"975180320","klantnummer":"116","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"116","inpANummer":"","geslachtsnaam":"Cochran","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jennifer","geslachtsaanduiding":"","geboortedatum":"2022-06-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4053708d-d9f4-4633-9100-2f65165f8a87","bronorganisatie":"547168925","klantnummer":"115","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"115","inpANummer":"","geslachtsnaam":"Peterson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Diane","geslachtsaanduiding":"","geboortedatum":"1999-01-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/8c5b77b6-820d-4e0a-8611-7bdc3ab1ea18","bronorganisatie":"396871501","klantnummer":"114","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"114","inpANummer":"","geslachtsnaam":"Brown","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nancy","geslachtsaanduiding":"","geboortedatum":"2015-03-31","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5bc360d0-cf49-45eb-947a-a4a28752fcf0","bronorganisatie":"391746509","klantnummer":"113","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"113","inpANummer":"","geslachtsnaam":"Waller","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Shannon","geslachtsaanduiding":"","geboortedatum":"2005-02-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7cfc5add-4f41-44cb-be04-3df3a08ab567","bronorganisatie":"165237909","klantnummer":"112","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"112","inpANummer":"","geslachtsnaam":"Hernandez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Destiny","geslachtsaanduiding":"","geboortedatum":"2009-01-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/3d11c02d-25cd-4e69-a13b-aeabc4762149","bronorganisatie":"726598033","klantnummer":"111","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"111","inpANummer":"","geslachtsnaam":"Evans","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jose","geslachtsaanduiding":"","geboortedatum":"2005-04-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/6d5a1dc6-3bd5-48a1-914c-704505ffa3d9","bronorganisatie":"689215344","klantnummer":"110","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"110","inpANummer":"","geslachtsnaam":"Zamora","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Catherine","geslachtsaanduiding":"","geboortedatum":"2002-05-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/2ac91460-c9d7-46d3-9f56-703871ee45a9","bronorganisatie":"584231696","klantnummer":"109","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"109","inpANummer":"","geslachtsnaam":"Lamb","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Robert","geslachtsaanduiding":"","geboortedatum":"1976-06-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/086c6a9d-e67b-4d08-aad7-ec00ce985654","bronorganisatie":"146378052","klantnummer":"108","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"108","inpANummer":"","geslachtsnaam":"Scott","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christina","geslachtsaanduiding":"","geboortedatum":"1975-11-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/85a965b2-409d-49c1-9845-212a0959c746","bronorganisatie":"924601759","klantnummer":"107","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"107","inpANummer":"","geslachtsnaam":"Harris","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Matthew","geslachtsaanduiding":"","geboortedatum":"1991-12-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a73b042e-8a0b-436a-9d09-c01b75b75bbd","bronorganisatie":"793850216","klantnummer":"106","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"106","inpANummer":"","geslachtsnaam":"Johnson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Patrick","geslachtsaanduiding":"","geboortedatum":"2011-12-16","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/33e38ea2-20f0-4a86-921d-5678018d13c8","bronorganisatie":"490213765","klantnummer":"105","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"105","inpANummer":"","geslachtsnaam":"Mcintyre","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Joshua","geslachtsaanduiding":"","geboortedatum":"2010-02-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/3959b359-5bf3-4e9e-b01c-ba98c6d40e57","bronorganisatie":"615304874","klantnummer":"104","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"104","inpANummer":"","geslachtsnaam":"Cruz","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"1971-02-19","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/76e6faff-7b96-40c4-a3ff-39734b0d4a8f","bronorganisatie":"759608246","klantnummer":"103","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"103","inpANummer":"","geslachtsnaam":"Franklin","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brenda","geslachtsaanduiding":"","geboortedatum":"1978-08-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/33e126fa-ec9f-41be-869d-b0954757a1f7","bronorganisatie":"658371290","klantnummer":"102","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"102","inpANummer":"","geslachtsnaam":"Norton","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brenda","geslachtsaanduiding":"","geboortedatum":"2019-09-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/20b330d6-5bb3-4a31-a27d-372d33b2e1de","bronorganisatie":"196823043","klantnummer":"101","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"101","inpANummer":"","geslachtsnaam":"Nelson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Susan","geslachtsaanduiding":"","geboortedatum":"1995-11-25","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/92f5334d-6655-45c7-9fdf-cf434b43f031","bronorganisatie":"520314876","klantnummer":"100","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"100","inpANummer":"","geslachtsnaam":"Rivera","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Madison","geslachtsaanduiding":"","geboortedatum":"1995-10-15","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '66101' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten?page=2 + response: + body: + string: '{"count":200,"next":null,"previous":"http://localhost:8000/klanten/api/v1/klanten","results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/f1062d4c-57cb-4e7d-b9eb-4291251d33f6","bronorganisatie":"129843064","klantnummer":"99","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"99","inpANummer":"","geslachtsnaam":"Nelson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Alicia","geslachtsaanduiding":"","geboortedatum":"2006-06-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4b5fae78-de48-4a3b-a219-018e12ebd7a4","bronorganisatie":"213485692","klantnummer":"98","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"98","inpANummer":"","geslachtsnaam":"Peterson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Tony","geslachtsaanduiding":"","geboortedatum":"1976-09-29","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a2f106d7-43ca-49b9-9f71-6ed8df3e3b51","bronorganisatie":"380419725","klantnummer":"97","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"97","inpANummer":"","geslachtsnaam":"Barnes","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kathy","geslachtsaanduiding":"","geboortedatum":"1975-03-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/855d69a1-7616-4e2b-9416-7738827c4a14","bronorganisatie":"063742895","klantnummer":"96","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"96","inpANummer":"","geslachtsnaam":"Joseph","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sara","geslachtsaanduiding":"","geboortedatum":"1973-11-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a17b0b1d-1ae7-47fb-b3e2-f4eb556119b4","bronorganisatie":"548290763","klantnummer":"95","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"95","inpANummer":"","geslachtsnaam":"Cohen","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Alexander","geslachtsaanduiding":"","geboortedatum":"1973-08-02","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/456fc5f7-a1c6-4be8-bb8f-da4df3965c6b","bronorganisatie":"594183066","klantnummer":"94","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"94","inpANummer":"","geslachtsnaam":"Huang","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Taylor","geslachtsaanduiding":"","geboortedatum":"2012-10-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/ecacc5a1-ebff-47da-8f09-8344df6d84e8","bronorganisatie":"179235606","klantnummer":"93","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"93","inpANummer":"","geslachtsnaam":"Bond","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Laura","geslachtsaanduiding":"","geboortedatum":"1997-04-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/25073209-eec1-4a3c-80e4-d44d4bdd271d","bronorganisatie":"093721456","klantnummer":"92","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"92","inpANummer":"","geslachtsnaam":"Wilson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Loretta","geslachtsaanduiding":"","geboortedatum":"2001-04-12","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/2c58e877-14ff-467f-b4b2-9cf21887c5d2","bronorganisatie":"931508472","klantnummer":"91","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"91","inpANummer":"","geslachtsnaam":"Lewis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Rodney","geslachtsaanduiding":"","geboortedatum":"2011-09-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b9415dc0-6b81-4be1-b6d2-15f00e2bd3a1","bronorganisatie":"570329644","klantnummer":"90","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"90","inpANummer":"","geslachtsnaam":"Owen","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kimberly","geslachtsaanduiding":"","geboortedatum":"2018-09-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/8b2c6699-fdfd-45af-a87b-bbf179aa2efb","bronorganisatie":"570198264","klantnummer":"89","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"89","inpANummer":"","geslachtsnaam":"Hubbard","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"2020-10-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7b28a716-78e3-4a37-9048-0037f1d946ae","bronorganisatie":"436875214","klantnummer":"88","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"88","inpANummer":"","geslachtsnaam":"Mcpherson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Ryan","geslachtsaanduiding":"","geboortedatum":"1983-11-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/18533772-a084-4b7e-be5d-7fee92a960b6","bronorganisatie":"458307920","klantnummer":"87","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"87","inpANummer":"","geslachtsnaam":"Haney","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Craig","geslachtsaanduiding":"","geboortedatum":"1995-05-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a328a051-d624-475d-97b2-b8c20d37a57c","bronorganisatie":"923648513","klantnummer":"86","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"86","inpANummer":"","geslachtsnaam":"Bishop","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Dana","geslachtsaanduiding":"","geboortedatum":"1990-07-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/bd5033bf-f5cf-4c91-920c-dca9d34a8d26","bronorganisatie":"208516979","klantnummer":"85","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"85","inpANummer":"","geslachtsnaam":"Haney","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Donald","geslachtsaanduiding":"","geboortedatum":"1989-07-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/61f04e30-6469-46ca-909b-ca6836eea37c","bronorganisatie":"047382569","klantnummer":"84","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"84","inpANummer":"","geslachtsnaam":"Jones","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kristen","geslachtsaanduiding":"","geboortedatum":"1979-01-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/94b8cf93-b60c-4ba5-b776-05177e6a7e2e","bronorganisatie":"685914239","klantnummer":"83","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"83","inpANummer":"","geslachtsnaam":"Kennedy","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sarah","geslachtsaanduiding":"","geboortedatum":"2021-08-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/487afd85-caee-4e84-96ef-1bc9a198578f","bronorganisatie":"680453179","klantnummer":"82","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"82","inpANummer":"","geslachtsnaam":"Alvarez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michelle","geslachtsaanduiding":"","geboortedatum":"1975-09-15","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5cc44adf-8f19-41b2-8c1e-8661ee9224ef","bronorganisatie":"783145299","klantnummer":"81","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"81","inpANummer":"","geslachtsnaam":"Martinez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Becky","geslachtsaanduiding":"","geboortedatum":"1986-12-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/99335980-17ab-4b4c-a574-6ad6d4137c39","bronorganisatie":"136579206","klantnummer":"80","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"80","inpANummer":"","geslachtsnaam":"Cline","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Mark","geslachtsaanduiding":"","geboortedatum":"1982-06-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/084b7759-291c-48b3-ab0c-485e9c95afee","bronorganisatie":"412809631","klantnummer":"79","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"79","inpANummer":"","geslachtsnaam":"Owens","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"1979-12-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/ac375cd4-a2d2-40d6-a948-6bad113ed437","bronorganisatie":"874921636","klantnummer":"78","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"78","inpANummer":"","geslachtsnaam":"Brown","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Douglas","geslachtsaanduiding":"","geboortedatum":"2016-02-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/404df282-7f92-4a26-a216-701f60541cac","bronorganisatie":"901463723","klantnummer":"77","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"77","inpANummer":"","geslachtsnaam":"Berry","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jose","geslachtsaanduiding":"","geboortedatum":"1998-09-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b328c3dc-46de-4f79-a4c5-604cad194916","bronorganisatie":"928571609","klantnummer":"76","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"76","inpANummer":"","geslachtsnaam":"Smith","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Andrew","geslachtsaanduiding":"","geboortedatum":"2020-02-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/ef7d5e83-0d71-4378-854a-82108898cce8","bronorganisatie":"798650412","klantnummer":"75","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"75","inpANummer":"","geslachtsnaam":"Martin","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kim","geslachtsaanduiding":"","geboortedatum":"1974-06-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c478697e-263b-49e6-8e0a-dad0d6bf4a72","bronorganisatie":"925386017","klantnummer":"74","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"74","inpANummer":"","geslachtsnaam":"Foster","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Rachel","geslachtsaanduiding":"","geboortedatum":"2018-10-22","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/731473c3-7521-48d3-84d6-3aedf5b639a0","bronorganisatie":"186059279","klantnummer":"73","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"73","inpANummer":"","geslachtsnaam":"Warren","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christina","geslachtsaanduiding":"","geboortedatum":"1986-02-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7a7bda92-4301-43a3-a370-7731df0fb71d","bronorganisatie":"420318690","klantnummer":"72","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"72","inpANummer":"","geslachtsnaam":"Simpson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nathaniel","geslachtsaanduiding":"","geboortedatum":"1996-07-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/54e8cada-fe6c-4afd-8473-9d805bf409c0","bronorganisatie":"083691522","klantnummer":"71","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"71","inpANummer":"","geslachtsnaam":"Davis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Veronica","geslachtsaanduiding":"","geboortedatum":"1996-04-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/0a9b7ae9-9670-494d-9049-ecd24d3bed76","bronorganisatie":"069735815","klantnummer":"70","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"70","inpANummer":"","geslachtsnaam":"Shah","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Robert","geslachtsaanduiding":"","geboortedatum":"2015-03-31","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/6b9349b5-ee7f-45e9-a0cb-8449fd3f1798","bronorganisatie":"723069852","klantnummer":"69","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"69","inpANummer":"","geslachtsnaam":"Hartman","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Laura","geslachtsaanduiding":"","geboortedatum":"1993-06-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/b1638a31-c7b0-4104-88f3-867fdb76b6e1","bronorganisatie":"384095768","klantnummer":"68","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"68","inpANummer":"","geslachtsnaam":"Medina","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Felicia","geslachtsaanduiding":"","geboortedatum":"2002-02-03","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/01974e99-52a0-4b66-b0ca-a477612326fc","bronorganisatie":"408597264","klantnummer":"67","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"67","inpANummer":"","geslachtsnaam":"Jones","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Nicole","geslachtsaanduiding":"","geboortedatum":"1988-05-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5d87b1c7-3b62-4faf-beb6-774cd9960322","bronorganisatie":"783209149","klantnummer":"66","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"66","inpANummer":"","geslachtsnaam":"Smith","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Tommy","geslachtsaanduiding":"","geboortedatum":"1988-05-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c5649212-1774-4eb7-b1ce-21e607b71190","bronorganisatie":"135824795","klantnummer":"65","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"65","inpANummer":"","geslachtsnaam":"Schroeder","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"1996-05-02","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4df1c3f8-3798-44a2-95cc-a2c178279be3","bronorganisatie":"239801659","klantnummer":"64","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"64","inpANummer":"","geslachtsnaam":"Buchanan","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sarah","geslachtsaanduiding":"","geboortedatum":"1976-03-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/aff00bdb-0d37-4c73-bed9-866841a891bc","bronorganisatie":"532846199","klantnummer":"63","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"63","inpANummer":"","geslachtsnaam":"Pearson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kendra","geslachtsaanduiding":"","geboortedatum":"2017-01-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a5a45408-26c5-4503-a63e-820f176d8d6e","bronorganisatie":"763105843","klantnummer":"62","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"62","inpANummer":"","geslachtsnaam":"Pham","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Garrett","geslachtsaanduiding":"","geboortedatum":"2012-01-16","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/bd42c13c-e56c-4790-968b-17c7e21a7bd2","bronorganisatie":"093517245","klantnummer":"61","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"61","inpANummer":"","geslachtsnaam":"Bennett","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Gary","geslachtsaanduiding":"","geboortedatum":"2009-04-13","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/21765f29-e872-47c9-973e-08d3c63a2442","bronorganisatie":"907136850","klantnummer":"60","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"60","inpANummer":"","geslachtsnaam":"Wilson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Courtney","geslachtsaanduiding":"","geboortedatum":"1983-07-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/095a71cd-b5e1-4e71-b24a-3094e4b742c1","bronorganisatie":"054362970","klantnummer":"59","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"59","inpANummer":"","geslachtsnaam":"Heath","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Karen","geslachtsaanduiding":"","geboortedatum":"1987-12-21","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/40c2534e-00ae-4ff9-8e98-2819948b847f","bronorganisatie":"431790255","klantnummer":"58","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"58","inpANummer":"","geslachtsnaam":"Moran","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Matthew","geslachtsaanduiding":"","geboortedatum":"2007-04-08","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4a5756c2-a5b4-404e-851b-f0ff0cd53bfe","bronorganisatie":"604789531","klantnummer":"57","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"57","inpANummer":"","geslachtsnaam":"Watson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jessica","geslachtsaanduiding":"","geboortedatum":"1999-10-21","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/227096b4-d86d-4235-92c4-aa7e334f0380","bronorganisatie":"239740865","klantnummer":"56","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"56","inpANummer":"","geslachtsnaam":"Norris","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Tim","geslachtsaanduiding":"","geboortedatum":"2005-06-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/94a2e860-adf5-4721-9237-62a1391a5a23","bronorganisatie":"103672941","klantnummer":"55","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"55","inpANummer":"","geslachtsnaam":"Campbell","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Zachary","geslachtsaanduiding":"","geboortedatum":"1980-11-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/d8bb2724-2ea5-4617-ac5c-4f923cdbebd7","bronorganisatie":"293875108","klantnummer":"54","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"54","inpANummer":"","geslachtsnaam":"Daniels","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Samuel","geslachtsaanduiding":"","geboortedatum":"1986-02-09","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4ee400cb-5695-44f2-99b7-371e4d462914","bronorganisatie":"130469579","klantnummer":"53","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"53","inpANummer":"","geslachtsnaam":"Moreno","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Alyssa","geslachtsaanduiding":"","geboortedatum":"1985-07-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/e39f8ade-64f5-4ad4-b81a-3e9db523c53e","bronorganisatie":"065739243","klantnummer":"52","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"52","inpANummer":"","geslachtsnaam":"Lopez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kenneth","geslachtsaanduiding":"","geboortedatum":"2008-10-09","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/75129067-53e3-4af0-a492-a697a5377ddb","bronorganisatie":"675384199","klantnummer":"51","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"51","inpANummer":"","geslachtsnaam":"Mitchell","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Heather","geslachtsaanduiding":"","geboortedatum":"1981-07-30","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a574231f-6dcd-4087-a72d-8b051c1d9d72","bronorganisatie":"672538192","klantnummer":"50","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"50","inpANummer":"","geslachtsnaam":"Long","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Cindy","geslachtsaanduiding":"","geboortedatum":"1973-08-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c15ff225-c49f-48e7-82ad-3f4afa20bee6","bronorganisatie":"248591605","klantnummer":"49","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"49","inpANummer":"","geslachtsnaam":"Fisher","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Heather","geslachtsaanduiding":"","geboortedatum":"1978-10-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/31b2c4b1-2963-428e-843c-02cfedde12de","bronorganisatie":"859716247","klantnummer":"48","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"48","inpANummer":"","geslachtsnaam":"Newton","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Carrie","geslachtsaanduiding":"","geboortedatum":"1990-10-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/46cf0c54-c8c4-47ae-84e4-bd1cad6a48dd","bronorganisatie":"658709343","klantnummer":"47","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"47","inpANummer":"","geslachtsnaam":"Brown","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Penny","geslachtsaanduiding":"","geboortedatum":"2000-01-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/d47adaaf-9813-4981-bcff-6080a8c00fb2","bronorganisatie":"798013540","klantnummer":"46","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"46","inpANummer":"","geslachtsnaam":"Robertson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michael","geslachtsaanduiding":"","geboortedatum":"1983-11-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a635f5a9-a48a-4953-b243-11b7b1931a41","bronorganisatie":"375128098","klantnummer":"45","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"45","inpANummer":"","geslachtsnaam":"Stewart","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Cody","geslachtsaanduiding":"","geboortedatum":"1977-08-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/e7253cbe-6cca-4798-a876-477f1a7a59ac","bronorganisatie":"710398244","klantnummer":"44","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"44","inpANummer":"","geslachtsnaam":"Martinez","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Dennis","geslachtsaanduiding":"","geboortedatum":"2008-03-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/583d911b-be5d-4f1a-9803-706e9748f523","bronorganisatie":"823094169","klantnummer":"43","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"43","inpANummer":"","geslachtsnaam":"Flynn","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Aaron","geslachtsaanduiding":"","geboortedatum":"1992-05-02","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4880286f-460d-4b1c-9dd4-81ea812ce2e3","bronorganisatie":"067952318","klantnummer":"42","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"42","inpANummer":"","geslachtsnaam":"Hines","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"James","geslachtsaanduiding":"","geboortedatum":"1982-02-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5fa331a3-d40e-4d61-b8db-5a0bb3d3c885","bronorganisatie":"190365420","klantnummer":"41","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"41","inpANummer":"","geslachtsnaam":"Jones","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Benjamin","geslachtsaanduiding":"","geboortedatum":"1984-12-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/184bdb4f-74e2-4bcc-a6b3-0a860e9e66c5","bronorganisatie":"283014799","klantnummer":"40","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"40","inpANummer":"","geslachtsnaam":"Tran","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Elizabeth","geslachtsaanduiding":"","geboortedatum":"2014-08-29","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/e60b1135-e95c-407e-b3b9-f5759d7583f7","bronorganisatie":"248973605","klantnummer":"39","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"39","inpANummer":"","geslachtsnaam":"Johnson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Theresa","geslachtsaanduiding":"","geboortedatum":"2018-11-25","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/56c5fe70-9d06-4c74-b4cc-30c46fa5474f","bronorganisatie":"196247809","klantnummer":"38","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"38","inpANummer":"","geslachtsnaam":"Ross","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Matthew","geslachtsaanduiding":"","geboortedatum":"1972-02-15","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/557b2152-1560-4251-aa90-a7d5cfa7b2bb","bronorganisatie":"048519261","klantnummer":"37","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"37","inpANummer":"","geslachtsnaam":"Davenport","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Rachel","geslachtsaanduiding":"","geboortedatum":"1971-01-03","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/24b01302-9340-45fd-884c-060d1ebf33f2","bronorganisatie":"579826041","klantnummer":"36","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"36","inpANummer":"","geslachtsnaam":"Smith","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kayla","geslachtsaanduiding":"","geboortedatum":"2020-09-09","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/259b4d11-a7d4-4bc9-9582-a5786e792e3a","bronorganisatie":"392758106","klantnummer":"35","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"35","inpANummer":"","geslachtsnaam":"Smith","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Robin","geslachtsaanduiding":"","geboortedatum":"2021-03-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/5c94391d-2f81-4fb4-8538-523e2e488017","bronorganisatie":"304687212","klantnummer":"34","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"34","inpANummer":"","geslachtsnaam":"Taylor","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Tiffany","geslachtsaanduiding":"","geboortedatum":"1995-12-31","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/886ac3b7-3a9c-4897-a87f-29eee2114e42","bronorganisatie":"603251948","klantnummer":"33","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"33","inpANummer":"","geslachtsnaam":"Frazier","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Matthew","geslachtsaanduiding":"","geboortedatum":"2013-09-24","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/467f07ff-19ad-4c18-9c46-6db9fa13a804","bronorganisatie":"120749567","klantnummer":"32","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"32","inpANummer":"","geslachtsnaam":"Willis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"April","geslachtsaanduiding":"","geboortedatum":"1994-11-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a7bf4b9f-13f6-4d29-b9c3-5a6737cab2f3","bronorganisatie":"574139606","klantnummer":"31","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"31","inpANummer":"","geslachtsnaam":"Norton","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Stacey","geslachtsaanduiding":"","geboortedatum":"1981-05-12","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/97483c0b-f9db-4835-97f8-ad1f19455520","bronorganisatie":"618392476","klantnummer":"30","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"30","inpANummer":"","geslachtsnaam":"Lewis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jennifer","geslachtsaanduiding":"","geboortedatum":"1978-10-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/3e6deaa1-aa33-4a12-8959-14f707cb4644","bronorganisatie":"980471266","klantnummer":"29","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"29","inpANummer":"","geslachtsnaam":"Bush","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Michelle","geslachtsaanduiding":"","geboortedatum":"2005-02-11","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/fe228cd8-cc7a-457e-b6fe-a0c6b777740c","bronorganisatie":"256084312","klantnummer":"28","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"28","inpANummer":"","geslachtsnaam":"Williams","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Richard","geslachtsaanduiding":"","geboortedatum":"2003-02-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/afa883ee-7f99-4ddd-b91f-73a49e8ce666","bronorganisatie":"405169279","klantnummer":"27","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"27","inpANummer":"","geslachtsnaam":"Fuentes","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Abigail","geslachtsaanduiding":"","geboortedatum":"1998-12-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/f7e3a518-ea3b-4eba-bfff-295eff4e3f47","bronorganisatie":"637415929","klantnummer":"26","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"26","inpANummer":"","geslachtsnaam":"Walters","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kimberly","geslachtsaanduiding":"","geboortedatum":"2007-10-20","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c74cd4d8-da5c-4e2d-b0e6-5c9447c90f71","bronorganisatie":"523087962","klantnummer":"25","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"25","inpANummer":"","geslachtsnaam":"Richardson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Megan","geslachtsaanduiding":"","geboortedatum":"2006-10-25","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/de7a0518-dea1-4c42-96ca-e5a9aadac734","bronorganisatie":"596234818","klantnummer":"24","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"24","inpANummer":"","geslachtsnaam":"Benson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Joel","geslachtsaanduiding":"","geboortedatum":"1976-04-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9bb8212c-2b35-4b1f-a2bb-6e123c2c1ace","bronorganisatie":"701593829","klantnummer":"23","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"23","inpANummer":"","geslachtsnaam":"Fields","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Christy","geslachtsaanduiding":"","geboortedatum":"1971-03-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/1267e2dd-7cf5-4c9e-9b28-f17212fa42ea","bronorganisatie":"685027934","klantnummer":"22","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"22","inpANummer":"","geslachtsnaam":"Schwartz","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Edward","geslachtsaanduiding":"","geboortedatum":"2022-09-17","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7a3f9d69-0b76-4698-b88e-51be2d312432","bronorganisatie":"947253865","klantnummer":"21","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"21","inpANummer":"","geslachtsnaam":"Leonard","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sheila","geslachtsaanduiding":"","geboortedatum":"1993-02-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/2ca840a1-c9c9-4757-a435-df0cde353f1b","bronorganisatie":"584790363","klantnummer":"20","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"20","inpANummer":"","geslachtsnaam":"Taylor","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Matthew","geslachtsaanduiding":"","geboortedatum":"2009-11-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/7f8b7c93-0bc8-47ca-8055-4cd56d130fb3","bronorganisatie":"467812500","klantnummer":"19","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"19","inpANummer":"","geslachtsnaam":"Mcneil","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Doris","geslachtsaanduiding":"","geboortedatum":"2005-01-09","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/13c59612-30de-4a48-bf10-65d594441d13","bronorganisatie":"620391856","klantnummer":"18","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"18","inpANummer":"","geslachtsnaam":"Melton","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kevin","geslachtsaanduiding":"","geboortedatum":"1976-03-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9b31425d-a3cf-4dd4-b544-0d574194a601","bronorganisatie":"956481073","klantnummer":"17","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"17","inpANummer":"","geslachtsnaam":"Wilcox","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jesse","geslachtsaanduiding":"","geboortedatum":"2019-03-10","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/241e2748-6a05-4d9a-93d8-50b7eafb151a","bronorganisatie":"897432058","klantnummer":"16","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"16","inpANummer":"","geslachtsnaam":"Haas","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Emma","geslachtsaanduiding":"","geboortedatum":"1993-09-23","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/00b2d96a-4cce-4e4c-8a7d-d322db5d8185","bronorganisatie":"027896547","klantnummer":"15","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"15","inpANummer":"","geslachtsnaam":"White","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Lindsey","geslachtsaanduiding":"","geboortedatum":"2003-05-21","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/0189da81-4fa4-4583-89b4-c2f5a6ed0135","bronorganisatie":"109842650","klantnummer":"14","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"14","inpANummer":"","geslachtsnaam":"Stewart","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Alexander","geslachtsaanduiding":"","geboortedatum":"1997-08-04","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/e2ccb2db-3eef-4b7f-ae5c-c5f0a78892b8","bronorganisatie":"568713941","klantnummer":"13","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"13","inpANummer":"","geslachtsnaam":"Martin","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Holly","geslachtsaanduiding":"","geboortedatum":"1989-03-01","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/cfaa8d97-27f1-4ece-bc76-4ea467d1b5f4","bronorganisatie":"647208957","klantnummer":"12","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"12","inpANummer":"","geslachtsnaam":"Stewart","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Denise","geslachtsaanduiding":"","geboortedatum":"2003-01-14","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/d7f1ab62-2c4c-46bc-a0f9-823a430ced71","bronorganisatie":"350472890","klantnummer":"11","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"11","inpANummer":"","geslachtsnaam":"Morris","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brandon","geslachtsaanduiding":"","geboortedatum":"1996-10-06","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/29a6df70-6961-45ed-a508-ed9d9a42c3b6","bronorganisatie":"259847069","klantnummer":"10","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"10","inpANummer":"","geslachtsnaam":"Morris","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Brandon","geslachtsaanduiding":"","geboortedatum":"1977-03-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/def67aeb-f5c0-43fb-8b86-89714a758dc6","bronorganisatie":"280136596","klantnummer":"9","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"9","inpANummer":"","geslachtsnaam":"Long","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Jennifer","geslachtsaanduiding":"","geboortedatum":"2007-11-27","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/9c0efda8-7c26-47f5-a8de-6266dd73761b","bronorganisatie":"530671980","klantnummer":"8","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"8","inpANummer":"","geslachtsnaam":"Torres","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Sergio","geslachtsaanduiding":"","geboortedatum":"1992-04-18","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/a1275112-68ca-44a5-ad7d-9da0b5b46a8d","bronorganisatie":"908327468","klantnummer":"7","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"7","inpANummer":"","geslachtsnaam":"Middleton","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"James","geslachtsaanduiding":"","geboortedatum":"2001-01-12","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/82930426-4144-4a80-9111-77fe20caab5b","bronorganisatie":"783405169","klantnummer":"6","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"6","inpANummer":"","geslachtsnaam":"Abbott","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Andrew","geslachtsaanduiding":"","geboortedatum":"2000-05-09","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/4499abbe-2fd2-4532-a91a-e032636a3631","bronorganisatie":"683059427","klantnummer":"5","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"5","inpANummer":"","geslachtsnaam":"Williams","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Adam","geslachtsaanduiding":"","geboortedatum":"1999-06-28","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/f213787e-e485-471a-8042-f6c4af8fc8bd","bronorganisatie":"156307947","klantnummer":"4","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"4","inpANummer":"","geslachtsnaam":"Richardson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Carol","geslachtsaanduiding":"","geboortedatum":"2002-10-29","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/618a2744-f639-4a19-8b7b-5e729de9eb92","bronorganisatie":"624910830","klantnummer":"3","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"3","inpANummer":"","geslachtsnaam":"Hogan","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Gary","geslachtsaanduiding":"","geboortedatum":"1995-07-05","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/c2e4e678-ff86-44b6-92da-40f7626af4dc","bronorganisatie":"745618236","klantnummer":"2","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"2","inpANummer":"","geslachtsnaam":"Roberts","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Megan","geslachtsaanduiding":"","geboortedatum":"1991-04-26","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/1cdd3712-411b-4ddb-8642-4459c9119efc","bronorganisatie":"503891472","klantnummer":"1","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"1","inpANummer":"","geslachtsnaam":"Davis","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Candace","geslachtsaanduiding":"","geboortedatum":"2017-12-02","verblijfsadres":null,"subVerblijfBuitenland":null}},{"url":"http://localhost:8000/klanten/api/v1/klanten/e198ee09-fcbb-4afd-9b4e-dcda7c2f780c","bronorganisatie":"674230851","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"","anpIdentificatie":"0","inpANummer":"","geslachtsnaam":"Peterson","voorvoegselGeslachtsnaam":"","voorletters":"","voornamen":"Kayla","geslachtsaanduiding":"","geboortedatum":"1990-05-12","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '65793' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_single_run.yaml b/migration/cassettes/test_single_run.yaml new file mode 100644 index 00000000..0a368282 --- /dev/null +++ b/migration/cassettes/test_single_run.yaml @@ -0,0 +1,38 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/7853958c-4ff1-4b62-bb81-1277346692bf","bronorganisatie":"719250341","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"Harry","voorvoegselAchternaam":"","achternaam":"Potter","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"natuurlijk_persoon","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"inpBsn":"024325818","anpIdentificatie":"0","inpANummer":"","geslachtsnaam":"Huffman","voorvoegselGeslachtsnaam":"","voorletters":"H","voornamen":"Frank","geslachtsaanduiding":"","geboortedatum":"2005-09-30","verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '727' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_subject_404.yaml b/migration/cassettes/test_subject_404.yaml new file mode 100644 index 00000000..bc113b41 --- /dev/null +++ b/migration/cassettes/test_subject_404.yaml @@ -0,0 +1,64 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/b27668f2-01ac-447e-a7d1-83ec80e42abe","bronorganisatie":"016752934","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"http://localhost:8010","subjectType":null,"aanmaakkanaal":"","geverifieerd":false}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '437' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8010/ + response: + body: + string: '{"error": "Resource not found"}' + headers: + Content-type: + - application/json + Date: + - Thu, 14 Nov 2024 14:41:42 GMT + Server: + - BaseHTTP/0.6 Python/3.10.0 + status: + code: 404 + message: Not Found +version: 1 diff --git a/migration/cassettes/test_subject_and_no_subject_identificatie.yaml b/migration/cassettes/test_subject_and_no_subject_identificatie.yaml new file mode 100644 index 00000000..27075107 --- /dev/null +++ b/migration/cassettes/test_subject_and_no_subject_identificatie.yaml @@ -0,0 +1,67 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/ace470b2-ef75-45ce-8b16-106481b8f0f7","bronorganisatie":"710426380","klantnummer":"0","bedrijfsnaam":"","functie":"","websiteUrl":"","voornaam":"Anthony","voorvoegselAchternaam":"","achternaam":"Hopkins","telefoonnummer":"","emailadres":"","adres":null,"subject":"http://localhost:8010/subject/1","subjectType":null,"aanmaakkanaal":"","geverifieerd":false}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '461' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8010/subject/1 + response: + body: + string: '{"inpBsn": "024325818", "anpIdentificatie": "107", "inpANummer": "", + "geslachtsnaam": "Wever", "voorvoegselGeslachtsnaam": "", "voorletters": "W", + "voornamen": "Willy", "geslachtsaanduiding": "", "geboortedatum": "2010-06-02", + "verblijfsadres": null, "subVerblijfBuitenland": null}' + headers: + Content-type: + - application/json + Date: + - Thu, 14 Nov 2024 14:35:13 GMT + Server: + - BaseHTTP/0.6 Python/3.10.0 + status: + code: 200 + message: OK +version: 1 diff --git a/migration/cassettes/test_vestiging.yaml b/migration/cassettes/test_vestiging.yaml new file mode 100644 index 00000000..c99f218a --- /dev/null +++ b/migration/cassettes/test_vestiging.yaml @@ -0,0 +1,40 @@ +interactions: +- request: + body: null + headers: + Accept: + - '*/*' + Accept-Encoding: + - gzip, deflate + Connection: + - keep-alive + User-Agent: + - python-requests/2.32.3 + method: GET + uri: http://localhost:8000/klanten/api/v1/klanten + response: + body: + string: '{"count":1,"next":null,"previous":null,"results":[{"url":"http://localhost:8000/klanten/api/v1/klanten/ef333f9b-1720-47f2-a752-d7c59a51977e","bronorganisatie":"675241030","klantnummer":"0","bedrijfsnaam":"Foobar + Inc.","functie":"","websiteUrl":"","voornaam":"","voorvoegselAchternaam":"","achternaam":"","telefoonnummer":"","emailadres":"","adres":null,"subject":"","subjectType":"vestiging","aanmaakkanaal":"","geverifieerd":false,"subjectIdentificatie":{"vestigingsNummer":"123456789","handelsnaam":["Foobar + Inc."],"verblijfsadres":null,"subVerblijfBuitenland":null}}]}' + headers: + API-version: + - 1.0.0 + Allow: + - GET, POST, HEAD, OPTIONS + Content-Length: + - '571' + Content-Type: + - application/json + Referrer-Policy: + - same-origin + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + X-XSS-Protection: + - 1; mode=block + status: + code: 200 + message: OK +version: 1 diff --git a/migration/docker-compose.yml b/migration/docker-compose.yml new file mode 100644 index 00000000..2ececd0e --- /dev/null +++ b/migration/docker-compose.yml @@ -0,0 +1,42 @@ +# Stripped version of https://github.com/maykinmedia/open-klant/blob/1.0.0/docker-compose.yml + +services: + db: + image: postgres + environment: + - POSTGRES_HOST_AUTH_METHOD=trust + volumes: + - ./docker-init-db.sql:/docker-entrypoint-initdb.d/init_db.sql:ro + # Note the missing database data directory. This make it easier to rerecord + # cassettes as it will start with a clean database whenever + # `docker compose down` is used (e.g the container is recreated on the next + # startup). + + web: + image: maykinmedia/open-klant:1.0.0 + environment: + - DJANGO_SETTINGS_MODULE=openklant.conf.docker + - IS_HTTPS=no + - DB_NAME=postgres + - DB_USER=postgres + - DB_HOST=db + - ALLOWED_HOSTS=* + - CACHE_DEFAULT=redis:6379/0 + - CACHE_AXES=redis:6379/0 + - SECRET_KEY=${SECRET_KEY:-django-insecure-$8s@b*ds4t84-q_2#c0j0506@!l2q6r5_pq5e!vm^_9c*#^66b} + - CELERY_BROKER_URL=redis://redis:6379/0 + - CELERY_RESULT_BACKEND=redis://redis:6379/0 + - NOTIFICATIONS_DISABLED=True + volumes: + - ./fixtures:/app/src/openklant/fixtures/migration:ro + ports: + - 8000:8000 + depends_on: + - db + - redis + + redis: + image: redis + +volumes: + log: diff --git a/migration/docker-init-db.sql b/migration/docker-init-db.sql new file mode 100644 index 00000000..40b136b6 --- /dev/null +++ b/migration/docker-init-db.sql @@ -0,0 +1,4 @@ +CREATE USER openklant; +CREATE DATABASE openklant; +GRANT ALL PRIVILEGES ON DATABASE openklant TO openklant; + diff --git a/migration/fixtures/credentials.json b/migration/fixtures/credentials.json new file mode 100644 index 00000000..e27e424d --- /dev/null +++ b/migration/fixtures/credentials.json @@ -0,0 +1,20 @@ +[ + { + "fields": { + "identifier": "migration", + "secret": "foobar" + }, + "model": "vng_api_common.jwtsecret", + "pk": 1 + }, + { + "fields": { + "client_ids": "[\"migration\"]", + "heeft_alle_autorisaties": true, + "label": "Migratie applicatie", + "uuid": "a5a59cf2-eb33-4b6c-b86a-f04e92fcb0f9" + }, + "model": "authorizations.applicatie", + "pk": 1 + } +] diff --git a/migration/fixtures/test_digitaal_adres.json b/migration/fixtures/test_digitaal_adres.json new file mode 100644 index 00000000..77000d00 --- /dev/null +++ b/migration/fixtures/test_digitaal_adres.json @@ -0,0 +1,39 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "215906846", + "emailadres": "example@maykinmedia.nl", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "dbfdb3f2-e153-49ea-9e26-e55220605c14", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 101 + }, + { + "fields": { + "anp_identificatie": "0", + "geboortedatum": "1981-04-15", + "geslachtsaanduiding": "", + "geslachtsnaam": "Greene", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 101, + "voorletters": "", + "voornamen": "Lori", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 34 + } +] diff --git a/migration/fixtures/test_existing_dummy_tokens.json b/migration/fixtures/test_existing_dummy_tokens.json new file mode 100644 index 00000000..2bda84be --- /dev/null +++ b/migration/fixtures/test_existing_dummy_tokens.json @@ -0,0 +1,39 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "Potter", + "bedrijfsnaam": "", + "bronorganisatie": "719250341", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7853958c-4ff1-4b62-bb81-1277346692bf", + "voornaam": "Harry", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 773 + }, + { + "fields": { + "anp_identificatie": "0", + "geboortedatum": "2005-09-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Huffman", + "inp_a_nummer": "", + "inp_bsn": "024325818", + "klant": 773, + "voorletters": "H", + "voornamen": "Frank", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 698 + } +] diff --git a/migration/fixtures/test_incorrect_subject_url.json b/migration/fixtures/test_incorrect_subject_url.json new file mode 100644 index 00000000..ea6714d1 --- /dev/null +++ b/migration/fixtures/test_incorrect_subject_url.json @@ -0,0 +1,23 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "560893723", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "foobar", + "subject_type": null, + "telefoonnummer": "", + "uuid": "01f05b35-acdf-40d1-8d73-20ec7cfcdadb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1180 + } +] diff --git a/migration/fixtures/test_natuurlijk_persoon.json b/migration/fixtures/test_natuurlijk_persoon.json new file mode 100644 index 00000000..23c1a947 --- /dev/null +++ b/migration/fixtures/test_natuurlijk_persoon.json @@ -0,0 +1,39 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "Potter", + "bedrijfsnaam": "", + "bronorganisatie": "620357848", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c29538c1-98b8-4773-8ac1-f0af110d92f9", + "voornaam": "Harry", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 974 + }, + { + "fields": { + "anp_identificatie": "0", + "geboortedatum": "1973-02-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Williams", + "inp_a_nummer": "", + "inp_bsn": "024325818", + "klant": 974, + "voorletters": "H", + "voornamen": "Nicole", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 899 + } +] diff --git a/migration/fixtures/test_niet_natuurlijk_persoon.json b/migration/fixtures/test_niet_natuurlijk_persoon.json new file mode 100644 index 00000000..8bae19c3 --- /dev/null +++ b/migration/fixtures/test_niet_natuurlijk_persoon.json @@ -0,0 +1,35 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "613907826", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "niet_natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "abd7a618-1177-4d17-a9d9-a3b6f9ee8606", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1175 + }, + { + "fields": { + "ann_identificatie": "", + "bezoekadres": "Masonhof 351\n6335 OX\nMetslawier", + "inn_nnp_id": "807371440", + "inn_rechtsvorm": "vereniging_van_eigenaars", + "klant": 1175, + "statutaire_naam": "Foobar Inc." + }, + "model": "klanten.nietnatuurlijkpersoon", + "pk": 33 + } +] diff --git a/migration/fixtures/test_no_subject_and_no_subject_identificatie.json b/migration/fixtures/test_no_subject_and_no_subject_identificatie.json new file mode 100644 index 00000000..7ba8c119 --- /dev/null +++ b/migration/fixtures/test_no_subject_and_no_subject_identificatie.json @@ -0,0 +1,23 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "892036175", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": null, + "telefoonnummer": "", + "uuid": "c59c00b3-3445-4731-8a6b-ee26992a5358", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1179 + } +] diff --git a/migration/fixtures/test_no_subject_and_subject_identificatie.json b/migration/fixtures/test_no_subject_and_subject_identificatie.json new file mode 100644 index 00000000..23c1a947 --- /dev/null +++ b/migration/fixtures/test_no_subject_and_subject_identificatie.json @@ -0,0 +1,39 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "Potter", + "bedrijfsnaam": "", + "bronorganisatie": "620357848", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c29538c1-98b8-4773-8ac1-f0af110d92f9", + "voornaam": "Harry", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 974 + }, + { + "fields": { + "anp_identificatie": "0", + "geboortedatum": "1973-02-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Williams", + "inp_a_nummer": "", + "inp_bsn": "024325818", + "klant": 974, + "voorletters": "H", + "voornamen": "Nicole", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 899 + } +] diff --git a/migration/fixtures/test_pagination.json b/migration/fixtures/test_pagination.json new file mode 100644 index 00000000..967e40b1 --- /dev/null +++ b/migration/fixtures/test_pagination.json @@ -0,0 +1,7402 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "674230851", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "e198ee09-fcbb-4afd-9b4e-dcda7c2f780c", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 975 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "503891472", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "1", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "1cdd3712-411b-4ddb-8642-4459c9119efc", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 976 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "745618236", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "2", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c2e4e678-ff86-44b6-92da-40f7626af4dc", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 977 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "624910830", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "3", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "618a2744-f639-4a19-8b7b-5e729de9eb92", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 978 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "156307947", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "4", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "f213787e-e485-471a-8042-f6c4af8fc8bd", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 979 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "683059427", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "5", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4499abbe-2fd2-4532-a91a-e032636a3631", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 980 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "783405169", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "6", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "82930426-4144-4a80-9111-77fe20caab5b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 981 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "908327468", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "7", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a1275112-68ca-44a5-ad7d-9da0b5b46a8d", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 982 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "530671980", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "8", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9c0efda8-7c26-47f5-a8de-6266dd73761b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 983 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "280136596", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "9", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "def67aeb-f5c0-43fb-8b86-89714a758dc6", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 984 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "259847069", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "10", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "29a6df70-6961-45ed-a508-ed9d9a42c3b6", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 985 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "350472890", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "11", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "d7f1ab62-2c4c-46bc-a0f9-823a430ced71", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 986 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "647208957", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "12", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "cfaa8d97-27f1-4ece-bc76-4ea467d1b5f4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 987 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "568713941", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "13", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "e2ccb2db-3eef-4b7f-ae5c-c5f0a78892b8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 988 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "109842650", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "14", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "0189da81-4fa4-4583-89b4-c2f5a6ed0135", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 989 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "027896547", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "15", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "00b2d96a-4cce-4e4c-8a7d-d322db5d8185", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 990 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "897432058", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "16", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "241e2748-6a05-4d9a-93d8-50b7eafb151a", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 991 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "956481073", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "17", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9b31425d-a3cf-4dd4-b544-0d574194a601", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 992 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "620391856", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "18", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "13c59612-30de-4a48-bf10-65d594441d13", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 993 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "467812500", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "19", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7f8b7c93-0bc8-47ca-8055-4cd56d130fb3", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 994 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "584790363", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "20", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "2ca840a1-c9c9-4757-a435-df0cde353f1b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 995 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "947253865", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "21", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7a3f9d69-0b76-4698-b88e-51be2d312432", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 996 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "685027934", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "22", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "1267e2dd-7cf5-4c9e-9b28-f17212fa42ea", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 997 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "701593829", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "23", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9bb8212c-2b35-4b1f-a2bb-6e123c2c1ace", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 998 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "596234818", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "24", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "de7a0518-dea1-4c42-96ca-e5a9aadac734", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 999 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "523087962", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "25", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c74cd4d8-da5c-4e2d-b0e6-5c9447c90f71", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1000 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "637415929", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "26", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "f7e3a518-ea3b-4eba-bfff-295eff4e3f47", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1001 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "405169279", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "27", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "afa883ee-7f99-4ddd-b91f-73a49e8ce666", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1002 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "256084312", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "28", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "fe228cd8-cc7a-457e-b6fe-a0c6b777740c", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1003 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "980471266", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "29", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "3e6deaa1-aa33-4a12-8959-14f707cb4644", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1004 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "618392476", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "30", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "97483c0b-f9db-4835-97f8-ad1f19455520", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1005 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "574139606", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "31", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a7bf4b9f-13f6-4d29-b9c3-5a6737cab2f3", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1006 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "120749567", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "32", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "467f07ff-19ad-4c18-9c46-6db9fa13a804", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1007 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "603251948", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "33", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "886ac3b7-3a9c-4897-a87f-29eee2114e42", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1008 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "304687212", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "34", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5c94391d-2f81-4fb4-8538-523e2e488017", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1009 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "392758106", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "35", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "259b4d11-a7d4-4bc9-9582-a5786e792e3a", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1010 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "579826041", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "36", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "24b01302-9340-45fd-884c-060d1ebf33f2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1011 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "048519261", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "37", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "557b2152-1560-4251-aa90-a7d5cfa7b2bb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1012 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "196247809", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "38", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "56c5fe70-9d06-4c74-b4cc-30c46fa5474f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1013 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "248973605", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "39", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "e60b1135-e95c-407e-b3b9-f5759d7583f7", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1014 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "283014799", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "40", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "184bdb4f-74e2-4bcc-a6b3-0a860e9e66c5", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1015 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "190365420", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "41", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5fa331a3-d40e-4d61-b8db-5a0bb3d3c885", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1016 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "067952318", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "42", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4880286f-460d-4b1c-9dd4-81ea812ce2e3", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1017 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "823094169", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "43", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "583d911b-be5d-4f1a-9803-706e9748f523", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1018 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "710398244", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "44", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "e7253cbe-6cca-4798-a876-477f1a7a59ac", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1019 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "375128098", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "45", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a635f5a9-a48a-4953-b243-11b7b1931a41", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1020 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "798013540", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "46", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "d47adaaf-9813-4981-bcff-6080a8c00fb2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1021 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "658709343", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "47", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "46cf0c54-c8c4-47ae-84e4-bd1cad6a48dd", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1022 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "859716247", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "48", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "31b2c4b1-2963-428e-843c-02cfedde12de", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1023 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "248591605", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "49", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c15ff225-c49f-48e7-82ad-3f4afa20bee6", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1024 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "672538192", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "50", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a574231f-6dcd-4087-a72d-8b051c1d9d72", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1025 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "675384199", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "51", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "75129067-53e3-4af0-a492-a697a5377ddb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1026 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "065739243", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "52", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "e39f8ade-64f5-4ad4-b81a-3e9db523c53e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1027 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "130469579", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "53", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4ee400cb-5695-44f2-99b7-371e4d462914", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1028 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "293875108", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "54", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "d8bb2724-2ea5-4617-ac5c-4f923cdbebd7", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1029 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "103672941", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "55", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "94a2e860-adf5-4721-9237-62a1391a5a23", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1030 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "239740865", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "56", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "227096b4-d86d-4235-92c4-aa7e334f0380", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1031 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "604789531", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "57", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4a5756c2-a5b4-404e-851b-f0ff0cd53bfe", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1032 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "431790255", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "58", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "40c2534e-00ae-4ff9-8e98-2819948b847f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1033 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "054362970", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "59", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "095a71cd-b5e1-4e71-b24a-3094e4b742c1", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1034 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "907136850", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "60", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "21765f29-e872-47c9-973e-08d3c63a2442", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1035 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "093517245", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "61", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "bd42c13c-e56c-4790-968b-17c7e21a7bd2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1036 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "763105843", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "62", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a5a45408-26c5-4503-a63e-820f176d8d6e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1037 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "532846199", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "63", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "aff00bdb-0d37-4c73-bed9-866841a891bc", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1038 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "239801659", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "64", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4df1c3f8-3798-44a2-95cc-a2c178279be3", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1039 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "135824795", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "65", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c5649212-1774-4eb7-b1ce-21e607b71190", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1040 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "783209149", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "66", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5d87b1c7-3b62-4faf-beb6-774cd9960322", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1041 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "408597264", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "67", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "01974e99-52a0-4b66-b0ca-a477612326fc", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1042 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "384095768", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "68", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b1638a31-c7b0-4104-88f3-867fdb76b6e1", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1043 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "723069852", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "69", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "6b9349b5-ee7f-45e9-a0cb-8449fd3f1798", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1044 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "069735815", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "70", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "0a9b7ae9-9670-494d-9049-ecd24d3bed76", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1045 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "083691522", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "71", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "54e8cada-fe6c-4afd-8473-9d805bf409c0", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1046 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "420318690", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "72", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7a7bda92-4301-43a3-a370-7731df0fb71d", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1047 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "186059279", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "73", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "731473c3-7521-48d3-84d6-3aedf5b639a0", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1048 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "925386017", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "74", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c478697e-263b-49e6-8e0a-dad0d6bf4a72", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1049 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "798650412", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "75", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "ef7d5e83-0d71-4378-854a-82108898cce8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1050 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "928571609", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "76", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b328c3dc-46de-4f79-a4c5-604cad194916", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1051 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "901463723", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "77", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "404df282-7f92-4a26-a216-701f60541cac", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1052 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "874921636", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "78", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "ac375cd4-a2d2-40d6-a948-6bad113ed437", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1053 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "412809631", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "79", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "084b7759-291c-48b3-ab0c-485e9c95afee", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1054 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "136579206", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "80", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "99335980-17ab-4b4c-a574-6ad6d4137c39", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1055 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "783145299", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "81", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5cc44adf-8f19-41b2-8c1e-8661ee9224ef", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1056 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "680453179", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "82", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "487afd85-caee-4e84-96ef-1bc9a198578f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1057 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "685914239", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "83", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "94b8cf93-b60c-4ba5-b776-05177e6a7e2e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1058 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "047382569", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "84", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "61f04e30-6469-46ca-909b-ca6836eea37c", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1059 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "208516979", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "85", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "bd5033bf-f5cf-4c91-920c-dca9d34a8d26", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1060 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "923648513", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "86", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a328a051-d624-475d-97b2-b8c20d37a57c", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1061 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "458307920", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "87", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "18533772-a084-4b7e-be5d-7fee92a960b6", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1062 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "436875214", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "88", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7b28a716-78e3-4a37-9048-0037f1d946ae", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1063 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "570198264", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "89", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "8b2c6699-fdfd-45af-a87b-bbf179aa2efb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1064 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "570329644", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "90", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b9415dc0-6b81-4be1-b6d2-15f00e2bd3a1", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1065 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "931508472", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "91", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "2c58e877-14ff-467f-b4b2-9cf21887c5d2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1066 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "093721456", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "92", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "25073209-eec1-4a3c-80e4-d44d4bdd271d", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1067 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "179235606", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "93", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "ecacc5a1-ebff-47da-8f09-8344df6d84e8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1068 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "594183066", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "94", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "456fc5f7-a1c6-4be8-bb8f-da4df3965c6b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1069 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "548290763", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "95", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a17b0b1d-1ae7-47fb-b3e2-f4eb556119b4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1070 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "063742895", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "96", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "855d69a1-7616-4e2b-9416-7738827c4a14", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1071 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "380419725", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "97", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a2f106d7-43ca-49b9-9f71-6ed8df3e3b51", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1072 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "213485692", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "98", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4b5fae78-de48-4a3b-a219-018e12ebd7a4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1073 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "129843064", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "99", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "f1062d4c-57cb-4e7d-b9eb-4291251d33f6", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1074 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "520314876", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "100", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "92f5334d-6655-45c7-9fdf-cf434b43f031", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1075 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "196823043", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "101", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "20b330d6-5bb3-4a31-a27d-372d33b2e1de", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1076 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "658371290", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "102", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "33e126fa-ec9f-41be-869d-b0954757a1f7", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1077 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "759608246", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "103", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "76e6faff-7b96-40c4-a3ff-39734b0d4a8f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1078 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "615304874", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "104", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "3959b359-5bf3-4e9e-b01c-ba98c6d40e57", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1079 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "490213765", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "105", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "33e38ea2-20f0-4a86-921d-5678018d13c8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1080 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "793850216", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "106", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a73b042e-8a0b-436a-9d09-c01b75b75bbd", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1081 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "924601759", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "107", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "85a965b2-409d-49c1-9845-212a0959c746", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1082 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "146378052", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "108", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "086c6a9d-e67b-4d08-aad7-ec00ce985654", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1083 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "584231696", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "109", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "2ac91460-c9d7-46d3-9f56-703871ee45a9", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1084 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "689215344", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "110", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "6d5a1dc6-3bd5-48a1-914c-704505ffa3d9", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1085 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "726598033", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "111", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "3d11c02d-25cd-4e69-a13b-aeabc4762149", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1086 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "165237909", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "112", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7cfc5add-4f41-44cb-be04-3df3a08ab567", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1087 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "391746509", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "113", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5bc360d0-cf49-45eb-947a-a4a28752fcf0", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1088 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "396871501", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "114", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "8c5b77b6-820d-4e0a-8611-7bdc3ab1ea18", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1089 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "547168925", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "115", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4053708d-d9f4-4633-9100-2f65165f8a87", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1090 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "975180320", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "116", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "073d5e47-07e7-4beb-a477-28ea3bea1eba", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1091 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "163809240", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "117", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "036f3a13-2d38-4a54-a072-331fc2d6d0d6", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1092 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "719064326", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "118", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a77ea761-4d79-4a60-aa11-bfee7849c50c", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1093 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "430957816", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "119", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "21a86b32-bb20-44be-8fed-d3ea0280e560", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1094 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "765201495", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "120", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "d74f8244-3e9b-4a4a-ba5f-0b85f0daded1", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1095 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "267389048", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "121", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "753a33b0-7779-410f-b729-2a029add5e91", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1096 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "856391049", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "122", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "ffbcb13d-5ca7-4e72-a182-bfa9c3c1aef1", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1097 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "038679425", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "123", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b983f8ee-eda9-46a9-8225-d8e56eaa2750", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1098 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "739658141", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "124", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "71ae9f2b-be3a-437f-9ab2-c71cc5433861", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1099 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "762948139", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "125", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b1ff1ff2-7f08-451a-a4c0-24bab3017bd2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1100 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "612954730", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "126", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b3d6b35b-8608-4a4b-90f1-db8c0b5867e4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1101 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "129365403", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "127", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "64278f7b-cf6a-4142-81d8-4414c141e473", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1102 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "305718496", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "128", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5b022a05-6724-4a22-bbeb-dec3ab919c4e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1103 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "684317527", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "129", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "13c47905-a2c5-4d0f-9043-0f770067c8b2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1104 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "537142964", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "130", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b5062b21-a0b0-4680-9dc2-efa9bfe650f8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1105 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "508647915", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "131", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9bc992fc-bb18-445c-8437-8bb6cec9bca7", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1106 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "410869752", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "132", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "fbad50d0-babf-4863-a475-8d7d9d0075fa", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1107 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "238549707", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "133", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "e44aa532-9cb4-484c-a961-cfa0c058cb6f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1108 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "258614079", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "134", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "d9b03131-da09-4d8f-a75b-ecbb2e8a5cba", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1109 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "940672832", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "135", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5422bf87-52a5-43be-9db0-b470b285ac61", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1110 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "701294565", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "136", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4869779c-ee50-44f0-9c9c-9aa3365a12c0", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1111 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "718264058", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "137", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c194e759-e9fa-4695-baae-42024f0b1761", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1112 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "169370586", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "138", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "66e21a48-5ad9-4fa2-b8b9-7d419c01b4b4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1113 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "617045288", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "139", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "6d55784f-9291-49f8-8370-8f5122a75a18", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1114 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "587064298", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "140", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "60e9bec2-8bb7-4cec-b950-de49df535607", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1115 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "902581636", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "141", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "30607ee7-5f95-4dd7-a44a-02a534605c16", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1116 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "214058979", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "142", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "97a7eab1-47b5-4c62-a6b4-1ae9956b6193", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1117 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "182703599", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "143", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b362f8a9-99aa-4587-b099-f0e530d46dc5", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1118 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "542198605", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "144", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "0a18bfef-986c-44c3-a13f-c0febf79b0a7", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1119 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "542138700", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "145", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "1b31f822-f033-43c3-85d6-e73b05d9570f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1120 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "517482368", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "146", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5926cfd5-9e66-4b8a-92f5-a1cd7bf6335e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1121 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "310584620", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "147", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "1f88c345-702d-4c71-a401-c019e5ffb48d", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1122 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "234157896", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "148", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "87ffc0f7-0dd1-41c2-9205-38953e05213e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1123 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "351972808", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "149", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "157b5908-7aa4-49fb-9a99-eb1e1aa3aff3", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1124 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "813706920", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "150", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7682938f-2cce-4fb5-aea9-a0a51a51baf4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1125 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "278051947", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "151", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a1bcbaae-7293-4495-8567-39e4f260de36", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1126 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "107483968", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "152", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "0801961d-44bd-4331-ba52-968a2bc9f0e2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1127 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "290541360", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "153", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9033cc19-441e-445f-8742-057f4fd334e4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1128 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "916402538", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "154", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "314a3e4a-31ad-4488-a99d-69dffb08a82c", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1129 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "198307561", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "155", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c0e19609-8330-4847-b4fc-4be74c9a20cb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1130 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "240798132", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "156", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "2fbb2b77-a287-4d71-b303-b44f3a477920", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1131 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "780463924", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "157", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "14ddcf12-f726-4cc5-97e4-d053dab3ca20", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1132 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "578013290", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "158", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "79e7d190-fce0-4141-8dfd-3ed116bd0bb7", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1133 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "017539845", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "159", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "f03210d1-5d09-40bc-bc17-5de9e4e4228f", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1134 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "536940289", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "160", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "f63d0bb5-2a99-425a-8bb4-02487eea33bb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1135 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "582146902", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "161", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "12ec9c37-b1bf-44eb-b2b4-b004bea3c682", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1136 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "518342700", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "162", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "81b3e20e-a2da-4fbf-a9f7-96ce0b12ee28", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1137 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "820367540", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "163", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "dde600fa-9e69-42ac-8b1c-c34936e54267", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1138 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "864290135", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "164", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "fbda62f9-00e0-4ddd-9f87-3b379607d8eb", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1139 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "947581029", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "165", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9a8399b3-ffca-4283-a6c4-30259adebc75", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1140 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "617459836", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "166", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "afcc48a6-dfd1-49a9-ae34-530d498e591b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1141 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "835046199", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "167", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "605bcd3b-b818-4f4a-85d9-1af859b15de2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1142 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "295740383", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "168", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "ecd151e9-8822-4197-a5ca-4cb332e975ab", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1143 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "640921371", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "169", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "59548b59-9646-4bb1-9a4d-b334d50ee124", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1144 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "369754086", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "170", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "407ad165-d9f9-4355-a09e-6357271b20b8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1145 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "064529186", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "171", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5c76959f-6f3d-4fd7-bfc5-454d16ce71b1", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1146 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "591740266", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "172", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "1fdb4a34-a0c6-4965-8b71-f4578bcbcf84", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1147 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "659873242", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "173", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "57d3a2c0-869d-443d-b097-94cfcc4a83d4", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1148 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "835147605", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "174", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "8b649473-6a85-4aae-8fa8-b2a36623783b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1149 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "178420967", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "175", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "4b87db13-23b8-4728-95d4-0682b3045d01", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1150 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "209647589", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "176", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "c1a2900b-0ad0-4ead-a0a0-bf2da4407c88", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1151 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "219850744", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "177", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "608cb840-6cdc-4dc4-824f-528bc6f146be", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1152 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "387902168", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "178", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "41331235-25c5-4bbe-be59-6f8cda0aca90", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1153 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "430951267", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "179", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5c4f8ece-9cef-4a5a-b9c8-60e9e7a873ab", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1154 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "158632941", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "180", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "fcf1a496-db41-49cc-b272-1b14045f6a4e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1155 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "325064179", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "181", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "a0ecdbcf-eff7-4e32-978a-dc2096ff00e9", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1156 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "241076389", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "182", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7f7a1b9f-0d79-4502-831f-76252d4cc82b", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1157 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "862093570", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "183", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "b7bd6023-eff7-4d9e-912a-4f909fc453ff", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1158 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "529630783", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "184", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "bc861874-aa37-4e19-a874-fc40b0974385", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1159 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "329041782", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "185", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "f709dc26-a89d-4d36-a719-236e9a627f2d", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1160 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "975468133", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "186", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "dae1c31d-91d8-4e0e-b266-f1b8f72a6c23", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1161 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "560934178", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "187", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "ebc31a5a-fac9-4c7c-a7d6-7ecb22b6c7e9", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1162 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "182953464", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "188", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "9ba19420-e1e2-4333-977a-6bee0c27716a", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1163 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "217689541", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "189", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "3a0bdaf1-32dd-4811-82ed-45c541f66fc8", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1164 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "807423658", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "190", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "951e1a51-cce3-4d54-957c-593cb9574373", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1165 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "470651283", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "191", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "cf57b6d1-9b3c-4f1b-96dc-bc8139f2b222", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1166 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "890326150", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "192", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5f7ca842-0cc1-4afc-9685-421aaa7d75cf", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1167 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "376421095", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "193", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "5abe72fc-a377-4d8f-be6d-94143e400557", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1168 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "023715947", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "194", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "447e99a9-2dd4-4bda-90fe-81cffedb1879", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1169 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "915243702", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "195", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "6b621745-52e8-4bd3-a38a-c2ec2cf64d97", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1170 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "023897144", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "196", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "33c813db-f59e-4e78-b486-fc95c5d6945d", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1171 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "657093816", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "197", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "1bf494f0-e9cb-4784-9ece-539f4b9c86ad", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1172 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "724319864", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "198", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "d7cff673-4948-4d85-aac3-1fa97dda53cc", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1173 + }, + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "539207615", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "199", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "19881d0f-dadb-4cdf-ae53-84a1b334c9c2", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1174 + }, + { + "fields": { + "anp_identificatie": "0", + "geboortedatum": "1990-05-12", + "geslachtsaanduiding": "", + "geslachtsnaam": "Peterson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 975, + "voorletters": "", + "voornamen": "Kayla", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 900 + }, + { + "fields": { + "anp_identificatie": "1", + "geboortedatum": "2017-12-02", + "geslachtsaanduiding": "", + "geslachtsnaam": "Davis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 976, + "voorletters": "", + "voornamen": "Candace", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 901 + }, + { + "fields": { + "anp_identificatie": "2", + "geboortedatum": "1991-04-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Roberts", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 977, + "voorletters": "", + "voornamen": "Megan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 902 + }, + { + "fields": { + "anp_identificatie": "3", + "geboortedatum": "1995-07-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hogan", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 978, + "voorletters": "", + "voornamen": "Gary", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 903 + }, + { + "fields": { + "anp_identificatie": "4", + "geboortedatum": "2002-10-29", + "geslachtsaanduiding": "", + "geslachtsnaam": "Richardson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 979, + "voorletters": "", + "voornamen": "Carol", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 904 + }, + { + "fields": { + "anp_identificatie": "5", + "geboortedatum": "1999-06-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Williams", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 980, + "voorletters": "", + "voornamen": "Adam", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 905 + }, + { + "fields": { + "anp_identificatie": "6", + "geboortedatum": "2000-05-09", + "geslachtsaanduiding": "", + "geslachtsnaam": "Abbott", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 981, + "voorletters": "", + "voornamen": "Andrew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 906 + }, + { + "fields": { + "anp_identificatie": "7", + "geboortedatum": "2001-01-12", + "geslachtsaanduiding": "", + "geslachtsnaam": "Middleton", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 982, + "voorletters": "", + "voornamen": "James", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 907 + }, + { + "fields": { + "anp_identificatie": "8", + "geboortedatum": "1992-04-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Torres", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 983, + "voorletters": "", + "voornamen": "Sergio", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 908 + }, + { + "fields": { + "anp_identificatie": "9", + "geboortedatum": "2007-11-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Long", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 984, + "voorletters": "", + "voornamen": "Jennifer", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 909 + }, + { + "fields": { + "anp_identificatie": "10", + "geboortedatum": "1977-03-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Morris", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 985, + "voorletters": "", + "voornamen": "Brandon", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 910 + }, + { + "fields": { + "anp_identificatie": "11", + "geboortedatum": "1996-10-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Morris", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 986, + "voorletters": "", + "voornamen": "Brandon", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 911 + }, + { + "fields": { + "anp_identificatie": "12", + "geboortedatum": "2003-01-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Stewart", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 987, + "voorletters": "", + "voornamen": "Denise", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 912 + }, + { + "fields": { + "anp_identificatie": "13", + "geboortedatum": "1989-03-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Martin", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 988, + "voorletters": "", + "voornamen": "Holly", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 913 + }, + { + "fields": { + "anp_identificatie": "14", + "geboortedatum": "1997-08-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Stewart", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 989, + "voorletters": "", + "voornamen": "Alexander", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 914 + }, + { + "fields": { + "anp_identificatie": "15", + "geboortedatum": "2003-05-21", + "geslachtsaanduiding": "", + "geslachtsnaam": "White", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 990, + "voorletters": "", + "voornamen": "Lindsey", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 915 + }, + { + "fields": { + "anp_identificatie": "16", + "geboortedatum": "1993-09-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Haas", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 991, + "voorletters": "", + "voornamen": "Emma", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 916 + }, + { + "fields": { + "anp_identificatie": "17", + "geboortedatum": "2019-03-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Wilcox", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 992, + "voorletters": "", + "voornamen": "Jesse", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 917 + }, + { + "fields": { + "anp_identificatie": "18", + "geboortedatum": "1976-03-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Melton", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 993, + "voorletters": "", + "voornamen": "Kevin", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 918 + }, + { + "fields": { + "anp_identificatie": "19", + "geboortedatum": "2005-01-09", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mcneil", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 994, + "voorletters": "", + "voornamen": "Doris", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 919 + }, + { + "fields": { + "anp_identificatie": "20", + "geboortedatum": "2009-11-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Taylor", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 995, + "voorletters": "", + "voornamen": "Matthew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 920 + }, + { + "fields": { + "anp_identificatie": "21", + "geboortedatum": "1993-02-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Leonard", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 996, + "voorletters": "", + "voornamen": "Sheila", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 921 + }, + { + "fields": { + "anp_identificatie": "22", + "geboortedatum": "2022-09-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Schwartz", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 997, + "voorletters": "", + "voornamen": "Edward", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 922 + }, + { + "fields": { + "anp_identificatie": "23", + "geboortedatum": "1971-03-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Fields", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 998, + "voorletters": "", + "voornamen": "Christy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 923 + }, + { + "fields": { + "anp_identificatie": "24", + "geboortedatum": "1976-04-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Benson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 999, + "voorletters": "", + "voornamen": "Joel", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 924 + }, + { + "fields": { + "anp_identificatie": "25", + "geboortedatum": "2006-10-25", + "geslachtsaanduiding": "", + "geslachtsnaam": "Richardson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1000, + "voorletters": "", + "voornamen": "Megan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 925 + }, + { + "fields": { + "anp_identificatie": "26", + "geboortedatum": "2007-10-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Walters", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1001, + "voorletters": "", + "voornamen": "Kimberly", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 926 + }, + { + "fields": { + "anp_identificatie": "27", + "geboortedatum": "1998-12-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Fuentes", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1002, + "voorletters": "", + "voornamen": "Abigail", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 927 + }, + { + "fields": { + "anp_identificatie": "28", + "geboortedatum": "2003-02-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Williams", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1003, + "voorletters": "", + "voornamen": "Richard", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 928 + }, + { + "fields": { + "anp_identificatie": "29", + "geboortedatum": "2005-02-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Bush", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1004, + "voorletters": "", + "voornamen": "Michelle", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 929 + }, + { + "fields": { + "anp_identificatie": "30", + "geboortedatum": "1978-10-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lewis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1005, + "voorletters": "", + "voornamen": "Jennifer", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 930 + }, + { + "fields": { + "anp_identificatie": "31", + "geboortedatum": "1981-05-12", + "geslachtsaanduiding": "", + "geslachtsnaam": "Norton", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1006, + "voorletters": "", + "voornamen": "Stacey", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 931 + }, + { + "fields": { + "anp_identificatie": "32", + "geboortedatum": "1994-11-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Willis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1007, + "voorletters": "", + "voornamen": "April", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 932 + }, + { + "fields": { + "anp_identificatie": "33", + "geboortedatum": "2013-09-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Frazier", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1008, + "voorletters": "", + "voornamen": "Matthew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 933 + }, + { + "fields": { + "anp_identificatie": "34", + "geboortedatum": "1995-12-31", + "geslachtsaanduiding": "", + "geslachtsnaam": "Taylor", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1009, + "voorletters": "", + "voornamen": "Tiffany", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 934 + }, + { + "fields": { + "anp_identificatie": "35", + "geboortedatum": "2021-03-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Smith", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1010, + "voorletters": "", + "voornamen": "Robin", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 935 + }, + { + "fields": { + "anp_identificatie": "36", + "geboortedatum": "2020-09-09", + "geslachtsaanduiding": "", + "geslachtsnaam": "Smith", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1011, + "voorletters": "", + "voornamen": "Kayla", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 936 + }, + { + "fields": { + "anp_identificatie": "37", + "geboortedatum": "1971-01-03", + "geslachtsaanduiding": "", + "geslachtsnaam": "Davenport", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1012, + "voorletters": "", + "voornamen": "Rachel", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 937 + }, + { + "fields": { + "anp_identificatie": "38", + "geboortedatum": "1972-02-15", + "geslachtsaanduiding": "", + "geslachtsnaam": "Ross", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1013, + "voorletters": "", + "voornamen": "Matthew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 938 + }, + { + "fields": { + "anp_identificatie": "39", + "geboortedatum": "2018-11-25", + "geslachtsaanduiding": "", + "geslachtsnaam": "Johnson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1014, + "voorletters": "", + "voornamen": "Theresa", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 939 + }, + { + "fields": { + "anp_identificatie": "40", + "geboortedatum": "2014-08-29", + "geslachtsaanduiding": "", + "geslachtsnaam": "Tran", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1015, + "voorletters": "", + "voornamen": "Elizabeth", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 940 + }, + { + "fields": { + "anp_identificatie": "41", + "geboortedatum": "1984-12-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jones", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1016, + "voorletters": "", + "voornamen": "Benjamin", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 941 + }, + { + "fields": { + "anp_identificatie": "42", + "geboortedatum": "1982-02-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hines", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1017, + "voorletters": "", + "voornamen": "James", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 942 + }, + { + "fields": { + "anp_identificatie": "43", + "geboortedatum": "1992-05-02", + "geslachtsaanduiding": "", + "geslachtsnaam": "Flynn", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1018, + "voorletters": "", + "voornamen": "Aaron", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 943 + }, + { + "fields": { + "anp_identificatie": "44", + "geboortedatum": "2008-03-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Martinez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1019, + "voorletters": "", + "voornamen": "Dennis", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 944 + }, + { + "fields": { + "anp_identificatie": "45", + "geboortedatum": "1977-08-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Stewart", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1020, + "voorletters": "", + "voornamen": "Cody", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 945 + }, + { + "fields": { + "anp_identificatie": "46", + "geboortedatum": "1983-11-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Robertson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1021, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 946 + }, + { + "fields": { + "anp_identificatie": "47", + "geboortedatum": "2000-01-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Brown", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1022, + "voorletters": "", + "voornamen": "Penny", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 947 + }, + { + "fields": { + "anp_identificatie": "48", + "geboortedatum": "1990-10-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Newton", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1023, + "voorletters": "", + "voornamen": "Carrie", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 948 + }, + { + "fields": { + "anp_identificatie": "49", + "geboortedatum": "1978-10-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Fisher", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1024, + "voorletters": "", + "voornamen": "Heather", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 949 + }, + { + "fields": { + "anp_identificatie": "50", + "geboortedatum": "1973-08-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Long", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1025, + "voorletters": "", + "voornamen": "Cindy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 950 + }, + { + "fields": { + "anp_identificatie": "51", + "geboortedatum": "1981-07-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mitchell", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1026, + "voorletters": "", + "voornamen": "Heather", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 951 + }, + { + "fields": { + "anp_identificatie": "52", + "geboortedatum": "2008-10-09", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lopez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1027, + "voorletters": "", + "voornamen": "Kenneth", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 952 + }, + { + "fields": { + "anp_identificatie": "53", + "geboortedatum": "1985-07-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Moreno", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1028, + "voorletters": "", + "voornamen": "Alyssa", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 953 + }, + { + "fields": { + "anp_identificatie": "54", + "geboortedatum": "1986-02-09", + "geslachtsaanduiding": "", + "geslachtsnaam": "Daniels", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1029, + "voorletters": "", + "voornamen": "Samuel", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 954 + }, + { + "fields": { + "anp_identificatie": "55", + "geboortedatum": "1980-11-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Campbell", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1030, + "voorletters": "", + "voornamen": "Zachary", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 955 + }, + { + "fields": { + "anp_identificatie": "56", + "geboortedatum": "2005-06-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Norris", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1031, + "voorletters": "", + "voornamen": "Tim", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 956 + }, + { + "fields": { + "anp_identificatie": "57", + "geboortedatum": "1999-10-21", + "geslachtsaanduiding": "", + "geslachtsnaam": "Watson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1032, + "voorletters": "", + "voornamen": "Jessica", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 957 + }, + { + "fields": { + "anp_identificatie": "58", + "geboortedatum": "2007-04-08", + "geslachtsaanduiding": "", + "geslachtsnaam": "Moran", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1033, + "voorletters": "", + "voornamen": "Matthew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 958 + }, + { + "fields": { + "anp_identificatie": "59", + "geboortedatum": "1987-12-21", + "geslachtsaanduiding": "", + "geslachtsnaam": "Heath", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1034, + "voorletters": "", + "voornamen": "Karen", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 959 + }, + { + "fields": { + "anp_identificatie": "60", + "geboortedatum": "1983-07-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Wilson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1035, + "voorletters": "", + "voornamen": "Courtney", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 960 + }, + { + "fields": { + "anp_identificatie": "61", + "geboortedatum": "2009-04-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Bennett", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1036, + "voorletters": "", + "voornamen": "Gary", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 961 + }, + { + "fields": { + "anp_identificatie": "62", + "geboortedatum": "2012-01-16", + "geslachtsaanduiding": "", + "geslachtsnaam": "Pham", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1037, + "voorletters": "", + "voornamen": "Garrett", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 962 + }, + { + "fields": { + "anp_identificatie": "63", + "geboortedatum": "2017-01-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Pearson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1038, + "voorletters": "", + "voornamen": "Kendra", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 963 + }, + { + "fields": { + "anp_identificatie": "64", + "geboortedatum": "1976-03-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Buchanan", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1039, + "voorletters": "", + "voornamen": "Sarah", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 964 + }, + { + "fields": { + "anp_identificatie": "65", + "geboortedatum": "1996-05-02", + "geslachtsaanduiding": "", + "geslachtsnaam": "Schroeder", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1040, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 965 + }, + { + "fields": { + "anp_identificatie": "66", + "geboortedatum": "1988-05-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Smith", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1041, + "voorletters": "", + "voornamen": "Tommy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 966 + }, + { + "fields": { + "anp_identificatie": "67", + "geboortedatum": "1988-05-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jones", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1042, + "voorletters": "", + "voornamen": "Nicole", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 967 + }, + { + "fields": { + "anp_identificatie": "68", + "geboortedatum": "2002-02-03", + "geslachtsaanduiding": "", + "geslachtsnaam": "Medina", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1043, + "voorletters": "", + "voornamen": "Felicia", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 968 + }, + { + "fields": { + "anp_identificatie": "69", + "geboortedatum": "1993-06-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hartman", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1044, + "voorletters": "", + "voornamen": "Laura", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 969 + }, + { + "fields": { + "anp_identificatie": "70", + "geboortedatum": "2015-03-31", + "geslachtsaanduiding": "", + "geslachtsnaam": "Shah", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1045, + "voorletters": "", + "voornamen": "Robert", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 970 + }, + { + "fields": { + "anp_identificatie": "71", + "geboortedatum": "1996-04-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Davis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1046, + "voorletters": "", + "voornamen": "Veronica", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 971 + }, + { + "fields": { + "anp_identificatie": "72", + "geboortedatum": "1996-07-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Simpson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1047, + "voorletters": "", + "voornamen": "Nathaniel", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 972 + }, + { + "fields": { + "anp_identificatie": "73", + "geboortedatum": "1986-02-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Warren", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1048, + "voorletters": "", + "voornamen": "Christina", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 973 + }, + { + "fields": { + "anp_identificatie": "74", + "geboortedatum": "2018-10-22", + "geslachtsaanduiding": "", + "geslachtsnaam": "Foster", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1049, + "voorletters": "", + "voornamen": "Rachel", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 974 + }, + { + "fields": { + "anp_identificatie": "75", + "geboortedatum": "1974-06-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Martin", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1050, + "voorletters": "", + "voornamen": "Kim", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 975 + }, + { + "fields": { + "anp_identificatie": "76", + "geboortedatum": "2020-02-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Smith", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1051, + "voorletters": "", + "voornamen": "Andrew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 976 + }, + { + "fields": { + "anp_identificatie": "77", + "geboortedatum": "1998-09-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Berry", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1052, + "voorletters": "", + "voornamen": "Jose", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 977 + }, + { + "fields": { + "anp_identificatie": "78", + "geboortedatum": "2016-02-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Brown", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1053, + "voorletters": "", + "voornamen": "Douglas", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 978 + }, + { + "fields": { + "anp_identificatie": "79", + "geboortedatum": "1979-12-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Owens", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1054, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 979 + }, + { + "fields": { + "anp_identificatie": "80", + "geboortedatum": "1982-06-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Cline", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1055, + "voorletters": "", + "voornamen": "Mark", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 980 + }, + { + "fields": { + "anp_identificatie": "81", + "geboortedatum": "1986-12-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Martinez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1056, + "voorletters": "", + "voornamen": "Becky", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 981 + }, + { + "fields": { + "anp_identificatie": "82", + "geboortedatum": "1975-09-15", + "geslachtsaanduiding": "", + "geslachtsnaam": "Alvarez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1057, + "voorletters": "", + "voornamen": "Michelle", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 982 + }, + { + "fields": { + "anp_identificatie": "83", + "geboortedatum": "2021-08-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Kennedy", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1058, + "voorletters": "", + "voornamen": "Sarah", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 983 + }, + { + "fields": { + "anp_identificatie": "84", + "geboortedatum": "1979-01-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jones", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1059, + "voorletters": "", + "voornamen": "Kristen", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 984 + }, + { + "fields": { + "anp_identificatie": "85", + "geboortedatum": "1989-07-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Haney", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1060, + "voorletters": "", + "voornamen": "Donald", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 985 + }, + { + "fields": { + "anp_identificatie": "86", + "geboortedatum": "1990-07-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Bishop", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1061, + "voorletters": "", + "voornamen": "Dana", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 986 + }, + { + "fields": { + "anp_identificatie": "87", + "geboortedatum": "1995-05-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Haney", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1062, + "voorletters": "", + "voornamen": "Craig", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 987 + }, + { + "fields": { + "anp_identificatie": "88", + "geboortedatum": "1983-11-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mcpherson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1063, + "voorletters": "", + "voornamen": "Ryan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 988 + }, + { + "fields": { + "anp_identificatie": "89", + "geboortedatum": "2020-10-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hubbard", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1064, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 989 + }, + { + "fields": { + "anp_identificatie": "90", + "geboortedatum": "2018-09-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Owen", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1065, + "voorletters": "", + "voornamen": "Kimberly", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 990 + }, + { + "fields": { + "anp_identificatie": "91", + "geboortedatum": "2011-09-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lewis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1066, + "voorletters": "", + "voornamen": "Rodney", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 991 + }, + { + "fields": { + "anp_identificatie": "92", + "geboortedatum": "2001-04-12", + "geslachtsaanduiding": "", + "geslachtsnaam": "Wilson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1067, + "voorletters": "", + "voornamen": "Loretta", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 992 + }, + { + "fields": { + "anp_identificatie": "93", + "geboortedatum": "1997-04-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Bond", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1068, + "voorletters": "", + "voornamen": "Laura", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 993 + }, + { + "fields": { + "anp_identificatie": "94", + "geboortedatum": "2012-10-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Huang", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1069, + "voorletters": "", + "voornamen": "Taylor", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 994 + }, + { + "fields": { + "anp_identificatie": "95", + "geboortedatum": "1973-08-02", + "geslachtsaanduiding": "", + "geslachtsnaam": "Cohen", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1070, + "voorletters": "", + "voornamen": "Alexander", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 995 + }, + { + "fields": { + "anp_identificatie": "96", + "geboortedatum": "1973-11-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Joseph", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1071, + "voorletters": "", + "voornamen": "Sara", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 996 + }, + { + "fields": { + "anp_identificatie": "97", + "geboortedatum": "1975-03-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Barnes", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1072, + "voorletters": "", + "voornamen": "Kathy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 997 + }, + { + "fields": { + "anp_identificatie": "98", + "geboortedatum": "1976-09-29", + "geslachtsaanduiding": "", + "geslachtsnaam": "Peterson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1073, + "voorletters": "", + "voornamen": "Tony", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 998 + }, + { + "fields": { + "anp_identificatie": "99", + "geboortedatum": "2006-06-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Nelson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1074, + "voorletters": "", + "voornamen": "Alicia", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 999 + }, + { + "fields": { + "anp_identificatie": "100", + "geboortedatum": "1995-10-15", + "geslachtsaanduiding": "", + "geslachtsnaam": "Rivera", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1075, + "voorletters": "", + "voornamen": "Madison", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1000 + }, + { + "fields": { + "anp_identificatie": "101", + "geboortedatum": "1995-11-25", + "geslachtsaanduiding": "", + "geslachtsnaam": "Nelson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1076, + "voorletters": "", + "voornamen": "Susan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1001 + }, + { + "fields": { + "anp_identificatie": "102", + "geboortedatum": "2019-09-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Norton", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1077, + "voorletters": "", + "voornamen": "Brenda", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1002 + }, + { + "fields": { + "anp_identificatie": "103", + "geboortedatum": "1978-08-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Franklin", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1078, + "voorletters": "", + "voornamen": "Brenda", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1003 + }, + { + "fields": { + "anp_identificatie": "104", + "geboortedatum": "1971-02-19", + "geslachtsaanduiding": "", + "geslachtsnaam": "Cruz", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1079, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1004 + }, + { + "fields": { + "anp_identificatie": "105", + "geboortedatum": "2010-02-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mcintyre", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1080, + "voorletters": "", + "voornamen": "Joshua", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1005 + }, + { + "fields": { + "anp_identificatie": "106", + "geboortedatum": "2011-12-16", + "geslachtsaanduiding": "", + "geslachtsnaam": "Johnson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1081, + "voorletters": "", + "voornamen": "Patrick", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1006 + }, + { + "fields": { + "anp_identificatie": "107", + "geboortedatum": "1991-12-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Harris", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1082, + "voorletters": "", + "voornamen": "Matthew", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1007 + }, + { + "fields": { + "anp_identificatie": "108", + "geboortedatum": "1975-11-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Scott", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1083, + "voorletters": "", + "voornamen": "Christina", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1008 + }, + { + "fields": { + "anp_identificatie": "109", + "geboortedatum": "1976-06-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lamb", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1084, + "voorletters": "", + "voornamen": "Robert", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1009 + }, + { + "fields": { + "anp_identificatie": "110", + "geboortedatum": "2002-05-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Zamora", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1085, + "voorletters": "", + "voornamen": "Catherine", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1010 + }, + { + "fields": { + "anp_identificatie": "111", + "geboortedatum": "2005-04-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Evans", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1086, + "voorletters": "", + "voornamen": "Jose", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1011 + }, + { + "fields": { + "anp_identificatie": "112", + "geboortedatum": "2009-01-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hernandez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1087, + "voorletters": "", + "voornamen": "Destiny", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1012 + }, + { + "fields": { + "anp_identificatie": "113", + "geboortedatum": "2005-02-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Waller", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1088, + "voorletters": "", + "voornamen": "Shannon", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1013 + }, + { + "fields": { + "anp_identificatie": "114", + "geboortedatum": "2015-03-31", + "geslachtsaanduiding": "", + "geslachtsnaam": "Brown", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1089, + "voorletters": "", + "voornamen": "Nancy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1014 + }, + { + "fields": { + "anp_identificatie": "115", + "geboortedatum": "1999-01-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Peterson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1090, + "voorletters": "", + "voornamen": "Diane", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1015 + }, + { + "fields": { + "anp_identificatie": "116", + "geboortedatum": "2022-06-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Cochran", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1091, + "voorletters": "", + "voornamen": "Jennifer", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1016 + }, + { + "fields": { + "anp_identificatie": "117", + "geboortedatum": "1988-05-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Miller", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1092, + "voorletters": "", + "voornamen": "Heather", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1017 + }, + { + "fields": { + "anp_identificatie": "118", + "geboortedatum": "2015-02-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Pearson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1093, + "voorletters": "", + "voornamen": "Amber", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1018 + }, + { + "fields": { + "anp_identificatie": "119", + "geboortedatum": "2018-05-08", + "geslachtsaanduiding": "", + "geslachtsnaam": "Gordon", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1094, + "voorletters": "", + "voornamen": "Ethan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1019 + }, + { + "fields": { + "anp_identificatie": "120", + "geboortedatum": "2011-12-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mccall", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1095, + "voorletters": "", + "voornamen": "Robert", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1020 + }, + { + "fields": { + "anp_identificatie": "121", + "geboortedatum": "1993-08-07", + "geslachtsaanduiding": "", + "geslachtsnaam": "Walters", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1096, + "voorletters": "", + "voornamen": "Steven", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1021 + }, + { + "fields": { + "anp_identificatie": "122", + "geboortedatum": "1972-11-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lee", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1097, + "voorletters": "", + "voornamen": "Reginald", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1022 + }, + { + "fields": { + "anp_identificatie": "123", + "geboortedatum": "2015-10-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Carroll", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1098, + "voorletters": "", + "voornamen": "Charles", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1023 + }, + { + "fields": { + "anp_identificatie": "124", + "geboortedatum": "1976-01-03", + "geslachtsaanduiding": "", + "geslachtsnaam": "Wilson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1099, + "voorletters": "", + "voornamen": "Shannon", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1024 + }, + { + "fields": { + "anp_identificatie": "125", + "geboortedatum": "2009-01-16", + "geslachtsaanduiding": "", + "geslachtsnaam": "Collins", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1100, + "voorletters": "", + "voornamen": "Michele", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1025 + }, + { + "fields": { + "anp_identificatie": "126", + "geboortedatum": "1979-12-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Padilla", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1101, + "voorletters": "", + "voornamen": "Nicole", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1026 + }, + { + "fields": { + "anp_identificatie": "127", + "geboortedatum": "2023-09-07", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hawkins", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1102, + "voorletters": "", + "voornamen": "David", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1027 + }, + { + "fields": { + "anp_identificatie": "128", + "geboortedatum": "1996-12-19", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jimenez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1103, + "voorletters": "", + "voornamen": "Robert", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1028 + }, + { + "fields": { + "anp_identificatie": "129", + "geboortedatum": "2005-06-29", + "geslachtsaanduiding": "", + "geslachtsnaam": "Williams", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1104, + "voorletters": "", + "voornamen": "Christine", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1029 + }, + { + "fields": { + "anp_identificatie": "130", + "geboortedatum": "2015-01-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Thomas", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1105, + "voorletters": "", + "voornamen": "Kenneth", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1030 + }, + { + "fields": { + "anp_identificatie": "131", + "geboortedatum": "2006-09-29", + "geslachtsaanduiding": "", + "geslachtsnaam": "Rios", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1106, + "voorletters": "", + "voornamen": "Heather", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1031 + }, + { + "fields": { + "anp_identificatie": "132", + "geboortedatum": "2010-02-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Miller", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1107, + "voorletters": "", + "voornamen": "Christopher", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1032 + }, + { + "fields": { + "anp_identificatie": "133", + "geboortedatum": "1973-07-07", + "geslachtsaanduiding": "", + "geslachtsnaam": "Rodgers", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1108, + "voorletters": "", + "voornamen": "Kevin", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1033 + }, + { + "fields": { + "anp_identificatie": "134", + "geboortedatum": "2003-05-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Booth", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1109, + "voorletters": "", + "voornamen": "Molly", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1034 + }, + { + "fields": { + "anp_identificatie": "135", + "geboortedatum": "1972-11-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Farrell", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1110, + "voorletters": "", + "voornamen": "Chris", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1035 + }, + { + "fields": { + "anp_identificatie": "136", + "geboortedatum": "1975-08-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hughes", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1111, + "voorletters": "", + "voornamen": "Mike", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1036 + }, + { + "fields": { + "anp_identificatie": "137", + "geboortedatum": "1984-09-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Grant", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1112, + "voorletters": "", + "voornamen": "Margaret", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1037 + }, + { + "fields": { + "anp_identificatie": "138", + "geboortedatum": "2009-02-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jenkins", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1113, + "voorletters": "", + "voornamen": "Cindy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1038 + }, + { + "fields": { + "anp_identificatie": "139", + "geboortedatum": "1981-05-25", + "geslachtsaanduiding": "", + "geslachtsnaam": "Matthews", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1114, + "voorletters": "", + "voornamen": "Donald", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1039 + }, + { + "fields": { + "anp_identificatie": "140", + "geboortedatum": "1970-10-28", + "geslachtsaanduiding": "", + "geslachtsnaam": "Vasquez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1115, + "voorletters": "", + "voornamen": "Christopher", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1040 + }, + { + "fields": { + "anp_identificatie": "141", + "geboortedatum": "2000-01-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Cox", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1116, + "voorletters": "", + "voornamen": "Katherine", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1041 + }, + { + "fields": { + "anp_identificatie": "142", + "geboortedatum": "2012-12-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Miller", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1117, + "voorletters": "", + "voornamen": "Robert", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1042 + }, + { + "fields": { + "anp_identificatie": "143", + "geboortedatum": "1980-05-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Guzman", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1118, + "voorletters": "", + "voornamen": "Kimberly", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1043 + }, + { + "fields": { + "anp_identificatie": "144", + "geboortedatum": "1997-08-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hanson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1119, + "voorletters": "", + "voornamen": "Jesse", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1044 + }, + { + "fields": { + "anp_identificatie": "145", + "geboortedatum": "2000-10-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Carter", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1120, + "voorletters": "", + "voornamen": "Sierra", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1045 + }, + { + "fields": { + "anp_identificatie": "146", + "geboortedatum": "2015-02-01", + "geslachtsaanduiding": "", + "geslachtsnaam": "Martinez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1121, + "voorletters": "", + "voornamen": "Stephanie", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1046 + }, + { + "fields": { + "anp_identificatie": "147", + "geboortedatum": "1985-12-16", + "geslachtsaanduiding": "", + "geslachtsnaam": "Rodgers", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1122, + "voorletters": "", + "voornamen": "Preston", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1047 + }, + { + "fields": { + "anp_identificatie": "148", + "geboortedatum": "1999-12-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Holden", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1123, + "voorletters": "", + "voornamen": "Leroy", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1048 + }, + { + "fields": { + "anp_identificatie": "149", + "geboortedatum": "2008-06-08", + "geslachtsaanduiding": "", + "geslachtsnaam": "Harrell", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1124, + "voorletters": "", + "voornamen": "Caitlyn", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1049 + }, + { + "fields": { + "anp_identificatie": "150", + "geboortedatum": "2021-11-22", + "geslachtsaanduiding": "", + "geslachtsnaam": "Grimes", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1125, + "voorletters": "", + "voornamen": "Charlene", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1050 + }, + { + "fields": { + "anp_identificatie": "151", + "geboortedatum": "2017-07-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Sanchez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1126, + "voorletters": "", + "voornamen": "Duane", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1051 + }, + { + "fields": { + "anp_identificatie": "152", + "geboortedatum": "1971-02-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jordan", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1127, + "voorletters": "", + "voornamen": "Edward", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1052 + }, + { + "fields": { + "anp_identificatie": "153", + "geboortedatum": "1988-09-19", + "geslachtsaanduiding": "", + "geslachtsnaam": "Elliott", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1128, + "voorletters": "", + "voornamen": "Amber", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1053 + }, + { + "fields": { + "anp_identificatie": "154", + "geboortedatum": "2017-03-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hughes", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1129, + "voorletters": "", + "voornamen": "Christopher", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1054 + }, + { + "fields": { + "anp_identificatie": "155", + "geboortedatum": "1995-07-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Dougherty", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1130, + "voorletters": "", + "voornamen": "Brenda", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1055 + }, + { + "fields": { + "anp_identificatie": "156", + "geboortedatum": "1987-02-08", + "geslachtsaanduiding": "", + "geslachtsnaam": "Vincent", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1131, + "voorletters": "", + "voornamen": "Nathan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1056 + }, + { + "fields": { + "anp_identificatie": "157", + "geboortedatum": "2011-08-18", + "geslachtsaanduiding": "", + "geslachtsnaam": "Brown", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1132, + "voorletters": "", + "voornamen": "Ricky", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1057 + }, + { + "fields": { + "anp_identificatie": "158", + "geboortedatum": "1973-05-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Fischer", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1133, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1058 + }, + { + "fields": { + "anp_identificatie": "159", + "geboortedatum": "1976-07-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Preston", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1134, + "voorletters": "", + "voornamen": "Jessica", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1059 + }, + { + "fields": { + "anp_identificatie": "160", + "geboortedatum": "1987-01-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Morales", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1135, + "voorletters": "", + "voornamen": "Allison", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1060 + }, + { + "fields": { + "anp_identificatie": "161", + "geboortedatum": "1986-09-15", + "geslachtsaanduiding": "", + "geslachtsnaam": "Manning", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1136, + "voorletters": "", + "voornamen": "Mariah", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1061 + }, + { + "fields": { + "anp_identificatie": "162", + "geboortedatum": "2017-11-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Jarvis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1137, + "voorletters": "", + "voornamen": "Cameron", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1062 + }, + { + "fields": { + "anp_identificatie": "163", + "geboortedatum": "1997-05-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Conway", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1138, + "voorletters": "", + "voornamen": "Sara", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1063 + }, + { + "fields": { + "anp_identificatie": "164", + "geboortedatum": "1976-09-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Brooks", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1139, + "voorletters": "", + "voornamen": "Daniel", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1064 + }, + { + "fields": { + "anp_identificatie": "165", + "geboortedatum": "2016-01-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Hernandez", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1140, + "voorletters": "", + "voornamen": "Zachary", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1065 + }, + { + "fields": { + "anp_identificatie": "166", + "geboortedatum": "2024-07-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Long", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1141, + "voorletters": "", + "voornamen": "Kelly", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1066 + }, + { + "fields": { + "anp_identificatie": "167", + "geboortedatum": "2017-11-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Ayers", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1142, + "voorletters": "", + "voornamen": "Ashley", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1067 + }, + { + "fields": { + "anp_identificatie": "168", + "geboortedatum": "1980-06-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Waters", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1143, + "voorletters": "", + "voornamen": "Marissa", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1068 + }, + { + "fields": { + "anp_identificatie": "169", + "geboortedatum": "1971-05-23", + "geslachtsaanduiding": "", + "geslachtsnaam": "Elliott", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1144, + "voorletters": "", + "voornamen": "Bonnie", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1069 + }, + { + "fields": { + "anp_identificatie": "170", + "geboortedatum": "2024-05-31", + "geslachtsaanduiding": "", + "geslachtsnaam": "Brown", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1145, + "voorletters": "", + "voornamen": "Katherine", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1070 + }, + { + "fields": { + "anp_identificatie": "171", + "geboortedatum": "1970-08-15", + "geslachtsaanduiding": "", + "geslachtsnaam": "Robbins", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1146, + "voorletters": "", + "voornamen": "Brandon", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1071 + }, + { + "fields": { + "anp_identificatie": "172", + "geboortedatum": "1996-08-13", + "geslachtsaanduiding": "", + "geslachtsnaam": "Levy", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1147, + "voorletters": "", + "voornamen": "Dustin", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1072 + }, + { + "fields": { + "anp_identificatie": "173", + "geboortedatum": "2011-12-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Boyd", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1148, + "voorletters": "", + "voornamen": "Patricia", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1073 + }, + { + "fields": { + "anp_identificatie": "174", + "geboortedatum": "1975-11-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Wilson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1149, + "voorletters": "", + "voornamen": "Susan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1074 + }, + { + "fields": { + "anp_identificatie": "175", + "geboortedatum": "2018-12-07", + "geslachtsaanduiding": "", + "geslachtsnaam": "Chapman", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1150, + "voorletters": "", + "voornamen": "Michael", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1075 + }, + { + "fields": { + "anp_identificatie": "176", + "geboortedatum": "1985-02-09", + "geslachtsaanduiding": "", + "geslachtsnaam": "Castillo", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1151, + "voorletters": "", + "voornamen": "Jasmine", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1076 + }, + { + "fields": { + "anp_identificatie": "177", + "geboortedatum": "2008-10-02", + "geslachtsaanduiding": "", + "geslachtsnaam": "Johnson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1152, + "voorletters": "", + "voornamen": "Teresa", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1077 + }, + { + "fields": { + "anp_identificatie": "178", + "geboortedatum": "2007-04-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Henderson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1153, + "voorletters": "", + "voornamen": "Courtney", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1078 + }, + { + "fields": { + "anp_identificatie": "179", + "geboortedatum": "2011-05-05", + "geslachtsaanduiding": "", + "geslachtsnaam": "Johnson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1154, + "voorletters": "", + "voornamen": "Tiffany", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1079 + }, + { + "fields": { + "anp_identificatie": "180", + "geboortedatum": "2003-03-04", + "geslachtsaanduiding": "", + "geslachtsnaam": "Rogers", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1155, + "voorletters": "", + "voornamen": "Dawn", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1080 + }, + { + "fields": { + "anp_identificatie": "181", + "geboortedatum": "2004-04-06", + "geslachtsaanduiding": "", + "geslachtsnaam": "Woods", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1156, + "voorletters": "", + "voornamen": "James", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1081 + }, + { + "fields": { + "anp_identificatie": "182", + "geboortedatum": "1970-09-08", + "geslachtsaanduiding": "", + "geslachtsnaam": "Oliver", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1157, + "voorletters": "", + "voornamen": "Richard", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1082 + }, + { + "fields": { + "anp_identificatie": "183", + "geboortedatum": "2001-09-10", + "geslachtsaanduiding": "", + "geslachtsnaam": "Peterson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1158, + "voorletters": "", + "voornamen": "Christine", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1083 + }, + { + "fields": { + "anp_identificatie": "184", + "geboortedatum": "2008-08-03", + "geslachtsaanduiding": "", + "geslachtsnaam": "Nichols", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1159, + "voorletters": "", + "voornamen": "Elizabeth", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1084 + }, + { + "fields": { + "anp_identificatie": "185", + "geboortedatum": "1990-11-25", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lawrence", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1160, + "voorletters": "", + "voornamen": "Carla", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1085 + }, + { + "fields": { + "anp_identificatie": "186", + "geboortedatum": "1991-12-29", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mendoza", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1161, + "voorletters": "", + "voornamen": "Brenda", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1086 + }, + { + "fields": { + "anp_identificatie": "187", + "geboortedatum": "1992-07-27", + "geslachtsaanduiding": "", + "geslachtsnaam": "Boone", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1162, + "voorletters": "", + "voornamen": "Zachary", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1087 + }, + { + "fields": { + "anp_identificatie": "188", + "geboortedatum": "2021-01-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Burke", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1163, + "voorletters": "", + "voornamen": "Anthony", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1088 + }, + { + "fields": { + "anp_identificatie": "189", + "geboortedatum": "2005-04-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Patterson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1164, + "voorletters": "", + "voornamen": "Jennifer", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1089 + }, + { + "fields": { + "anp_identificatie": "190", + "geboortedatum": "1987-01-20", + "geslachtsaanduiding": "", + "geslachtsnaam": "Garcia", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1165, + "voorletters": "", + "voornamen": "William", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1090 + }, + { + "fields": { + "anp_identificatie": "191", + "geboortedatum": "2002-05-11", + "geslachtsaanduiding": "", + "geslachtsnaam": "Smith", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1166, + "voorletters": "", + "voornamen": "Andrea", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1091 + }, + { + "fields": { + "anp_identificatie": "192", + "geboortedatum": "2010-08-14", + "geslachtsaanduiding": "", + "geslachtsnaam": "Johnson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1167, + "voorletters": "", + "voornamen": "Calvin", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1092 + }, + { + "fields": { + "anp_identificatie": "193", + "geboortedatum": "1999-08-03", + "geslachtsaanduiding": "", + "geslachtsnaam": "Friedman", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1168, + "voorletters": "", + "voornamen": "Nathan", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1093 + }, + { + "fields": { + "anp_identificatie": "194", + "geboortedatum": "2000-06-12", + "geslachtsaanduiding": "", + "geslachtsnaam": "Harris", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1169, + "voorletters": "", + "voornamen": "Nicholas", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1094 + }, + { + "fields": { + "anp_identificatie": "195", + "geboortedatum": "1974-12-17", + "geslachtsaanduiding": "", + "geslachtsnaam": "Cummings", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1170, + "voorletters": "", + "voornamen": "Michelle", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1095 + }, + { + "fields": { + "anp_identificatie": "196", + "geboortedatum": "2002-03-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Mosley", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1171, + "voorletters": "", + "voornamen": "Kayla", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1096 + }, + { + "fields": { + "anp_identificatie": "197", + "geboortedatum": "1980-02-24", + "geslachtsaanduiding": "", + "geslachtsnaam": "Kramer", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1172, + "voorletters": "", + "voornamen": "Steven", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1097 + }, + { + "fields": { + "anp_identificatie": "198", + "geboortedatum": "1978-12-26", + "geslachtsaanduiding": "", + "geslachtsnaam": "Wilkerson", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1173, + "voorletters": "", + "voornamen": "Garrett", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1098 + }, + { + "fields": { + "anp_identificatie": "199", + "geboortedatum": "2009-04-08", + "geslachtsaanduiding": "", + "geslachtsnaam": "Lewis", + "inp_a_nummer": "", + "inp_bsn": "", + "klant": 1174, + "voorletters": "", + "voornamen": "Pamela", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 1099 + } +] diff --git a/migration/fixtures/test_single_run.json b/migration/fixtures/test_single_run.json new file mode 100644 index 00000000..2bda84be --- /dev/null +++ b/migration/fixtures/test_single_run.json @@ -0,0 +1,39 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "Potter", + "bedrijfsnaam": "", + "bronorganisatie": "719250341", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "natuurlijk_persoon", + "telefoonnummer": "", + "uuid": "7853958c-4ff1-4b62-bb81-1277346692bf", + "voornaam": "Harry", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 773 + }, + { + "fields": { + "anp_identificatie": "0", + "geboortedatum": "2005-09-30", + "geslachtsaanduiding": "", + "geslachtsnaam": "Huffman", + "inp_a_nummer": "", + "inp_bsn": "024325818", + "klant": 773, + "voorletters": "H", + "voornamen": "Frank", + "voorvoegsel_geslachtsnaam": "" + }, + "model": "klanten.natuurlijkpersoon", + "pk": 698 + } +] diff --git a/migration/fixtures/test_subject_404.json b/migration/fixtures/test_subject_404.json new file mode 100644 index 00000000..1909a7bf --- /dev/null +++ b/migration/fixtures/test_subject_404.json @@ -0,0 +1,23 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "", + "bronorganisatie": "016752934", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "http://localhost:8010", + "subject_type": null, + "telefoonnummer": "", + "uuid": "b27668f2-01ac-447e-a7d1-83ec80e42abe", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1181 + } +] diff --git a/migration/fixtures/test_subject_and_no_subject_identificatie.json b/migration/fixtures/test_subject_and_no_subject_identificatie.json new file mode 100644 index 00000000..3d36f387 --- /dev/null +++ b/migration/fixtures/test_subject_and_no_subject_identificatie.json @@ -0,0 +1,23 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "Hopkins", + "bedrijfsnaam": "", + "bronorganisatie": "710426380", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "http://localhost:8010/subject/1", + "subject_type": null, + "telefoonnummer": "", + "uuid": "ace470b2-ef75-45ce-8b16-106481b8f0f7", + "voornaam": "Anthony", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1177 + } +] diff --git a/migration/fixtures/test_vestiging.json b/migration/fixtures/test_vestiging.json new file mode 100644 index 00000000..4c7fdb6a --- /dev/null +++ b/migration/fixtures/test_vestiging.json @@ -0,0 +1,32 @@ +[ + { + "fields": { + "aanmaakkanaal": "", + "achternaam": "", + "bedrijfsnaam": "Foobar Inc.", + "bronorganisatie": "675241030", + "emailadres": "", + "functie": "", + "geverifieerd": false, + "klantnummer": "0", + "subject": "", + "subject_type": "vestiging", + "telefoonnummer": "", + "uuid": "ef333f9b-1720-47f2-a752-d7c59a51977e", + "voornaam": "", + "voorvoegsel_achternaam": "", + "website_url": "" + }, + "model": "klanten.klant", + "pk": 1176 + }, + { + "fields": { + "handelsnaam": "[\"Foobar Inc.\"]", + "klant": 1176, + "vestigings_nummer": "123456789" + }, + "model": "klanten.vestiging", + "pk": 34 + } +] diff --git a/src/openklant/components/klantinteracties/admin/actoren.py b/src/openklant/components/klantinteracties/admin/actoren.py index 15b71506..87596dd6 100644 --- a/src/openklant/components/klantinteracties/admin/actoren.py +++ b/src/openklant/components/klantinteracties/admin/actoren.py @@ -34,6 +34,14 @@ class ActorKlantcontactInlineAdmin(admin.StackedInline): extra = 0 +class InterneTaakInlineAdmin(admin.StackedInline): + model = Actor.internetaak_set.through + raw_id_fields = ("internetaak",) + verbose_name = _("Interne taak") + verbose_name_plural = _("Interne taken") + extra = 0 + + @admin.register(Actor) class ActorAdmin(admin.ModelAdmin): list_display = ( @@ -51,6 +59,7 @@ class ActorAdmin(admin.ModelAdmin): GeautomatiseerdeActorInlineAdmin, MedewerkerInlineAdmin, OrganisatorischeEenheidInlineAdmin, + InterneTaakInlineAdmin, ) fieldsets = ( ( diff --git a/src/openklant/components/klantinteracties/admin/digitaal_adres.py b/src/openklant/components/klantinteracties/admin/digitaal_adres.py index 04516b50..28a4ada5 100644 --- a/src/openklant/components/klantinteracties/admin/digitaal_adres.py +++ b/src/openklant/components/klantinteracties/admin/digitaal_adres.py @@ -1,7 +1,7 @@ from django import forms from django.contrib import admin -from ..api.validators import OptionalEmailValidator +from ..api.validators import SoortDigitaalAdresValidator from ..models.digitaal_adres import DigitaalAdres @@ -12,7 +12,9 @@ class Meta: def clean_adres(self): data = self.cleaned_data - OptionalEmailValidator()(data["adres"], data.get("soort_digitaal_adres")) + SoortDigitaalAdresValidator()( + soort_digitaal_adres=data.get("soort_digitaal_adres"), value=data["adres"] + ) return data["adres"] diff --git a/src/openklant/components/klantinteracties/admin/internetaken.py b/src/openklant/components/klantinteracties/admin/internetaken.py index b0b1ae57..cb159b71 100644 --- a/src/openklant/components/klantinteracties/admin/internetaken.py +++ b/src/openklant/components/klantinteracties/admin/internetaken.py @@ -1,4 +1,5 @@ from django.contrib import admin +from django.utils.translation import gettext_lazy as _ from ..models.internetaken import InterneTaak @@ -10,6 +11,14 @@ class InterneTaakInlineAdmin(admin.StackedInline): readonly_fields = ("uuid",) +class ActorInlineAdmin(admin.StackedInline): + model = InterneTaak.actoren.through + raw_id_fields = ("actor",) + verbose_name = _("Actor") + verbose_name_plural = _("Actoren") + extra = 0 + + @admin.register(InterneTaak) class InterneTaakAdmin(admin.ModelAdmin): readonly_fields = ("uuid",) @@ -19,6 +28,7 @@ class InterneTaakAdmin(admin.ModelAdmin): "toegewezen_op", "afgehandeld_op", ) + search_fields = ("nummer",) list_filter = ( "actoren", "status", @@ -27,3 +37,4 @@ class InterneTaakAdmin(admin.ModelAdmin): "uuid", "toegewezen_op", ) + inlines = (ActorInlineAdmin,) diff --git a/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py b/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py index 868a7b3d..786a4b94 100644 --- a/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/serializers/digitaal_adres.py @@ -1,13 +1,13 @@ from django.db import transaction from django.utils.translation import gettext_lazy as _ -from rest_framework import serializers +from rest_framework import serializers, validators from openklant.components.klantinteracties.api.serializers.constants import ( SERIALIZER_PATH, ) from openklant.components.klantinteracties.api.validators import ( - OptionalEmailValidator, + SoortDigitaalAdresValidator, digitaal_adres_exists, ) from openklant.components.klantinteracties.models.digitaal_adres import DigitaalAdres @@ -79,6 +79,7 @@ class Meta: "verstrekt_door_partij", "adres", "soort_digitaal_adres", + "is_standaard_adres", "omschrijving", ) extra_kwargs = { @@ -90,6 +91,20 @@ class Meta: }, } + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + if "soort_digitaal_adres" in self.fields: + # Avoid validating the UniqueConstraint for `soort_digitaal_adres` with + # `is_standaard_adres=True`. We want to enforce the constraint at the database + # level, but not via the API, because setting a new default sets all other + # `is_standaard_adres=False` (via DigitaalAdres.save) + self.fields["soort_digitaal_adres"].validators = [ + validator + for validator in self.fields["soort_digitaal_adres"].validators + if not isinstance(validator, validators.UniqueValidator) + ] + def validate_adres(self, adres): """ Define the validator here, to avoid DRF spectacular marking the format for @@ -98,9 +113,26 @@ def validate_adres(self, adres): soort_digitaal_adres = get_field_value( self, self.initial_data, "soort_digitaal_adres" ) - OptionalEmailValidator()(adres, soort_digitaal_adres) + SoortDigitaalAdresValidator()( + soort_digitaal_adres=soort_digitaal_adres, value=adres + ) return adres + def validate(self, attrs): + partij = get_field_value(self, attrs, "partij") + is_standaard_adres = get_field_value(self, attrs, "is_standaard_adres") + if is_standaard_adres and not partij: + raise serializers.ValidationError( + { + "is_standaard_adres": _( + "`is_standaard_adres` kan alleen gezet worden " + "als `verstrekt_door_partij` niet leeg is." + ) + } + ) + + return super().validate(attrs) + @transaction.atomic def update(self, instance, validated_data): if "partij" in validated_data: diff --git a/src/openklant/components/klantinteracties/api/tests/test_actoren.py b/src/openklant/components/klantinteracties/api/tests/test_actoren.py index 54d73160..8422968a 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_actoren.py +++ b/src/openklant/components/klantinteracties/api/tests/test_actoren.py @@ -60,7 +60,7 @@ def test_create_actor_medewerker(self): "actorIdentificatie": { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, } @@ -87,7 +87,7 @@ def test_create_actor_medewerker(self): { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) @@ -107,7 +107,7 @@ def test_create_actor_organisatorische_eenheid(self): "omschrijving": "omschrijving", "emailadres": "phil@bozeman.com", "faxnummer": "316893487573", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, } @@ -135,7 +135,7 @@ def test_create_actor_organisatorische_eenheid(self): "omschrijving": "omschrijving", "emailadres": "phil@bozeman.com", "faxnummer": "316893487573", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) @@ -197,7 +197,7 @@ def test_update_actor_medewerker(self): actor=actor, functie="functie", emailadres="phil@bozeman.com", - telefoonnummer="3168234723", + telefoonnummer="+31618234723", ) detail_url = reverse( @@ -223,7 +223,7 @@ def test_update_actor_medewerker(self): { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) @@ -240,7 +240,7 @@ def test_update_actor_medewerker(self): "actorIdentificatie": { "functie": "vocalist", "emailadres": "phil@whitechapel.com", - "telefoonnummer": "315834573", + "telefoonnummer": "+31583457312", }, } @@ -267,7 +267,7 @@ def test_update_actor_medewerker(self): { "functie": "vocalist", "emailadres": "phil@whitechapel.com", - "telefoonnummer": "315834573", + "telefoonnummer": "+31583457312", }, ) @@ -286,7 +286,7 @@ def test_update_actor_organisatorische_eenheid(self): omschrijving="omschrijving", emailadres="phil@bozeman.com", faxnummer="316893487573", - telefoonnummer="3168234723", + telefoonnummer="+31618234723", ) detail_url = reverse( @@ -313,7 +313,7 @@ def test_update_actor_organisatorische_eenheid(self): "omschrijving": "omschrijving", "emailadres": "phil@bozeman.com", "faxnummer": "316893487573", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) @@ -331,7 +331,7 @@ def test_update_actor_organisatorische_eenheid(self): "omschrijving": "changed", "emailadres": "phil@whitechapel.com", "faxnummer": "316853458345", - "telefoonnummer": "3169456732", + "telefoonnummer": "+31619456732", }, } @@ -359,7 +359,7 @@ def test_update_actor_organisatorische_eenheid(self): "omschrijving": "changed", "emailadres": "phil@whitechapel.com", "faxnummer": "316853458345", - "telefoonnummer": "3169456732", + "telefoonnummer": "+31619456732", }, ) @@ -461,7 +461,7 @@ def test_update_actor_medewerker_to_geautomatiseerde_actor(self): actor=actor, functie="functie", emailadres="phil@bozeman.com", - telefoonnummer="3168234723", + telefoonnummer="+31618234723", ) detail_url = reverse( @@ -487,7 +487,7 @@ def test_update_actor_medewerker_to_geautomatiseerde_actor(self): { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) @@ -547,7 +547,7 @@ def test_partial_update_actor(self): actor=actor, functie="functie", emailadres="phil@bozeman.com", - telefoonnummer="3168234723", + telefoonnummer="+31618234723", ) detail_url = reverse( "klantinteracties:actor-detail", kwargs={"uuid": str(actor.uuid)} @@ -572,7 +572,7 @@ def test_partial_update_actor(self): { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) @@ -604,7 +604,7 @@ def test_partial_update_actor(self): { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, ) diff --git a/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py b/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py index a4fb7925..72e6f2eb 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py +++ b/src/openklant/components/klantinteracties/api/tests/test_digitaal_adres.py @@ -5,6 +5,7 @@ from vng_api_common.tests import reverse from openklant.components.klantinteracties.constants import SoortDigitaalAdres +from openklant.components.klantinteracties.models import DigitaalAdres from openklant.components.klantinteracties.models.tests.factories.digitaal_adres import ( DigitaalAdresFactory, ) @@ -73,6 +74,7 @@ def test_create_digitaal_adres(self): self.assertEqual(data["verstrektDoorPartij"], None) self.assertEqual(data["adres"], "foobar@example.com") self.assertEqual(data["omschrijving"], "omschrijving") + self.assertEqual(data["isStandaardAdres"], False) with self.subTest("with_betrokkene_and_partij"): partij = PartijFactory.create() @@ -95,70 +97,237 @@ def test_create_digitaal_adres(self): @tag("gh-234") def test_create_digitaal_adres_email_validation(self): + list_url = reverse("klantinteracties:digitaaladres-list") + + with self.subTest("invalid email create"): + data = { + "verstrektDoorBetrokkene": None, + "verstrektDoorPartij": None, + "soortDigitaalAdres": SoortDigitaalAdres.email, + "adres": "invalid", + "omschrijving": "omschrijving", + } + + response = self.client.post(list_url, data) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + data = response.json() + self.assertEqual( + data["invalidParams"], + [ + { + "name": "adres", + "code": "invalid", + "reason": _("Voer een geldig e-mailadres in."), + } + ], + ) + + with self.subTest("invalid email update"): + digitaal_adres = DigitaalAdresFactory.create( + soort_digitaal_adres=SoortDigitaalAdres.email, adres="foo@bar.com" + ) + detail_url = reverse( + "klantinteracties:digitaaladres-detail", + kwargs={"uuid": str(digitaal_adres.uuid)}, + ) + + response = self.client.patch(detail_url, {"adres": "invalid"}) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + data = response.json() + self.assertEqual( + data["invalidParams"], + [ + { + "name": "adres", + "code": "invalid", + "reason": _("Voer een geldig e-mailadres in."), + } + ], + ) + + @tag("gh-234") + def test_create_digitaal_adres_telefoon_validation(self): + list_url = reverse("klantinteracties:digitaaladres-list") + + with self.subTest("create telefeoonnummer"): + data = { + "verstrektDoorBetrokkene": None, + "verstrektDoorPartij": None, + "soortDigitaalAdres": SoortDigitaalAdres.telefoonnummer, + "adres": "invalid", + "omschrijving": "omschrijving", + } + + response = self.client.post(list_url, data) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + data = response.json() + self.assertEqual( + data["invalidParams"], + [ + { + "name": "adres", + "code": "invalid", + "reason": _("Het opgegeven telefoonnummer is ongeldig."), + } + ], + ) + + with self.subTest("invalid telefoonnummer update"): + digitaal_adres = DigitaalAdresFactory.create( + soort_digitaal_adres=SoortDigitaalAdres.telefoonnummer, adres="+311234" + ) + detail_url = reverse( + "klantinteracties:digitaaladres-detail", + kwargs={"uuid": str(digitaal_adres.uuid)}, + ) + + response = self.client.patch(detail_url, {"adres": "invalid"}) + + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + data = response.json() + self.assertEqual( + data["invalidParams"], + [ + { + "name": "adres", + "code": "invalid", + "reason": _("Het opgegeven telefoonnummer is ongeldig."), + } + ], + ) + + @tag("gh-234") + def test_create_digitaal_adres_overig_no_validation(self): + list_url = reverse("klantinteracties:digitaaladres-list") + + with self.subTest( + "no validation applied if soort is not email or telefoonnummer create" + ): + data = { + "verstrektDoorBetrokkene": None, + "verstrektDoorPartij": None, + "soortDigitaalAdres": SoortDigitaalAdres.overig, + "adres": "whatever", + "omschrijving": "omschrijving", + } + + response = self.client.post(list_url, data) + + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + + response_data = response.json() + + self.assertEqual( + response_data["soortDigitaalAdres"], SoortDigitaalAdres.overig + ) + self.assertEqual(response_data["adres"], "whatever") + + with self.subTest( + "no validation applied if soort is not email or telefoonnummer update" + ): + digitaal_adres = DigitaalAdresFactory.create( + soort_digitaal_adres=SoortDigitaalAdres.overig, adres="overig" + ) + detail_url = reverse( + "klantinteracties:digitaaladres-detail", + kwargs={"uuid": str(digitaal_adres.uuid)}, + ) + + response = self.client.patch( + detail_url, + { + "soortDigitaalAdres": SoortDigitaalAdres.overig, + "adres": "whatever", + }, + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + digitaal_adres.refresh_from_db() + + self.assertEqual( + digitaal_adres.soort_digitaal_adres, SoortDigitaalAdres.overig + ) + self.assertEqual(digitaal_adres.adres, "whatever") + + def test_create_digitaal_adres_is_standaard_adres(self): + """ + Creating a DigitaalAdres with isStandaardAdres=True should make other existing + DigitaalAdressen no longer the default + """ + # Since this has a different Partij, the value of `is_standaard_adres` should stay `True` + partij1, partij2 = PartijFactory.create_batch(2) + existing_adres_different_partij = DigitaalAdresFactory.create( + partij=partij1, is_standaard_adres=True, soort_digitaal_adres="email" + ) + # This adres has the same `soort_digitaal_adres` and `partij`, so the value of + # `is_standaard_adres` should be changed to `False` if we change another one to `True` + existing_adres = DigitaalAdresFactory.create( + is_standaard_adres=True, soort_digitaal_adres="email", partij=partij2 + ) + list_url = reverse("klantinteracties:digitaaladres-list") data = { "verstrektDoorBetrokkene": None, - "verstrektDoorPartij": None, - "soortDigitaalAdres": SoortDigitaalAdres.email, - "adres": "invalid", + "verstrektDoorPartij": {"uuid": str(partij2.uuid)}, + "soortDigitaalAdres": "email", + "adres": "foo@bar.com", "omschrijving": "omschrijving", + "isStandaardAdres": True, } response = self.client.post(list_url, data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) - self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) data = response.json() - self.assertEqual( - data["invalidParams"], - [ - { - "name": "adres", - "code": "invalid", - "reason": _("Voer een geldig e-mailadres in."), - } - ], - ) - digitaal_adres = DigitaalAdresFactory.create( - soort_digitaal_adres=SoortDigitaalAdres.email, adres="foo@bar.com" - ) - detail_url = reverse( - "klantinteracties:digitaaladres-detail", - kwargs={"uuid": str(digitaal_adres.uuid)}, - ) + self.assertEqual(data["isStandaardAdres"], True) + + existing_adres_different_partij.refresh_from_db() + existing_adres.refresh_from_db() + new_adres = DigitaalAdres.objects.last() + + self.assertEqual(existing_adres_different_partij.is_standaard_adres, True) + self.assertEqual(existing_adres.is_standaard_adres, False) + self.assertEqual(new_adres.is_standaard_adres, True) - response = self.client.patch(detail_url, {"adres": "invalid"}) + def test_create_digitaal_adres_is_standaard_adres_without_partij_not_possible(self): + """ + Creating a DigitaalAdres with isStandaardAdres=True should not be possible with + verstrektDoorPartij=None + """ + betrokkene = BetrokkeneFactory.create() + list_url = reverse("klantinteracties:digitaaladres-list") + data = { + "verstrektDoorBetrokkene": {"uuid": str(betrokkene.uuid)}, + "verstrektDoorPartij": None, + "soortDigitaalAdres": "email", + "adres": "foo@bar.com", + "omschrijving": "omschrijving", + "isStandaardAdres": True, + } + + response = self.client.post(list_url, data) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + data = response.json() self.assertEqual( data["invalidParams"], [ { - "name": "adres", + "name": "isStandaardAdres", "code": "invalid", - "reason": _("Voer een geldig e-mailadres in."), + "reason": _( + "`is_standaard_adres` kan alleen gezet worden als `verstrekt_door_partij` niet leeg is." + ), } ], ) - - with self.subTest("no validation applied if soort is not email"): - response = self.client.patch( - detail_url, - { - "soortDigitaalAdres": SoortDigitaalAdres.telefoonnummer, - "adres": "0612345678", - }, - ) - - self.assertEqual(response.status_code, status.HTTP_200_OK) - - digitaal_adres.refresh_from_db() - - self.assertEqual( - digitaal_adres.soort_digitaal_adres, SoortDigitaalAdres.telefoonnummer - ) - self.assertEqual(digitaal_adres.adres, "0612345678") + self.assertEqual(DigitaalAdres.objects.count(), 0) def test_update_digitaal_adres(self): betrokkene, betrokkene2 = BetrokkeneFactory.create_batch(2) @@ -226,6 +395,55 @@ def test_update_digitaal_adres(self): self.assertEqual(data["adres"], "0721434543") self.assertEqual(data["omschrijving"], "changed") + def test_update_digitaal_adres_is_standaard_adres(self): + """ + Creating a DigitaalAdres with isStandaardAdres=True should make other existing + DigitaalAdressen no longer the default + """ + partij1, partij2 = PartijFactory.create_batch(2) + # Since this has a different Partij, the value of `is_standaard_adres` should stay `True` + existing_adres_different_partij = DigitaalAdresFactory.create( + partij=partij1, is_standaard_adres=True, soort_digitaal_adres="email" + ) + # This adres has the same `soort_digitaal_adres` and `partij`, so the value of + # `is_standaard_adres` should be changed to `False` if we change another one to `True` + existing_adres = DigitaalAdresFactory.create( + is_standaard_adres=True, soort_digitaal_adres="email", partij=partij2 + ) + digitaal_adres = DigitaalAdresFactory.create( + partij=partij2, + soort_digitaal_adres="email", + adres="adres", + omschrijving="omschrijving", + ) + detail_url = reverse( + "klantinteracties:digitaaladres-detail", + kwargs={"uuid": str(digitaal_adres.uuid)}, + ) + + data = { + "verstrektDoorBetrokkene": {"uuid": str(digitaal_adres.betrokkene.uuid)}, + "verstrektDoorPartij": {"uuid": str(partij2.uuid)}, + "soortDigitaalAdres": "email", + "isStandaardAdres": True, + "adres": "foo@bar.com", + "omschrijving": "changed", + } + + response = self.client.put(detail_url, data) + + data = response.json() + + self.assertEqual(data["isStandaardAdres"], True) + + existing_adres_different_partij.refresh_from_db() + existing_adres.refresh_from_db() + digitaal_adres.refresh_from_db() + + self.assertEqual(existing_adres_different_partij.is_standaard_adres, True) + self.assertEqual(existing_adres.is_standaard_adres, False) + self.assertEqual(digitaal_adres.is_standaard_adres, True) + def test_partial_update_digitaal_adres(self): betrokkene = BetrokkeneFactory.create() partij = PartijFactory.create() diff --git a/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py b/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py index aa196bba..6697c97b 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py +++ b/src/openklant/components/klantinteracties/api/tests/test_klantcontacten.py @@ -74,7 +74,7 @@ def test_read_klantcontact(self): actor=actor, functie="functie", emailadres="phil@bozeman.com", - telefoonnummer="3168234723", + telefoonnummer="+31618234723", ) klantcontact = KlantcontactFactory.create() ActorKlantcontactFactory.create(actor=actor, klantcontact=klantcontact) @@ -107,7 +107,7 @@ def test_read_klantcontact(self): "actorIdentificatie": { "functie": "functie", "emailadres": "phil@bozeman.com", - "telefoonnummer": "3168234723", + "telefoonnummer": "+31618234723", }, } ], diff --git a/src/openklant/components/klantinteracties/api/tests/test_partijen.py b/src/openklant/components/klantinteracties/api/tests/test_partijen.py index b291505b..189fc5b2 100644 --- a/src/openklant/components/klantinteracties/api/tests/test_partijen.py +++ b/src/openklant/components/klantinteracties/api/tests/test_partijen.py @@ -3,7 +3,11 @@ from django.utils.translation import gettext as _ from rest_framework import status, serializers from vng_api_common.tests import reverse + from django.core.exceptions import ValidationError + +from openklant.components.klantinteracties.models.constants import SoortPartij +from openklant.components.klantinteracties.models.partijen import Partij from openklant.components.klantinteracties.models.tests.factories.digitaal_adres import ( DigitaalAdresFactory, ) @@ -1801,6 +1805,49 @@ def test_destroy_partij(self): data = response.json() self.assertEqual(data["count"], 0) + def test_digitale_adressen_inclusion_param(self): + persoon = PersoonFactory(partij__soort_partij=SoortPartij.persoon) + + persoon_with_adressen = PersoonFactory(partij__soort_partij=SoortPartij.persoon) + digitaal_adres = DigitaalAdresFactory(partij=persoon_with_adressen.partij) + + def _get_detail_url(partij: Partij) -> str: + return reverse( + "klantinteracties:partij-detail", kwargs={"uuid": str(partij.uuid)} + ) + + # request the partij *without* any digitale adressen + response = self.client.get( + _get_detail_url(persoon.partij), data=dict(expand="digitaleAdressen") + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response_data: dict = response.json() + + self.assertEqual(response_data["_expand"], {"digitaleAdressen": []}) + + # request the partij *with* digitale adressen + response = self.client.get( + _get_detail_url(persoon_with_adressen.partij), + data=dict(expand="digitaleAdressen"), + ) + + self.assertEqual(response.status_code, status.HTTP_200_OK) + + response_data: dict = response.json() + + received_adressen = response_data["_expand"]["digitaleAdressen"] + expected_url = reverse( + "klantinteracties:digitaaladres-detail", + kwargs=dict(uuid=digitaal_adres.uuid), + ) + + self.assertEqual(len(received_adressen), 1) + self.assertEqual( + received_adressen[0]["url"], f"http://testserver{expected_url}" + ) + class PartijIdentificatorTests(APITestCase): def test_list_partij_indetificator(self): diff --git a/src/openklant/components/klantinteracties/api/validators.py b/src/openklant/components/klantinteracties/api/validators.py index 66cdc5b4..43cb2bff 100644 --- a/src/openklant/components/klantinteracties/api/validators.py +++ b/src/openklant/components/klantinteracties/api/validators.py @@ -25,6 +25,7 @@ PartijIdentificator, ) from openklant.components.klantinteracties.models.rekeningnummers import Rekeningnummer +from openklant.utils.validators import validate_phone_number class FKUniqueTogetherValidator(UniqueTogetherValidator): @@ -170,12 +171,12 @@ def Rekeningnummer_exists(value): raise serializers.ValidationError(_("Rekeningnummer object bestaat niet.")) -class OptionalEmailValidator(EmailValidator): - """ - EmailValidator for SoortDigitaalAdres that only attempts to validate if - `SoortDigitaalAdres` is `email` - """ - - def __call__(self, value: str, soort_digitaal_adres: str): - if soort_digitaal_adres == SoortDigitaalAdres.email: - super().__call__(value) +class SoortDigitaalAdresValidator: + def __call__(self, soort_digitaal_adres: SoortDigitaalAdres, value: str): + match soort_digitaal_adres: + case SoortDigitaalAdres.email: + EmailValidator()(value) + case SoortDigitaalAdres.telefoonnummer: + validate_phone_number(value) + case _: + return diff --git a/src/openklant/components/klantinteracties/migrations/0022_digitaaladres_is_standaard_adres_and_more.py b/src/openklant/components/klantinteracties/migrations/0022_digitaaladres_is_standaard_adres_and_more.py new file mode 100644 index 00000000..5f07c294 --- /dev/null +++ b/src/openklant/components/klantinteracties/migrations/0022_digitaaladres_is_standaard_adres_and_more.py @@ -0,0 +1,30 @@ +# Generated by Django 4.2.15 on 2024-10-31 08:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("klantinteracties", "0021_alter_digitaaladres_betrokkene"), + ] + + operations = [ + migrations.AddField( + model_name="digitaaladres", + name="is_standaard_adres", + field=models.BooleanField( + default=False, + help_text="Geeft aan of dit digitaal adres het standaard adres is voor het `soort_digitaal_adres`", + verbose_name="Is standaard adres", + ), + ), + migrations.AddConstraint( + model_name="digitaaladres", + constraint=models.UniqueConstraint( + condition=models.Q(("is_standaard_adres", True)), + fields=("partij", "soort_digitaal_adres"), + name="unique_default_per_partij_and_soort", + ), + ), + ] diff --git a/src/openklant/components/klantinteracties/models/digitaal_adres.py b/src/openklant/components/klantinteracties/models/digitaal_adres.py index 157544af..3c8321c4 100644 --- a/src/openklant/components/klantinteracties/models/digitaal_adres.py +++ b/src/openklant/components/klantinteracties/models/digitaal_adres.py @@ -40,6 +40,13 @@ class DigitaalAdres(APIMixin, models.Model): max_length=255, choices=SoortDigitaalAdres.choices, ) + is_standaard_adres = models.BooleanField( + _("Is standaard adres"), + help_text=_( + "Geeft aan of dit digitaal adres het standaard adres is voor het `soort_digitaal_adres`" + ), + default=False, + ) adres = models.CharField( _("adres"), help_text=_( @@ -55,6 +62,25 @@ class DigitaalAdres(APIMixin, models.Model): class Meta: verbose_name = _("digitaal adres") + constraints = [ + models.UniqueConstraint( + fields=["partij", "soort_digitaal_adres"], + condition=models.Q(is_standaard_adres=True), + name="unique_default_per_partij_and_soort", + ) + ] def __str__(self): return f"{self.betrokkene} - {self.adres}" + + def save(self, *args, **kwargs): + if self.is_standaard_adres: + # Because there can only be one default address per `soort_digitaal_adres` + # and `partij`, mark all other addresses as non-default + DigitaalAdres.objects.filter( + soort_digitaal_adres=self.soort_digitaal_adres, + partij=self.partij, + is_standaard_adres=True, + ).update(is_standaard_adres=False) + + super().save(*args, **kwargs) diff --git a/src/openklant/components/klantinteracties/openapi.yaml b/src/openklant/components/klantinteracties/openapi.yaml index 6575bb24..c9fe60b5 100644 --- a/src/openklant/components/klantinteracties/openapi.yaml +++ b/src/openklant/components/klantinteracties/openapi.yaml @@ -3463,6 +3463,10 @@ components: - $ref: '#/components/schemas/SoortDigitaalAdresEnum' description: Typering van het digitale adres die aangeeft via welk(e) kanaal of kanalen met dit adres contact kan worden opgenomen. + isStandaardAdres: + type: boolean + description: Geeft aan of dit digitaal adres het standaard adres is voor + het `soort_digitaal_adres` omschrijving: type: string description: Omschrijving van het digitaal adres. @@ -4868,6 +4872,10 @@ components: - $ref: '#/components/schemas/SoortDigitaalAdresEnum' description: Typering van het digitale adres die aangeeft via welk(e) kanaal of kanalen met dit adres contact kan worden opgenomen. + isStandaardAdres: + type: boolean + description: Geeft aan of dit digitaal adres het standaard adres is voor + het `soort_digitaal_adres` omschrijving: type: string description: Omschrijving van het digitaal adres. diff --git a/src/openklant/components/klantinteracties/tests/test_admin.py b/src/openklant/components/klantinteracties/tests/test_admin.py index 3c531b34..653b0259 100644 --- a/src/openklant/components/klantinteracties/tests/test_admin.py +++ b/src/openklant/components/klantinteracties/tests/test_admin.py @@ -5,16 +5,26 @@ from django.utils.translation import gettext as _ from django_webtest import WebTest +from freezegun.api import freeze_time from maykin_2fa.test import disable_admin_mfa from webtest import TestResponse from openklant.accounts.tests.factories import SuperUserFactory -from openklant.components.klantinteracties.models import DigitaalAdres +from openklant.components.klantinteracties.models.tests.factories.actoren import ( + ActorFactory, + ActorKlantcontactFactory, + GeautomatiseerdeActorFactory, + MedewerkerFactory, +) from openklant.components.klantinteracties.models.tests.factories.digitaal_adres import ( DigitaalAdresFactory, ) +from openklant.components.klantinteracties.models.tests.factories.internetaken import ( + InterneTaakFactory, +) from openklant.components.klantinteracties.models.tests.factories.klantcontacten import ( BetrokkeneFactory, + KlantcontactFactory, ) from openklant.components.klantinteracties.models.tests.factories.partijen import ( PartijFactory, @@ -23,6 +33,17 @@ from openklant.utils.tests.webtest import add_dynamic_field from ..constants import SoortDigitaalAdres +from ..models import ( + Actor, + ActorKlantcontact, + DigitaalAdres, + InterneTaak, + InterneTakenActorenThoughModel, + Klantcontact, + Medewerker, + SoortActor, + Taakstatus, +) @disable_admin_mfa() @@ -124,10 +145,6 @@ def test_digitaal_adres_inline(self): class DigitaalAdresAdminTests(WebTest): @tag("gh-234") def test_email_validation(self): - """ - Check that the admin applies conditional email validation on `adres`, only if - `soort_digitaal_adres` is `email` - """ user = SuperUserFactory.create() self.app.set_user(user) @@ -135,33 +152,545 @@ def test_email_validation(self): admin_url = reverse("admin:klantinteracties_digitaaladres_add") - with self.subTest("apply validation for soort_digitaal_adres == email"): - response: TestResponse = self.app.get(admin_url) + response: TestResponse = self.app.get(admin_url) + + form = response.form + form["betrokkene"] = betrokkene.pk + form["soort_digitaal_adres"] = SoortDigitaalAdres.email + form["adres"] = "invalid" + form["omschrijving"] = "foo" + + response = form.submit() + + self.assertEqual(response.status_code, 200) + self.assertFalse(DigitaalAdres.objects.exists()) + self.assertEqual( + response.context["errors"], [[_("Voer een geldig e-mailadres in.")]] + ) + + @tag("gh-234") + def test_telefoonnummer_validation(self): + user = SuperUserFactory.create() + self.app.set_user(user) + + betrokkene = BetrokkeneFactory.create() + + admin_url = reverse("admin:klantinteracties_digitaaladres_add") + + response: TestResponse = self.app.get(admin_url) + + form = response.form + form["betrokkene"] = betrokkene.pk + form["soort_digitaal_adres"] = SoortDigitaalAdres.telefoonnummer + form["adres"] = "invalid" + form["omschrijving"] = "foo" + + response = form.submit() + + self.assertEqual(response.status_code, 200) + self.assertFalse(DigitaalAdres.objects.exists()) + self.assertEqual( + response.context["errors"], + [[_("Het opgegeven telefoonnummer is ongeldig.")]], + ) + + @tag("gh-234") + def test_overig_has_no_validation(self): + user = SuperUserFactory.create() + self.app.set_user(user) + + betrokkene = BetrokkeneFactory.create() + + admin_url = reverse("admin:klantinteracties_digitaaladres_add") + + response: TestResponse = self.app.get(admin_url) + + form = response.form + form["betrokkene"] = betrokkene.pk + form["soort_digitaal_adres"] = SoortDigitaalAdres.overig + form["adres"] = "whatever" + form["omschrijving"] = "foo" + + response = form.submit() + + self.assertEqual(response.status_code, 302) + self.assertTrue(DigitaalAdres.objects.exists()) + + +@disable_admin_mfa() +class ActorenAdminTests(WebTest): + @classmethod + def setUpTestData(cls): + super().setUpTestData() + cls.user = SuperUserFactory.create() + + def test_search_naam(self): + self.app.set_user(self.user) + + ActorFactory.create(naam="Richard") + ActorFactory.create(naam="Pauline") + + admin_url = reverse("admin:klantinteracties_actor_changelist") + + response: TestResponse = self.app.get(admin_url) + + self.assertContains(response, "field-naam", 2) + + search_form = response.forms["changelist-search"] + search_form["q"] = "Pauline" + + search_response: TestResponse = search_form.submit() - form = response.form - form["betrokkene"] = betrokkene.pk - form["soort_digitaal_adres"] = SoortDigitaalAdres.email - form["adres"] = "invalid" - form["omschrijving"] = "foo" + self.assertEqual(search_response.status_code, 200) + self.assertContains(search_response, "field-naam", 1) - response = form.submit() + def test_list_filter_soort_actor(self): + self.app.set_user(self.user) + + MedewerkerFactory.create(actor__soort_actor=SoortActor.medewerker) + GeautomatiseerdeActorFactory.create( + actor__soort_actor=SoortActor.geautomatiseerde_actor + ) + + admin_url = reverse("admin:klantinteracties_actor_changelist") + + response: TestResponse = self.app.get(admin_url) + + self.assertContains(response, "field-soort_actor", 2) + + search_response: TestResponse = response.click( + description=_(SoortActor.medewerker.label) + ) + + self.assertEqual(search_response.status_code, 200) + self.assertContains(search_response, "field-soort_actor", 1) + + def test_list_filter_indicatie_actief(self): + self.app.set_user(self.user) + + ActorFactory.create(indicatie_actief=True) + ActorFactory.create(indicatie_actief=False) + + admin_url = reverse("admin:klantinteracties_actor_changelist") + + response: TestResponse = self.app.get(admin_url) + + self.assertContains(response, "field-naam", 2) + + search_response: TestResponse = response.click(href="indicatie_actief__exact=1") + + self.assertEqual(search_response.status_code, 200) + self.assertContains(search_response, "field-soort_actor", 1) + + def test_actor_create(self): + assert not Actor.objects.exists() + assert not Medewerker.objects.exists() + assert not InterneTakenActorenThoughModel.objects.exists() + assert not ActorKlantcontact.objects.exists() + + self.app.set_user(self.user) + + klantcontact: Klantcontact = KlantcontactFactory.create() + internetaak: InterneTaak = InterneTaakFactory.create() + + admin_url = reverse("admin:klantinteracties_actor_add") + + response: TestResponse = self.app.get(admin_url) + + form = response.forms["actor_form"] + form["actorklantcontact_set-TOTAL_FORMS"] = 1 + form["medewerker-TOTAL_FORMS"] = 1 + form["internetakenactorenthoughmodel_set-TOTAL_FORMS"] = 1 + + form["naam"] = "Richard" + form["soort_actor"].select(text=SoortActor.medewerker.label) + form["indicatie_actief"] = 1 + + form["actoridentificator_code_objecttype"] = "objecttype code" + form["actoridentificator_code_soort_object_id"] = "soort object id" + form["actoridentificator_object_id"] = "object id" + form["actoridentificator_code_register"] = "code register" + + add_dynamic_field(form, "actorklantcontact_set-0-klantcontact", klantcontact.pk) + + add_dynamic_field(form, "medewerker-0-functie", "TEST") + add_dynamic_field(form, "medewerker-0-emailadres", "example@test.com") + add_dynamic_field(form, "medewerker-0-telefoonnummer", "+31618234723") + + add_dynamic_field( + form, + "internetakenactorenthoughmodel_set-0-internetaak", + str(internetaak.pk), + ) + + add_response: TestResponse = form.submit(name="_save") + + self.assertRedirects( + add_response, reverse("admin:klantinteracties_actor_changelist") + ) + + created_actor: Actor = Actor.objects.get() + + self.assertEqual(created_actor.naam, "Richard") + self.assertEqual(created_actor.soort_actor, SoortActor.medewerker) + self.assertEqual(created_actor.indicatie_actief, True) + + self.assertEqual( + created_actor.actoridentificator_code_objecttype, "objecttype code" + ) + self.assertEqual( + created_actor.actoridentificator_code_soort_object_id, "soort object id" + ) + self.assertEqual(created_actor.actoridentificator_object_id, "object id") + self.assertEqual( + created_actor.actoridentificator_code_register, "code register" + ) + + created_actor_klantcontact: ActorKlantcontact = ActorKlantcontact.objects.get() + + self.assertEqual(created_actor_klantcontact.actor, created_actor) + self.assertEqual(created_actor_klantcontact.klantcontact, klantcontact) + + created_medewerker: Medewerker = Medewerker.objects.get() + + self.assertEqual(created_medewerker.actor, created_actor) + self.assertEqual(created_medewerker.functie, "TEST") + self.assertEqual(created_medewerker.emailadres, "example@test.com") + self.assertEqual(created_medewerker.telefoonnummer, "+31618234723") + + created_internetaak_actoren_m2m: InterneTakenActorenThoughModel = ( + InterneTakenActorenThoughModel.objects.get() + ) + + self.assertEqual(created_internetaak_actoren_m2m.actor, created_actor) + self.assertEqual(created_internetaak_actoren_m2m.internetaak, internetaak) + + def test_actor_update(self): + self.app.set_user(self.user) + + actor = ActorFactory.create( + naam="Richard", + soort_actor=SoortActor.medewerker, + indicatie_actief=False, + actoridentificator_object_id="a", + actoridentificator_code_objecttype="a", + actoridentificator_code_register="a", + actoridentificator_code_soort_object_id="a", + ) + + klantcontact, klantcontact2 = KlantcontactFactory.create_batch(2) + InterneTaakFactory.create(actoren=[actor]) + internetaak2: InterneTaak = InterneTaakFactory.create() + + ActorKlantcontactFactory.create(actor=actor, klantcontact=klantcontact) + + MedewerkerFactory.create( + actor=actor, + functie="TEST", + emailadres="example@test.com", + telefoonnummer="+31618234723", + ) + + admin_url = reverse("admin:klantinteracties_actor_change", args=[actor.id]) + + response: TestResponse = self.app.get(admin_url) - self.assertEqual(response.status_code, 200) - self.assertFalse(DigitaalAdres.objects.exists()) - self.assertEqual( - response.context["errors"], [[_("Voer een geldig e-mailadres in.")]] + form = response.forms["actor_form"] + form["naam"] = "Pauline" + form["soort_actor"].select(text=SoortActor.medewerker.label) + form["indicatie_actief"] = 1 + + form["actoridentificator_code_objecttype"] = "objecttype code" + form["actoridentificator_code_soort_object_id"] = "soort object id" + form["actoridentificator_object_id"] = "object id" + form["actoridentificator_code_register"] = "code register" + + form["actorklantcontact_set-0-klantcontact"] = klantcontact2.pk + + form["medewerker-0-functie"] = "changed" + form["medewerker-0-emailadres"] = "changed@email.com" + form["medewerker-0-telefoonnummer"] = "+31618239999" + + form["internetakenactorenthoughmodel_set-0-internetaak"] = str(internetaak2.pk) + + add_response: TestResponse = form.submit(name="_save") + + self.assertRedirects( + add_response, reverse("admin:klantinteracties_actor_changelist") + ) + + actor.refresh_from_db() + + self.assertEqual(actor.naam, "Pauline") + self.assertEqual(actor.soort_actor, SoortActor.medewerker) + self.assertEqual(actor.indicatie_actief, True) + + self.assertEqual(actor.actoridentificator_code_objecttype, "objecttype code") + self.assertEqual( + actor.actoridentificator_code_soort_object_id, "soort object id" + ) + self.assertEqual(actor.actoridentificator_object_id, "object id") + self.assertEqual(actor.actoridentificator_code_register, "code register") + + actor_klantcontact: ActorKlantcontact = actor.actorklantcontact_set.get() + + self.assertEqual(actor_klantcontact.klantcontact, klantcontact2) + + medewerker: Medewerker = actor.medewerker + + self.assertEqual(medewerker.functie, "changed") + self.assertEqual(medewerker.emailadres, "changed@email.com") + self.assertEqual(medewerker.telefoonnummer, "+31618239999") + + interetaak_actoren: InterneTakenActorenThoughModel = ( + actor.internetakenactorenthoughmodel_set.get() + ) + + self.assertEqual(interetaak_actoren.internetaak, internetaak2) + + def test_actor_delete(self): + self.app.set_user(self.user) + + actor: Actor = ActorFactory.create() + + delete_url = reverse("admin:klantinteracties_actor_delete", args=[actor.id]) + + response: TestResponse = self.app.get(delete_url) + + self.assertEqual(response.status_code, 200) + + form = response.forms[0] + + response: TestResponse = form.submit() + + self.assertEqual(response.status_code, 302) + self.assertFalse(Actor.objects.filter(uuid=actor.uuid).exists()) + + +@disable_admin_mfa() +class IntereTaakAdminTests(WebTest): + @classmethod + def setUpTestData(cls): + super().setUpTestData() + cls.user = SuperUserFactory.create() + + def test_internetaak_search(self): + self.app.set_user(self.user) + + InterneTaakFactory.create(nummer="0000000001") + InterneTaakFactory.create(nummer="0000000002") + + admin_url = reverse("admin:klantinteracties_internetaak_changelist") + + response: TestResponse = self.app.get(admin_url) + + self.assertContains(response, "field-nummer", 2) + + search_form = response.forms["changelist-search"] + search_form["q"] = "0000000002" + + search_response: TestResponse = search_form.submit() + + self.assertEqual(search_response.status_code, 200) + self.assertContains(search_response, "field-nummer", 1) + + def test_internetaak_filter_actors(self): + self.app.set_user(self.user) + + actor: Actor = ActorFactory.create(naam="Richard") + actor2: Actor = ActorFactory.create(naam="Pauline") + + InterneTaakFactory.create(nummer="0000000001", actoren=[actor]) + InterneTaakFactory.create(nummer="0000000002", actoren=[actor2]) + + admin_url = reverse("admin:klantinteracties_internetaak_changelist") + + response: TestResponse = self.app.get(admin_url) + + self.assertContains(response, "field-nummer", 2) + + # See if both actors are filter options + self.assertContains(response, "Richard", 1) + self.assertContains(response, "Pauline", 1) + + # Filter on actor name + search_response: TestResponse = response.click(description="Richard") + + self.assertEqual(search_response.status_code, 200) + self.assertContains(search_response, "field-nummer", 1) + self.assertContains(search_response, "0000000001", 1) + + def test_internetaak_filter_status(self): + self.app.set_user(self.user) + + InterneTaakFactory.create(nummer="0000000001", status=Taakstatus.te_verwerken) + InterneTaakFactory.create(nummer="0000000002", status=Taakstatus.verwerkt) + + admin_url = reverse("admin:klantinteracties_internetaak_changelist") + + response: TestResponse = self.app.get(admin_url) + + self.assertContains(response, "field-nummer", 2) + + # Filter on actor name + search_response: TestResponse = response.click( + description=_(Taakstatus.verwerkt.label) + ) + + self.assertEqual(search_response.status_code, 200) + self.assertContains(search_response, "field-nummer", 1) + self.assertContains(search_response, "0000000002", 1) + + def test_interetaak_create(self): + assert not InterneTaak.objects.exists() + assert not InterneTakenActorenThoughModel.objects.exists() + + self.app.set_user(self.user) + + actor: Actor = ActorFactory.create() + klantcontact: Klantcontact = KlantcontactFactory.create() + + admin_url = reverse("admin:klantinteracties_internetaak_add") + + response: TestResponse = self.app.get(admin_url) + + form = response.forms["internetaak_form"] + form["internetakenactorenthoughmodel_set-TOTAL_FORMS"] = 1 + + form["klantcontact"].select(text=str(klantcontact)) + form["nummer"] = "0000000001" + form["gevraagde_handeling"] = "Terugbellen" + form["toelichting"] = "bla bla bla" + form["status"].select(text=_(Taakstatus.verwerkt.label)) + form["afgehandeld_op_0"] = "2024-01-01" + form["afgehandeld_op_1"] = "16:30:00" + + add_dynamic_field(form, "internetakenactorenthoughmodel_set-0-actor", actor.pk) + + with freeze_time("2024-01-01 18:00:00+00:00"): + add_response: TestResponse = form.submit(name="_save") + + self.assertRedirects( + add_response, reverse("admin:klantinteracties_internetaak_changelist") + ) + + created_internetaak: InterneTaak = InterneTaak.objects.get() + + self.assertEqual(created_internetaak.klantcontact, klantcontact) + self.assertEqual(created_internetaak.nummer, "0000000001") + self.assertEqual(created_internetaak.gevraagde_handeling, "Terugbellen") + self.assertEqual(created_internetaak.toelichting, "bla bla bla") + self.assertEqual(created_internetaak.status, Taakstatus.verwerkt) + self.assertEqual( + str(created_internetaak.toegewezen_op), "2024-01-01 18:00:00+00:00" + ) + self.assertEqual( + str(created_internetaak.afgehandeld_op), "2024-01-01 16:30:00+00:00" + ) + + self.assertEqual(created_internetaak.actoren.get(), actor) + + def test_interetaak_create_number_automatically_sets_itself(self): + assert not InterneTaak.objects.exists() + assert not InterneTakenActorenThoughModel.objects.exists() + + self.app.set_user(self.user) + + klantcontact: Klantcontact = KlantcontactFactory.create() + + admin_url = reverse("admin:klantinteracties_internetaak_add") + + response: TestResponse = self.app.get(admin_url) + + form = response.forms["internetaak_form"] + form["klantcontact"].select(text=str(klantcontact)) + form["gevraagde_handeling"] = "Terugbellen" + form["status"].select(text=_(Taakstatus.verwerkt.label)) + + add_response: TestResponse = form.submit(name="_save") + + self.assertRedirects( + add_response, reverse("admin:klantinteracties_internetaak_changelist") + ) + + created_internetaak: InterneTaak = InterneTaak.objects.get() + + # set number at first possible index + self.assertEqual(created_internetaak.nummer, "0000000001") + + def test_internetaak_update(self): + self.app.set_user(self.user) + + actor, actor2 = ActorFactory.create_batch(2) + klantcontact, klantcontact2 = KlantcontactFactory.create_batch(2) + + with freeze_time("2023-01-01 00:00:00+00:00"): + internetaak: InterneTaak = InterneTaakFactory.create( + actoren=[actor], + klantcontact=klantcontact, + nummer="0000000001", + gevraagde_handeling="foo", + toelichting="bar", + status=Taakstatus.te_verwerken, + afgehandeld_op="2023-01-01 00:00:00+00:00", ) - with self.subTest("do not apply validation for soort_digitaal_adres != email"): - response: TestResponse = self.app.get(admin_url) + admin_url = reverse( + "admin:klantinteracties_internetaak_change", args=[internetaak.pk] + ) + + response: TestResponse = self.app.get(admin_url) + + form = response.forms["internetaak_form"] + form["klantcontact"].select(text=str(klantcontact2)) + form["nummer"] = "0000000009" + form["gevraagde_handeling"] = "Terugbellen" + form["toelichting"] = "bla bla bla" + form["status"].select(text=_(Taakstatus.verwerkt.label)) + form["afgehandeld_op_0"] = "2024-01-01" + form["afgehandeld_op_1"] = "16:30:00" - form = response.form - form["betrokkene"] = betrokkene.pk - form["soort_digitaal_adres"] = SoortDigitaalAdres.telefoonnummer - form["adres"] = "0612345678" - form["omschrijving"] = "foo" + form["internetakenactorenthoughmodel_set-0-actor"] = actor2.pk + + with freeze_time("2024-01-01 18:00:00+00:00"): + add_response: TestResponse = form.submit(name="_save") + + self.assertRedirects( + add_response, reverse("admin:klantinteracties_internetaak_changelist") + ) - response = form.submit() + created_internetaak: InterneTaak = InterneTaak.objects.get() - self.assertEqual(response.status_code, 302) - self.assertTrue(DigitaalAdres.objects.exists()) + self.assertEqual(created_internetaak.klantcontact, klantcontact2) + self.assertEqual(created_internetaak.nummer, "0000000009") + self.assertEqual(created_internetaak.gevraagde_handeling, "Terugbellen") + self.assertEqual(created_internetaak.toelichting, "bla bla bla") + self.assertEqual(created_internetaak.status, Taakstatus.verwerkt) + self.assertEqual( + str(created_internetaak.toegewezen_op), "2023-01-01 00:00:00+00:00" + ) + self.assertEqual( + str(created_internetaak.afgehandeld_op), "2024-01-01 16:30:00+00:00" + ) + + self.assertEqual(created_internetaak.actoren.get(), actor2) + + def test_internetaak_delete(self): + self.app.set_user(self.user) + + internetaak: InterneTaak = InterneTaakFactory.create() + + delete_url = reverse( + "admin:klantinteracties_internetaak_delete", args=[internetaak.id] + ) + + response: TestResponse = self.app.get(delete_url) + + self.assertEqual(response.status_code, 200) + + form = response.forms[0] + + response: TestResponse = form.submit() + + self.assertEqual(response.status_code, 302) + self.assertFalse(InterneTaak.objects.filter(uuid=internetaak.uuid).exists()) diff --git a/src/openklant/components/utils/expansion.py b/src/openklant/components/utils/expansion.py index 88c099ec..853297b5 100644 --- a/src/openklant/components/utils/expansion.py +++ b/src/openklant/components/utils/expansion.py @@ -64,16 +64,26 @@ def display_children(self) -> dict: return dict where children are grouped by their label """ results = {} + for child in self._children: - child_result = child.display() - if child.many: - results.setdefault(child.label, []).append(child_result) - else: + child_result: Optional[dict] = child.display() + + if not child.many: results[child.label] = child_result + continue + + child_results: list = results.setdefault(child.label, []) + + if child_result is None: + continue + + if child_result is not None: + child_results.append(child_result) + return results - def display(self) -> dict: - data = self.value.copy() + def display(self) -> Optional[dict]: + data = self.value.copy() if self.value is not None else None if self._children: data[EXPAND_KEY] = self.display_children() return data @@ -111,6 +121,7 @@ def display_tree(self) -> dict: for node in root_nodes: result[node.id] = node.display_children() + return result @@ -168,15 +179,24 @@ def inclusions_dict(self, serializer: Serializer) -> dict: entries = self._inclusions((), serializer, serializer.instance) for obj, inclusion_serializer, parent, path, many in entries: - data = inclusion_serializer(instance=obj, context=serializer.context).data - tree.add_node( - id=data["url"], - value=data, + tree_kwargs = dict( + id=None, + value=None, label=path[-1], many=many, parent_id=parent.get_absolute_api_url(request=request), ) + if obj: + serializer = inclusion_serializer( + instance=obj, context=serializer.context + ) + data: dict | list = serializer.data + + tree_kwargs.update(dict(value=data, id=data["url"])) + + tree.add_node(**tree_kwargs) + result = tree.display_tree() return result @@ -204,11 +224,17 @@ def _field_inclusions( self, path: Tuple[str, ...], field: Field, - instance: models.Model, + instance: Optional[models.Model], name: str, inclusion_serializers: Dict[str, Union[str, Type[Serializer]]], ) -> Iterator[ - Tuple[models.Model, Type[Serializer], models.Model, Tuple[str, ...], bool] + Tuple[ + Optional[models.Model], + Type[Serializer], + models.Model, + Tuple[str, ...], + bool, + ] ]: """ change return of this generator from (obj, serializer_class) to @@ -237,6 +263,8 @@ def _field_inclusions( True if hasattr(field, "child_relation") else getattr(field, "many", False) ) + obj: Optional[models.Model] = None + for obj in self._some_related_field_inclusions( new_path, field, instance, inclusion_serializer ): @@ -250,6 +278,9 @@ def _field_inclusions( inclusion_serializers, ): yield entry + else: + if new_path in self.allowed_paths: + yield obj, inclusion_serializer, instance, new_path, many def _some_related_field_inclusions( self, diff --git a/src/openklant/management/commands/migrate_to_v2.py b/src/openklant/management/commands/migrate_to_v2.py new file mode 100644 index 00000000..06598d9a --- /dev/null +++ b/src/openklant/management/commands/migrate_to_v2.py @@ -0,0 +1,199 @@ +# SPDX-License-Identifier: EUPL-1.2 +# Copyright (C) 2024 Dimpact + + +import logging +import os +from dataclasses import asdict, fields as dataclass_fields +from typing import Any, Tuple +from urllib.parse import parse_qs, urlparse + +from django.conf import settings +from django.core.exceptions import ImproperlyConfigured, ValidationError +from django.core.management import CommandError +from django.core.management.base import BaseCommand, CommandParser + +from rest_framework.fields import URLValidator +from rest_framework.reverse import reverse_lazy + +from openklant.components.token.models import TokenAuth +from openklant.migration.client import Client +from openklant.migration.v1.client import LegacyOpenKlantClient +from openklant.migration.v1.data import Klant +from openklant.migration.v2.client import OpenKlantClient + +logger = logging.getLogger(__name__) + + +KLANT_FIELDS = {field.name: field for field in dataclass_fields(Klant)} + +DIGITALE_ADDRESSEN_PATH = reverse_lazy( + "klantinteracties:digitaaladres-list", + kwargs=dict(version=settings.REST_FRAMEWORK["DEFAULT_VERSION"]), +) + +PARTIJEN_PATH = reverse_lazy( + "klantinteracties:partij-list", + kwargs=dict(version=settings.REST_FRAMEWORK["DEFAULT_VERSION"]), +) + +MIGRATION_TOKEN_IDENTIFIER = "Migration application" + + +def _retrieve_klanten(url: str, access_token: str) -> Tuple[list[Klant], str | None]: + klanten_path = "/klanten/api/v1/klanten" + + _url = urlparse(url) + _params = parse_qs(_url.query) + + client = LegacyOpenKlantClient(f"{_url.scheme}://{_url.netloc}", access_token) + response_data = client.retrieve(_url.path or klanten_path, params=_params) + + if not isinstance(response_data, dict): + logger.error(f"Unexpected response data returned: {response_data}") + return [], None + + items = response_data.get("results", []) + klanten = [] + + generic_client = Client() + + for data in items: + klant = Klant( + **{field: value for field, value in data.items() if field in KLANT_FIELDS} + ) + + if klant.subject and not klant.subject_type: + subject_data = generic_client.retrieve(klant.subject) + + if not isinstance(subject_data, dict): + logger.error( + "Unexpected response data returned during retrieval of " + f"subject: {subject_data}" + ) + + continue + + klant.set_from_external_subject(subject_data) + + klanten.append(klant) + + next_url = response_data.get("next") + return klanten, next_url + + +def _save_klanten(url: str, token: TokenAuth, klanten: list[Klant]) -> list[str]: + if not klanten: + logger.info("No klanten to save, moving on...") + return [] + + logger.info(f"Trying to create {len(klanten)} klanten through the V2 API") + + openklant_client = OpenKlantClient(url, token) + created_klanten = [] + + for klant in klanten: + digitaal_adres = klant.to_digitaal_adres() + digitaal_adres_ref = None + + if digitaal_adres: + _data = openklant_client.create( + DIGITALE_ADDRESSEN_PATH, digitaal_adres.dict() + ) + + if not isinstance(_data, dict): + logger.error( + f"Unknown data received creating a digitaal adres: {_data}. " + "Skipping klant." + ) + continue + + digitaal_adres_ref = _data.get("uuid") + + partij = klant.to_partij(digitaal_adres=digitaal_adres_ref) + + if not partij: + logger.error(f"Unable to create partij for klant: {asdict(klant)}") + continue + + response_data = openklant_client.create(PARTIJEN_PATH, partij.dict()) + + if response_data and "url" in response_data: + created_klanten.append(response_data["url"]) + + return created_klanten + + +def _generate_dummy_token() -> str: + try: + token_auth, _ = TokenAuth.objects.get_or_create( + application=MIGRATION_TOKEN_IDENTIFIER + ) + except TokenAuth.MultipleObjectsReturned: + dummy_tokens = TokenAuth.objects.get_or_create( + application=MIGRATION_TOKEN_IDENTIFIER + ) + + token_auth = dummy_tokens.first() + deletion_tokens = dummy_tokens.exclude(pk=token_auth.pk) + deletion_tokens.delete() + + logger.warning(f"Removed existing migration dummy tokens: {deletion_tokens}") + + return token_auth.token + + +class Command(BaseCommand): + def add_arguments(self, parser: CommandParser) -> None: + parser.add_argument( + "v1_url", + type=str, + metavar="https://example.openklant.nl", + help="URL of the Klanten API", + ) + + parser.add_argument( + "v2_url", + type=str, + metavar="https://example.klantinteracties.nl", + help="URL of the Klantinteracties API", + ) + + def handle(self, *args: Any, **options: Any) -> str | None: + access_token = os.getenv("ACCESS_TOKEN") + v1_url = options["v1_url"] + v2_url = options["v2_url"] + + url_validator = URLValidator(schemes=["http", "https"]) + + for url in (v1_url, v2_url): + try: + url_validator(url) + except ValidationError as e: + raise CommandError( + f"Invalid URL(s) detected: {str(e.message)}. See " + "migrate_to_v2 --help for correct usage." + ) + + next_url: str | None = "" + + if not access_token: + raise ImproperlyConfigured("An access token is required to acces V1") + + dummy_token = _generate_dummy_token() + results = [] + + try: + while next_url is not None: + klanten, next_url = _retrieve_klanten( + v1_url if next_url == "" else next_url, access_token + ) + results.extend(_save_klanten(v2_url, dummy_token, klanten)) + finally: + dummy_tokens = TokenAuth.objects.filter( + application=MIGRATION_TOKEN_IDENTIFIER + ) + + dummy_tokens.delete() + + return "\n".join(results) diff --git a/src/openklant/migration/__init__.py b/src/openklant/migration/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/openklant/migration/client.py b/src/openklant/migration/client.py new file mode 100644 index 00000000..0308a1a2 --- /dev/null +++ b/src/openklant/migration/client.py @@ -0,0 +1,86 @@ +import logging +from io import BytesIO + +import requests +from djangorestframework_camel_case.parser import CamelCaseJSONParser, ParseError +from djangorestframework_camel_case.render import CamelCaseJSONRenderer + +logger = logging.getLogger(__name__) + + +class Client: + def _request( + self, + method: str, + url: str, + data: dict | None = None, + params: dict | None = None, + headers: dict = {}, + ) -> list | dict | None: + logger.debug(f"Performing {method} request on {url}") + + renderer = CamelCaseJSONRenderer() + _data = renderer.render(data) if data else None + + if method == "POST": + logger.debug(f"Posting: {_data}") + headers.update({"Content-Type": "application/json"}) + + try: + response = requests.request( + method, url, data=_data, params=params, headers=headers + ) + + response.raise_for_status() + except requests.RequestException: + logger.exception(f"{method} request failed for {url}") + + try: + logger.debug(response.json()) + except (requests.RequestException, UnboundLocalError): + pass + + return + + logger.debug(f"Received response data from {url}: {response.content}") + + parser = CamelCaseJSONParser() + + try: + response_data = parser.parse( + BytesIO(response.content), + parser_context=dict(encoding=response.encoding), + ) + except ParseError: + logger.exception(f"Unable to parse response content: {response.content}") + return + + return response_data + + def retrieve(self, url: str, params: dict | None = None) -> list | dict | None: + return self._request("GET", url, params=params) + + def create(self, url: str, data: dict) -> dict | None: + return self._request("POST", url, data=data) + + +class BaseOpenKlantClient(Client): + token: str + token_prefix: str + base_url: str + + headers: dict + + def __init__(self, base_url: str, token: str) -> None: + self.token = token + self.base_url = base_url + + self.headers = {"Authorization": f"{self.token_prefix} {self.token}"} + + def retrieve(self, path: str, params: dict | None = None) -> list | dict | None: + url = self.base_url + path + return self._request("GET", url, headers=self.headers, params=params) + + def create(self, path: str, data: dict) -> dict | None: + url = self.base_url + path + return self._request("POST", url, data=data, headers=self.headers) diff --git a/src/openklant/migration/test_server.py b/src/openklant/migration/test_server.py new file mode 100644 index 00000000..c487e08b --- /dev/null +++ b/src/openklant/migration/test_server.py @@ -0,0 +1,32 @@ +import json +from http.server import BaseHTTPRequestHandler, HTTPServer + + +class JSONServer(BaseHTTPRequestHandler): + def do_GET(self) -> None: + self.send_response(200) + self.send_header("Content-type", "application/json") + self.end_headers() + + data = { + "inpBsn": "024325818", + "anpIdentificatie": "107", + "inpANummer": "", + "geslachtsnaam": "Wever", + "voorvoegselGeslachtsnaam": "", + "voorletters": "W", + "voornamen": "Willy", + "geslachtsaanduiding": "", + "geboortedatum": "2010-06-02", + "verblijfsadres": None, + "subVerblijfBuitenland": None, + } + + json_data = json.dumps(data) + + self.wfile.write(json_data.encode("utf-8")) + + +if __name__ == "__main__": + server = HTTPServer(("localhost", 8010), JSONServer) + server.serve_forever() diff --git a/src/openklant/migration/utils.py b/src/openklant/migration/utils.py new file mode 100644 index 00000000..a58c7e38 --- /dev/null +++ b/src/openklant/migration/utils.py @@ -0,0 +1,21 @@ +import time + +import jwt + + +# Can be used to easily generate a encoded JWT token given the client_id and secret +def generate_jwt_token( + client_id: str, secret: str, user_representation: str = "" +) -> str: + payload = { + # standard claims + "iss": "testsuite", + "iat": int(time.time()), + # custom + "client_id": client_id, + "user_id": client_id, + "user_representation": user_representation, + } + + encoded = jwt.encode(payload, secret, algorithm="HS256") + return str(encoded) diff --git a/src/openklant/migration/v1/__init__.py b/src/openklant/migration/v1/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/openklant/migration/v1/client.py b/src/openklant/migration/v1/client.py new file mode 100644 index 00000000..1f4a99e0 --- /dev/null +++ b/src/openklant/migration/v1/client.py @@ -0,0 +1,5 @@ +from openklant.migration.client import BaseOpenKlantClient + + +class LegacyOpenKlantClient(BaseOpenKlantClient): + token_prefix = "Bearer" diff --git a/src/openklant/migration/v1/data.py b/src/openklant/migration/v1/data.py new file mode 100644 index 00000000..8a6bb631 --- /dev/null +++ b/src/openklant/migration/v1/data.py @@ -0,0 +1,205 @@ +import logging +from dataclasses import dataclass, fields as dataclass_fields +from typing import Optional + +from django.utils.functional import classproperty + +from openklant.components.klantinteracties.models.constants import SoortPartij +from openklant.migration.v1.enum import KlantType +from openklant.migration.v2.data import DigitaalAdres, Partij + +logger = logging.getLogger(__name__) + + +class Subject: + @property + def nummer(self) -> str: + raise NotImplementedError + + @classproperty + def klant_type(self) -> KlantType: + raise NotImplementedError + + def migrate(self) -> dict: + raise NotImplementedError + + +@dataclass +class NatuurlijkPersoon(Subject): # SoortPartij.persoon + voorletters: Optional[str] + voornaam: Optional[str] + achternaam: Optional[str] + voorvoegsel_achternaam: Optional[str] + + inp_bsn: Optional[str] + + @property + def nummer(self) -> str: + return self.inp_bsn or "" + + @classproperty + def klant_type(self) -> KlantType: + return KlantType.natuurlijk_persoon + + def migrate(self) -> dict: + return dict( + contactnaam=dict( + voorletters=self.voorletters, + voornaam=self.voornaam, + voorvoegsel_achternaam=self.voorvoegsel_achternaam, + achternaam=self.achternaam, + ) + ) + + +@dataclass +class NietNatuurlijkPersoon(Subject): # SoortPartij.organisatie + inn_nnp_id: Optional[str] + statutaire_naam: Optional[str] + + @property + def nummer(self) -> str: + return self.inn_nnp_id or "" + + @classproperty + def klant_type(self) -> KlantType: + return KlantType.niet_natuurlijk_persoon + + def migrate(self) -> dict: + return dict(naam=self.statutaire_naam) + + +@dataclass +class Vestiging(Subject): # SoortPartij.organisatie + bedrijfsnaam: Optional[str] + vestigings_nummer: Optional[str] + + @property + def nummer(self) -> str: + return self.vestigings_nummer or "" + + @classproperty + def klant_type(self) -> KlantType: + return KlantType.vestiging + + def migrate(self) -> dict: + return dict(naam=self.bedrijfsnaam) + + +@dataclass +class Klant: + subject: Optional[str] = None + subject_identificatie: Optional[dict] = None + subject_type: Optional[str] = None + emailadres: Optional[str] = None + + voornaam: Optional[str] = None + achternaam: Optional[str] = None + voorvoegsel_achternaam: Optional[str] = None + + bedrijfsnaam: Optional[str] = None + + def _get_subject( + self, + ) -> NatuurlijkPersoon | NietNatuurlijkPersoon | Vestiging | None: + subject_mapping = { + KlantType.natuurlijk_persoon: NatuurlijkPersoon, + KlantType.niet_natuurlijk_persoon: NietNatuurlijkPersoon, + KlantType.vestiging: Vestiging, + } + + if not self.subject_type: + return + + subject_class = subject_mapping.get(self.subject_type) + + if not subject_class: + raise ValueError("No known subjectType found") + + subject_data = self.subject_identificatie + + if not isinstance(subject_data, dict) and subject_data is not None: + raise ValueError("Invalid subjectIdentificatie data received") + + if not subject_data: + return + + if subject_class == NatuurlijkPersoon: + return NatuurlijkPersoon( + voorletters=subject_data.get("voorletters", ""), + voornaam=self.voornaam, + achternaam=self.achternaam, + voorvoegsel_achternaam=self.voorvoegsel_achternaam, + inp_bsn=subject_data.get("inp_bsn", ""), + ) + elif subject_class == NietNatuurlijkPersoon: + return NietNatuurlijkPersoon( + inn_nnp_id=subject_data.get("inn_nnp_id", ""), + statutaire_naam=subject_data.get("statutaire_naam", ""), + ) + elif subject_class == Vestiging: + return Vestiging( + bedrijfsnaam=self.bedrijfsnaam, + vestigings_nummer=subject_data.get("vestigings_nummer", ""), + ) + + def _get_soort_partij(self) -> SoortPartij: + mapping = { + KlantType.natuurlijk_persoon: SoortPartij.persoon, + KlantType.niet_natuurlijk_persoon: SoortPartij.organisatie, + KlantType.vestiging: SoortPartij.organisatie, + } + + return mapping[self.subject_type] + + def set_from_external_subject(self, subject_data: dict) -> None: + self.subject_identificatie = subject_data + + subject_fields = { + subject_class: [field.name for field in dataclass_fields(subject_class)] + for subject_class in (NatuurlijkPersoon, NietNatuurlijkPersoon, Vestiging) + } + + for subject_class, fields in subject_fields.items(): + match = any(field in subject_data for field in fields) + + if match: + self.subject_type = subject_class.klant_type + return + + def to_digitaal_adres(self) -> DigitaalAdres | None: + if not self.emailadres: + return + + return DigitaalAdres(adres=self.emailadres) + + def to_partij(self, digitaal_adres: str | None = None) -> Partij | None: + try: + subject = self._get_subject() + except (TypeError, ValueError): + logger.exception("Unable to determine subject from subjectIdentificatie") + return + + try: + soort_partij = self._get_soort_partij() + except KeyError: + logger.exception("Unable to determine soortPartij from subjectType") + return + + data = dict( + indicatie_actief=True, + indicatie_geheimhouding=False, + rekeningnummers=[], + voorkeurs_rekeningnummer=None, + digitale_adressen=None, + voorkeurs_digitaal_adres=None, + soort_partij=soort_partij, + nummer=subject.nummer if subject else "", + partij_identificatie=subject.migrate() if subject else None, + ) + + if digitaal_adres: + data["digitale_adressen"] = [dict(uuid=digitaal_adres)] + data["voorkeurs_digitaal_adres"] = dict(uuid=digitaal_adres) + + return Partij(**data) diff --git a/src/openklant/migration/v1/enum.py b/src/openklant/migration/v1/enum.py new file mode 100644 index 00000000..30b4c51d --- /dev/null +++ b/src/openklant/migration/v1/enum.py @@ -0,0 +1,7 @@ +from django.db.models import TextChoices + + +class KlantType(TextChoices): + natuurlijk_persoon = "natuurlijk_persoon" + niet_natuurlijk_persoon = "niet_natuurlijk_persoon" + vestiging = "vestiging" diff --git a/src/openklant/migration/v2/__init__.py b/src/openklant/migration/v2/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/openklant/migration/v2/client.py b/src/openklant/migration/v2/client.py new file mode 100644 index 00000000..8bda3635 --- /dev/null +++ b/src/openklant/migration/v2/client.py @@ -0,0 +1,5 @@ +from openklant.migration.client import BaseOpenKlantClient + + +class OpenKlantClient(BaseOpenKlantClient): + token_prefix = "Token" diff --git a/src/openklant/migration/v2/data.py b/src/openklant/migration/v2/data.py new file mode 100644 index 00000000..8015a6fa --- /dev/null +++ b/src/openklant/migration/v2/data.py @@ -0,0 +1,52 @@ +from dataclasses import asdict, dataclass, fields as dataclass_fields +from typing import Iterable, Optional + +from openklant.components.klantinteracties.constants import SoortDigitaalAdres + + +class APIClass: + @property + def required_fields(self) -> Iterable: + raise NotImplementedError + + def dict(self) -> dict: + return {k: v for k, v in asdict(self).items() if k in self.required_fields or v} + + +@dataclass +class DigitaalAdres(APIClass): + adres: str + soort_digitaal_adres: SoortDigitaalAdres = "email" + omschrijving: str = "Emailadres" + verstrekt_door_betrokkene: Optional[dict] = None + verstrekt_door_partij: Optional[dict] = None + + @property + def required_fields(self): + return {field.name: field for field in dataclass_fields(self)} + + +@dataclass +class Partij(APIClass): + nummer: str + + partij_identificatie: dict + soort_partij: str + + indicatie_actief: bool = True + indicatie_geheimhouding: bool = False + rekeningnummers: Optional[list] = None + voorkeurs_rekeningnummer: Optional[dict] = None + digitale_adressen: Optional[list] = None + voorkeurs_digitaal_adres: Optional[dict] = None + + @property + def required_fields(self): + return ( + "digitale_adressen", + "voorkeurs_digitaal_adres", + "rekeningnummers", + "voorkeurs_rekeningnummer", + "soort_partij", + "indicatie_actief", + ) diff --git a/src/openklant/tests/test_migrate.py b/src/openklant/tests/test_migrate.py new file mode 100644 index 00000000..e6f73880 --- /dev/null +++ b/src/openklant/tests/test_migrate.py @@ -0,0 +1,451 @@ +import os +from io import StringIO +from pathlib import Path + +from django.conf import settings +from django.core.exceptions import ImproperlyConfigured +from django.core.management import CommandError, call_command +from django.test import LiveServerTestCase + +from requests import Request +from vcr.config import RecordMode +from vng_api_common.tests import reverse + +from openklant.components.klantinteracties.constants import SoortDigitaalAdres +from openklant.components.klantinteracties.models.constants import SoortPartij +from openklant.components.klantinteracties.models.digitaal_adres import DigitaalAdres +from openklant.components.klantinteracties.models.partijen import ( + Organisatie, + Partij, + Persoon, +) +from openklant.components.token.models import TokenAuth +from openklant.migration.utils import generate_jwt_token +from openklant.tests.vcr import VCRMixin + +LIVE_SERVER_HOST = "localhost" +LIVE_SERVER_PORT = 8005 + + +def vcr_request_filter(request: Request): + if f"{LIVE_SERVER_HOST}:{LIVE_SERVER_PORT}" in request.url: + return + + return request + + +class MigrateTestCase(VCRMixin, LiveServerTestCase): + host = LIVE_SERVER_HOST + port = LIVE_SERVER_PORT + + def _get_cassette_library_dir(self) -> str: + base_dir = Path(settings.BASE_DIR) + return str(base_dir / "migration" / "cassettes") + + def _get_cassette_name(self) -> str: + """Return the filename for cassette + + Default VCR behaviour puts class name in the cassettename + we put them in a directory. + """ + return f"{self._testMethodName}.yaml" + + def _get_vcr_kwargs(self, **kwargs) -> dict: + kwargs = super()._get_vcr_kwargs(**kwargs) + return { + **kwargs, + "record_mode": RecordMode.ONCE, + # Decompress for human readable cassette diffs when re-recoding + "decode_compressed_response": True, + "filter_headers": ["authorization"], + # Use `before_record_request` as `ignore_hosts` does not take port + # numbers into account + "before_record_request": vcr_request_filter, + } + + def _get_partij_url(self, partij) -> str: + return reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + def setUp(self) -> None: + super().setUp() + + default_token = generate_jwt_token("migration", "foobar") + os.environ.setdefault("ACCESS_TOKEN", default_token) + + def test_single_run(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_pagination(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partijen = Partij.objects.all() + + self.assertEqual(partijen.count(), 200) + + output = stdout.getvalue().splitlines() + + expected_urls = [ + f"{self.live_server_url}{self._get_partij_url(partij)}" + for partij in partijen + ] + + self.assertCountEqual(output, expected_urls) + + def test_natuurlijk_persoon(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + persoon = Persoon.objects.get() + + self.assertEqual(partij, persoon.partij) + + self.assertEqual(partij.soort_partij, SoortPartij.persoon) + self.assertEqual(partij.nummer, "024325818") + self.assertIsNone(partij.voorkeurs_digitaal_adres) + self.assertIsNone(partij.voorkeurs_rekeningnummer) + self.assertEqual(partij.interne_notitie, "") + self.assertFalse(partij.indicatie_geheimhouding) + self.assertEqual(partij.voorkeurstaal, "") + self.assertTrue(partij.indicatie_actief) + + self.assertEqual(persoon.contactnaam_voorletters, "H") + self.assertEqual(persoon.contactnaam_voornaam, "Harry") + self.assertEqual(persoon.contactnaam_voorvoegsel_achternaam, "") + self.assertEqual(persoon.contactnaam_achternaam, "Potter") + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_niet_natuurlijk_persoon(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + organisatie = Organisatie.objects.get() + + self.assertEqual(partij, organisatie.partij) + + self.assertEqual(partij.soort_partij, SoortPartij.organisatie) + self.assertEqual(partij.nummer, "807371440") + self.assertIsNone(partij.voorkeurs_digitaal_adres) + self.assertIsNone(partij.voorkeurs_rekeningnummer) + self.assertEqual(partij.interne_notitie, "") + self.assertFalse(partij.indicatie_geheimhouding) + self.assertEqual(partij.voorkeurstaal, "") + self.assertTrue(partij.indicatie_actief) + + self.assertEqual(organisatie.naam, "Foobar Inc.") + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_vestiging(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + organisatie = Organisatie.objects.get() + + self.assertEqual(partij, organisatie.partij) + + self.assertEqual(partij.soort_partij, SoortPartij.organisatie) + self.assertEqual(partij.nummer, "123456789") + self.assertIsNone(partij.voorkeurs_digitaal_adres) + self.assertIsNone(partij.voorkeurs_rekeningnummer) + self.assertEqual(partij.interne_notitie, "") + self.assertFalse(partij.indicatie_geheimhouding) + self.assertEqual(partij.voorkeurstaal, "") + self.assertTrue(partij.indicatie_actief) + + self.assertEqual(organisatie.naam, "Foobar Inc.") + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_no_subject_and_subject_identificatie(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + persoon = Persoon.objects.get() + + self.assertEqual(partij, persoon.partij) + + self.assertEqual(partij.soort_partij, SoortPartij.persoon) + self.assertEqual(partij.nummer, "024325818") + self.assertIsNone(partij.voorkeurs_digitaal_adres) + self.assertIsNone(partij.voorkeurs_rekeningnummer) + self.assertEqual(partij.interne_notitie, "") + self.assertFalse(partij.indicatie_geheimhouding) + self.assertEqual(partij.voorkeurstaal, "") + self.assertTrue(partij.indicatie_actief) + + self.assertEqual(persoon.contactnaam_voorletters, "H") + self.assertEqual(persoon.contactnaam_voornaam, "Harry") + self.assertEqual(persoon.contactnaam_voorvoegsel_achternaam, "") + self.assertEqual(persoon.contactnaam_achternaam, "Potter") + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_subject_and_no_subject_identificatie(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + persoon = Persoon.objects.get() + + self.assertEqual(partij, persoon.partij) + + self.assertEqual(partij.soort_partij, SoortPartij.persoon) + self.assertEqual(partij.nummer, "024325818") + self.assertIsNone(partij.voorkeurs_digitaal_adres) + self.assertIsNone(partij.voorkeurs_rekeningnummer) + self.assertEqual(partij.interne_notitie, "") + self.assertFalse(partij.indicatie_geheimhouding) + self.assertEqual(partij.voorkeurstaal, "") + self.assertTrue(partij.indicatie_actief) + + self.assertEqual(persoon.contactnaam_voorletters, "W") + self.assertEqual(persoon.contactnaam_voornaam, "Anthony") + self.assertEqual(persoon.contactnaam_voorvoegsel_achternaam, "") + self.assertEqual(persoon.contactnaam_achternaam, "Hopkins") + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_no_subject_and_no_subject_identificatie(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + self.assertEqual(Partij.objects.count(), 0) + + output = stdout.getvalue().splitlines() + + self.assertEqual(output, []) + + def test_incorrect_subject_url(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + self.assertEqual(Partij.objects.count(), 0) + + output = stdout.getvalue().splitlines() + + self.assertEqual(output, []) + + def test_subject_404(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + self.assertEqual(Partij.objects.count(), 0) + + output = stdout.getvalue().splitlines() + + self.assertEqual(output, []) + + def test_digitaal_adres(self): + stdout = StringIO() + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + persoon = Persoon.objects.get() + digitaal_adres = DigitaalAdres.objects.get() + + self.assertEqual(partij, persoon.partij) + + self.assertEqual(partij.soort_partij, SoortPartij.persoon) + self.assertEqual(partij.nummer, "0000000001") # auto generated + self.assertEqual(partij.voorkeurs_digitaal_adres, digitaal_adres) + self.assertIsNone(partij.voorkeurs_rekeningnummer) + self.assertEqual(partij.interne_notitie, "") + self.assertFalse(partij.indicatie_geheimhouding) + self.assertEqual(partij.voorkeurstaal, "") + self.assertTrue(partij.indicatie_actief) + + self.assertEqual(digitaal_adres.partij, partij) + self.assertIsNone(digitaal_adres.betrokkene) + self.assertEqual(digitaal_adres.soort_digitaal_adres, SoortDigitaalAdres.email) + self.assertEqual(digitaal_adres.adres, "example@maykinmedia.nl") + self.assertEqual(digitaal_adres.omschrijving, "Emailadres") + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + def test_no_access_token(self): + stdout = StringIO() + + del os.environ["ACCESS_TOKEN"] + + with self.assertRaises(ImproperlyConfigured): + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + self.assertEqual(Partij.objects.count(), 0) + + output = stdout.getvalue().splitlines() + + self.assertEqual(output, []) + + def test_invalid_urls(self): + with self.assertRaises(CommandError) as context_manager: + call_command("migrate_to_v2", "foobar.com", self.live_server_url) + + self.assertEqual(Partij.objects.count(), 0) + + self.assertEqual(context_manager.exception.returncode, 1) + self.assertIn("Invalid URL(s)", context_manager.exception.args[0]) + + def test_existing_dummy_tokens(self): + stdout = StringIO() + + token_application = "Migration application" + + TokenAuth(application=token_application) + TokenAuth(application=token_application) + TokenAuth(application=token_application) + + call_command( + "migrate_to_v2", + "http://localhost:8000", + self.live_server_url, + stdout=stdout, + ) + + partij = Partij.objects.get() + + output = stdout.getvalue().splitlines() + + partij_url = reverse( + "klantinteracties:partij-detail", + kwargs={"uuid": str(partij.uuid)}, + ) + + self.assertEqual(output, [f"{self.live_server_url}{partij_url}"]) + + migration_tokens = TokenAuth.objects.filter(application=token_application) + + self.assertEqual(migration_tokens.count(), 0) diff --git a/src/openklant/tests/vcr.py b/src/openklant/tests/vcr.py new file mode 100644 index 00000000..74b96755 --- /dev/null +++ b/src/openklant/tests/vcr.py @@ -0,0 +1,30 @@ +import os +from pathlib import Path + +from vcr.unittest import VCRMixin as _VCRMixin + +RECORD_MODE = os.environ.get("VCR_RECORD_MODE", "none") + + +class VCRMixin(_VCRMixin): + """ + Mixin to use VCR in your unit tests. + + Using this mixin will result in HTTP requests/responses being recorded. + """ + + VCR_TEST_FILES: Path + """ + A :class:`pathlib.Path` instance where the cassettes should be stored. + """ + + def _get_cassette_library_dir(self): + assert ( + self.VCR_TEST_FILES + ), "You must define the `VCR_TEST_FILES` class attribute" + return str(self.VCR_TEST_FILES / "vcr_cassettes" / self.__class__.__qualname__) + + def _get_vcr_kwargs(self, **kwargs) -> dict: + kwargs = super()._get_vcr_kwargs() + kwargs.setdefault("record_mode", RECORD_MODE) + return kwargs diff --git a/src/openklant/utils/tests/test_validators.py b/src/openklant/utils/tests/test_validators.py index 6cf6f77a..143dc9d5 100644 --- a/src/openklant/utils/tests/test_validators.py +++ b/src/openklant/utils/tests/test_validators.py @@ -74,25 +74,38 @@ def test_validate_postal_code(self): self.assertIsNone(validate_postal_code("1015 cJ")) def test_validate_phone_number(self): + valid_phone_numbers = [ + "+31612345678", + "+441134960000", # US test number + "+12065550100", # US test number + "0612345678", + "0031612345678", + "09001234567", + "080085285212", + "1400", + "14012", + "14079", + ] invalid_phone_numbers = [ "0695azerty", "azerty0545", "@4566544++8", "onetwothreefour", + "020 753 0523", + "+311234", ] for invalid_phone_number in invalid_phone_numbers: - self.assertRaisesMessage( - ValidationError, - "Het opgegeven mobiele telefoonnummer is ongeldig.", - validate_phone_number, - invalid_phone_number, - ) + with self.subTest(invalid_phone_number): + self.assertRaisesMessage( + ValidationError, + "Het opgegeven telefoonnummer is ongeldig.", + validate_phone_number, + invalid_phone_number, + ) - self.assertEqual(validate_phone_number(" 0695959595"), " 0695959595") - self.assertEqual(validate_phone_number("+33695959595"), "+33695959595") - self.assertEqual(validate_phone_number("00695959595"), "00695959595") - self.assertEqual(validate_phone_number("00-69-59-59-59-5"), "00-69-59-59-59-5") - self.assertEqual(validate_phone_number("00 69 59 59 59 5"), "00 69 59 59 59 5") + for valid_phone_number in valid_phone_numbers: + with self.subTest(valid_phone_number): + validate_phone_number(valid_phone_number) def test_validate_no_space_validator(self): invalid_strings = [ diff --git a/src/openklant/utils/validators.py b/src/openklant/utils/validators.py index 69898a9c..d69dbd05 100644 --- a/src/openklant/utils/validators.py +++ b/src/openklant/utils/validators.py @@ -23,13 +23,10 @@ def validate_charfield_entry(value, allow_apostrophe=False): return value -def validate_phone_number(value): - try: - int(value.strip().lstrip("0+").replace("-", "").replace(" ", "")) - except (ValueError, TypeError): - raise ValidationError(_("Het opgegeven mobiele telefoonnummer is ongeldig.")) - - return value +validate_phone_number = RegexValidator( + regex="(0[8-9]00[0-9]{4,7})|(0[1-9][0-9]{8})|(\\+[0-9]{9,20}|1400|140[0-9]{2,3})", + message=_("Het opgegeven telefoonnummer is ongeldig."), +) class CustomRegexValidator(RegexValidator):