HomeFunctiesPrijzenPrivacy & veiligheidContact

Verwerkersovereenkomst

Versie 1.3, 22 september 2026

Waarom dit document bestaat

Zodra een beveiligingsbedrijf de gegevens van zijn personeel in DutyGrid zet, blijft dat bedrijf de baas over die gegevens. Het bepaalt waarom ze er staan en wie erbij mag. DutyGrid bewaart en verwerkt ze in opdracht. In de woorden van de AVG: de klant is verwerkingsverantwoordelijke, DutyGrid is verwerker, en artikel 28 eist daar een schriftelijke overeenkomst voor, of de klant er nu om vraagt of niet.

De juridische kern hieronder volgt de modelbepalingen die de Europese Commissie heeft vastgesteld (uitvoeringsbesluit 2021/915).

Wat wij zelf invullen zijn de bijlagen, en dat is precies het deel dat over DutyGrid gaat: welke gegevens, welke leveranciers, welke maatregelen, welke termijnen. Die zijn hieronder ingevuld door de code na te lopen, niet door op te schrijven wat we dachten dat er gebeurde.

Partijen

Verwerkingsverantwoordelijke: de klant, hierna "het beveiligingsbedrijf".

Verwerker: Lovijn Security, handelend onder de naam DutyGrid, ingeschreven bij de Kamer van Koophandel onder nummer 74666347, gevestigd te Rijswijk.

Artikel 1. Onderwerp en duur

DutyGrid verwerkt persoonsgegevens uitsluitend om de dienst te leveren: personeelsplanning, urenregistratie, verlofadministratie en incidentrapportage voor de beveiligingsbranche.

De overeenkomst loopt zolang het abonnement loopt en eindigt daarmee, met inachtneming van de bewaartermijnen in artikel 8.

Artikel 2. Instructies

DutyGrid verwerkt de gegevens alleen op schriftelijke instructie van het beveiligingsbedrijf. Het gebruik van de software geldt als die instructie.

DutyGrid gebruikt de gegevens niet voor eigen doelen. Concreet: niet voor productontwikkeling met herleidbare gegevens, niet voor marketing, en niet om statistieken te maken die tot een persoon of een bedrijf te herleiden zijn.

Artikel 3. Aard van de verwerking en betrokkenen

Betrokkenen:

  • medewerkers van het beveiligingsbedrijf (beveiligers, planners, beheerders);
  • contactpersonen bij opdrachtgevers van het beveiligingsbedrijf;
  • personen die in een incidentmelding voorkomen. Een melding bevat een vrije omschrijving en kan een foto bevatten. Daarin kunnen bezoekers, klanten, slachtoffers, verdachten of omstanders worden beschreven of afgebeeld: mensen die geen enkele band met het beveiligingsbedrijf hebben en er niets over te zeggen hebben gehad. Dat maakt ze wel betrokkene.

Categorieën gegevens, zoals de software ze werkelijk opslaat:

CategorieWat er in staat
IdentificatieNaam, e-mailadres, telefoonnummer, geboortedatum
AdresWoonadres, postcode, woonplaats
DienstverbandFunctie, contracttype, uurtarief, datum in dienst, maximale uren, cao-type
LegitimatieType beveiligingspas, pasnummer, vervaldatum
DocumentenGeüploade kopie van een identiteitsbewijs en van de beveiligingspas
BeeldProfielfoto; foto's bij incidentmeldingen; schermafbeeldingen die een gebruiker zelf meestuurt bij een melding over de app, en die elk scherm kunnen tonen dat hij op dat moment open had
Rooster en tijdDiensten, gewerkte uren, klokmomenten, beschikbaarheid, verlof
LocatieCoördinaten van in- en uitklokken, en of dat binnen de ingestelde zone viel; het woonadres van een medewerker als punt op de kaart, voor de reisafstand per dienst
VerzuimVerlofsoort, waaronder ziekmelding, met begin- en einddatum en een vrij opmerkingenveld
IncidentenVrije omschrijving van wat er is voorgevallen, met datum, locatie, melder en eventueel een foto; kan gegevens over derden bevatten
Meldingen over de appWat een gebruiker zelf meldt als fout, idee of vraag: zijn vrije omschrijving, plus de pagina waarop hij stond, zijn rol, zijn toestel en browser, de schermbreedte en de versie van de app, en eventueel een schermafbeelding. Wat er meegaat staat vóór het verzenden in beeld. De melding gaat naar de ondersteuning van DutyGrid en kan, doordat de melder vrij schrijft of een scherm vastlegt, gegevens over hemzelf of over derden bevatten
Notities en redenenVrije tekst die her en der bij het plannen wordt ingevuld: notities bij een dienst, de reden bij een ruilverzoek of een beschikbaarheidsuitzondering, de notitie bij het goedkeuren van een dienst buiten iemands beschikbaarheid, en beheerdersnotities bij gewerkte uren. Kan net als het verlof- en incidentveld persoonsgegevens of gevoelige toelichtingen bevatten
GebruikInloggegevens (wachtwoord gehasht met Argon2), rol, en een spoor van wijzigingen
Bedrijf en facturatieBedrijfsnaam, KvK-nummer en bedrijfsgrootte, ingevuld bij de aanmelding, plus de facturatiekoppeling: Stripe-klant- en abonnementsreferenties, abonnementsstatus en -pakket, en de begin- en einddatum van de proefperiode. Bij een eenmanszaak zijn de bedrijfsnaam en het KvK-nummer tot de eigenaar herleidbaar
TechnischIP-adres, browsergegevens (useragent) en de gebruikelijke requestgegevens van iedere bezoeker: welke pagina, wanneer. Ze ontstaan bij het gebruik zelf en niet doordat iemand ze invult

Vier categorieën verdienen aparte aandacht, omdat ze zwaarder wegen dan de rest:

Kopieën van identiteitsbewijzen. Een kopie paspoort bevat een BSN en een pasfoto. De wet staat een werkgever toe die voor zijn loonadministratie te bewaren, maar het is aan het beveiligingsbedrijf om te bepalen of het die kopie in DutyGrid wil zetten en of het BSN daarop is afgeschermd. DutyGrid dwingt dat niet af.

Locatiegegevens. Bij in- en uitklokken worden coördinaten vastgelegd. Dat is volgen van personeel op het werk, en het beveiligingsbedrijf hoort zijn mensen daarover te informeren. Tijdens een dienst worden er geen coördinaten vastgelegd: alleen op die twee momenten.

Daarnaast wordt het woonadres van een medewerker als punt op de kaart bewaard, zodra er een adres is ingevuld en dat adres gevonden wordt (zie de bijlage met subverwerkers, PDOK). Dat punt dient één doel: de reisafstand tussen woonadres en object, voor de reiskostenvergoeding per dienst. Het zegt waar iemand woont, niet waar hij is; het verandert alleen als het adres verandert, en wie het woonadresveld leeg laat, krijgt geen punt en geen reisafstand.

Gezondheidsgegevens. Bij elke verlofaanvraag hoort een vrij opmerkingenveld, en de verlofadministratie kent de soort "ziek". Dat is een bijzondere categorie in de zin van artikel 9 AVG. De software kan niet zien wat iemand in dat veld typt.

Waar die soort vandaan komt, hoort er ook bij. Het verloftype is in de database vrije tekst; de twee aanvraagformulieren bieden vandaag vakantie, bijzonder verlof, onbetaald verlof en overig, en dus geen ziekmelding. De beoordeel- en beschikbaarheidsschermen herkennen "ziek" wel en tonen het als ziekmelding, dus die registraties bestaan: van eerder, of doordat een planner ze via de API aanmaakt. Gezondheidsgegevens komen daarmee vooral binnen via het opmerkingenveld bij een gewone verlofaanvraag, en dat veld hoort bij elk van de vier soorten.

Twee dingen horen hierover expliciet in deze overeenkomst te staan. Ten eerste: een werkgever mag registreren dat iemand ziek is en hoe lang, maar niet wat iemand mankeert; dat is voorbehouden aan de bedrijfsarts. Het is aan het beveiligingsbedrijf om zijn planners daarop te wijzen, en DutyGrid dwingt het niet af. Ten tweede: deze gegevens zijn zichtbaar voor planners en beheerders van het bedrijf, niet alleen voor een verzuimfunctionaris. Wie dat te ruim vindt, gebruikt het opmerkingenveld niet.

Bij elke verlofsoort staat in het invulveld dat de medewerker niet hoeft te vermelden wat hij mankeert.

Incidentgegevens over derden. De omschrijving bij een incident is vrije tekst en kan gaan over mensen die niets met het beveiligingsbedrijf te maken hebben. Komt daar informatie in te staan over bijvoorbeeld gezondheid, etniciteit of een strafbaar feit, dan is ook dat een bijzondere categorie. Het beveiligingsbedrijf bepaalt hoe zijn beveiligers een melding schrijven; DutyGrid slaat op wat er wordt ingevoerd. Foto's bij een incident en schermafbeeldingen bij een melding over de app staan bij Vercel Blob. Nieuwe uploads gaan naar een privéopslag en zijn zonder geldige sessie niet op te halen, ook niet met de URL; foto's van vóór die wijziging staan nog in de oude, publieke opslag, op een adres dat niet te raden is maar wel opvraagbaar voor wie het kent. Zie de bijlage met subverwerkers.

Artikel 4. Beveiligingsmaatregelen

De maatregelen zoals ze in de software zijn getroffen:

  • Wachtwoorden worden gehasht opgeslagen met Argon2. Bewust "gehasht" en niet "versleuteld": er bestaat geen sleutel waarmee ze terug te lezen zijn, ook niet voor DutyGrid zelf. In een opsomming van maatregelen zijn dat twee verschillende dingen, en een auditor leest ze ook zo.
  • Sessies lopen via een willekeurig sessietoken zonder ingebakken inhoud, dat in een HttpOnly-cookie staat en bij elk verzoek in de database wordt opgezocht, met een beperkte geldigheidsduur en verwijdering bij uitloggen. Bij een wachtwoordwijziging vervallen alle overige sessies van het account; de sessie waarmee de wijziging wordt doorgevoerd blijft geldig. Bewust niet "alle sessies vervallen": dat zou meer beloven dan de code doet, en het verschil is niet academisch, want een gestolen kopie van precies dat actuele token overleeft de wachtwoordwijziging tot het verloopt of tot er wordt uitgelogd. Wat de toegang draagt is het opzoekbare token, en een maatregelenlijst hoort te beschrijven wat de toegang draagt.
  • Toegang is gebonden aan een rol: een beveiliger ziet zijn eigen rooster, een planner het bedrijf, en alleen de eigenaar kan het abonnement beheren. Bewust "beheren" en niet "erbij komen": een tweede beheerder kan de abonnementsgegevens wél inzien; alleen afsluiten, wijzigen en het betaalportaal zijn aan de eigenaar voorbehouden. Een ruimere formulering zou iets beloven wat de software niet doet.
  • Gegevens van verschillende bedrijven zijn gescheiden op bedrijfsniveau; elke vraag aan de database is gebonden aan het bedrijf van de ingelogde gebruiker.
  • Kopieën van identiteitsbewijzen zijn alleen op te vragen via het profiel van die ene medewerker. Het overzicht van medewerkers stuurt de verwijzingen naar die documenten niet mee, ook niet verborgen in het antwoord van de server.
  • Meekijken met een bedrijf vanuit het beheer, het overnemen van een account en het automatisch genereren van planningen worden vastgelegd in een logboek, met wie en wanneer.
  • Al het verkeer verloopt over TLS.
  • Toegang tot de productieomgeving is beperkt tot de beheerder van DutyGrid.

Artikel 5. Geheimhouding

Iedereen die namens DutyGrid toegang heeft tot de gegevens is tot geheimhouding verplicht.

Artikel 6. Subverwerkers

DutyGrid schakelt de partijen in die staan in de bijlage met subverwerkers onderaan deze pagina. Het beveiligingsbedrijf geeft daar bij het aangaan van de overeenkomst toestemming voor.

Voor een nieuwe subverwerker informeert DutyGrid het beveiligingsbedrijf vooraf, zodat het bezwaar kan maken.

De lijst wordt bewaakt door een geautomatiseerde controle op de broncode, die faalt zodra er een externe partij bij komt die er niet in staat.

Artikel 7. Doorgifte buiten de EU

De database staat in Frankfurt en de applicatie draait in dezelfde regio. Twee partijen in de bijlage geven gegevens door aan de Verenigde Staten, beide op basis van het EU-VS-datakader:

  • Stripe, voor de abonnementsgegevens van de eigenaar van het bedrijf;
  • Google, dat het IP-adres en de browsergegevens ontvangt van iedere bezoeker van de marketing- en accountpagina's, doordat die pagina's daar hun lettertypen ophalen. Dat raakt ook elke medewerker die inlogt.

De reisafstandberekening via Google staat klaar maar is niet actief. Zodra die wordt aangezet gaan woonadressen van medewerkers naar een verwerker buiten de EU; dat vergt een aanpassing van deze overeenkomst voordat het zover is.

Artikel 8. Bewaartermijnen en teruggave

Zolang het abonnement loopt bewaart DutyGrid de gegevens die het beveiligingsbedrijf invoert.

Na opzegging worden de gegevens binnen negentig dagen verwijderd. Een proefperiode die verloopt zonder abonnement wordt binnen dertig dagen opgeruimd. Beide termijnen worden uitgevoerd door een dagelijkse taak.

Wat daarvoor in de software geregeld moet zijn, is geregeld: de taak wordt dagelijks aangeroepen door een geplande taak, de selectie kent naast verlopen proefperiodes ook de opgezegde bedrijven, er is een opzegmoment om de negentig dagen vanaf te tellen, de taak veegt de foto's en documenten bij de opslagdienst, en hij verwijdert het Stripe-klantprofiel. Een geautomatiseerde controle op de broncode houdt dit artikel aan die eisen vast.

Wat de opruiming bewust laat staan, hoort hier ook te staan, want anders belooft dit artikel meer dan het waarmaakt. De inlogaccounts van een opgeruimd bedrijf worden geanonimiseerd en niet verwijderd: naam en wachtwoord krijgen een vaste markering, en de bedrijfsnaam op het account, de profielfoto, het KvK-nummer, de 2FA-geheimen en de Stripe-verwijzingen worden gewist, maar het e-mailadres blijft staan, en dat geldt voor de eigenaar én voor de planners en medewerkers met een account. De reden is dat de registratieroute daarop controleert om te voorkomen dat hetzelfde bedrijf zichzelf een nieuwe proefperiode geeft. Er staat vandaag geen einddatum op die bewaring: na de cooldown van negentig dagen vanaf het moment van opruimen maakt de registratieroute het adres pas weer vrij op het moment dat iemand het opnieuw gebruikt, en wie niet terugkomt blijft er met zijn adres in staan. Die keuze hoort besproken en begrensd te zijn.

Van de bedrijfsregistratie zelf blijft een romp bestaan: het interne nummer, de status, het opzegmoment en de tijdstempels van de opruiming. De bedrijfsnaam krijgt dezelfde vaste markering als de accounts, en het KvK-nummer, de verwijzing naar de eigenaar en de bedrijfsgrootte worden gewist. De Stripe-referenties blijven op die romp staan totdat de verwijdering van het klantprofiel bij Stripe aantoonbaar is gelukt en gaan dan in dezelfde stap mee weg; eerder wissen zou een tijdelijk mislukte Stripe-verwijdering permanent maken. Oudere inlogregistraties uit de begintijd van de software gaan met de tenant mee weg, met één smalle uitzondering voor de platformtoegang van de beheerder van DutyGrid, die in een logboekregel wordt vastgelegd.

Het beveiligingsbedrijf kan tijdens de looptijd een export van zijn gegevens opvragen.

Facturatiegegevens bewaart DutyGrid zeven jaar, omdat de fiscale bewaarplicht dat voorschrijft. Dat is een eigen wettelijke verplichting en geen verwerking in opdracht.

Artikel 9. Rechten van betrokkenen

Vraagt een medewerker om inzage, correctie of verwijdering, dan is het beveiligingsbedrijf degene die daarop antwoordt. DutyGrid helpt daarbij binnen vijf werkdagen met de gegevens die het onder zich heeft.

Artikel 10. Datalekken

Bij een inbreuk op de beveiliging waarschuwt DutyGrid het beveiligingsbedrijf zonder onnodige vertraging en uiterlijk binnen achtenveertig uur nadat de inbreuk bekend is geworden, met wat er bekend is over de aard, de betrokken gegevens en de genomen maatregelen.

De melding aan de Autoriteit Persoonsgegevens en aan de betrokkenen doet het beveiligingsbedrijf; dat is zijn verantwoordelijkheid als verwerkingsverantwoordelijke.

Artikel 11. Controle

Het beveiligingsbedrijf mag eens per jaar controleren of DutyGrid zich aan deze afspraken houdt, op eigen kosten en na aankondiging van dertig dagen.

Artikel 12. Verklaring van het beveiligingsbedrijf

Het beveiligingsbedrijf verklaart dat het een geldige grondslag heeft voor de gegevens die het aanlevert, en dat het zijn medewerkers heeft geïnformeerd over de verwerking.

Dat is de verplichting van het beveiligingsbedrijf als verwerkingsverantwoordelijke en niet van DutyGrid. Deze zin staat er zodat het schriftelijk vastligt, zonder dat er een gesprek over gevoerd hoeft te worden.

Artikel 13. Aansprakelijkheid en toepasselijk recht

Nederlands recht. Op aansprakelijkheid is de regeling uit de algemene voorwaarden van toepassing.

Bijlage: subverwerkers

Deze lijst is opgesteld door de code na te lopen op externe aanroepen, niet door op te schrijven welke diensten we denken te gebruiken. Hij wordt bewaakt door een geautomatiseerde controle op de broncode die faalt zodra er een externe partij bij komt die hier niet staat. Laatst nagelopen: 16 augustus 2026.

In gebruik:

PartijHostnaamWaarvoorWelke gegevensWaar
Neon(databaseverbinding)De databaseAlle gegevens die de klant invoert, plus wat de applicatie zelf genereert: wachtwoordhashes, sessie-, activatie- en hersteltokens, IP-adressen in de auditlogboeken en de rate-limitregistratie, en activiteitsgegevens (wie wanneer wat deed)Frankfurt (eu-central-1)
Vercel(hostingplatform)Hosting, uitvoering en prestatiemetingen (Speed Insights)Alle gegevens die door de applicatie gaan, plus de technische logs van het platform: per verzoek het IP-adres, de browsergegevens en het opgevraagde pad. Daarnaast per bezochte pagina de gemeten laadprestaties (Core Web Vitals) van echte bezoekers via Speed InsightsRegio fra1 (Frankfurt)
Vercel Blobblob.vercel-storage.comOpslag van foto's bij incidentmeldingen en van schermafbeeldingen bij meldingen over de appFoto's, die personen kunnen tonen, en schermafbeeldingen, die elk scherm kunnen tonen dat de melder op dat moment open had. Nieuwe uploads gaan naar een privéopslag: zonder geldige sessie zijn ze niet op te halen, ook niet met de URL. Foto's van vóór die wijziging staan nog in de oude, publieke opslag, waar de URL niet te raden maar wel benaderbaar is voor wie hem heeft; dat staat als aandachtspunt op de lijstVercel-infrastructuur
Resendapi.resend.comVerzenden van e-mailNaam en e-mailadres van de ontvanger, plus onderwerp en de volledige inhoud van het bericht (tekst en HTML), inclusief activatie- en herstellinks met een eenmalige token. Wie zo'n link onderschept kan het account overnemen; Resend is dus tijdelijk ook verwerker van toegangsgegevens. Ook het contactformulier op de marketingsite loopt hierlangsIerland
Stripeapi.stripe.com, checkout.stripe.comAbonnementen en betalingenBedrijfsnaam, e-mailadres, factuuradres en betaalgegevens van de eigenaar, plus het KvK-nummer, dat als factuurveld op de Stripe-klant wordt gezet; het factuuradres is verplicht bij het afrekenenIerland, met doorgifte naar de VS
PDOK (Kadaster)api.pdok.nlAdres omzetten naar coördinaten voor de geofence en voor de reisafstand per dienstHet adres van een werklocatie, plus het IP-adres en de gebruikelijke HTTP-gegevens van de planner: die aanroep gebeurt rechtstreeks vanuit diens browser. Daarnaast het woonadres van een medewerker (straat, postcode, woonplaats) bij het opslaan van zijn profiel, om de reisafstand per dienst te kunnen berekenen; die aanroep gaat vanaf onze server, dus zonder zijn IP-adres en zonder zijn naam. Wie deze stroom niet wil, laat het woonadresveld leegNederland
Google (Fonts)fonts.googleapis.com, fonts.gstatic.comLettertypen voor de marketing- en accountpagina'sHet IP-adres en de browsergegevens van iedere bezoeker die zo'n pagina opent, inclusief elke medewerker die inlogt. Voor Google Fonts geldt: geen cookies en geen profiel, maar het blijft doorgifte naar de VSVerenigde Staten

Klaargezet maar nog niet actief: Google (Distance Matrix, los van Google Fonts hierboven) via maps.googleapis.com, voor de reisafstand tussen woonadres en werklocatie. Dit is de zwaarste van de hele lijst: zodra de bijbehorende sleutel wordt gezet, gaan bij het inplannen van elke dienst het woonadres van de medewerker en het objectadres naar Google. Die sleutel staat bewust niet in de productieomgeving, en deze doorgifte moet in de overeenkomst staan voordat hij wordt aangezet, niet erna; artikel 7 zegt hetzelfde.

De volledige toelichting per partij, en de lijst van partijen die eerder zijn weggehaald en waarom, is op te vragen via info@dutygrid.nl.

Vragen over deze overeenkomst

Staat er iets in dat u anders wilt zien, of hebt u een vraag over wat DutyGrid met de gegevens van uw mensen doet? Mail info@dutygrid.nl.