> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.pandectes.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Machtigingen en authenticatie uitgelegd

##### Over dit document

Pandectes GDPR Compliance helpt je winkel te voldoen aan verplichtingen op het gebied van privacy, toestemming en toegankelijkheid in verschillende regio's van de wereld. Hiervoor vraagt de app een vaste set Shopify-machtigingen aan, ook wel **access scopes** genoemd.

Dit document legt in begrijpelijke taal uit welke machtigingen de app aanvraagt: waarvoor Shopify elke machtiging gebruikt en hoe Pandectes deze gebruikt. Vervolgens beschrijft het hoe de app wordt geïnstalleerd en geauthenticeerd, waarom machtigingen op deze manier zijn geconfigureerd en hoe je zelf kunt controleren hoe die machtigingen worden gebruikt.

Het doel is volledige transparantie. Hiervoor is geen technische kennis nodig over hoe de app is gebouwd; het legt gewoon uit *wat* we vragen en *waarom*.


##### Hoe Pandectes met je gegevens omgaat

Voordat we de afzonderlijke machtigingen bespreken, is het nuttig een principe te kennen dat voor de hele app geldt:

* **Geen interne opslag van je klant- of ordergegevens.** Pandectes bewaart de gegevens van je klanten of bestellingen niet in een eigen database.
* **Opzoekacties, geen kopieën.** Wanneer een functie iets moet verifiëren (bijvoorbeeld bevestigen dat een e-mailadres bij een klant hoort, of dat een e-mailadres en order-ID overeenkomen met een echte bestelling), voert Pandectes een opzoekactie uit via zijn app-servers en gebruikt alleen het resultaat van die controle.
* **Opslag blijft binnen Shopify.** Wanneer een record echt moet worden opgeslagen (zoals een vastgelegd EU-herroepingsverzoek), wordt het teruggeschreven naar de eigen opslag van Shopify en gekoppeld aan de betreffende bestelling, in plaats van door Pandectes te worden opgeslagen.

Deze aanpak van gegevensminimalisatie is de reden waarom verschillende machtigingen hieronder worden omschreven als "alleen opzoekacties".


##### Hoe Pandectes wordt geïnstalleerd en geauthenticeerd

Pandectes maakt gebruik van **Shopify managed installation**, de moderne methode die Shopify aanbeveelt om apps te installeren en hun machtigingen up-to-date te houden.

Bij managed installation regelt Shopify zelf het installeren van de app en het toepassen van wijzigingen in machtigingen, zonder dat je extra autorisatieschermen hoeft te doorlopen. Voor jou betekent dit **snellere, soepelere installaties en updates**, zonder paginadoorverwijzingen, flikkerende schermen of herhaalde toestemmingsverzoeken. Achter de schermen verkrijgt de app kortlevende toegangstokens via de beveiligde tokenuitwisseling van Shopify, in plaats van via oudere flows op basis van doorverwijzingen.

Een kenmerk van managed installation is dat een app de **volledige set machtigingen die hij mag gebruiken in één centrale configuratie** declareert die bij Shopify wordt ingediend. Shopify past die configuratie vervolgens consistent toe op elke winkel die de app installeert. Pandectes vraagt niet, en kan binnen dit model niet, voor elke afzonderlijke winkel een andere, handmatig samengestelde set machtigingen aan.

##### Waarom machtigingen centraal worden gedeclareerd

Dit is een bewuste architectuurkeuze, en deze werkt op verschillende manieren in jouw voordeel:

* **Eén consistente, controleerbare configuratie.** Elke winkel draait Pandectes met dezelfde beoordeelde set machtigingen. Er zijn geen variaties per winkel om bij te houden, waardoor het gedrag van de app voorspelbaar en gemakkelijk te doorgronden is voor jou, voor Pandectes en voor Shopify.
* **Directe activering van functies, zonder wrijving.** Pandectes is modulair: de cookiebanner, de accessibility widget, Data Subject Requests, Do Not Sell My Data en de EU Withdrawal Button kunnen elk op elk moment worden in- of uitgeschakeld. Omdat de benodigde machtigingen al aanwezig zijn, werkt het inschakelen van een module direct: geen herinstallatie, geen nieuw autorisatiescherm en geen onderbreking van je storefront.
* **Een verleende machtiging is geen gebruikte machtiging.** Het verlenen van een machtiging betekent alleen dat de app deze *mag* gebruiken, als en wanneer jij de bijbehorende functie inschakelt. Een machtiging die bij een module hoort die je niet hebt ingeschakeld, blijft gewoon slapend. Samen met het hierboven beschreven principe van gegevensminimalisatie betekent dit dat Pandectes alleen leest of schrijft wat een actieve functie daadwerkelijk nodig heeft.

Als je bijvoorbeeld de EU Withdrawal Button niet hebt ingeschakeld, blijven de ordergerelateerde machtigingen die daarbij horen ongebruikt totdat je ervoor kiest die functie in te schakelen.

##### Beoordeeld en gevalideerd door Shopify

De set machtigingen die Pandectes aanvraagt is **niet willekeurig gekozen en kan niet stilletjes worden gewijzigd.** Elke machtiging wordt door Shopify beoordeeld en bevestigd in het kader van twee programma's waaraan Pandectes deelneemt:

* **Shopify Plus Partner.** Pandectes is een erkende **Shopify Plus Partner**, een status die Shopify toekent aan gescreende, gevestigde partners die voldoen aan de normen voor kwaliteit, expertise en vertrouwen.
* **Built for Shopify.** Pandectes GDPR Compliance heeft de aanduiding **Built for Shopify**, het hoogste niveau van appherkenning van Shopify, dat alleen wordt toegekend aan apps die voldoen aan de strenge eisen voor kwaliteit, prestaties, beveiliging en verantwoorde omgang met gegevens.

Omdat Pandectes aan beide programma's deelneemt, zijn de machtigingen die in dit document worden beschreven **door Shopify onderzocht en gevalideerd aan de hand van zijn eigen gepubliceerde standaarden**, en elke wijziging in wat de app aanvraagt is onderworpen aan dezelfde beoordeling. Kortom: de toegang die Pandectes vraagt wordt getoetst aan de standaarden van Shopify en is niet naar eigen goeddunken van Pandectes bepaald, zodat aan alle toepasselijke standaarden wordt voldaan.

##### Je kunt controleren hoe machtigingen worden gebruikt

Shopify biedt een **beheerscherm voor elke geïnstalleerde app** in de admin van je winkel. Daar kun je precies zien welke machtigingen Pandectes heeft gekregen en of elke machtiging daadwerkelijk is gebruikt, **inclusief of een bepaalde machtiging ooit is gebruikt** in jouw winkel. Omdat dit de duidelijkste manier is om te bevestigen dat de werkelijke toegang van de app overeenkomt met wat hier wordt beschreven, leidt het onderstaande gedeelte *"Het "Manage app"-scherm van Shopify begrijpen"* je door wat het toont en hoe het zich verhoudt tot de machtigingen in dit document.


##### Machtigingen die Pandectes aanvraagt

Hieronder staat elke machtiging die Pandectes aanvraagt, gegroepeerd per doel. Bij elke machtiging vind je de eigen definitie van Shopify, samen met een uitleg over hoe Pandectes de machtiging gebruikt.

> **Een opmerking over "write"-machtigingen:** Op Shopify geeft een `write_`-machtiging over het algemeen ook de bijbehorende **read**-toegang voor dezelfde resource. Daarom zie je mogelijk geen afzonderlijke "read"-machtigingen voor content, bestanden, thema's of metaobjects: de bijbehorende write-machtiging dekt het lezen al af. Op plaatsen waar Pandectes een resource alleen hoeft te *lezen* (bijvoorbeeld het controleren van je `theme.liquid`), gebeurt dat zonder iets te wijzigen.

##### Groep 1: Toestemming en regionale handhaving van privacy

Met deze machtigingen kan de cookiebanner het juiste toestemmingsgedrag toepassen en toestemmingssignalen doorgeven aan je andere tools.

`write_privacy_settings`
**Definitie van Shopify.** Toegang tot de privacy-instellingen en de cookiebannerconfiguratie van de winkel (`PrivacySettings`, `CookieBanner`).

**Hoe Pandectes het gebruikt.** Configureert de **regionale privacy-instellingen** van je winkel en bepaalt voor welke regio's van de wereld toestemming vereist is en voor welke niet. Dit is essentieel om de cookiebanner in elke regio correct te laten werken, zodat de juiste regels (zoals de AVG (GDPR) in de EU/EER en de CPRA/CCPA in Californië) op elke bezoeker worden toegepast.

`write_pixels`
**Definitie van Shopify.** Toegang tot de Web Pixels API voor het aanmaken en beheren van een web pixel.

**Hoe Pandectes het gebruikt.** Registreert **Web Pixels** waarmee Pandectes-integraties, zoals **Google Consent Mode**, consistent werken tijdens het hele klanttraject: de storefront (vóór de checkout), de checkout en de "thank you"-pagina na de checkout.

##### Groep 2: Pandectes op je storefront plaatsen

Met deze machtigingen kan de app zijn functies aan je winkel toevoegen en ondersteunende assets leveren, binnen de aanbevolen methoden van Shopify.

`write_content`
**Definitie van Shopify.** Toegang tot content van de online winkel zoals Pages, Blogs, Articles en Comments.

**Hoe Pandectes het gebruikt.** Maakt de storefront-**pagina's aan die de blokken van de app hosten**, zoals de pagina's **Cookie Declaration**, **Data Subject Request**, **Do Not Sell My Data** en **EU Withdrawal**, zodat je ze niet met de hand hoeft aan te maken en te koppelen.

`write_files`
**Definitie van Shopify.** Toegang tot generieke Files in de bestandsopslag van de winkel.

**Hoe Pandectes het gebruikt.** Uploadt ondersteunende assets naar het gedeelte **Files** van je winkel, zodat ze worden geleverd via het **CDN van Shopify**, dat snel en zeer veerkrachtig is. Deze assets omvatten de logo's die in de cookiebanner en de accessibility widget worden gebruikt, en het bestand `pandectes-rules.js` met de regels voor de Pandectes auto-blocker.

`write_themes`
**Definitie van Shopify.** Toegang tot themabestanden en assets van de online winkel (`OnlineStoreTheme`).

**Hoe Pandectes het gebruikt.** Wordt bewust beperkt gebruikt. In moderne winkels **leest** het vooral je `theme.liquid` om te detecteren of de app-embeds van de cookiebanner en de accessibility widget zijn ingeschakeld, en wordt het gebruikt om assets op te **ruimen** die oudere versies van de app eerder aan het thema hebben toegevoegd. In lijn met het programma **Built for Shopify**, waaraan Pandectes deelneemt, maakt, wijzigt of verwijdert de app geen thema-assets meer.

`write_script_tags`
**Definitie van Shopify.** Toegang tot ScriptTag-objecten, die scripts op de storefront laden.

**Hoe Pandectes het gebruikt.** Wordt vooral gehandhaafd voor **compatibiliteit**. Bij oudere "vintage" thema's die Online Store 2.0 niet ondersteunen, zijn script tags de enige beschikbare manier om de storefrontcode toe te voegen die de app nodig heeft. In moderne winkels levert Pandectes zijn **cookiebanner** en **accessibility widget** via app-embeds (de aanbevolen methode van Shopify), dus in de praktijk wordt deze machtiging nu vooral gebruikt om **verouderde script tags te verwijderen** en te vervangen door app-embeds wanneer een winkel wordt gemigreerd. Net als bij thema-assets staat het programma **Built for Shopify** niet toe dat apps script tags toevoegen, dus in moderne winkels maakt Pandectes ze niet aan; deze machtiging dient alleen voor compatibiliteit met verouderde thema's en voor opruiming.

##### Groep 3: Modules voor privacyrechten (Data Subject Requests en EU Withdrawal)

Deze machtigingen ondersteunen de functies waarmee je shoppers hun rechten kunnen uitoefenen. De gegevens worden hier door Pandectes **opgezocht, niet opgeslagen**; wanneer een resultaat moet worden bewaard, wordt het teruggeschreven naar Shopify.

 `read_customers`
**Definitie van Shopify.** Toegang tot klantrecords en gerelateerde gegevens over Segment, Company en Company Location.

**Hoe Pandectes het gebruikt.** Drijft de module **Data Subject Requests (DSR)** aan. Wanneer een bezoeker een privacyrecht uitoefent, of het nu gaat om het recht op **inzage en gegevensoverdraagbaarheid**, het recht op **rectificatie** of het recht op **gegevenswissing** ("recht om vergeten te worden"), zoekt Pandectes het opgegeven e-mailadres op om te bevestigen of het bij een klant van je winkel hoort, voordat het verificatieproces begint. De module is beschikbaar als **app block** dat je aan elke pagina kunt toevoegen en als **customer-account extension** die in het klantaccountgedeelte wordt getoond wanneer je dit inschakelt. Dit zijn **alleen opzoekacties**; Pandectes slaat deze klantgegevens niet op.

 `read_orders`
**Definitie van Shopify.** Toegang tot Orders, Fulfillments, Order Transactions en Abandoned Checkouts (standaard die van de afgelopen 60 dagen).

**Hoe Pandectes het gebruikt.** Drijft de **EU Withdrawal Button** aan. Een shopper die zich wil terugtrekken uit een aankoop voert zijn **e-mailadres en order-ID** in, en Pandectes verifieert dat deze combinatie overeenkomt met een echte bestelling voordat het herroepingsverzoek mag doorgaan.

`read_all_orders`
**Definitie van Shopify.** Breidt de toegang tot bestellingen uit voorbij het standaard tijdvenster van 60 dagen van Shopify. Deze machtiging wordt pas verleend na een aparte beoordeling door Shopify en wordt samen met `read_orders` gebruikt.

**Hoe Pandectes het gebruikt.** Breidt de **EU Withdrawal Button** uit zodat deze ook **bestellingen van meer dan 60 dagen geleden** kan verifiëren, omdat herroepingsrechten ook op oudere aankopen van toepassing kunnen zijn. Het vergroot alleen het tijdsbereik van dezelfde hierboven beschreven orderverificatie en introduceert geen nieuw gebruik van ordergegevens.

`write_metaobject_definitions`
**Definitie van Shopify.** Toegang tot het aanmaken en wijzigen van metaobject-definities, die de structuur van een metaobject beschrijven.

**Hoe Pandectes het gebruikt.** Definieert de **gegevensstructuur die door de EU Withdrawal Button wordt gebruikt**, met name het schema voor het vastleggen dat voor een bestelling een herroeping of retour is aangevraagd. Het opzetten van deze structuur maakt het mogelijk dat het verzoek native binnen Shopify wordt opgeslagen en aan de betreffende bestelling wordt gekoppeld.

`write_metaobjects`
**Definitie van Shopify.** Toegang tot het aanmaken en wijzigen van metaobject-records die de gedefinieerde structuur volgen.

**Hoe Pandectes het gebruikt.** Maakt de afzonderlijke records aan op basis van de bovenstaande definitie. Wanneer een shopper een herroepingsverzoek voltooit, legt Pandectes dit vast als een **metaobject dat aan de bestelling is gekoppeld**, waarmee binnen Shopify wordt aangegeven dat een herroeping of retour is aangevraagd. Net als alle Pandectes-gegevens wordt dit **in Shopify** opgeslagen, niet in een Pandectes-database.


##### Het "Manage app"-scherm van Shopify begrijpen

Shopify toont een **"Manage app"**-scherm voor elke geïnstalleerde app in je admin, en het is de meest directe manier om te controleren waartoe Pandectes toegang heeft en wat het daadwerkelijk heeft gebruikt. Het scherm groepeert de toegang van de app onder de eigen overkoepelende labels van Shopify, die direct overeenkomen met de eerder in dit document beschreven machtigingen.

##### Activiteit en machtigingen vs. ongebruikte toegang

Shopify verdeelt de toegang van de app in twee lijsten:

* **Activity and permissions:** gebieden die de app onlangs heeft gebruikt, samen met het moment van laatste gebruik.
* **Unused access:** gebieden waartoe de app toegang *heeft* maar die hij de afgelopen 30 dagen **niet** heeft gebruikt.

Welke gebieden in welke lijst verschijnen, hangt af van de Pandectes-functies die je hebt ingeschakeld. Dit maakt het principe **"een verleende machtiging is geen gebruikte machtiging"** zichtbaar: een machtiging die aan een niet ingeschakelde functie is gekoppeld, staat gewoon onder **Unused access**. Een winkel die de modules Data Subject Requests of EU Withdrawal niet heeft geactiveerd, ziet bijvoorbeeld meestal de gebieden **Customers** en **Orders** (en, als geen pixelgebaseerde integratie actief is, **Store analytics**) als ongebruikt vermeld.

De onderstaande tabel koppelt elk gebiedslabel dat Shopify toont aan de onderliggende Pandectes-machtigingen:

| Area shown in Shopify | Access | Underlying Pandectes permission(s) |
| ---- |
| **Online Store** | View & Edit | `write_content`, `write_script_tags`, `write_themes` |
| **Shopify admin** | View & Edit | `write_files`, `write_privacy_settings` |
| **Custom data** | View & Edit | `write_metaobject_definitions`, `write_metaobjects` |
| **Customers** | View only | `read_customers` |
| **Orders** (All order history) | View only | `read_orders`, `read_all_orders` |
| **Store analytics** | View & Edit | `write_pixels` |

Het label "All order history" naast **Orders** weerspiegelt de machtiging `read_all_orders`, waarmee de EU Withdrawal Button bestellingen kan verifiëren die ouder zijn dan het standaardvenster van 60 dagen van Shopify.

##### Privacy: de persoonsgegevens waartoe deze app toegang heeft

Hetzelfde scherm toont de categorieën persoonsgegevens waartoe de app toegang heeft, en Shopify toont hier een bevestiging dat **Pandectes voldoet aan de vereisten voor gegevensverwerking en privacy**.

Onder **Customers** zie je twee categorieën:

* **Sensitive data (Name and Email address).** Deze worden gebruikt door de modules **Data Subject Requests** en **EU Withdrawal Button** en komen voort uit de machtiging `read_customers`. Dit zijn gegevens die Pandectes **expliciet aanvraagt**, omdat het verifiëren van de identiteit van een shopper essentieel is voor die op rechten gebaseerde functies. Zoals eerder vermeld worden de gegevens opgezocht en niet door Pandectes opgeslagen.
* **Device and activity data (Geolocation, IP address, Browser and operating system, Browsing behavior, and Client ID cookie).** Deze horen bij de **Web Pixel** (`write_pixels`). Ze worden **automatisch door Shopify gedeclareerd** voor elke app die een web pixel gebruikt en zijn **geen gegevens die Pandectes expliciet aanvraagt of voor eigen doeleinden verzamelt**.

Onder **Staff and contributors** toont Shopify gegevens over de winkeleigenaar en blogbijdragers (zoals naam, e-mailadres en IP-adres). Deze vermeldingen worden **door Shopify automatisch voor elke app toegevoegd** en zijn niet specifiek voor Pandectes.

### Snelle referentie

| Permission | Type | Primarily used by |
| ---- |
| `write_privacy_settings` | Write (read + write) | Cookie banner: regional consent rules |
| `write_pixels` | Write | Consent signals across the customer journey (e.g. Google Consent Mode) |
| `write_content` | Write | Creating the pages that host the app's blocks |
| `write_files` | Write | Hosting banner/widget logos and the auto-blocker rules file on Shopify's CDN |
| `write_themes` | Write (mostly read) | Detecting app-embed status; cleaning up legacy theme assets |
| `write_script_tags` | Write | Legacy-theme support and migration cleanup to app embeds |
| `read_customers` | Read | Data Subject Requests: email lookup |
| `read_orders` | Read | EU Withdrawal Button: order verification |
| `read_all_orders` | Read | EU Withdrawal Button: verifying orders older than 60 days |
| `write_metaobject_definitions` | Write | Defining the EU Withdrawal record structure |
| `write_metaobjects` | Write | Recording withdrawal requests against the order |


##### Referenties en verdere lectuur

Dit gedeelte bundelt de gezaghebbende bronnen achter de regelgeving waarmee deze app je helpt, samen met de officiële Shopify-documentatie die bepaalt hoe de app wordt geïnstalleerd en waartoe hij toegang mag hebben.

##### Regelgevende referenties

* **EU-herroepingsrecht, Richtlijn (EU) 2023/2673**, die de Richtlijn consumentenrechten (2011/83/EU) wijzigt. Hoewel de richtlijn vooral betrekking heeft op financiëledienstencontracten op afstand, voegt zij een nieuw **artikel 11 bis** toe aan de Richtlijn consumentenrechten, dat een duidelijk zichtbare, gebruiksvriendelijke online **herroepingsfunctie** ("herroepingsknop") verplicht stelt. Deze is van toepassing op overeenkomsten op afstand die via een online interface (website, app of klantenportaal) worden gesloten, overal waar een wettelijk herroepingsrecht van 14 dagen bestaat, zonder de herroepingsrechten uit te breiden of de bestaande uitzonderingen te wijzigen. Het principe is dat online een overeenkomst herroepen minstens zo eenvoudig moet zijn als haar aangaan, en de verplichting geldt ook voor bedrijven van buiten de EU die zich op EU-consumenten richten. De lidstaten moesten de richtlijn vóór 19 december 2025 omzetten in nationaal recht, met toepassing van de regels vanaf **19 juni 2026**.
* Samenvatting in begrijpelijke taal: [https://eur-lex.europa.eu/EN/legal-content/summary/consumer-information-right-of-withdrawal-and-other-consumer-rights.html](https://eur-lex.europa.eu/EN/legal-content/summary/consumer-information-right-of-withdrawal-and-other-consumer-rights.html)
* Officiële tekst: https://eur-lex.europa.eu/eli/dir/2023/2673/oj/eng
* **AVG (GDPR), Verordening (EU) 2016/679.** De Algemene verordening gegevensbescherming van de EU, die rechten van betrokkenen vastlegt zoals inzage, gegevensoverdraagbaarheid, rectificatie en wissing ("recht om vergeten te worden").
* Officiële tekst: https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng
* Samenvatting in begrijpelijke taal: https://eur-lex.europa.eu/EN/legal-content/summary/general-data-protection-regulation-gdpr.html
* **ePrivacyrichtlijn, Richtlijn 2002/58/EG**, zoals gewijzigd door **Richtlijn 2009/136/EG** (de "cookie"-wijziging). Regelt privacy in de sector van elektronische communicatie, inclusief de verplichting om toestemming te verkrijgen voordat niet-essentiële cookies op het apparaat van een gebruiker worden opgeslagen of geraadpleegd.
* Richtlijn 2002/58/EG: https://eur-lex.europa.eu/eli/dir/2002/58/oj/eng
* Geconsolideerde versie (inclusief de wijziging van 2009): https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02002L0058-20091219
* Wijzigingsrichtlijn 2009/136/EG: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex:32009L0136

### Shopify-documentatie

* Shopify API access scopes: https://shopify.dev/docs/api/usage/access-scopes
* Enable Shopify-managed installations for your app: https://shopify.dev/docs/apps/build/authentication-authorization/app-installation
* Managing access scopes: https://shopify.dev/docs/apps/build/authentication-authorization/app-installation/manage-access-scopes
* Token exchange (how embedded apps obtain access tokens): https://shopify.dev/docs/apps/build/authentication-authorization/access-tokens/token-exchange
* Web Pixels API: https://shopify.dev/docs/api/web-pixels-api
* Protected customer data requirements: https://shopify.dev/docs/apps/launch/protected-customer-data

### Shopify-kwaliteitsprogramma's

* Built for Shopify overview: https://shopify.dev/docs/apps/launch/built-for-shopify
* Built for Shopify requirements: https://shopify.dev/docs/apps/launch/built-for-shopify/requirements

*Dit document beschrijft de machtigingen die Pandectes GDPR Compliance aanvraagt en hoe ze worden gebruikt. Als je vragen hebt over een machtiging of het gebruik ervan wilt bevestigen, kun je op elk moment het beheerscherm van de app in je Shopify-admin bekijken.*