# Senza redirect e shortener: QR EPC069-12 e vCard 4.0 statici

> Generatore QR code online per URL, Wi-Fi, vCard 4.0, testo, bonifico SEPA EPC069-12 (validazione IBAN). Export PNG e SVG, supporto logo centrale.

Strumento gratuito nel browser (nessun upload): https://www.mauriziofonte.it/strumenti/generatore-qr-code

Crea QR code per URL, reti Wi-Fi, contatti vCard, testo libero e **bonifico SEPA in formato EPC069-12**, lo standard EU letto nativamente dalle app delle banche italiane. Validazione IBAN MOD-97 inline per i QR di pagamento, correzione errori configurabile fino al 30% per supportare un logo centrale, export in PNG per web e SVG per stampa professionale. Il QR generato è un payload statico, senza redirect: leggibile per sempre, indipendente dalla sopravvivenza di shortener o domini di terze parti.

## Come generare un QR code

1. **Scegli il tipo** - URL per link, Wi-Fi per condividere accesso a una rete, vCard per scambio contatti, SEPA per bonifico precompilato leggibile dalle app bancarie italiane, testo libero per qualsiasi payload arbitrario.
2. **Compila i campi** - Per Wi-Fi servono SSID, password e tipo di sicurezza. Per vCard nome e almeno un canale di contatto. Per SEPA servono beneficiario e IBAN; il tool valida l'IBAN con il controllo MOD-97 prima di generare il QR.
3. **Imposta correzione errori** - L (7%) per QR su monitor in alta risoluzione, M (15%) è il default ragionevole, Q (25%) se vuoi sovrapporre un logo al centro (la ridondanza copre l'area mascherata), H (30%) per QR stampati su materiali soggetti a usura (etichette, packaging).
4. **Esporta** - PNG per uso web e print di base, SVG per stampa professionale (vettoriale, scalabile a qualsiasi DPI). Entrambi senza filigrana, generati in locale e scaricati direttamente nel tuo browser.

## Tre dettagli che fanno la differenza

**Payload statico, niente redirect.** Il contenuto vive interamente dentro il QR: nessun shortener proprietario al centro della catena, nessun dominio di terze parti che fa da intermediario. Se imposti come payload `https://www.tuosito.it/landing`, il QR contiene esattamente quella URL e continuerà a portare lì fra dieci anni. I generatori che applicano un redirect sul proprio dominio creano una dipendenza implicita: se quel dominio cambia gestione o scompare, tutti i QR stampati smettono di funzionare. Su materiali con vita lunga (etichette, packaging, brochure stampate, volantini fiera) questa è la differenza fra un investimento ammortizzato e un costo perso.

**SEPA EPC069-12 supportato nativamente.** L'[EPC Quick Response Code Guidelines](https://www.europeanpaymentscouncil.eu/document-library/guidance-documents/quick-response-code-guidelines-enable-data-capture-initiation) (versione 002 corrente, identificativo tecnico EPC069-12) è lo standard EU per i QR di bonifico SEPA. Le app delle principali banche italiane (Intesa, UniCredit, BPER, MPS, BNL, Banco BPM, Crédit Agricole Italia, Fineco, BancoPosta) leggono questo formato e precompilano beneficiario, IBAN, importo e causale. Il tool valida l'IBAN MOD-97 inline prima di generare il QR, evitando di stampare codici con IBAN inesistenti o con typo.

**Privacy by default sul payload.** Il calcolo del QR avviene direttamente nel browser. Il payload (URL, password Wi-Fi, IBAN del bonifico, dati vCard) non viene trasferito a un servizio esterno: il file PNG o SVG che scarichi è generato in locale, identico a quello che otterresti chiamando offline la stessa libreria di rendering. Utile in particolare per QR di bonifico SEPA, dove l'IBAN è un dato finanziario personale.

## Glossario

- **Error Correction Level (ECL)**: Quattro livelli definiti dallo standard ISO/IEC 18004: L (~7% di byte recuperabili), M (~15%), Q (~25%), H (~30%). Più alto è il livello, più moduli (pixel) servono a parità di payload, più grande risulta il QR.
- **EPC069-12**: Identificatore tecnico delle EPC Quick Response Code Guidelines, lo standard EU per QR di bonifico SEPA. Standard de facto in Italia, Germania, Austria, Belgio, Paesi Bassi.
- **MOD-97**: Algoritmo di controllo IBAN definito da ISO 13616: il numero formato dalle prime due lettere (codice paese), dai due check digit e dal Basic Bank Account Number, modulo 97, deve dare 1. Rilevazione affidabile di errori di trascrizione di un solo carattere.
- **vCard 4.0**: Formato standard per scambio contatti, definito da RFC 6350. Versione corrente, supportata da iOS, Android, Outlook. Le vCard 3.0 (RFC 2426) sono ancora in giro ma deprecate.
- **WPA-PSK QR string**: Formato per QR Wi-Fi: `WIFI:T:WPA;S:<ssid>;P:<password>;H:<true|false>;;`. Caratteri speciali nel payload (backslash, doppi apici, punto e virgola, virgola, due punti) vanno escapati con backslash.

## Domande frequenti

### Il QR di bonifico SEPA funziona con la mia banca italiana?

Si se la tua banca aderisce alla SEPA Quick Response Code initiative dell'EPC. Banche italiane principali con supporto certificato: Intesa Sanpaolo, Unicredit, BPER, MPS, BNL, Banco BPM, Credit Agricole Italia, Poste Italiane (BancoPosta), Fineco, Mediolanum. App di banche più piccole o credito cooperativo possono supportarlo via il framework PSD2 ma con qualche giorno di lag rispetto alle major. Test rapido: genera un QR con importo 1 euro a tuo IBAN, inquadra dall'app, vedi se compila i campi.

### Posso aggiungere un logo al centro del QR?

Sì. Il tool supporta l'upload di un logo (PNG, JPG o SVG, max 200 KB) che viene sovrapposto al centro del QR. La correzione errori passa automaticamente al livello H (30%), valore necessario perché lo standard ISO/IEC 18004 ammetta area mascherata senza compromettere la lettura. In alternativa, generando il QR senza logo ed esportando in SVG, puoi sovrapporre il logo manualmente in Figma o Inkscape.

### Il QR Wi-Fi funziona su iOS?

Si, dal iOS 11 (2017) la fotocamera nativa lo riconosce e propone di unirsi alla rete con un tap. Stesso comportamento su Android 10+ via Google Lens. Per dispositivi più vecchi servono app dedicate. Attenzione alle password con caratteri speciali (apici, backslash, virgole, due punti, punto e virgola): il tool li escapa correttamente con backslash, ma alcune app fanno parsing imperfetto e potrebbero richiedere di reinserire la password manualmente.

### Quanto è grande in byte il payload massimo?

Dipende dal livello di correzione errori e dal charset. Numeri puri: 7089 caratteri max a ECL=L. Alfanumerici: 4296 max. Byte arbitrari (UTF-8 testo): 2953 max. Kanji: 1817 max. Importante: più grande il payload, più fitti i moduli, più difficile la lettura su stampe a bassa risoluzione. Stay below 300-500 byte per QR letti da fotocamera mobile.

### Esiste un modo per testare il QR generato senza stamparlo?

Sì. Il modo più rapido è inquadrarlo direttamente dallo schermo con la fotocamera del telefono: se l'app riconosce il payload e propone l'azione corretta (apri URL, unisciti alla rete Wi-Fi, precompila bonifico), il QR è valido. Per test scriptabili o batch, ZBar offre un decoder CLI per Linux che lavora interamente in locale, senza richiedere upload del file. Per test occasionali su QR sensibili (bonifici SEPA, password Wi-Fi aziendali), evitare i decoder online che fanno upload del file.

### Genera anche micro-QR o QR alternativi?

Solo QR standard ISO/IEC 18004 (versione 1-40, da 21x21 a 177x177 moduli). I formati più compatti come Micro QR (M1-M4) e rMQR sono opzionali nello standard, supportati da poche app, lasciamo fuori per evitare problemi di compatibilità. Per QR Code Model 1 (vecchio standard) idem: zero use case moderni.

### Posso generare il QR in batch da una lista (es. CSV)?

Non in questa versione. Per workflow batch consigliamo lo script Python `qrcode` (PyPI) o `node-qrcode` da CLI: 5-10 righe di codice processano un CSV intero. Se hai un caso aziendale specifico (es. generazione QR univoci per N migliaia di prodotti con tracking) è una integrazione che faccio in consulenza.

### Il QR generato ha scadenza?

No, mai. Il QR è un payload statico: il contenuto è nel QR stesso, non c'è nessun redirect, nessun server intermedio, nessuna scadenza. Stampato su un volantino oggi, sarà leggibile fra dieci anni. Questo è uno dei motivi per cui evitiamo gli shortener/tracking-redirect: legano il QR alla sopravvivenza di un dominio terzo.

### Posso modificare il colore o lo stile del QR?

Sì, puoi scegliere il colore dei moduli e quello dello sfondo; se il contrasto è troppo basso o i moduli sono più chiari dello sfondo, il tool lo segnala con un avviso. Lo standard ISO/IEC 18004 raccomanda contrasto >= 40% tra moduli e sfondo, e contrasto su sfondo chiaro (modulo scuro su sfondo chiaro o viceversa). Colori invertiti, gradient, moduli rotondi rendono il QR meno robusto a condizioni di lettura subottimali. Se hai bisogno di styling avanzato, importa l'SVG in Figma o Illustrator e personalizza là (mantenendo il contrasto).

---
Uno strumento di Maurizio Fonte, senior backend engineer. Tutti gli strumenti: https://www.mauriziofonte.it/strumenti/
