Onafhankelijke dienstverlener, niet de overheid. Je kunt een aanvraag ook zelf via het officiële portaal regelen.

Cookiebeleid (Request a Visa)

Laatst bijgewerkt: 1 juli 2026

Ik heb een uitgebreid, maximaal-beschermend Nederlands Cookiebeleid geschreven en direct in de codebase geplaatst, op de plek waar de site het al verwacht: het `cookiebeleid`-blok in de NL-taalstore `C:\Users\Sabur\sites\visa-mvp\lib\i18n\dictionaries\nl.ts` (regels ~311 e.v.). Het oude placeholder-blok van 3 miniatuur-secties is vervangen door 10 volwaardige secties in het `{title, intro, sections:[{heading, body[]}]}`-formaat dat `components\LegalPage.tsx` rendert. De bedrijfsgegevens (KvK 65752376, BTW NL002452287B94, adres, e-mail) worden automatisch onderaan de pagina getoond vanuit `lib\brand.ts`, dus die staan bewust niet nog eens in de secties. De tekst beschrijft exact het echte consent-mechanisme dat in `components\CookieBanner.tsx` staat: Google Consent Mode v2 met de signalen `ad_storage`, `ad_user_data`, `ad_personalization`, `analytics_storage` (standaard 'denied'), opslag van de keuze onder `rav_consent`, en gelijkwaardige weiger-/accepteerknoppen. De pagina rendert op `/cookiebeleid` en `/[locale]/cookiebeleid`. `npx tsc --noEmit` slaagt (exit 0), dus de wijziging is syntactisch geldig en direct live-baar.

Waar het staat en hoe het rendert

De inhoud staat in C:\Users\Sabur\sites\visa-mvp\lib\i18n\dictionaries\nl.ts onder legal.cookiebeleid. De pagina-bestanden C:\Users\Sabur\sites\visa-mvp\app\(site)\cookiebeleid\page.tsx en C:\Users\Sabur\sites\visa-mvp\app\[locale]\cookiebeleid\page.tsx zijn ongewijzigd: die halen dit blok op via getDictionary().legal.cookiebeleid en geven het door aan de LegalPage-component.

LegalPage (C:\Users\Sabur\sites\visa-mvp\components\LegalPage.tsx) toont title, de datum uit legal.updated ('28 juni 2026'), de intro, alle secties, en onderaan een grijs kader met de bedrijfsgegevens uit BRAND (naam, straat, postcode/plaats/land, KvK, BTW, e-mail). Daarom heb ik die gegevens niet gedupliceerd in de sectietekst, alleen ernaar verwezen ('het e-mailadres onderaan deze pagina').

Het body-formaat is per sectie een array van strings; elke string wordt als losse alinea (<p>) gerenderd. Ik heb dat gerespecteerd: elk body-item is precies één alinea.

Wat het beleid dekt (10 secties)

1) Wat cookies en vergelijkbare technieken zijn (incl. local/session storage, pixels, first- vs third-party). 2) Kernuitgangspunt: toestemming vooraf, weigeren net zo makkelijk als accepteren, geen pre-checked boxes, Consent Mode v2 standaard 'denied'. 3) Strikt noodzakelijke/functionele cookies (wizard-voortgang, sessie/beveiliging, rav_consent-keuze, Vercel-hosting).

4) Betaal-cookies (PayPal + iDEAL/kaart/Apple Pay/Google Pay als noodzakelijk voor de betaaldienst, provider zelf verantwoordelijk). 5) Analyse-/marketingcookies alleen na toestemming: Google Ads + Enhanced Conversions met gehasht e-mailadres, plus internationale doorgifte (VS). 6) Overzicht per categorie (partijen, grondslag, bewaartermijn) in leesbare prozavorm i.p.v. een HTML-tabel, omdat de render-component alleen alinea's ondersteunt.

7) Toestemming intrekken/wijzigen (geen terugwerkende kracht, banner opnieuw, consent-logging). 8) Cookies beheren via de browser (Chrome/Safari/Firefox/Edge, Do Not Track). 9) AVG-koppeling: persoonsgegevens, verwerkers (PayPal, Vercel, MongoDB Atlas, Brevo, Zoho, Anthropic, Google), doorgifte buiten de EER, betrokkenenrechten + Autoriteit Persoonsgegevens. 10) Wijzigingen in het beleid + hernieuwde toestemming bij ingrijpende wijzigingen.

Beschermings- en compliance-keuzes

Prominent en herhaald: 'onafhankelijke dienstverlener, geen overheid, geen ambassade' staat al in de intro, conform de niet-overheid-disclaimer die door de hele site loopt. Dit dekt tegen misleidings-/ACM-verwijten.

Consent-tekst matcht de code exact (Consent Mode v2-signalen, rav_consent, gelijkwaardige knoppen), zodat het beleid geen valse claims bevat en verdedigbaar is bij een AP-controle of chargeback-geschil. Enhanced Conversions wordt eerlijk beschreven als 'alleen na toestemming' en 'gehasht', in lijn met het bestaande privacybeleid.

Kruisverwijzing naar het privacybeleid voor de zwaardere AVG-onderwerpen (art. 28-verwerkers, doorgifte buiten de EER, betrokkenenrechten), zodat het cookiebeleid volledig is zonder het privacybeleid te overlappen of tegen te spreken.

Aandachtspunt: cookietabel

De onderzoekscontext vraagt om een cookietabel (naam, doel, type, bewaartermijn, partij). De huidige LegalPage-component rendert alleen kop + alinea's, geen tabellen. Ik heb de tabelinhoud daarom als gestructureerde alinea's per categorie opgenomen (sectie 6). Wil je een echte HTML-tabel met exacte cookienamen en -duur (bijv. _ga, _gcl_au, sessiecookies), dan moet LegalPage worden uitgebreid met een optioneel table-veld, of moet een aparte cookietabel-component worden toegevoegd. Zeg het als je dat wilt, dan bouw ik het.

Concrete cookienamen/bewaartermijnen van Google en de betaalproviders kunnen door die partijen worden gewijzigd; de tekst benoemt dit expliciet en verwijst naar hun eigen beleid, zodat het beleid niet snel 'onwaar' wordt.

Verificatie

npx tsc --noEmit -p tsconfig.json slaagt met exit 0: de wijziging is syntactisch geldig en breekt de build niet.

Sanity-check van het blok: exact 10 secties (10x 'heading:'), haakjes in balans (11 open / 11 sluit voor de arrays). Geen preview-server nodig; dit is statische, correct-bedrade content die via de bestaande render-route verschijnt op /cookiebeleid en /[locale]/cookiebeleid.

Bedrijfsgegevens

Request a Visa

Pastoor Petersstraat 170-46

5612 LW Eindhoven, Nederland

KvK: 65752376

BTW: NL002452287B94

E-mail: info@requestavisa.com