Documento legale · Privacy Policy Versione 1.0 · Giugno 2026
GDPR · Reg. UE 2016/679 · Art. 13

Informativa sulla
Privacy

Titolare: Zencode Studio
P.IVA: 04167681206
Aggiornata: 1 giugno 2026
Versione: 1.0

Indice

  1. Titolare del trattamento
  2. Principio fondamentale — privacy by design
  3. Quali dati trattiamo e come
  4. Assistente AI e dati inviati a terzi
  5. Pagamenti e Stripe
  6. Cookie e tracciamento
  7. Base giuridica del trattamento
  8. Periodo di conservazione
  9. I tuoi diritti
  10. Minori
  11. Modifiche alla presente informativa
  12. Contatti e reclami

In breve: I tuoi dati fiscali (fatturato, ATECO, contributi) non escono mai dal tuo browser. Nessun server di EioPago li vede. Le domande all'assistente AI vengono processate da OpenAI in forma anonimizzata. Per i piani a pagamento, i dati di fatturazione sono gestiti da Stripe.

01Titolare del trattamento

Il titolare del trattamento dei dati personali raccolti tramite il sito eiopago.studio e i relativi servizi è:

Zencode Studio

TitolareZencode Studio — ditta individuale
P.IVA04167681206
SedeBologna, Italia

02Principio fondamentale — privacy by design

EioPago è progettato secondo il principio di privacy by design sancito dall'art. 25 del GDPR. Questo significa che la protezione dei dati personali è integrata nell'architettura del servizio fin dalla sua progettazione, non aggiunta successivamente.

La scelta tecnica fondamentale di EioPago è che tutti i calcoli fiscali avvengono interamente nel browser dell'utente (client-side). I dati fiscali inseriti — fatturato, codice ATECO, gestione INPS, contributi — non vengono mai trasmessi a server di proprietà di Zencode Studio né memorizzati su infrastrutture esterne.

Conseguenza pratica: Zencode Studio non conosce, non vede e non conserva alcuna informazione fiscale degli utenti che utilizzano le funzioni di calcolo di EioPago.

03Quali dati trattiamo e come

Tipo di dato Dove viene elaborato Trasmesso a server Conservazione
Fatturato annuo Browser dell'utente No Solo localStorage del dispositivo
Codice ATECO e coefficiente Browser dell'utente No Solo localStorage del dispositivo
Gestione INPS / cassa Browser dell'utente No Solo localStorage del dispositivo
PDF precompilato caricato Browser dell'utente (pdf.js) No Non conservato — elaborazione in memoria
Domande all'assistente AI Browser + API OpenAI Sì — OpenAI (anonimizzato) Secondo policy OpenAI
Email (piani a pagamento) Server Zencode + Stripe Fino a cancellazione account
Dati di pagamento Stripe (mai su server Zencode) Sì — solo a Stripe Secondo policy Stripe
Log di navigazione (IP, user agent) Server di hosting Sì — hosting provider Max 30 giorni — log tecnici

localStorage — dati salvati sul dispositivo

Le funzioni "Salva posizione" di EioPago utilizzano il localStorage del browser, una tecnologia che memorizza dati esclusivamente sul dispositivo dell'utente, senza trasmissione a server esterni. Il localStorage non è un cookie e non è soggetto alla normativa ePrivacy sui cookie.

L'utente può cancellare in qualsiasi momento i dati salvati nel localStorage tramite le impostazioni del browser (Impostazioni → Privacy → Cancella dati di navigazione → Dati siti).

Dati di navigazione tecnici

Come qualsiasi sito web, il server di hosting registra automaticamente dati tecnici di accesso: indirizzo IP, tipo di browser, pagine visitate, data e ora dell'accesso. Questi dati sono necessari per il corretto funzionamento tecnico del servizio e per la sicurezza informatica. Vengono conservati per un massimo di 30 giorni e non vengono utilizzati per profilazione.

04Assistente AI e dati inviati a terzi

L'assistente AI di EioPago utilizza le API di OpenAI (OpenAI, L.L.C., 3180 18th Street, San Francisco, CA 94110, USA) per elaborare le domande degli utenti.

Cosa viene inviato a OpenAI

Quando l'utente pone una domanda all'assistente AI, il sistema trasmette alle API di OpenAI:

Non vengono mai inviati a OpenAI: nome, cognome, codice fiscale, partita IVA, indirizzo, dati bancari o qualsiasi altro dato identificativo dell'utente. Il contesto fiscale è anonimizzato per fasce (es. "fatturato tra 30.000 e 40.000€") anziché con valori esatti.

Trasferimento dati verso USA

OpenAI ha sede negli Stati Uniti. Il trasferimento dei dati avviene nel rispetto delle garanzie previste dall'art. 46 GDPR, in quanto OpenAI aderisce al Data Privacy Framework EU-USA e mette a disposizione clausole contrattuali standard (Standard Contractual Clauses).

Per maggiori informazioni sul trattamento dei dati da parte di OpenAI: openai.com/privacy

Data Processing Agreement con OpenAI

Zencode Studio ha sottoscritto il Data Processing Agreement (DPA) messo a disposizione da OpenAI per i clienti API, ai sensi dell'art. 28 GDPR, che regola i rapporti tra titolare (Zencode Studio) e responsabile del trattamento (OpenAI).

05Pagamenti e Stripe

I pagamenti per i piani a pagamento (Base, AI, Studio) sono gestiti esclusivamente tramite Stripe (Stripe, Inc., 354 Oyster Point Blvd, South San Francisco, CA 94080, USA).

Zencode Studio non vede, non riceve e non conserva mai i dati delle carte di credito o di pagamento degli utenti. Tutti i dati di pagamento sono trasmessi direttamente a Stripe e gestiti secondo i loro standard di sicurezza PCI DSS Level 1.

I dati che Zencode Studio riceve da Stripe dopo un pagamento riuscito sono: indirizzo email, piano sottoscritto, data di inizio e scadenza dell'abbonamento, identificativo cliente Stripe.

Per maggiori informazioni: stripe.com/it/privacy

07Base giuridica del trattamento

TrattamentoBase giuridica (art. 6 GDPR)
Funzioni di calcolo (dati locali)Non applicabile — dati non trasmessi a Zencode Studio
Domande all'assistente AIArt. 6(1)(b) — esecuzione del contratto / servizio richiesto
Gestione account e abbonamentoArt. 6(1)(b) — esecuzione del contratto
Fatturazione e obblighi fiscaliArt. 6(1)(c) — obbligo legale
Log tecnici di sicurezzaArt. 6(1)(f) — legittimo interesse alla sicurezza
Comunicazioni di servizio (scadenze, aggiornamenti)Art. 6(1)(b) — esecuzione del contratto

08Periodo di conservazione

09I tuoi diritti

In qualità di interessato, hai i seguenti diritti ai sensi degli artt. 15-22 del GDPR:

Per esercitare i tuoi diritti scrivi a privacy@eiopago.studio. Risponderemo entro 30 giorni come previsto dall'art. 12 GDPR.

Nota sui dati locali: I dati conservati nel localStorage del tuo browser sono sotto il tuo esclusivo controllo. Puoi cancellarli in qualsiasi momento dalle impostazioni del browser, senza necessità di contattarci.

10Minori

EioPago è un servizio destinato esclusivamente a persone maggiorenni titolari di Partita IVA. Non raccogliamo consapevolmente dati personali di minori di 18 anni. Se ritieni che un minore abbia fornito dati personali tramite il nostro servizio, contattaci immediatamente a privacy@eiopago.studio per la rimozione.

11Modifiche alla presente informativa

Zencode Studio si riserva il diritto di modificare questa informativa in qualsiasi momento, in particolare a seguito di modifiche normative o di aggiornamenti del servizio. Le modifiche sostanziali saranno comunicate agli utenti registrati via email con almeno 15 giorni di preavviso.

La data dell'ultima modifica è sempre indicata in testa al documento. Continuando a utilizzare EioPago dopo la pubblicazione delle modifiche, l'utente accetta la versione aggiornata dell'informativa.

Le versioni precedenti dell'informativa sono archiviate e disponibili su richiesta scrivendo a privacy@eiopago.studio.

12Contatti e reclami

Per qualsiasi domanda relativa al trattamento dei tuoi dati personali o per esercitare i tuoi diritti:

Contatti privacy

Oggetto consigliato"Richiesta GDPR — [tipo di richiesta]"
Tempo di rispostaEntro 30 giorni (art. 12 GDPR)

Hai anche il diritto di proporre reclamo all'autorità di controllo competente. In Italia è il Garante per la protezione dei dati personali:

Garante Privacy Italia

Emailgarante@gpdp.it
PECprotocollo@pec.gpdp.it
Telefono+39 06 69677 1
3. Aggiungi il CSS del banner al tuo style.css ===================================================== */ const GA_ID = 'G-XXXXXXXXXX'; // ← sostituisci con il tuo ID GA4 (function() { 'use strict'; const CONSENT_KEY = 'eiopago_cookie_consent'; const CONSENT_DURATION = 365; // giorni // --- Leggi consenso salvato --- function getConsent() { try { const raw = localStorage.getItem(CONSENT_KEY); return raw ? JSON.parse(raw) : null; } catch(e) { return null; } } // --- Salva consenso --- function saveConsent(analytics) { const consent = { analytics, date: new Date().toISOString(), version: '1.0' }; localStorage.setItem(CONSENT_KEY, JSON.stringify(consent)); // Cookie di backup per SSR/server-side const exp = new Date(); exp.setDate(exp.getDate() + CONSENT_DURATION); document.cookie = `${CONSENT_KEY}=${analytics ? 'granted' : 'denied'}; expires=${exp.toUTCString()}; path=/; SameSite=Lax`; } // --- Carica Google Analytics (solo con consenso) --- function loadGA() { if (document.getElementById('ga-script')) return; const s = document.createElement('script'); s.id = 'ga-script'; s.async = true; s.src = `https://www.googletagmanager.com/gtag/js?id=${GA_ID}`; document.head.appendChild(s); window.dataLayer = window.dataLayer || []; function gtag(){ dataLayer.push(arguments); } window.gtag = gtag; gtag('js', new Date()); gtag('config', GA_ID, { anonymize_ip: true, // Anonimizza IP — Garante italiano allow_google_signals: false, // No segnali Google allow_ad_personalization_signals: false, restricted_data_processing: true, }); } // --- Revoca consenso analytics --- function revokeGA() { if (window.gtag) { window.gtag('consent', 'update', { analytics_storage: 'denied' }); } } // --- Crea banner HTML --- function createBanner() { const banner = document.createElement('div'); banner.id = 'cookie-banner'; banner.setAttribute('role', 'dialog'); banner.setAttribute('aria-label', 'Preferenze cookie'); banner.innerHTML = `
🍪 Questo sito usa i cookie
Usiamo cookie tecnici essenziali (sempre attivi) e Google Analytics 4 con IP anonimizzato per migliorare il servizio — solo con il tuo consenso. I dati fiscali restano nel tuo browser, non in cookie. Cookie Policy · Privacy Policy
`; document.body.appendChild(banner); // Events document.getElementById('cb-accept').addEventListener('click', () => { saveConsent(true); loadGA(); hideBanner(); }); document.getElementById('cb-reject').addEventListener('click', () => { saveConsent(false); revokeGA(); hideBanner(); }); document.getElementById('cb-settings').addEventListener('click', () => { const panel = document.getElementById('cb-panel'); panel.style.display = panel.style.display === 'none' ? 'block' : 'none'; }); document.getElementById('cb-save').addEventListener('click', () => { const analytics = document.getElementById('cb-analytics').checked; saveConsent(analytics); if (analytics) loadGA(); else revokeGA(); hideBanner(); }); } function hideBanner() { const b = document.getElementById('cookie-banner'); if (b) { b.style.opacity = '0'; setTimeout(() => b.remove(), 300); } } // --- CSS banner (iniettato inline) --- function injectCSS() { const style = document.createElement('style'); style.textContent = ` #cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 99999; background: #1a1714; color: #f2ede6; border-top: 3px solid #c0392b; font-family: 'DM Sans', sans-serif; font-size: 14px; transition: opacity 0.3s; } .cb-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem 2rem; flex-wrap: wrap; } .cb-text { flex: 1; min-width: 280px; } .cb-title { font-weight: 600; margin-bottom: 4px; font-size: 14px; } .cb-desc { font-size: 12px; color: rgba(242,237,230,0.65); line-height: 1.6; } .cb-link { color: #e87060; text-decoration: none; } .cb-link:hover { text-decoration: underline; } .cb-actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; } .cb-btn { padding: 8px 16px; border-radius: 3px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.15s; font-family: 'DM Sans', sans-serif; white-space: nowrap; border: none; } .cb-filled { background: #c0392b; color: white; } .cb-filled:hover { background: #a93226; } .cb-outline { background: none; border: 1px solid rgba(242,237,230,0.25); color: rgba(242,237,230,0.8); } .cb-outline:hover { border-color: rgba(242,237,230,0.5); color: #f2ede6; } .cb-ghost { background: none; color: rgba(242,237,230,0.5); font-size: 12px; padding: 8px 10px; } .cb-ghost:hover { color: #f2ede6; } .cb-panel { background: #111110; border-top: 1px solid rgba(255,255,255,0.08); } .cb-panel-inner { max-width: 1200px; margin: 0 auto; padding: 1rem 2rem; } .cb-toggle-row { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); gap: 1rem; } .cb-toggle-row:last-of-type { border-bottom: none; } .cb-toggle-info { flex: 1; } .cb-toggle-info strong { display: block; font-size: 13px; color: #f2ede6; margin-bottom: 2px; } .cb-toggle-info span { font-size: 11px; color: rgba(242,237,230,0.5); } .cb-toggle-wrap { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .cb-toggle-label { font-size: 11px; color: rgba(242,237,230,0.5); } .cb-disabled { opacity: 0.5; } input[type="checkbox"]#cb-analytics { width: 36px; height: 20px; cursor: pointer; } @media(max-width:640px) { .cb-inner { padding: 1rem 1.25rem; } .cb-actions { width: 100%; } .cb-btn { flex: 1; text-align: center; } } `; document.head.appendChild(style); } // --- INIT --- function init() { const consent = getConsent(); if (!consent) { // Prima visita — mostra banner injectCSS(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', createBanner); } else { createBanner(); } } else if (consent.analytics) { // Consenso già dato — carica GA silenziosamente loadGA(); } // Se consent.analytics === false: non caricare GA, non mostrare banner } init(); })(); 3. Aggiungi il CSS del banner al tuo style.css ===================================================== */ const GA_ID = 'G-XXXXXXXXXX'; // ← sostituisci con il tuo ID GA4 (function() { 'use strict'; const CONSENT_KEY = 'eiopago_cookie_consent'; const CONSENT_DURATION = 365; // giorni // --- Leggi consenso salvato --- function getConsent() { try { const raw = localStorage.getItem(CONSENT_KEY); return raw ? JSON.parse(raw) : null; } catch(e) { return null; } } // --- Salva consenso --- function saveConsent(analytics) { const consent = { analytics, date: new Date().toISOString(), version: '1.0' }; localStorage.setItem(CONSENT_KEY, JSON.stringify(consent)); // Cookie di backup per SSR/server-side const exp = new Date(); exp.setDate(exp.getDate() + CONSENT_DURATION); document.cookie = `${CONSENT_KEY}=${analytics ? 'granted' : 'denied'}; expires=${exp.toUTCString()}; path=/; SameSite=Lax`; } // --- Carica Google Analytics (solo con consenso) --- function loadGA() { if (document.getElementById('ga-script')) return; const s = document.createElement('script'); s.id = 'ga-script'; s.async = true; s.src = `https://www.googletagmanager.com/gtag/js?id=${GA_ID}`; document.head.appendChild(s); window.dataLayer = window.dataLayer || []; function gtag(){ dataLayer.push(arguments); } window.gtag = gtag; gtag('js', new Date()); gtag('config', GA_ID, { anonymize_ip: true, // Anonimizza IP — Garante italiano allow_google_signals: false, // No segnali Google allow_ad_personalization_signals: false, restricted_data_processing: true, }); } // --- Revoca consenso analytics --- function revokeGA() { if (window.gtag) { window.gtag('consent', 'update', { analytics_storage: 'denied' }); } } // --- Crea banner HTML --- function createBanner() { const banner = document.createElement('div'); banner.id = 'cookie-banner'; banner.setAttribute('role', 'dialog'); banner.setAttribute('aria-label', 'Preferenze cookie'); banner.innerHTML = `
🍪 Questo sito usa i cookie
Usiamo cookie tecnici essenziali (sempre attivi) e Google Analytics 4 con IP anonimizzato per migliorare il servizio — solo con il tuo consenso. I dati fiscali restano nel tuo browser, non in cookie. Cookie Policy · Privacy Policy
`; document.body.appendChild(banner); // Events document.getElementById('cb-accept').addEventListener('click', () => { saveConsent(true); loadGA(); hideBanner(); }); document.getElementById('cb-reject').addEventListener('click', () => { saveConsent(false); revokeGA(); hideBanner(); }); document.getElementById('cb-settings').addEventListener('click', () => { const panel = document.getElementById('cb-panel'); panel.style.display = panel.style.display === 'none' ? 'block' : 'none'; }); document.getElementById('cb-save').addEventListener('click', () => { const analytics = document.getElementById('cb-analytics').checked; saveConsent(analytics); if (analytics) loadGA(); else revokeGA(); hideBanner(); }); } function hideBanner() { const b = document.getElementById('cookie-banner'); if (b) { b.style.opacity = '0'; setTimeout(() => b.remove(), 300); } } // --- CSS banner (iniettato inline) --- function injectCSS() { const style = document.createElement('style'); style.textContent = ` #cookie-banner { position: fixed; bottom: 0; left: 0; right: 0; z-index: 99999; background: #1a1714; color: #f2ede6; border-top: 3px solid #c0392b; font-family: 'DM Sans', sans-serif; font-size: 14px; transition: opacity 0.3s; } .cb-inner { max-width: 1200px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: 1rem 2rem; flex-wrap: wrap; } .cb-text { flex: 1; min-width: 280px; } .cb-title { font-weight: 600; margin-bottom: 4px; font-size: 14px; } .cb-desc { font-size: 12px; color: rgba(242,237,230,0.65); line-height: 1.6; } .cb-link { color: #e87060; text-decoration: none; } .cb-link:hover { text-decoration: underline; } .cb-actions { display: flex; gap: 8px; flex-shrink: 0; flex-wrap: wrap; } .cb-btn { padding: 8px 16px; border-radius: 3px; font-size: 13px; font-weight: 500; cursor: pointer; transition: all 0.15s; font-family: 'DM Sans', sans-serif; white-space: nowrap; border: none; } .cb-filled { background: #c0392b; color: white; } .cb-filled:hover { background: #a93226; } .cb-outline { background: none; border: 1px solid rgba(242,237,230,0.25); color: rgba(242,237,230,0.8); } .cb-outline:hover { border-color: rgba(242,237,230,0.5); color: #f2ede6; } .cb-ghost { background: none; color: rgba(242,237,230,0.5); font-size: 12px; padding: 8px 10px; } .cb-ghost:hover { color: #f2ede6; } .cb-panel { background: #111110; border-top: 1px solid rgba(255,255,255,0.08); } .cb-panel-inner { max-width: 1200px; margin: 0 auto; padding: 1rem 2rem; } .cb-toggle-row { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 0; border-bottom: 1px solid rgba(255,255,255,0.06); gap: 1rem; } .cb-toggle-row:last-of-type { border-bottom: none; } .cb-toggle-info { flex: 1; } .cb-toggle-info strong { display: block; font-size: 13px; color: #f2ede6; margin-bottom: 2px; } .cb-toggle-info span { font-size: 11px; color: rgba(242,237,230,0.5); } .cb-toggle-wrap { display: flex; align-items: center; gap: 8px; flex-shrink: 0; } .cb-toggle-label { font-size: 11px; color: rgba(242,237,230,0.5); } .cb-disabled { opacity: 0.5; } input[type="checkbox"]#cb-analytics { width: 36px; height: 20px; cursor: pointer; } @media(max-width:640px) { .cb-inner { padding: 1rem 1.25rem; } .cb-actions { width: 100%; } .cb-btn { flex: 1; text-align: center; } } `; document.head.appendChild(style); } // --- INIT --- function init() { const consent = getConsent(); if (!consent) { // Prima visita — mostra banner injectCSS(); if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', createBanner); } else { createBanner(); } } else if (consent.analytics) { // Consenso già dato — carica GA silenziosamente loadGA(); } // Se consent.analytics === false: non caricare GA, non mostrare banner } init(); })();