> ## 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).

# Permisos y autenticación explicados

##### Acerca de este documento

Pandectes GDPR Compliance ayuda a tu tienda a cumplir las obligaciones de privacidad, consentimiento y accesibilidad en distintas regiones del mundo. Para ello, la aplicación solicita un conjunto definido de permisos de Shopify, conocidos como **access scopes**.

Este documento explica, en lenguaje sencillo, cada permiso que solicita la aplicación: para qué usa Shopify cada permiso y cómo lo usa Pandectes. A continuación describe cómo se instala y se autentica la aplicación, por qué los permisos están configurados de esa manera y cómo puedes verificar por ti mismo cómo se utilizan esos permisos.

El objetivo es la transparencia total. Nada de lo que se explica aquí requiere conocimientos técnicos sobre cómo está construida la aplicación; simplemente explica *qué* pedimos y *por qué*.


##### Cómo gestiona Pandectes tus datos

Antes de ver los permisos individuales, conviene entender un principio que se aplica a toda la aplicación:

* **Sin almacenamiento interno de los datos de tus clientes o pedidos.** Pandectes no conserva los datos de tus clientes ni de tus pedidos en su propia base de datos.
* **Consultas, no copias.** Cuando una función necesita verificar algo (por ejemplo, confirmar que una dirección de correo electrónico pertenece a un cliente, o que un correo electrónico y un ID de pedido coinciden con un pedido real), Pandectes realiza una consulta a través de sus servidores de aplicación y utiliza únicamente el resultado de esa comprobación.
* **La persistencia se queda dentro de Shopify.** Cuando un registro realmente debe guardarse (como una solicitud de desistimiento de la UE registrada), se escribe de nuevo en el almacenamiento propio de Shopify y se vincula al pedido correspondiente, en lugar de ser almacenado por Pandectes.

Este enfoque de minimización de datos es la razón por la que varios permisos de abajo se describen como "solo consultas".


##### Cómo se instala y se autentica Pandectes

Pandectes utiliza la **instalación gestionada por Shopify (Shopify managed installation)**, el método moderno que Shopify recomienda para instalar aplicaciones y mantener sus permisos actualizados.

Con la instalación gestionada, es Shopify quien se encarga de instalar la aplicación y de aplicar cualquier cambio de permisos, sin llevarte por pantallas de autorización adicionales. Para ti, esto significa **instalaciones y actualizaciones más rápidas y fluidas**, sin redirecciones de página, sin pantallas que parpadean y sin solicitudes de consentimiento repetidas. En segundo plano, la aplicación obtiene tokens de acceso de corta duración mediante el intercambio seguro de tokens de Shopify, en lugar de los antiguos flujos basados en redirecciones.

Una característica definitoria de la instalación gestionada es que una aplicación declara el **conjunto completo de permisos que puede utilizar en una única configuración central** que envía a Shopify. Shopify aplica entonces esa configuración de forma coherente a todas las tiendas que instalan la aplicación. Pandectes no solicita, y bajo este modelo no puede solicitar, un conjunto de permisos distinto y seleccionado a mano para cada tienda individual.

##### Por qué los permisos se declaran de forma centralizada

Es una decisión de arquitectura deliberada, y te favorece de varias maneras:

* **Una configuración única, coherente y auditable.** Todas las tiendas ejecutan Pandectes con el mismo conjunto de permisos revisado. No hay variaciones por tienda que seguir, lo que mantiene el comportamiento de la aplicación predecible y fácil de entender para ti, para Pandectes y para Shopify.
* **Activación instantánea de funciones, sin fricción.** Pandectes es modular: el banner de cookies, el widget de accesibilidad, las Data Subject Requests, Do Not Sell My Data y el EU Withdrawal Button pueden activarse o desactivarse en cualquier momento. Como los permisos necesarios ya están en su sitio, activar un módulo funciona de inmediato: sin reinstalación, sin nueva pantalla de autorización y sin interrupciones en tu tienda.
* **Un permiso concedido no es un permiso utilizado.** Que se conceda un permiso solo significa que la aplicación *puede* usarlo, si y cuando activas la función relacionada. Un permiso que pertenece a un módulo que no has activado simplemente permanece inactivo. Combinado con el principio de minimización de datos anterior, esto significa que Pandectes lee o escribe únicamente lo que una función activa realmente necesita.

Así, si por ejemplo no has activado el EU Withdrawal Button, los permisos relacionados con pedidos asociados a él permanecen sin usar hasta que decidas activar esa función.

##### Revisado y validado por Shopify

El conjunto de permisos que solicita Pandectes **no se elige de forma arbitraria y no puede modificarse discretamente.** Cada permiso es revisado y confirmado por Shopify en el contexto de dos programas en los que participa Pandectes:

* **Shopify Plus Partner.** Pandectes es un **Shopify Plus Partner** reconocido, un estatus que Shopify concede a socios verificados y consolidados que cumplen sus estándares de calidad, experiencia y confianza.
* **Built for Shopify.** Pandectes GDPR Compliance cuenta con la distinción **Built for Shopify**, el nivel más alto de reconocimiento de aplicaciones de Shopify, concedido solo a las aplicaciones que cumplen sus estrictos requisitos de calidad, rendimiento, seguridad y tratamiento responsable de los datos.

Como Pandectes participa en ambos programas, los permisos descritos en este documento han sido **examinados y validados por Shopify según sus propios estándares publicados**, y cualquier cambio en lo que solicita la aplicación está sujeto a la misma revisión. En resumen, el acceso que solicita Pandectes se rige por los estándares de Shopify y no se fija a discreción exclusiva de Pandectes, lo que garantiza que se cumplan todos los estándares aplicables.

##### Puedes verificar cómo se usan los permisos

Shopify ofrece una **pantalla de gestión para cada aplicación instalada** en el admin de tu tienda. Desde ahí puedes revisar los permisos exactos que se han concedido a Pandectes y ver si cada uno se ha utilizado realmente, **incluido si un permiso determinado se ha utilizado alguna vez** en tu tienda. Como es la forma más clara de confirmar que el acceso real de la aplicación coincide con lo descrito aquí, la sección *"Understanding Shopify's 'Manage app' screen"* de más abajo explica exactamente qué muestra y cómo se corresponde con los permisos de este documento.


##### Permisos que solicita Pandectes

A continuación se muestra cada permiso que solicita Pandectes, agrupado por finalidad. De cada uno encontrarás la definición propia de Shopify junto con una explicación de cómo lo usa Pandectes.

> **Una nota sobre los permisos "write":** En Shopify, un permiso `write_` generalmente también concede el acceso de **lectura** correspondiente para el mismo recurso. Por eso es posible que no veas permisos de "read" independientes para contenido, archivos, temas o metaobjetos: el permiso de escritura correspondiente ya cubre su lectura. En los casos en que Pandectes solo necesita *leer* un recurso (por ejemplo, comprobar tu `theme.liquid`), lo hace sin modificar nada.

##### Grupo 1: Consentimiento y aplicación de la privacidad regional

Estos permisos permiten que el banner de cookies aplique el comportamiento de consentimiento correcto y transmita las señales de consentimiento a tus otras herramientas.

`write_privacy_settings`
**Definición de Shopify.** Acceso a los ajustes de privacidad de la tienda y a la configuración del banner de cookies (`PrivacySettings`, `CookieBanner`).

**Cómo lo usa Pandectes.** Configura los **ajustes de privacidad regionales** de tu tienda, definiendo qué regiones del mundo requieren consentimiento y cuáles no. Esto es esencial para que el banner de cookies se comporte correctamente en cada región, de modo que se apliquen las normas adecuadas (como el RGPD (GDPR) en la UE/EEE y la CPRA/CCPA en California) a cada visitante.

`write_pixels`
**Definición de Shopify.** Acceso a la Web Pixels API para crear y gestionar un web pixel.

**Cómo lo usa Pandectes.** Registra **Web Pixels** que permiten que las integraciones de Pandectes, como **Google Consent Mode**, funcionen de forma coherente a lo largo de todo el recorrido del cliente: la tienda (antes del checkout), el checkout y la página de agradecimiento posterior al checkout.

##### Grupo 2: Colocar Pandectes en tu tienda

Estos permisos permiten que la aplicación añada sus funciones a tu tienda y entregue recursos de apoyo, respetando siempre los métodos recomendados por Shopify.

`write_content`
**Definición de Shopify.** Acceso al contenido de la tienda en línea, como Pages, Blogs, Articles y Comments.

**Cómo lo usa Pandectes.** Crea las **páginas de la tienda que alojan los bloques de la aplicación**, como las páginas **Cookie Declaration**, **Data Subject Request**, **Do Not Sell My Data** y **EU Withdrawal**, para que no tengas que crearlas y conectarlas a mano.

`write_files`
**Definición de Shopify.** Acceso a los Files genéricos del almacenamiento de archivos de la tienda.

**Cómo lo usa Pandectes.** Sube recursos de apoyo al área **Files** de tu tienda para que se entreguen a través de la **CDN de Shopify**, que es rápida y muy resistente. Entre estos recursos se encuentran los logotipos utilizados en el banner de cookies y el widget de accesibilidad, y el archivo `pandectes-rules.js` que contiene las reglas del auto-blocker de Pandectes.

`write_themes`
**Definición de Shopify.** Acceso a los archivos y recursos del tema de la tienda en línea (`OnlineStoreTheme`).

**Cómo lo usa Pandectes.** Se usa de forma deliberadamente limitada. En las tiendas modernas, principalmente **lee** tu `theme.liquid` para detectar si los app embeds del banner de cookies y del widget de accesibilidad están activados, y se utiliza para **limpiar** los recursos que versiones anteriores de la aplicación añadieron previamente al tema. En línea con el programa **Built for Shopify**, en el que participa Pandectes, la aplicación ya no crea, modifica ni elimina recursos del tema.

`write_script_tags`
**Definición de Shopify.** Acceso a los objetos ScriptTag, que cargan scripts en la tienda.

**Cómo lo usa Pandectes.** Se mantiene principalmente por **compatibilidad**. En los temas "vintage" más antiguos que no son compatibles con Online Store 2.0, las script tags son la única forma disponible de añadir el código de tienda que necesita la aplicación. En las tiendas modernas, Pandectes entrega su **banner de cookies** y su **widget de accesibilidad** mediante app embeds (el método recomendado por Shopify), por lo que en la práctica este permiso se usa ahora principalmente para **eliminar script tags heredadas** y sustituirlas por app embeds cuando se migra una tienda. Al igual que con los recursos del tema, el programa **Built for Shopify** no permite que las aplicaciones añadan script tags, por lo que en las tiendas modernas Pandectes no las crea; este permiso sirve únicamente para la compatibilidad con versiones anteriores y la limpieza.

##### Grupo 3: Módulos de derechos de privacidad (Data Subject Requests y EU Withdrawal)

Estos permisos respaldan las funciones que permiten a tus compradores ejercer sus derechos. Pandectes **consulta, no almacena** estos datos; cuando un resultado debe guardarse, se escribe de nuevo en Shopify.

 `read_customers`
**Definición de Shopify.** Acceso a los registros de clientes y a los datos relacionados de Segment, Company y Company Location.

**Cómo lo usa Pandectes.** Impulsa el módulo **Data Subject Requests (DSR)**. Cuando un visitante ejerce un derecho de privacidad, ya sea el derecho de **acceso y portabilidad de datos**, el derecho de **rectificación** o el derecho de **supresión** ("derecho al olvido"), Pandectes consulta la dirección de correo electrónico que facilita para confirmar si pertenece a un cliente de tu tienda, antes de iniciar el proceso de verificación. El módulo está disponible tanto como un **app block** que puedes añadir a cualquier página como en forma de **extensión de cuenta de cliente** que se muestra en el área de cuentas de clientes cuando la activas. Son **solo consultas**; Pandectes no almacena estos datos de clientes.

 `read_orders`
**Definición de Shopify.** Acceso a Orders, Fulfillments, Order Transactions y Abandoned Checkouts (por defecto, los de los últimos 60 días).

**Cómo lo usa Pandectes.** Impulsa el **EU Withdrawal Button**. Un comprador que desea desistir de una compra introduce su **dirección de correo electrónico y el ID del pedido**, y Pandectes verifica que esta combinación coincide con un pedido real antes de permitir que la solicitud de desistimiento continúe.

`read_all_orders`
**Definición de Shopify.** Amplía el acceso a pedidos más allá de la ventana predeterminada de 60 días de Shopify. Este permiso solo se concede tras una revisión específica de Shopify y se utiliza junto con `read_orders`.

**Cómo lo usa Pandectes.** Amplía el **EU Withdrawal Button** para que también pueda verificar **pedidos realizados hace más de 60 días**, ya que el derecho de desistimiento puede aplicarse a compras más antiguas. Solo amplía el intervalo de tiempo de la misma verificación de pedidos descrita arriba y no introduce ningún uso nuevo de los datos de pedidos.

`write_metaobject_definitions`
**Definición de Shopify.** Acceso para crear y modificar definiciones de metaobjetos, que describen la estructura de un metaobjeto.

**Cómo lo usa Pandectes.** Define la **estructura de datos utilizada por el EU Withdrawal Button**, en concreto el esquema para registrar que se ha solicitado un desistimiento o una devolución para un pedido. Establecer esta estructura es lo que permite que la solicitud se almacene de forma nativa en Shopify y se asocie al pedido correspondiente.

`write_metaobjects`
**Definición de Shopify.** Acceso para crear y modificar registros de metaobjetos que siguen la estructura definida.

**Cómo lo usa Pandectes.** Crea los registros individuales a partir de la definición anterior. Cuando un comprador completa una solicitud de desistimiento, Pandectes la registra como un **metaobjeto vinculado al pedido**, señalando dentro de Shopify que se solicitó un desistimiento o una devolución. Como con todos los datos de Pandectes, esto se almacena **en Shopify**, no en una base de datos de Pandectes.


##### Understanding Shopify's "Manage app" screen

Shopify muestra una pantalla **"Manage app"** para cada aplicación instalada en tu admin, y es la forma más directa de verificar a qué puede acceder Pandectes y qué ha utilizado realmente. La pantalla agrupa el acceso de la aplicación bajo las propias etiquetas de alto nivel de Shopify, que se corresponden directamente con los permisos descritos anteriormente en este documento.

##### Activity and permissions vs. unused access

Shopify separa el acceso de la aplicación en dos listas:

* **Activity and permissions:** áreas que la aplicación ha utilizado recientemente, junto con cuándo se usaron por última vez.
* **Unused access:** áreas a las que la aplicación *puede* acceder pero que **no** ha utilizado en los últimos 30 días.

Las áreas que aparecen en cada lista dependen de las funciones de Pandectes que tengas activadas. Este es el principio de **"un permiso concedido no es un permiso utilizado"** hecho visible: un permiso vinculado a una función que no has activado simplemente aparece en **Unused access**. Por ejemplo, una tienda que no ha activado los módulos Data Subject Requests o EU Withdrawal normalmente verá las áreas **Customers** y **Orders** (y, si no hay ninguna integración basada en píxeles activa, **Store analytics**) listadas como sin usar.

La tabla de abajo asocia cada etiqueta de área que muestra Shopify con los permisos de Pandectes subyacentes:

| Área mostrada en Shopify | Acceso | Permiso(s) de Pandectes subyacente(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` |

La etiqueta "All order history" que se muestra junto a **Orders** refleja el permiso `read_all_orders`, que permite al EU Withdrawal Button verificar pedidos de más de la ventana predeterminada de 60 días de Shopify.

##### Privacy: the personal data this app can access

La misma pantalla enumera las categorías de datos personales a las que puede acceder la aplicación, y Shopify muestra aquí una confirmación de que **Pandectes cumple sus requisitos de tratamiento de datos y privacidad**.

En **Customers**, verás dos categorías:

* **Sensitive data (Name and Email address).** Los usan los módulos **Data Subject Requests** y **EU Withdrawal Button** y provienen del permiso `read_customers`. Son datos que Pandectes **solicita explícitamente**, porque verificar la identidad de un comprador es esencial para estas funciones basadas en derechos. Como se indicó antes, los datos se consultan, no los almacena Pandectes.
* **Device and activity data (Geolocation, IP address, Browser and operating system, Browsing behavior, and Client ID cookie).** Acompañan al **Web Pixel** (`write_pixels`). Shopify los **declara automáticamente** para cualquier aplicación que utilice un web pixel y **no son datos que Pandectes solicite o recopile explícitamente para sus propios fines**.

En **Staff and contributors**, Shopify enumera los datos relativos al propietario de la tienda y a los colaboradores del blog (como nombre, dirección de correo electrónico y dirección IP). Estas entradas **las añade Shopify automáticamente para todas las aplicaciones** y no son específicas de Pandectes.

### Referencia rápida

| Permiso | Tipo | Usado principalmente por |
| ---- |
| `write_privacy_settings` | Write (read + write) | Banner de cookies: reglas de consentimiento regionales |
| `write_pixels` | Write | Señales de consentimiento a lo largo del recorrido del cliente (p. ej., Google Consent Mode) |
| `write_content` | Write | Creación de las páginas que alojan los bloques de la aplicación |
| `write_files` | Write | Alojamiento de los logotipos del banner/widget y del archivo de reglas del auto-blocker en la CDN de Shopify |
| `write_themes` | Write (mostly read) | Detección del estado del app embed; limpieza de recursos heredados del tema |
| `write_script_tags` | Write | Compatibilidad con temas heredados y limpieza de migración a app embeds |
| `read_customers` | Read | Data Subject Requests: consulta de correo electrónico |
| `read_orders` | Read | EU Withdrawal Button: verificación de pedidos |
| `read_all_orders` | Read | EU Withdrawal Button: verificación de pedidos de más de 60 días |
| `write_metaobject_definitions` | Write | Definición de la estructura del registro de EU Withdrawal |
| `write_metaobjects` | Write | Registro de solicitudes de desistimiento en el pedido |


##### Referencias y lecturas adicionales

Esta sección reúne las fuentes oficiales de las normativas que esta aplicación te ayuda a cumplir, junto con la documentación oficial de Shopify que rige cómo se instala la aplicación y a qué puede acceder.

##### Referencias normativas

* **Derecho de desistimiento de la UE, Directiva (UE) 2023/2673**, que modifica la Directiva sobre los derechos de los consumidores (2011/83/UE). Aunque se ocupa principalmente de los contratos a distancia de servicios financieros, añade un nuevo **artículo 11 bis** a la Directiva sobre los derechos de los consumidores que exige una **función de desistimiento** en línea claramente visible y fácil de usar ("botón de desistimiento"). Se aplica a los contratos a distancia celebrados a través de una interfaz en línea (sitio web, aplicación o portal de clientes) siempre que exista un derecho legal de desistimiento de 14 días, sin ampliar los derechos de desistimiento ni cambiar las excepciones existentes. El principio es que desistir de un contrato en línea debe ser al menos tan fácil como celebrarlo, y la obligación también alcanza a las empresas de fuera de la UE que dirigen sus actividades a consumidores de la UE. Los Estados miembros debían transponerla a su legislación nacional antes del 19 de diciembre de 2025, y las normas se aplican a partir del **19 de junio de 2026**.
* Resumen en lenguaje sencillo: [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)
* Texto oficial: https://eur-lex.europa.eu/eli/dir/2023/2673/oj/eng
* **RGPD (GDPR), Reglamento (UE) 2016/679.** El Reglamento General de Protección de Datos de la UE, que establece derechos de los interesados como el acceso, la portabilidad de datos, la rectificación y la supresión ("derecho al olvido").
* Texto oficial: https://eur-lex.europa.eu/eli/reg/2016/679/oj/eng
* Resumen en lenguaje sencillo: https://eur-lex.europa.eu/EN/legal-content/summary/general-data-protection-regulation-gdpr.html
* **Directiva ePrivacy, Directiva 2002/58/CE**, modificada por la **Directiva 2009/136/CE** (la modificación de las "cookies"). Regula la privacidad en el sector de las comunicaciones electrónicas, incluido el requisito de obtener consentimiento antes de almacenar o acceder a cookies no esenciales en el dispositivo de un usuario.
* Directiva 2002/58/CE: https://eur-lex.europa.eu/eli/dir/2002/58/oj/eng
* Versión consolidada (incluida la modificación de 2009): https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A02002L0058-20091219
* Directiva modificativa 2009/136/CE: https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex:32009L0136

### Documentación de Shopify

* 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

### Programas de calidad de Shopify

* 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

*Este documento describe los permisos que solicita Pandectes GDPR Compliance y cómo se utilizan. Si tienes preguntas sobre cualquier permiso, o deseas confirmar su uso, puedes revisar en cualquier momento la pantalla de gestión de la aplicación en tu admin de Shopify.*