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

# Datele codurilor QR pe tipuri

> Formatul datelor, un exemplu de cerere și ce se poate edita după tipărire pentru fiecare dintre cele 16 tipuri de coduri QR.

> [!NOTE]
>
> API-ul GetQR este în versiune beta și este disponibil pentru anumite spații de lucru. Detaliile se pot schimba înainte de lansarea generală.

Fiecare cod QR are un `qrType`, iar tipul stabilește ce trebuie să conțină `data`. Acest ghid prezintă formatul fiecărui tip, un corp de cerere funcțional și ce mai puteți schimba după ce codul a fost tipărit.

Exemplele sunt corpuri de cerere pentru [Crearea unui cod QR](https://docs.getqr.com/ro/api/endpoints/qr-codes.md#crearea-unui-cod-qr). Trimiteți-le astfel:

```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" }'
```

## Toate tipurile pe scurt

| `qrType` | `data` | Editabil după tipărire |
| - | - | - |
| [`website`](#website) | URL http(s) | Da |
| [`feedback`](#feedback) | URL http(s) al formularului | Da |
| [`payment`](#payment) | URL al furnizorului de plăți | Da |
| [`whatsapp`](#whatsapp) | Link `wa.me` | Da |
| [`location`](#location) | URL de hartă | Da |
| [`app`](#app-link) | URL de magazin sau gol, plus `link.ios` / `link.android` | Da |
| [`email`](#email) | URI `mailto:` | Da |
| [`sms`](#sms) | URI `sms:` | Da |
| [`wifi`](#wifi) | Payload `WIFI:` | **Nu** |
| [`pdf`, `image`, `video`](#pdf-și-fișiere-imagine-sau-video) | Gol, cu un `fileId` | Da |
| [`vcard`](#vcard) | Text vCard 3.0 | Da |
| [`social`](#social-media) | Șir JSON | Da |
| [`multilink`](#multi-link) | Șir JSON | Da |
| [`event`](#event) | Șir JSON | Da |

## Cum se rezolvă un cod QR

Fiecare cod QR este un link scurt plus un payload. Conținutul este purtat de două câmpuri:

| Câmp | Ce reprezintă |
| - | - |
| `link.url` | Unde trimite linkul scurt vizitatorul. Aceasta este destinația reală pentru toate tipurile, cu excepția `wifi`. |
| `data` | Payloadul tipului, verificat în funcție de `qrType`. Este stocat așa cum a fost trimis doar pentru `wifi`, `vcard`, `social`, `multilink`, `event` și `sms`. Pentru toate celelalte tipuri, doar furnizează `link.url`, iar `data` stocat devine linkul scurt. Citiți destinația din `url` în răspuns. |

Reguli pentru toate tipurile:

* **Valori implicite.** La creare, un `link.url` omis sau gol devine `data` și puteți omite întregul obiect `link`. Când ambele sunt trimise și diferă, are prioritate `link.url`. Trimiteți-le egale sau trimiteți doar `data`.
* **Ce codifică imaginea.** Imaginea codifică linkul scurt pentru toate tipurile, cu excepția `wifi`. Astfel, puteți schimba unde duce un cod tipărit, iar scanările lui sunt urmărite. Un cod QR WiFi codifică rețeaua însăși: nu îl puteți schimba după tipărire, iar scanările lui nu sunt urmărite.
* **Scheme.** `link.url` acceptă doar `http:`, `https:`, `wifi:`, `mailto:`, `sms:` și `begin:`. Orice altceva, inclusiv `geo:`, `smsto:`, `matmsg:` și `tel:`, primește `422 Invalid destination URL`, chiar și acolo unde `data` le acceptă.
* **Date goale.** Un `data` gol sare peste verificarea tipului. Pentru un tip de redirecționare, `link.url` trebuie atunci să fie setat, altfel apelul primește `400 Missing destination URL`.
* **Structură.** În afară de verificarea tipului, serverul nu validează payloadul. Un tip JSON trebuie doar să poată fi parsat ca obiect JSON, iar un vCard trebuie doar să înceapă cu `BEGIN:VCARD`.

> [!TIP]
>
> Limitele marcate cu **Editor** mai jos sunt cele impuse de editorul din panoul de control. API-ul acceptă payloaduri care le ignoră, dar acestea pot fi afișate ciudat pe pagina de destinație sau în editor.

## Website

`qrType`: `"website"`. Ghid pentru panou: [Cod QR Website](https://docs.getqr.com/ro/qr-types/website.md).

| Câmp | Comportament |
| - | - |
| `data` | Un URL http(s). |
| `link.url` | Destinația. Implicit `data`. |
| `fileId` | Nu este permis. |
| Codifică | Linkul scurt, care redirecționează către `link.url`. Scanările sunt urmărite. |
| După tipărire | Editabil. Trimiteți `data` sau `link.url` pentru a muta destinația. Este suficient `data`. |

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

Erori:

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

## Feedback

`qrType`: `"feedback"`. Ghid pentru panou: [Cod QR Feedback](https://docs.getqr.com/ro/qr-types/feedback.md).

`data` este URL-ul http(s) al formularului de feedback, de exemplu un Google Form sau o pagină de recenzii. Restul funcționează ca la [Website](#website).

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

## Payment

`qrType`: `"payment"`. Ghid pentru panou: [Cod QR Payment](https://docs.getqr.com/ro/qr-types/payment.md).

`data` este URL-ul de plată al furnizorului, de exemplu:

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

Editorul din panou recunoaște aceste domenii: `paypal.me`, `paypal.com/paypalme`, `cash.app`, `venmo.com`, `buy.stripe.com`, `stripe.com`, `square.link` și `payoneer.com`. Pentru PayPal, suma este ultimul segment al căii. Funcționează și orice alt URL http(s), dar editorul nu îl va separa în furnizor și sumă. Restul funcționează ca la [Website](#website).

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

## WhatsApp

`qrType`: `"whatsapp"`. Ghid pentru panou: [Cod QR WhatsApp](https://docs.getqr.com/ro/qr-types/whatsapp.md).

`data` este un link `wa.me`: numărul internațional format doar din cifre, fără `+`, opțional cu un text precompletat.

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

Serverul verifică doar că este un URL http(s). Panoul citește și linkuri `api.whatsapp.com/send`. Restul funcționează ca la [Website](#website).

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

## Location

`qrType`: `"location"`. Ghid pentru panou: [Cod QR Location](https://docs.getqr.com/ro/qr-types/location.md).

`data` este un URL de hartă. Folosiți acest format pentru ca codul QR să rămână editabil în panou (`query_place_id` este opțional):

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

Orice alt URL http(s) redirecționează și el. Un URI `geo:` trece de verificarea lui `data`, dar este respins ca destinație, așa că nu îl folosiți. Restul funcționează ca la [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"`. Ghid pentru panou: [Cod QR App Link](https://docs.getqr.com/ro/qr-types/app-link.md).

| Câmp | Comportament |
| - | - |
| `link.ios`, `link.android` | URL-uri App Store și Google Play. Vizitatorii de pe iOS ajung la `ios`, cei de pe Android la `android`. Acestea au prioritate față de orice altceva la scanare. |
| `link.url` | Rezerva pentru alte dispozitive. Implicit `data`, apoi `ios` sau `android`. |
| `data` | Un URL http(s) (panoul trimite URL-ul magazinului) sau gol. Cel puțin unul dintre `link.ios`, `link.android`, `link.url` sau `data` trebuie setat, altfel apelul primește `400 Missing destination URL`. |
| `fileId` | Nu este permis. |
| Codifică | Linkul scurt. Scanările sunt urmărite. |
| După tipărire | Editabil. `link.ios` și `link.android` se aplică independent, fiecare doar când este trimis. `null` șterge unul dintre ele. Nu trebuie să retrimiteți `qrType`. Trecerea la alt tip șterge ambele linkuri de magazin. |

```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"
  }
}
```

Erori:

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

## Email

`qrType`: `"email"`. Ghid pentru panou: [Cod QR Email](https://docs.getqr.com/ro/qr-types/email.md).

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

| Câmp | Comportament |
| - | - |
| `data` | Un URI `mailto:` cu subiect și corp opționale. Codificați spațiile ca `%20`: panoul le scrie ca `+`, pe care nu toate aplicațiile de e-mail îl interpretează ca spațiu. `matmsg:` este respins ca destinație. |
| `link.url` | URI-ul `mailto:`. Implicit `data`. |
| `fileId` | Nu este permis. |
| Codifică | Linkul scurt, care deschide o pagină ce transferă utilizatorul în aplicația de e-mail. |
| După tipărire | Editabil. Trimiteți `data` sau `link.url` pentru a schimba mesajul. Este suficient `data`. |

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

Erori:

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

## SMS

`qrType`: `"sms"`. Ghid pentru panou: [Cod QR SMS](https://docs.getqr.com/ro/qr-types/sms.md).

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

| Câmp | Comportament |
| - | - |
| `data` | Un URI `sms:` cu corp opțional. Panoul citește doar exact această formă. `smsto:` este respins ca destinație. |
| `link.url` | URI-ul `sms:`. Implicit `data`. |
| `fileId` | Nu este permis. |
| Codifică | Linkul scurt, care deschide o pagină ce transferă utilizatorul în aplicația de mesaje. |
| După tipărire | Editabil. Trimiteți `data` sau `link.url` pentru a schimba mesajul. Este suficient `data`. |

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

Erori:

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

## WiFi

`qrType`: `"wifi"`. Ghid pentru panou: [Cod QR WiFi](https://docs.getqr.com/ro/qr-types/wifi.md).

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

| Câmp | Comportament |
| - | - |
| `data` | Obligatoriu. Păstrați ordinea `T`, `S`, `P`, `H`: editorul și lista din panou depind de ea. În SSID și în parolă, precedați `\`, `;`, `"` și `:` de o bară inversă. Pentru o rețea deschisă, folosiți `T:nopass` cu un `P:` gol. Scannerele resping `T:none`. **Editor:** SSID obligatoriu, parolă de cel puțin 8 caractere, cu excepția `nopass`. |
| `link.url` | Nu este folosit la scanare. Implicit `data`. |
| `fileId` | Nu este permis. |
| Codifică | Payloadul brut `WIFI:`, nu linkul scurt. Scanările nu sunt urmărite. |
| După tipărire | **Nu este editabil.** Un `data` nou schimbă doar descărcările viitoare. Codurile tipărite păstrează rețeaua veche. |

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

Erori:

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

> [!WARNING]
>
> Nu schimbați tipul unui cod QR WiFi tipărit. Codurile tipărite păstrează rețeaua veche.

## PDF și fișiere imagine sau video

`qrType`: `"pdf"`, `"image"` sau `"video"`. Ghiduri pentru panou: [PDF](https://docs.getqr.com/ro/qr-types/pdf.md), [Image](https://docs.getqr.com/ro/qr-types/image.md), [Video](https://docs.getqr.com/ro/qr-types/video.md).

| Câmp | Comportament |
| - | - |
| `fileId` | Fișierul. Încărcați-l cu targetul care corespunde tipului: `pdf`, `image` sau `video`. Cu un `fileId`, `link.url` devine URL-ul fișierului și orice trimiteți în el este ignorat. |
| `data` | Orice, cu excepția payloadului altui tip (`WIFI:`, `BEGIN:VCARD`, `sms:`, `mailto:`, un obiect JSON). Poate fi gol. |
| `link.url` | Fără `fileId`, `link.url` (sau `data`) este folosit ca destinație externă. Funcționează, dar panoul nu afișează niciun fișier. |
| Codifică | Linkul scurt, care redirecționează direct către fișier. Un PDF se deschide ca fișier brut, nu într-o pagină de vizualizare. |
| După tipărire | Editabil. Trimiteți un `fileId` nou pentru a înlocui fișierul. Cel vechi este eliberat. |

Un singur fișier per cod QR: pachetele PDF și galeriile de imagini nu sunt disponibile prin API. Consultați [Nu este acceptat prin API](#nu-este-acceptat-prin-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"
}
```

Pentru a încărca fișierul și a obține `fileId`, consultați [Fișiere](https://docs.getqr.com/ro/api/endpoints/files.md).

## vCard

`qrType`: `"vcard"`. Ghid pentru panou: [Cod QR vCard](https://docs.getqr.com/ro/qr-types/vcard.md).

| Câmp | Comportament |
| - | - |
| `data` | Obligatoriu. Text vCard 3.0 care începe cu `BEGIN:VCARD`, cu liniile separate prin `\r\n` (funcționează și `\n`). |
| `fileId` | Imagine de profil opțională (target `logo`), folosită când `data` nu are o linie `PHOTO` sau `X-GETQR-IMAGE-FILEID`. |
| `link.url` | Ignorat și înlocuit cu pagina găzduită. Omiteți-l. |
| Codifică | Linkul scurt, care deschide pagina de contact găzduită, cu descărcarea contactului (`.vcf`). |
| După tipărire | Editabil. Trimiteți un `data` nou pentru a actualiza pagina. |

Pagina de destinație și editorul citesc doar formele de linie de mai jos. Alte variante, cum ar fi `TEL;CELL:` sau `EMAIL;TYPE=INTERNET:`, sunt stocate, dar nu apar pe pagină.

* `N:<last>;<first>;;;`: numele și prenumele. **Editor:** ambele obligatorii, până la 40 de caractere.
* `FN:<first> <last>`: nu este citit de pagină. Din el provine eticheta din lista panoului.
* `ORG:<company>` și `TITLE:<role>`: compania și funcția. **Editor:** până la 40 de caractere.
* `TEL;TYPE=HOME:`, `TEL;TYPE=CELL:`, `TEL;TYPE=WORK:`, `TEL;TYPE=FAX:`: numere de telefon, mobil, serviciu și fax (`+` și cifre).
* `EMAIL:<email>`: adresa de e-mail.
* `URL:<url>`: website.
* `NOTE:<text>`: rezumat. Escapați `\\`, `\n`, `\;` și `\,`. **Editor:** până la 200 de caractere.
* `ADR:;;<street>;<city>;<state>;<zip>;<country>`: adresa.
* `X-SOCIALPROFILE;TYPE=<platform>:<url>` sau `URL;TYPE=<PLATFORM>:<url>`: linkuri sociale, câte o linie pentru fiecare platformă.
* `PHOTO;VALUE=URI:<url>`: URL-ul imaginii de profil. Are prioritate față de orice ID de fișier.
* `X-GETQR-IMAGE-FILEID:<fileId>`: imaginea de profil (target `logo`).
* `X-GETQR-PAGE-LOGO-FILEID:<fileId>`: logoul paginii (target `logo`).
* `X-GETQR-LANDING-THEME:p|<0-4>` sau `X-GETQR-LANDING-THEME:c|#RRGGBB|#RRGGBB|#RRGGBB`: tema paginii de destinație, fie un index de presetare (de la 0 la 4), fie culori personalizate pentru fundal, buton și pictograme.

Rețele sociale: `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"
}
```

Erori:

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

## Social Media

`qrType`: `"social"`. Ghid pentru panou: [Cod QR Social Media](https://docs.getqr.com/ro/qr-types/social.md).

| Câmp | Comportament |
| - | - |
| `data` | Obligatoriu. Un șir JSON care codifică un obiect. Construiți-l cu `JSON.stringify`. |
| `fileId` | Imagine de profil opțională la nivelul superior (target `logo`). |
| `link.url` | Ignorat și înlocuit cu pagina găzduită. Omiteți-l. |
| Codifică | Linkul scurt, care deschide pagina socială găzduită. |
| După tipărire | Editabil. Trimiteți un `data` nou pentru a actualiza pagina. |

Câmpuri în `data`:

| Câmp | Tip | Note |
| - | - | - |
| `firstName` | string | Titlul paginii și singurul nume afișat. **Editor:** obligatoriu, până la 40. |
| `lastName` | string | Până la 40. Nu apare pe pagină. |
| `summary` | string | Până la 200. |
| `socialLinks` | `{ platform, url }[]` | `platform` este una dintre [rețelele sociale vCard](#vcard). **Editor:** fiecare platformă o singură dată. |
| `customItems` | `{ name, url, logoFileId }[]` | **Editor:** `name` până la 40, un `url` http(s) și un `logoFileId`. Cel puțin un link social sau un element personalizat în total. |
| `fileId` | string | Imaginea de profil (target `logo`). `fileId` de la nivelul superior este varianta de rezervă. |
| `imageUrl` | string | URL extern al imaginii de profil, folosit doar când nu există un ID de fișier. |
| `pageLogoFileId` | string | Logoul paginii (target `logo`). |
| `landingThemeMode` | `"preset" \| "custom"` | Implicit `preset`. |
| `landingPresetIndex` | 0–4 | Implicit 0. |
| `landingCustomBg`, `landingCustomButton`, `landingCustomIcon` | `#RRGGBB` | Folosite când modul este `custom`. |

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

Erori:

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

## Multi-Link

`qrType`: `"multilink"`. Ghid pentru panou: [Cod QR Multi-Link](https://docs.getqr.com/ro/qr-types/multi-link.md).

| Câmp | Comportament |
| - | - |
| `data` | Obligatoriu. Un șir JSON care codifică un obiect. |
| `fileId` | Imagine de profil opțională la nivelul superior (target `logo`). |
| `link.url` | Ignorat și înlocuit cu pagina găzduită. Omiteți-l. |
| Codifică | Linkul scurt, care deschide pagina multi-link găzduită. |
| După tipărire | Editabil. Trimiteți un `data` nou pentru a actualiza pagina. |

Câmpurile din `data` sunt cele de la [Social Media](#social-media), cu excepția faptului că `firstName`, `lastName` și `summary` sunt înlocuite cu:

| Câmp | Tip | Note |
| - | - | - |
| `title` | string | Titlul paginii. **Editor:** obligatoriu, până la 40. |
| `description` | string | Până la 200. |

În `customItems`, `logoFileId` este opțional: se afișează o pictogramă de rezervă. **Editor:** cel puțin un link social sau un element personalizat care nu este gol.

```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\":\"\"}]}"
}
```

Erori:

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

## Event

`qrType`: `"event"`. Ghid pentru panou: [Cod QR Event](https://docs.getqr.com/ro/qr-types/event.md).

| Câmp | Comportament |
| - | - |
| `data` | Obligatoriu. Un șir JSON care codifică un obiect. Valorile necunoscute sau invalide revin la valorile implicite. |
| `fileId` | Validat (target `logo`) și stocat, dar pagina evenimentului citește coperta doar din `data.fileId`. Puneți ID-ul copertei în payload. |
| `link.url` | Ignorat și înlocuit cu pagina găzduită. Omiteți-l. |
| Codifică | Linkul scurt, care deschide pagina găzduită a evenimentului, cu o descărcare `.ics`. |
| După tipărire | Editabil. Trimiteți un `data` nou pentru a actualiza pagina. |

Câmpuri în `data`:

| Câmp | Tip | Note |
| - | - | - |
| `name` | string | **Editor:** obligatoriu. |
| `eventType` | string | Unul dintre tipurile de evenimente de mai jos sau gol. |
| `start`, `end` | `"YYYY-MM-DDTHH:mm"` | Ora locală din `timezone`. **Editor:** ambele obligatorii, sfârșitul după început. |
| `timezone` | IANA, de exemplu `"Europe/Berlin"` | Plasează începutul și sfârșitul în fișierul `.ics`. Trimiteți-l întotdeauna: un fus orar gol sau necunoscut face ca `.ics` să trateze orele ca UTC. |
| `street`, `zip`, `city`, `state`, `country` | string | **Editor:** `city` și `country` obligatorii, fiecare până la 40. |
| `facilities` | string\[] | ID-uri din lista de mai jos. ID-urile necunoscute sunt ignorate. |
| `notes` | string | Text liber. |
| `fileId` | string | Imaginea de copertă (target `logo`). |
| `pageLogoFileId` | string | Logoul paginii (target `logo`). |
| `organizerName`, `organizerEmail`, `mobile`, `work` | string | `mobile` și `work` până la 40. |
| `socialLinks` | `{ platform, url }[]` | [Rețelele sociale vCard](#vcard), plus `website`. |
| `ticketsUrl` | URL http(s) | Link pentru cumpărarea biletelor. |
| `ticketsLabel` | string | Până la 20 de caractere. Etichetele mai lungi sunt trunchiate. Dacă este gol, se afișează eticheta implicită. |

> [accordion] Tipuri de evenimente
>
> `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] Facilități
>
> | Grup | ID-uri |
> | - | - |
> | Intrare | `freeEntry`, `idRequired`, `invitationOnly`, `plusOneAllowed`, `reEntryAllowed` |
> | Vârstă (alegeți una) | `adultsOnly`, `age18Plus`, `age21Plus`, `kidsWelcome` |
> | La fața locului | `parking`, `publicTransport`, `shuttle`, `wheelchairAccess`, `evCharging`, `wifi`, `foodDrinks`, `alcoholServed`, `atm`, `coatCheck`, `pool`, `phoneCharging`, `firstAid`, `wc` |
> | Reguli | `petsAllowed`, `noPets`, `smokingArea`, `noSmoking`, `noPhotos` |
> | Cod vestimentar (alegeți unul) | `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\"}"
}
```

Erori:

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

## Fișiere în codurile QR

Înregistrați un fișier cu [Fișiere](https://docs.getqr.com/ro/api/endpoints/files.md), încărcați-l, apoi transmiteți `fileId`. Folosiți targetul care corespunde utilizării:

* **`pdf`, `image`, `video`.** Conținutul unui cod QR PDF, Image sau Video.
* **`logo`.** Imagini de profil, logouri de pagină, pictograme pentru linkuri personalizate și logouri centrale.

Fișierele care nu sunt atașate niciodată unui cod QR sunt șterse după o perioadă de grație.

Erori `fileId`, returnate la creare și la `PATCH` când se trimite `fileId`:

| Status | Cauză |
| - | - |
| `422 unprocessable_entity` | Tipul nu acceptă fișiere. Doar `pdf`, `image`, `video`, `vcard`, `social`, `multilink` și `event` acceptă unul. |
| `404 not_found` | Nu există niciun fișier cu acest ID. Înregistrați-l mai întâi cu `POST /api/v1/files`. |
| `422 unprocessable_entity` | Fișierul a fost încărcat pentru alt target. De exemplu, o încărcare `image` pe un cod QR PDF sau o încărcare `pdf`, `image` ori `video` folosită ca fotografie vCard. |
| `422 unprocessable_entity` | Fișierul este înregistrat, dar încărcarea la `uploadUrl` nu s-a finalizat niciodată. |

ID-urile de fișiere din interiorul unui payload (`fileId`, `pageLogoFileId`, `customItems[].logoFileId`, liniile `X-GETQR-*-FILEID`) nu sunt validate. Ele sunt afișate doar dacă au fost încărcate cu targetul `logo`. Codul QR le revendică, așa că procesul de curățare nu le atinge.

## Schimbarea tipului

Puteți schimba `qrType` cu [Actualizarea unui cod QR](https://docs.getqr.com/ro/api/endpoints/qr-codes.md#actualizarea-unui-cod-qr). Trimiteți un `data` care corespunde noului tip: payloadul stocat aparține tipului vechi, așa că o schimbare fără el este respinsă.

După o actualizare, destinația se stabilește în această ordine:

1. `vcard`, `social`, `multilink`, `event`: întotdeauna pagina găzduită.
2. Un pachet PDF sau o galerie de imagini creată în panou: pagina sa de destinație.
3. `pdf`, `image`, `video`: URL-ul fișierului (un `fileId` nou, altfel cel stocat).
4. `link.url`, când este trimis.
5. `data` modificat.
6. URL-ul stocat.

Ce face fiecare schimbare:

* **Din `pdf`, `image` sau `video`.** `fileId` și orice pachet sau galerie sunt șterse.
* **În `pdf`, `image` sau `video`.** Trimiteți și `fileId`, altfel este refolosit cel stocat, care poate fi o fotografie vCard.
* **Din `app`.** Numele aplicației, `link.ios` și `link.android` sunt șterse, așa că telefoanele urmează noua destinație.
* **În `wifi`.** Imaginea trece la payloadul brut. Codurile deja tipărite conțin în continuare linkul scurt, care acum redirecționează către un URL `wifi:`.
* **Din `wifi`.** Codurile tipărite își păstrează rețeaua veche.
* **În `vcard`, `social`, `multilink` sau `event`.** Linkul scurt este îndreptat către noua pagină găzduită.
* **Din `vcard`, `social`, `multilink` sau `event`.** Trimiteți noul `data`. Destinația îl urmează.

Codurile QR statice create în panou nu au link scurt, așa că modificarea `link.url` pentru ele primește `422`.

## Nu este acceptat prin API

Aceste funcții din panou nu fac parte din API-ul v1. Câmpurile necunoscute sunt eliminate fără eroare, așa că trimiterea lor nu are niciun efect.

| Câmp | Descriere |
| - | - |
| `appName` | Numele afișat al unui cod QR App Link. Codurile QR App Link create prin API își afișează URL-ul de magazin în lista din panou. |
| `isStatic` | Un cod QR static, fără link scurt. Fiecare cod QR creat prin API are unul, așa că poate fi editat și urmărit după tipărire (cu excepția `wifi`). |
| `pdfBundle` | Un cod QR PDF cu două sau mai multe fișiere. API-ul creează doar coduri QR PDF cu un singur fișier. |
| `imageGallery` | Un cod QR Image cu două sau mai multe imagini. API-ul creează doar coduri QR cu o singură imagine. |

Pachetele și galeriile create în panou pot fi în continuare citite, puse în pauză și șterse prin API, dar fișierele lor nu pot fi modificate prin API.

## Probleme frecvente

> [accordion] 422 Invalid destination URL
>
> `link.url` folosește o schemă către care linkul scurt nu poate redirecționa, cum ar fi `geo:`, `smsto:`, `matmsg:` sau `tel:`. Folosiți formatele de pe această pagină.

> [accordion] 400 Missing destination URL
>
> `data` este gol și nu există `link.url`. Pentru `app`, setați cel puțin unul dintre `link.ios`, `link.android`, `link.url` sau `data`.

> [accordion] data din răspuns este un link scurt, nu URL-ul meu
>
> Pentru tipurile de tip link, `data` stocat este linkul scurt. Citiți destinația din `url`.

> [accordion] Pagina de destinație nu afișează unele detalii din payload
>
> Pagina citește doar câmpurile și formele de linie enumerate pentru tipul respectiv. Celelalte câmpuri sunt stocate, dar nu sunt afișate.

## Ce urmează

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

> [card] [Fișiere](https://docs.getqr.com/ro/api/endpoints/files.md)

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

> [card] [Reguli de acces](https://docs.getqr.com/ro/api/guides/access-rules.md)


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