> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getqr.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dati dei QR code per tipo

> Il formato dei dati, un esempio di richiesta e il comportamento in caso di modifica dopo la stampa per ciascuno dei 16 tipi di QR code.

> [!NOTE]
>
> L'API di GetQR è in beta ed è disponibile per alcuni workspace selezionati. I dettagli possono cambiare prima del rilascio generale.

Ogni QR code ha un `qrType`, e il tipo stabilisce cosa deve contenere `data`. Questa guida riporta il formato di ogni tipo, un corpo della richiesta funzionante e cosa puoi ancora modificare dopo aver stampato il codice.

Gli esempi sono corpi della richiesta per [Crea un QR code](https://docs.getqr.com/it/api/endpoints/qr-codes.md#crea-un-qr-code). Inviali così:

```bash theme={null}
curl -X POST "https://getqr.com/api/v1/qrs" \
  -H "Authorization: Bearer $GETQR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "qrType": "website", "data": "https://example.com/menu", "title": "Menu" }'
```

## Tutti i tipi in sintesi

| `qrType` | `data` | Modificabile dopo la stampa |
| - | - | - |
| [`website`](#website) | URL http(s) | Sì |
| [`feedback`](#feedback) | URL http(s) del modulo | Sì |
| [`payment`](#payment) | URL del fornitore di pagamento | Sì |
| [`whatsapp`](#whatsapp) | Link `wa.me` | Sì |
| [`location`](#location) | URL di una mappa | Sì |
| [`app`](#app-link) | URL dello store o vuoto, più `link.ios` / `link.android` | Sì |
| [`email`](#email) | URI `mailto:` | Sì |
| [`sms`](#sms) | URI `sms:` | Sì |
| [`wifi`](#wifi) | Payload `WIFI:` | **No** |
| [`pdf`, `image`, `video`](#pdf-image-e-video) | Vuoto, con un `fileId` | Sì |
| [`vcard`](#vcard) | Testo vCard 3.0 | Sì |
| [`social`](#social-media) | Stringa JSON | Sì |
| [`multilink`](#multi-link) | Stringa JSON | Sì |
| [`event`](#event) | Stringa JSON | Sì |

## Come si risolve un QR code

Ogni QR code è un link breve più un payload. Due campi contengono il contenuto:

| Campo | Cos'è |
| - | - |
| `link.url` | Dove il link breve porta il visitatore. È la destinazione reale per tutti i tipi tranne `wifi`. |
| `data` | Il payload del tipo, verificato in base a `qrType`. Viene salvato così come lo invii solo per `wifi`, `vcard`, `social`, `multilink`, `event` e `sms`. Per tutti gli altri tipi serve solo a fornire `link.url`, e il `data` salvato diventa il link breve. Leggi la destinazione da `url` nella risposta. |

Regole valide per tutti i tipi:

* **Valori predefiniti.** In creazione, un `link.url` omesso o vuoto diventa `data`, e puoi tralasciare l'intero oggetto `link`. Se li invii entrambi e sono diversi, prevale `link.url`. Inviali uguali, oppure invia solo `data`.
* **Cosa codifica l'immagine.** L'immagine codifica il link breve per tutti i tipi tranne `wifi`. Così puoi cambiare dove porta un codice stampato e le sue scansioni vengono tracciate. Un QR code WiFi codifica direttamente la rete: non puoi modificarlo dopo la stampa e le sue scansioni non vengono tracciate.
* **Schemi.** `link.url` accetta solo `http:`, `https:`, `wifi:`, `mailto:`, `sms:` e `begin:`. Tutto il resto, compresi `geo:`, `smsto:`, `matmsg:` e `tel:`, riceve `422 Invalid destination URL`, anche quando `data` lo accetta.
* **Dati vuoti.** Un `data` vuoto salta la verifica del tipo. Per un tipo con reindirizzamento, in quel caso `link.url` deve essere impostato, altrimenti la chiamata riceve `400 Missing destination URL`.
* **Struttura.** Oltre alla verifica del tipo, il server non convalida il payload. A un tipo JSON basta essere interpretabile come oggetto JSON, e a una vCard basta iniziare con `BEGIN:VCARD`.

> [!TIP]
>
> I limiti contrassegnati con **Builder** qui sotto sono quelli imposti dall'editor della dashboard. L'API accetta payload che non li rispettano, ma potrebbero essere visualizzati in modo strano nella landing page o nell'editor.

## Website

`qrType`: `"website"`. Guida della dashboard: [QR code Website](https://docs.getqr.com/it/qr-types/website.md).

| Campo | Comportamento |
| - | - |
| `data` | Un URL http(s). |
| `link.url` | La destinazione. Predefinito: `data`. |
| `fileId` | Non consentito. |
| Codifica | Il link breve, che reindirizza a `link.url`. Le scansioni vengono tracciate. |
| Dopo la stampa | Modificabile. Invia `data` o `link.url` per spostare la destinazione. Basta `data`. |

```json Request body theme={null}
{
  "qrType": "website",
  "data": "https://example.com/menu",
  "title": "Menu"
}
```

Errori:

* `422 Expected an http(s) URL, e.g. "https://example.com" for qrType "website".`
* `422 Invalid destination URL`

## Feedback

`qrType`: `"feedback"`. Guida della dashboard: [QR code Feedback](https://docs.getqr.com/it/qr-types/feedback.md).

`data` è l'URL http(s) del modulo di feedback, ad esempio un Google Form o una pagina di recensioni. Tutto il resto funziona come per [Website](#website).

```json Request body theme={null}
{
  "qrType": "feedback",
  "data": "https://forms.gle/abc123"
}
```

## Payment

`qrType`: `"payment"`. Guida della dashboard: [QR code Payment](https://docs.getqr.com/it/qr-types/payment.md).

`data` è l'URL di pagamento del fornitore, ad esempio:

```text theme={null}
https://paypal.me/<user>/25EUR
```

L'editor della dashboard riconosce questi host: `paypal.me`, `paypal.com/paypalme`, `cash.app`, `venmo.com`, `buy.stripe.com`, `stripe.com`, `square.link` e `payoneer.com`. Per PayPal, l'importo è l'ultimo segmento del percorso. Funziona anche qualsiasi altro URL http(s), ma l'editor non lo scompone in fornitore e importo. Tutto il resto funziona come per [Website](#website).

```json Request body theme={null}
{
  "qrType": "payment",
  "data": "https://paypal.me/acme/25EUR"
}
```

## WhatsApp

`qrType`: `"whatsapp"`. Guida della dashboard: [QR code WhatsApp](https://docs.getqr.com/it/qr-types/whatsapp.md).

`data` è un link `wa.me`: il numero internazionale in cifre senza `+`, con un testo precompilato facoltativo.

```text theme={null}
https://wa.me/<digits>
https://wa.me/<digits>?text=<urlencoded>
```

Il server verifica solo che sia un URL http(s). La dashboard legge anche i link `api.whatsapp.com/send`. Tutto il resto funziona come per [Website](#website).

```json Request body theme={null}
{
  "qrType": "whatsapp",
  "data": "https://wa.me/14155550123?text=Hi%20there"
}
```

## Location

`qrType`: `"location"`. Guida della dashboard: [QR code Location](https://docs.getqr.com/it/qr-types/location.md).

`data` è l'URL di una mappa. Usa questo formato per mantenere il QR code modificabile nella dashboard (`query_place_id` è facoltativo):

```text theme={null}
https://www.google.com/maps/search/?api=1&query=<address>&query_place_coords=<lat>,<lng>&query_place_id=<id>
```

Anche qualsiasi altro URL http(s) reindirizza. Un URI `geo:` supera la verifica di `data` ma viene rifiutato come destinazione, quindi non usarlo. Tutto il resto funziona come per [Website](#website).

```json Request body theme={null}
{
  "qrType": "location",
  "data": "https://www.google.com/maps/search/?api=1&query=Golden+Gate+Bridge&query_place_coords=37.8199,-122.4783"
}
```

## App Link

`qrType`: `"app"`. Guida della dashboard: [QR code App Link](https://docs.getqr.com/it/qr-types/app-link.md).

| Campo | Comportamento |
| - | - |
| `link.ios`, `link.android` | URL di App Store e Google Play. I visitatori iOS vanno a `ios`, quelli Android a `android`. Al momento della scansione hanno la precedenza su tutto il resto. |
| `link.url` | La destinazione di riserva per gli altri dispositivi. Predefinito: `data`, poi `ios` o `android`. |
| `data` | Un URL http(s) (la dashboard invia l'URL dello store), oppure vuoto. Almeno uno tra `link.ios`, `link.android`, `link.url` e `data` deve essere impostato, altrimenti la chiamata riceve `400 Missing destination URL`. |
| `fileId` | Non consentito. |
| Codifica | Il link breve. Le scansioni vengono tracciate. |
| Dopo la stampa | Modificabile. `link.ios` e `link.android` vengono applicati in modo indipendente, ciascuno solo se inviato. `null` ne cancella uno. Non devi inviare di nuovo `qrType`. Passare a un altro tipo cancella entrambi i link agli store. |

```json Request body theme={null}
{
  "qrType": "app",
  "data": "https://apps.apple.com/app/id123456789",
  "link": {
    "ios": "https://apps.apple.com/app/id123456789",
    "android": "https://play.google.com/store/apps/details?id=com.acme.app"
  }
}
```

Errori:

* `422 Invalid URL`
* `400 Missing destination URL`

## Email

`qrType`: `"email"`. Guida della dashboard: [QR code Email](https://docs.getqr.com/it/qr-types/email.md).

```text theme={null}
mailto:<address>?subject=<subject>&body=<body>
```

| Campo | Comportamento |
| - | - |
| `data` | Un URI `mailto:` con oggetto e corpo facoltativi. Codifica gli spazi come `%20`: la dashboard li scrive come `+`, che non tutte le app di posta interpretano come spazio. `matmsg:` viene rifiutato come destinazione. |
| `link.url` | L'URI `mailto:`. Predefinito: `data`. |
| `fileId` | Non consentito. |
| Codifica | Il link breve, che apre una pagina che passa il messaggio all'app di posta. |
| Dopo la stampa | Modificabile. Invia `data` o `link.url` per cambiare il messaggio. Basta `data`. |

```json Request body theme={null}
{
  "qrType": "email",
  "data": "mailto:hi@example.com?subject=Hello&body=Hi%20there"
}
```

Errori:

* `422 Expected a mailto URI, e.g. "mailto:hi@example.com?subject=Hello" for qrType "email".`

## SMS

`qrType`: `"sms"`. Guida della dashboard: [QR code SMS](https://docs.getqr.com/it/qr-types/sms.md).

```text theme={null}
sms:+<digits>
sms:+<digits>?body=<encodeURIComponent(text)>
```

| Campo | Comportamento |
| - | - |
| `data` | Un URI `sms:` con un corpo facoltativo. La dashboard legge solo esattamente questa forma. `smsto:` viene rifiutato come destinazione. |
| `link.url` | L'URI `sms:`. Predefinito: `data`. |
| `fileId` | Non consentito. |
| Codifica | Il link breve, che apre una pagina che passa il messaggio all'app di messaggistica. |
| Dopo la stampa | Modificabile. Invia `data` o `link.url` per cambiare il messaggio. Basta `data`. |

```json Request body theme={null}
{
  "qrType": "sms",
  "data": "sms:+14155550123?body=Table%2012"
}
```

Errori:

* `422 Expected an SMS URI, e.g. "sms:+14155550123?body=Hello" for qrType "sms".`

## WiFi

`qrType`: `"wifi"`. Guida della dashboard: [QR code WiFi](https://docs.getqr.com/it/qr-types/wifi.md).

```text theme={null}
WIFI:T:<WPA|WEP|nopass>;S:<ssid>;P:<password>;H:<true|false>;;
```

| Campo | Comportamento |
| - | - |
| `data` | Obbligatorio. Mantieni l'ordine `T`, `S`, `P`, `H`: l'editor e l'elenco della dashboard dipendono da esso. Nell'SSID e nella password, fai l'escape di `\`, `;`, `"` e `:` con una barra rovesciata. Per una rete aperta, usa `T:nopass` con un `P:` vuoto. Gli scanner rifiutano `T:none`. **Builder:** SSID obbligatorio, password di almeno 8 caratteri tranne con `nopass`. |
| `link.url` | Non usato per la scansione. Predefinito: `data`. |
| `fileId` | Non consentito. |
| Codifica | Il payload `WIFI:` grezzo, non il link breve. Le scansioni non vengono tracciate. |
| Dopo la stampa | **Non modificabile.** Un nuovo `data` cambia solo i download futuri. I codici stampati mantengono la rete precedente. |

```json Request body theme={null}
{
  "qrType": "wifi",
  "data": "WIFI:T:WPA;S:Cafe Guest;P:espresso42;H:false;;"
}
```

Errori:

* `422 Expected a Wi-Fi payload, e.g. "WIFI:T:WPA;S:MyNetwork;P:secret;H:false;" for qrType "wifi".`

> [!WARNING]
>
> Non cambiare il tipo di un QR code WiFi già stampato. I codici stampati mantengono la rete precedente.

## PDF, Image e Video

`qrType`: `"pdf"`, `"image"` o `"video"`. Guide della dashboard: [PDF](https://docs.getqr.com/it/qr-types/pdf.md), [Image](https://docs.getqr.com/it/qr-types/image.md), [Video](https://docs.getqr.com/it/qr-types/video.md).

| Campo | Comportamento |
| - | - |
| `fileId` | Il file. Caricalo con il target corrispondente al tipo: `pdf`, `image` o `video`. Con un `fileId`, `link.url` diventa l'URL del file e qualsiasi valore inviato in quel campo viene ignorato. |
| `data` | Qualsiasi valore tranne il payload di un altro tipo (`WIFI:`, `BEGIN:VCARD`, `sms:`, `mailto:`, un oggetto JSON). Può essere vuoto. |
| `link.url` | Senza un `fileId`, `link.url` (o `data`) viene usato come destinazione esterna. Funziona, ma la dashboard non mostra alcun file. |
| Codifica | Il link breve, che reindirizza direttamente al file. Un PDF si apre come file grezzo, non in una pagina di visualizzazione. |
| Dopo la stampa | Modificabile. Invia un nuovo `fileId` per sostituire il file. Quello precedente viene rilasciato. |

Un solo file per QR code: raccolte di PDF e gallerie di immagini non sono disponibili tramite l'API. Consulta [Non supportato dall'API](#non-supportato-dall-api).

```json pdf theme={null}
{
  "qrType": "pdf",
  "data": "",
  "fileId": "file_9f8e7d6c5b4a",
  "title": "Brochure"
}
```

```json image theme={null}
{
  "qrType": "image",
  "data": "",
  "fileId": "file_3c2b1a0f9e8d",
  "title": "Floor plan"
}
```

```json video theme={null}
{
  "qrType": "video",
  "data": "",
  "fileId": "file_5e4d3c2b1a0f",
  "title": "Product demo"
}
```

Per caricare il file e ottenere il suo `fileId`, consulta [File](https://docs.getqr.com/it/api/endpoints/files.md).

## vCard

`qrType`: `"vcard"`. Guida della dashboard: [QR code vCard](https://docs.getqr.com/it/qr-types/vcard.md).

| Campo | Comportamento |
| - | - |
| `data` | Obbligatorio. Testo vCard 3.0 che inizia con `BEGIN:VCARD`, con righe separate da `\r\n` (funziona anche `\n`). |
| `fileId` | Immagine del profilo facoltativa (target `logo`), usata quando `data` non ha una riga `PHOTO` o `X-GETQR-IMAGE-FILEID`. |
| `link.url` | Ignorato e sostituito con la pagina ospitata. Omettilo. |
| Codifica | Il link breve, che apre la pagina di contatto ospitata con il download per salvare il contatto (`.vcf`). |
| Dopo la stampa | Modificabile. Invia un nuovo `data` per aggiornare la pagina. |

La landing page e l'editor leggono solo le forme di riga riportate qui sotto. Altre varianti, come `TEL;CELL:` o `EMAIL;TYPE=INTERNET:`, vengono salvate ma non compaiono nella pagina.

* `N:<last>;<first>;;;`: cognome e nome. **Builder:** entrambi obbligatori, fino a 40 caratteri.
* `FN:<first> <last>`: non letto dalla pagina. Da qui viene l'etichetta nell'elenco della dashboard.
* `ORG:<company>` e `TITLE:<role>`: azienda e ruolo. **Builder:** fino a 40 caratteri.
* `TEL;TYPE=HOME:`, `TEL;TYPE=CELL:`, `TEL;TYPE=WORK:`, `TEL;TYPE=FAX:`: numeri di telefono, cellulare, lavoro e fax (`+` e cifre).
* `EMAIL:<email>`: indirizzo email.
* `URL:<url>`: sito web.
* `NOTE:<text>`: riepilogo. Fai l'escape di `\\`, `\n`, `\;` e `\,`. **Builder:** fino a 200 caratteri.
* `ADR:;;<street>;<city>;<state>;<zip>;<country>`: indirizzo.
* `X-SOCIALPROFILE;TYPE=<platform>:<url>` o `URL;TYPE=<PLATFORM>:<url>`: link social, una riga per piattaforma.
* `PHOTO;VALUE=URI:<url>`: URL dell'immagine del profilo. Ha la precedenza su qualsiasi ID di file.
* `X-GETQR-IMAGE-FILEID:<fileId>`: immagine del profilo (target `logo`).
* `X-GETQR-PAGE-LOGO-FILEID:<fileId>`: logo della pagina (target `logo`).
* `X-GETQR-LANDING-THEME:p|<0-4>` o `X-GETQR-LANDING-THEME:c|#RRGGBB|#RRGGBB|#RRGGBB`: tema della landing page, un indice di preset (da 0 a 4) oppure colori personalizzati di sfondo, pulsanti e icone.

Piattaforme social: `facebook`, `whatsapp`, `instagram`, `youtube`, `tiktok`, `messenger`, `snapchat`, `linkedin`, `x`, `reddit`, `pinterest`, `telegram`, `wechat`, `viber`, `line`.

```json Request body theme={null}
{
  "qrType": "vcard",
  "data": "BEGIN:VCARD\r\nVERSION:3.0\r\nN:Doe;Jane;;;\r\nFN:Jane Doe\r\nORG:Acme\r\nTITLE:CTO\r\nTEL;TYPE=CELL:+14155550123\r\nEMAIL:jane@acme.com\r\nURL:https://acme.com\r\nX-GETQR-LANDING-THEME:p|0\r\nEND:VCARD",
  "title": "Jane Doe"
}
```

Errori:

* `422 Expected a vCard payload starting with "BEGIN:VCARD" for qrType "vcard".`

## Social Media

`qrType`: `"social"`. Guida della dashboard: [QR code Social Media](https://docs.getqr.com/it/qr-types/social.md).

| Campo | Comportamento |
| - | - |
| `data` | Obbligatorio. Una stringa JSON che codifica un oggetto. Costruiscila con `JSON.stringify`. |
| `fileId` | Immagine del profilo di primo livello facoltativa (target `logo`). |
| `link.url` | Ignorato e sostituito con la pagina ospitata. Omettilo. |
| Codifica | Il link breve, che apre la pagina social ospitata. |
| Dopo la stampa | Modificabile. Invia un nuovo `data` per aggiornare la pagina. |

Campi di `data`:

| Campo | Tipo | Note |
| - | - | - |
| `firstName` | string | Titolo della pagina e unico nome mostrato. **Builder:** obbligatorio, fino a 40. |
| `lastName` | string | Fino a 40. Non mostrato nella pagina. |
| `summary` | string | Fino a 200. |
| `socialLinks` | `{ platform, url }[]` | `platform` è una delle [piattaforme social della vCard](#vcard). **Builder:** ogni piattaforma una sola volta. |
| `customItems` | `{ name, url, logoFileId }[]` | **Builder:** `name` fino a 40, un `url` http(s) e un `logoFileId`. In totale almeno un link social o un elemento personalizzato. |
| `fileId` | string | Immagine del profilo (target `logo`). Il `fileId` di primo livello fa da riserva. |
| `imageUrl` | string | URL esterno dell'immagine del profilo, usato solo quando non c'è un ID di file. |
| `pageLogoFileId` | string | Logo della pagina (target `logo`). |
| `landingThemeMode` | `"preset" \| "custom"` | Predefinito: `preset`. |
| `landingPresetIndex` | 0–4 | Predefinito: 0. |
| `landingCustomBg`, `landingCustomButton`, `landingCustomIcon` | `#RRGGBB` | Usati quando la modalità è `custom`. |

```json Request body theme={null}
{
  "qrType": "social",
  "data": "{\"firstName\":\"Acme Coffee\",\"summary\":\"Follow us\",\"socialLinks\":[{\"platform\":\"instagram\",\"url\":\"https://instagram.com/acme\"}],\"customItems\":[]}"
}
```

Errori:

* `422 Expected a JSON object describing the social profile page for qrType "social".`

## Multi-Link

`qrType`: `"multilink"`. Guida della dashboard: [QR code Multi-Link](https://docs.getqr.com/it/qr-types/multi-link.md).

| Campo | Comportamento |
| - | - |
| `data` | Obbligatorio. Una stringa JSON che codifica un oggetto. |
| `fileId` | Immagine del profilo di primo livello facoltativa (target `logo`). |
| `link.url` | Ignorato e sostituito con la pagina ospitata. Omettilo. |
| Codifica | Il link breve, che apre la pagina multi-link ospitata. |
| Dopo la stampa | Modificabile. Invia un nuovo `data` per aggiornare la pagina. |

I campi di `data` sono quelli di [Social Media](#social-media), tranne `firstName`, `lastName` e `summary`, sostituiti da:

| Campo | Tipo | Note |
| - | - | - |
| `title` | string | Titolo della pagina. **Builder:** obbligatorio, fino a 40. |
| `description` | string | Fino a 200. |

In `customItems`, `logoFileId` è facoltativo: viene mostrata un'icona di riserva. **Builder:** almeno un link social o un elemento personalizzato non vuoto.

```json Request body theme={null}
{
  "qrType": "multilink",
  "data": "{\"title\":\"Acme links\",\"description\":\"Everything in one place\",\"socialLinks\":[],\"customItems\":[{\"name\":\"Shop\",\"url\":\"https://acme.com/shop\",\"logoFileId\":\"\"}]}"
}
```

Errori:

* `422 Expected a JSON object describing the multi-link page for qrType "multilink".`

## Event

`qrType`: `"event"`. Guida della dashboard: [QR code Event](https://docs.getqr.com/it/qr-types/event.md).

| Campo | Comportamento |
| - | - |
| `data` | Obbligatorio. Una stringa JSON che codifica un oggetto. I valori sconosciuti o non validi tornano ai valori predefiniti. |
| `fileId` | Convalidato (target `logo`) e salvato, ma la pagina dell'evento legge la copertina solo da `data.fileId`. Inserisci l'ID della copertina nel payload. |
| `link.url` | Ignorato e sostituito con la pagina ospitata. Omettilo. |
| Codifica | Il link breve, che apre la pagina dell'evento ospitata con un download `.ics`. |
| Dopo la stampa | Modificabile. Invia un nuovo `data` per aggiornare la pagina. |

Campi di `data`:

| Campo | Tipo | Note |
| - | - | - |
| `name` | string | **Builder:** obbligatorio. |
| `eventType` | string | Uno dei tipi di evento riportati sotto, oppure vuoto. |
| `start`, `end` | `"YYYY-MM-DDTHH:mm"` | Ora locale nel fuso `timezone`. **Builder:** entrambi obbligatori, la fine dopo l'inizio. |
| `timezone` | IANA, ad esempio `"Europe/Berlin"` | Colloca inizio e fine nel file `.ics`. Invialo sempre: con un fuso vuoto o sconosciuto, il file `.ics` interpreta gli orari come UTC. |
| `street`, `zip`, `city`, `state`, `country` | string | **Builder:** `city` e `country` obbligatori, fino a 40 ciascuno. |
| `facilities` | string\[] | ID dall'elenco riportato sotto. Gli ID sconosciuti vengono scartati. |
| `notes` | string | Testo libero. |
| `fileId` | string | Immagine di copertina (target `logo`). |
| `pageLogoFileId` | string | Logo della pagina (target `logo`). |
| `organizerName`, `organizerEmail`, `mobile`, `work` | string | `mobile` e `work` fino a 40. |
| `socialLinks` | `{ platform, url }[]` | Le [piattaforme social della vCard](#vcard), più `website`. |
| `ticketsUrl` | URL http(s) | Link per acquistare i biglietti. |
| `ticketsLabel` | string | Fino a 20 caratteri. Le etichette più lunghe vengono troncate. Se vuoto, mostra l'etichetta predefinita. |

> [accordion] Tipi di evento
>
> `conference`, `seminar`, `workshop`, `training`, `webinar`, `meetup`, `networking`, `corporateEvent`, `productLaunch`, `tradeShow`, `jobFair`, `fundraiser`, `charity`, `wedding`, `engagement`, `birthday`, `anniversary`, `babyShower`, `graduation`, `reunion`, `party`, `religious`, `funeralMemorial`, `ceremony`, `concert`, `festival`, `clubNight`, `theater`, `comedy`, `filmScreening`, `exhibition`, `sports`, `tournament`, `raceMarathon`, `fitnessClass`, `foodDrink`, `market`, `openHouse`, `community`, `schoolEvent`, `kids`, `travelTour`

> [accordion] Servizi
>
> | Gruppo | ID |
> | - | - |
> | Ingresso | `freeEntry`, `idRequired`, `invitationOnly`, `plusOneAllowed`, `reEntryAllowed` |
> | Età (scegline uno) | `adultsOnly`, `age18Plus`, `age21Plus`, `kidsWelcome` |
> | In loco | `parking`, `publicTransport`, `shuttle`, `wheelchairAccess`, `evCharging`, `wifi`, `foodDrinks`, `alcoholServed`, `atm`, `coatCheck`, `pool`, `phoneCharging`, `firstAid`, `wc` |
> | Regole | `petsAllowed`, `noPets`, `smokingArea`, `noSmoking`, `noPhotos` |
> | Dress code (scegline uno) | `dressCasual`, `dressSmartCasual`, `dressBusiness`, `dressCocktail`, `dressThemed` |

```json Request body theme={null}
{
  "qrType": "event",
  "data": "{\"name\":\"Launch party\",\"eventType\":\"productLaunch\",\"start\":\"2026-11-20T18:00\",\"end\":\"2026-11-20T22:00\",\"timezone\":\"Europe/Berlin\",\"city\":\"Berlin\",\"country\":\"Germany\",\"facilities\":[\"freeEntry\"],\"socialLinks\":[],\"ticketsUrl\":\"https://acme.com/tickets\"}"
}
```

Errori:

* `422 Expected a JSON object describing the event page for qrType "event".`

## File nei QR code

Registra un file con [File](https://docs.getqr.com/it/api/endpoints/files.md), caricalo e poi passa il suo `fileId`. Usa il target adatto all'uso:

* **`pdf`, `image`, `video`.** Il contenuto di un QR code PDF, Image o Video.
* **`logo`.** Immagini del profilo, loghi della pagina, icone dei link personalizzati e loghi centrali.

I file che non vengono mai collegati a un QR code vengono eliminati dopo un periodo di tolleranza.

Errori di `fileId`, restituiti in creazione e in `PATCH` quando invii `fileId`:

| Stato | Causa |
| - | - |
| `422 unprocessable_entity` | Il tipo non accetta file. Solo `pdf`, `image`, `video`, `vcard`, `social`, `multilink` ed `event` ne accettano uno. |
| `404 not_found` | Nessun file con questo ID. Registralo prima con `POST /api/v1/files`. |
| `422 unprocessable_entity` | Il file è stato caricato per un target diverso. Ad esempio, un caricamento `image` su un QR code PDF, oppure un caricamento `pdf`, `image` o `video` usato come foto di una vCard. |
| `422 unprocessable_entity` | Il file è registrato, ma il caricamento su `uploadUrl` non è mai stato completato. |

Gli ID di file all'interno di un payload (`fileId`, `pageLogoFileId`, `customItems[].logoFileId`, righe `X-GETQR-*-FILEID`) non vengono convalidati. Vengono visualizzati solo se caricati con il target `logo`. Il QR code li rivendica, quindi la pulizia automatica non li tocca.

## Cambiare tipo

Puoi cambiare `qrType` con [Aggiorna un QR code](https://docs.getqr.com/it/api/endpoints/qr-codes.md#aggiorna-un-qr-code). Invia un `data` adatto al nuovo tipo: il payload salvato appartiene al tipo precedente, quindi un cambio di tipo senza di esso viene rifiutato.

Dopo un aggiornamento, la destinazione viene determinata in questo ordine:

1. `vcard`, `social`, `multilink`, `event`: sempre la pagina ospitata.
2. Una raccolta di PDF o una galleria di immagini creata nella dashboard: la sua landing page.
3. `pdf`, `image`, `video`: l'URL del file (un nuovo `fileId`, altrimenti quello salvato).
4. `link.url`, se inviato.
5. Il `data` modificato.
6. L'URL salvato.

Cosa comporta ogni cambio:

* **Da `pdf`, `image` o `video` a un altro tipo.** `fileId` ed eventuali raccolte o gallerie vengono cancellati.
* **Verso `pdf`, `image` o `video`.** Invia anche `fileId`, altrimenti viene riutilizzato quello salvato, che potrebbe essere la foto di una vCard.
* **Da `app` a un altro tipo.** Il nome dell'app, `link.ios` e `link.android` vengono cancellati, quindi i telefoni seguono la nuova destinazione.
* **Verso `wifi`.** L'immagine passa al payload grezzo. I codici già stampati contengono ancora il link breve, che ora reindirizza a un URL `wifi:`.
* **Da `wifi` a un altro tipo.** I codici stampati mantengono la rete precedente.
* **Verso `vcard`, `social`, `multilink` o `event`.** Il link breve viene indirizzato alla nuova pagina ospitata.
* **Da `vcard`, `social`, `multilink` o `event` a un altro tipo.** Invia il nuovo `data`. La destinazione lo segue.

I QR code statici creati nella dashboard non hanno un link breve, quindi la modifica del loro `link.url` riceve `422`.

## Non supportato dall'API

Queste funzionalità della dashboard non fanno parte dell'API v1. I campi sconosciuti vengono scartati senza errori, quindi inviarli non ha alcun effetto.

| Campo | Descrizione |
| - | - |
| `appName` | Il nome visualizzato di un QR code App Link. I QR code App Link creati tramite l'API mostrano l'URL dello store nell'elenco della dashboard. |
| `isStatic` | Un QR code statico senza link breve. Ogni QR code creato dall'API ne ha uno, quindi può essere modificato e tracciato dopo la stampa (tranne `wifi`). |
| `pdfBundle` | Un QR code PDF con due o più file. L'API crea solo QR code PDF con un singolo file. |
| `imageGallery` | Un QR code Image con due o più immagini. L'API crea solo QR code con una singola immagine. |

Le raccolte e le gallerie create nella dashboard possono comunque essere lette, messe in pausa ed eliminate tramite l'API, ma i loro file non possono essere modificati tramite l'API.

## Problemi comuni

> [accordion] 422 Invalid destination URL
>
> `link.url` usa uno schema verso cui il link breve non può reindirizzare, come `geo:`, `smsto:`, `matmsg:` o `tel:`. Usa i formati riportati in questa pagina.

> [accordion] 400 Missing destination URL
>
> `data` è vuoto e non c'è un `link.url`. Per `app`, imposta almeno uno tra `link.ios`, `link.android`, `link.url` e `data`.

> [accordion] Il campo data della risposta è un link breve, non il mio URL
>
> Per i tipi con link, il `data` salvato è il link breve. Leggi la destinazione da `url`.

> [accordion] Alla landing page mancano dettagli del mio payload
>
> La pagina legge solo i campi e le forme di riga elencati per il tipo. Gli altri campi vengono salvati ma non mostrati.

## Passaggi successivi

> [card] [QR code](https://docs.getqr.com/it/api/endpoints/qr-codes.md)

> [card] [File](https://docs.getqr.com/it/api/endpoints/files.md)

> [card] [Personalizzazione](https://docs.getqr.com/it/api/guides/customization.md)

> [card] [Regole di accesso](https://docs.getqr.com/it/api/guides/access-rules.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.