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

# Дані QR-коду за типами

> Формат даних, приклад запиту й поведінка після друку для кожного з 16 типів QR-кодів.

> [!NOTE]
>
> API GetQR перебуває в бета-версії та доступний для окремих робочих просторів. До загального релізу деталі можуть змінитися.

Кожен QR-код має `qrType`, і тип визначає, що має містити `data`. У цьому посібнику описано формат кожного типу, робоче тіло запиту й те, що ще можна змінити після друку коду.

Приклади — це тіла запитів для [Створення QR-коду](https://docs.getqr.com/ua/api/endpoints/qr-codes.md#створення-qr-коду). Надсилайте їх так:

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

## Усі типи коротко

| `qrType` | `data` | Можна змінити після друку |
| - | - | - |
| [`website`](#website) | URL http(s) | Так |
| [`feedback`](#feedback) | URL http(s) форми | Так |
| [`payment`](#payment) | URL платіжного провайдера | Так |
| [`whatsapp`](#whatsapp) | Посилання `wa.me` | Так |
| [`location`](#location) | URL карти | Так |
| [`app`](#app-link) | URL магазину або порожньо, плюс `link.ios` / `link.android` | Так |
| [`email`](#email) | URI `mailto:` | Так |
| [`sms`](#sms) | URI `sms:` | Так |
| [`wifi`](#wifi) | Дані `WIFI:` | **Ні** |
| [`pdf`, `image`, `video`](#pdf-image-і-video) | Порожньо, з `fileId` | Так |
| [`vcard`](#vcard) | Текст vCard 3.0 | Так |
| [`social`](#social-media) | Рядок JSON | Так |
| [`multilink`](#multi-link) | Рядок JSON | Так |
| [`event`](#event) | Рядок JSON | Так |

## Як спрацьовує QR-код

Кожен QR-код — це коротке посилання плюс дані. Вміст задають два поля:

| Поле | Що це |
| - | - |
| `link.url` | Куди коротке посилання спрямовує відвідувача. Для всіх типів, крім `wifi`, це і є справжня адреса призначення. |
| `data` | Дані типу, які перевіряються відповідно до `qrType`. Вони зберігаються в надісланому вигляді лише для `wifi`, `vcard`, `social`, `multilink`, `event` і `sms`. Для всіх інших типів вони лише задають `link.url`, а збереженим `data` стає коротке посилання. Адресу призначення читайте з `url` у відповіді. |

Правила для всіх типів:

* **Значення за замовчуванням.** Під час створення пропущений або порожній `link.url` набуває значення `data`, а весь об'єкт `link` можна не передавати. Якщо надіслано обидва і вони різні, перевагу має `link.url`. Надсилайте їх однаковими або надсилайте лише `data`.
* **Що кодує зображення.** Для всіх типів, крім `wifi`, зображення кодує коротке посилання. Тож можна змінити, куди веде надрукований код, а його сканування відстежуються. QR-код WiFi кодує саму мережу: після друку його не можна змінити, а сканування не відстежуються.
* **Схеми.** `link.url` приймає лише `http:`, `https:`, `wifi:`, `mailto:`, `sms:` і `begin:`. Усе інше, зокрема `geo:`, `smsto:`, `matmsg:` і `tel:`, отримує `422 Invalid destination URL`, навіть якщо `data` таке значення приймає.
* **Порожні дані.** Порожнє `data` пропускає перевірку типу. Для типу з перенаправленням тоді обов'язково має бути заданий `link.url`, інакше виклик отримає `400 Missing destination URL`.
* **Структура.** Крім перевірки типу, сервер не валідує дані. Для JSON-типу дані мають лише розбиратися як об'єкт JSON, а vCard має лише починатися з `BEGIN:VCARD`.

> [!TIP]
>
> Обмеження, позначені нижче як **Конструктор**, застосовує редактор у панелі керування. API приймає дані, які їх не дотримуються, але вони можуть дивно відображатися на лендінгу або в редакторі.

## Website

`qrType`: `"website"`. Посібник для панелі керування: [QR-код Website](https://docs.getqr.com/ua/qr-types/website.md).

| Поле | Поведінка |
| - | - |
| `data` | URL http(s). |
| `link.url` | Адреса призначення. За замовчуванням — `data`. |
| `fileId` | Не допускається. |
| Кодує | Коротке посилання, яке перенаправляє на `link.url`. Сканування відстежуються. |
| Після друку | Можна змінити. Щоб змінити адресу призначення, надішліть `data` або `link.url`. Достатньо лише `data`. |

```json Тіло запиту theme={null}
{
  "qrType": "website",
  "data": "https://example.com/menu",
  "title": "Menu"
}
```

Помилки:

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

## Feedback

`qrType`: `"feedback"`. Посібник для панелі керування: [QR-код Feedback](https://docs.getqr.com/ua/qr-types/feedback.md).

`data` — це URL http(s) форми зворотного зв'язку, наприклад Google Form або сторінки з відгуками. Усе інше працює так само, як для [Website](#website).

```json Тіло запиту theme={null}
{
  "qrType": "feedback",
  "data": "https://forms.gle/abc123"
}
```

## Payment

`qrType`: `"payment"`. Посібник для панелі керування: [QR-код Payment](https://docs.getqr.com/ua/qr-types/payment.md).

`data` — це URL оплати в провайдера, наприклад:

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

Редактор у панелі керування розпізнає такі хости: `paypal.me`, `paypal.com/paypalme`, `cash.app`, `venmo.com`, `buy.stripe.com`, `stripe.com`, `square.link` і `payoneer.com`. Для PayPal сума — це останній сегмент шляху. Підійде й будь-який інший URL http(s), але редактор не розділить його на провайдера й суму. Усе інше працює так само, як для [Website](#website).

```json Тіло запиту theme={null}
{
  "qrType": "payment",
  "data": "https://paypal.me/acme/25EUR"
}
```

## WhatsApp

`qrType`: `"whatsapp"`. Посібник для панелі керування: [QR-код WhatsApp](https://docs.getqr.com/ua/qr-types/whatsapp.md).

`data` — це посилання `wa.me`: міжнародний номер цифрами без `+`, за бажання із заздалегідь заповненим текстом.

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

Сервер перевіряє лише, що це URL http(s). Панель керування також розпізнає посилання `api.whatsapp.com/send`. Усе інше працює так само, як для [Website](#website).

```json Тіло запиту theme={null}
{
  "qrType": "whatsapp",
  "data": "https://wa.me/14155550123?text=Hi%20there"
}
```

## Location

`qrType`: `"location"`. Посібник для панелі керування: [QR-код Location](https://docs.getqr.com/ua/qr-types/location.md).

`data` — це URL карти. Щоб QR-код можна було редагувати в панелі керування, використовуйте такий формат (`query_place_id` необов'язковий):

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

Будь-який інший URL http(s) теж перенаправляє. URI `geo:` проходить перевірку `data`, але відхиляється як адреса призначення, тому не використовуйте його. Усе інше працює так само, як для [Website](#website).

```json Тіло запиту 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"`. Посібник для панелі керування: [QR-код App Link](https://docs.getqr.com/ua/qr-types/app-link.md).

| Поле | Поведінка |
| - | - |
| `link.ios`, `link.android` | URL в App Store і Google Play. Відвідувачі з iOS переходять на `ios`, з Android — на `android`. Під час сканування вони мають пріоритет над усім іншим. |
| `link.url` | Резервна адреса для інших пристроїв. За замовчуванням — `data`, потім `ios` або `android`. |
| `data` | URL http(s) (панель керування надсилає URL магазину) або порожньо. Треба задати принаймні одне з `link.ios`, `link.android`, `link.url` або `data`, інакше виклик отримає `400 Missing destination URL`. |
| `fileId` | Не допускається. |
| Кодує | Коротке посилання. Сканування відстежуються. |
| Після друку | Можна змінити. `link.ios` і `link.android` застосовуються незалежно, кожне — лише якщо його надіслано. `null` очищає значення. Повторно надсилати `qrType` не потрібно. Перехід на інший тип очищає обидва посилання на магазини. |

```json Тіло запиту 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"
  }
}
```

Помилки:

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

## Email

`qrType`: `"email"`. Посібник для панелі керування: [QR-код Email](https://docs.getqr.com/ua/qr-types/email.md).

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

| Поле | Поведінка |
| - | - |
| `data` | URI `mailto:` з необов'язковими темою й текстом листа. Кодуйте пробіли як `%20`: панель керування записує їх як `+`, а не кожен поштовий застосунок читає це як пробіл. `matmsg:` відхиляється як адреса призначення. |
| `link.url` | URI `mailto:`. За замовчуванням — `data`. |
| `fileId` | Не допускається. |
| Кодує | Коротке посилання, що відкриває сторінку, яка передає лист у поштовий застосунок. |
| Після друку | Можна змінити. Щоб змінити лист, надішліть `data` або `link.url`. Достатньо лише `data`. |

```json Тіло запиту theme={null}
{
  "qrType": "email",
  "data": "mailto:hi@example.com?subject=Hello&body=Hi%20there"
}
```

Помилки:

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

## SMS

`qrType`: `"sms"`. Посібник для панелі керування: [QR-код SMS](https://docs.getqr.com/ua/qr-types/sms.md).

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

| Поле | Поведінка |
| - | - |
| `data` | URI `sms:` з необов'язковим текстом. Панель керування розпізнає лише саме цю форму. `smsto:` відхиляється як адреса призначення. |
| `link.url` | URI `sms:`. За замовчуванням — `data`. |
| `fileId` | Не допускається. |
| Кодує | Коротке посилання, що відкриває сторінку, яка передає повідомлення в застосунок для повідомлень. |
| Після друку | Можна змінити. Щоб змінити повідомлення, надішліть `data` або `link.url`. Достатньо лише `data`. |

```json Тіло запиту theme={null}
{
  "qrType": "sms",
  "data": "sms:+14155550123?body=Table%2012"
}
```

Помилки:

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

## WiFi

`qrType`: `"wifi"`. Посібник для панелі керування: [QR-код WiFi](https://docs.getqr.com/ua/qr-types/wifi.md).

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

| Поле | Поведінка |
| - | - |
| `data` | Обов'язкове. Дотримуйтеся порядку `T`, `S`, `P`, `H`: від нього залежать редактор і список у панелі керування. Екрануйте `\`, `;`, `"` і `:` в SSID і паролі зворотною скісною рискою. Для відкритої мережі використовуйте `T:nopass` з порожнім `P:`. Сканери відхиляють `T:none`. **Конструктор:** SSID обов'язковий, пароль — щонайменше 8 символів, якщо не `nopass`. |
| `link.url` | Для сканування не використовується. За замовчуванням — `data`. |
| `fileId` | Не допускається. |
| Кодує | Сирі дані `WIFI:`, а не коротке посилання. Сканування не відстежуються. |
| Після друку | **Змінити не можна.** Нове `data` змінює лише майбутні завантаження. Надруковані коди зберігають стару мережу. |

```json Тіло запиту theme={null}
{
  "qrType": "wifi",
  "data": "WIFI:T:WPA;S:Cafe Guest;P:espresso42;H:false;;"
}
```

Помилки:

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

> [!WARNING]
>
> Не змінюйте тип надрукованого QR-коду WiFi. Надруковані коди зберігають стару мережу.

## PDF, Image і Video

`qrType`: `"pdf"`, `"image"` або `"video"`. Посібники для панелі керування: [PDF](https://docs.getqr.com/ua/qr-types/pdf.md), [Image](https://docs.getqr.com/ua/qr-types/image.md), [Video](https://docs.getqr.com/ua/qr-types/video.md).

| Поле | Поведінка |
| - | - |
| `fileId` | Файл. Завантажте його з target, що відповідає типу: `pdf`, `image` або `video`. З `fileId` значенням `link.url` стає URL файлу, а все, що ви в ньому надішлете, ігнорується. |
| `data` | Будь-що, крім даних іншого типу (`WIFI:`, `BEGIN:VCARD`, `sms:`, `mailto:`, об'єкт JSON). Можна залишити порожнім. |
| `link.url` | Без `fileId` значення `link.url` (або `data`) використовується як зовнішня адреса призначення. Це працює, але панель керування не показує файлу. |
| Кодує | Коротке посилання, яке перенаправляє безпосередньо на файл. PDF відкривається як звичайний файл, а не на сторінці перегляду. |
| Після друку | Можна змінити. Щоб замінити файл, надішліть новий `fileId`. Старий файл звільняється. |

Один файл на QR-код: набори PDF і галереї зображень через API недоступні. Див. [Не підтримується через API](#не-підтримується-через-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"
}
```

Як завантажити файл і отримати його `fileId`, див. у розділі [Файли](https://docs.getqr.com/ua/api/endpoints/files.md).

## vCard

`qrType`: `"vcard"`. Посібник для панелі керування: [QR-код vCard](https://docs.getqr.com/ua/qr-types/vcard.md).

| Поле | Поведінка |
| - | - |
| `data` | Обов'язкове. Текст vCard 3.0, що починається з `BEGIN:VCARD`, рядки розділено `\r\n` (`\n` теж працює). |
| `fileId` | Необов'язкове зображення профілю (target `logo`), яке використовується, якщо в `data` немає рядка `PHOTO` або `X-GETQR-IMAGE-FILEID`. |
| `link.url` | Ігнорується й замінюється розміщеною сторінкою. Не передавайте його. |
| Кодує | Коротке посилання, що відкриває розміщену сторінку контакту із завантаженням контакту (`.vcf`). |
| Після друку | Можна змінити. Щоб оновити сторінку, надішліть нове `data`. |

Лендінг і редактор читають лише наведені нижче форми рядків. Інші варіанти, як-от `TEL;CELL:` або `EMAIL;TYPE=INTERNET:`, зберігаються, але на сторінці не з'являються.

* `N:<last>;<first>;;;`: прізвище та ім'я. **Конструктор:** обидва обов'язкові, до 40 символів.
* `FN:<first> <last>`: сторінка його не читає. З нього береться підпис у списку панелі керування.
* `ORG:<company>` і `TITLE:<role>`: компанія та посада. **Конструктор:** до 40 символів.
* `TEL;TYPE=HOME:`, `TEL;TYPE=CELL:`, `TEL;TYPE=WORK:`, `TEL;TYPE=FAX:`: номери телефону, мобільного, робочого й факсу (`+` і цифри).
* `EMAIL:<email>`: адреса електронної пошти.
* `URL:<url>`: вебсайт.
* `NOTE:<text>`: опис. Екрануйте `\\`, `\n`, `\;` і `\,`. **Конструктор:** до 200 символів.
* `ADR:;;<street>;<city>;<state>;<zip>;<country>`: адреса.
* `X-SOCIALPROFILE;TYPE=<platform>:<url>` або `URL;TYPE=<PLATFORM>:<url>`: посилання на соцмережі, по одному рядку на платформу.
* `PHOTO;VALUE=URI:<url>`: URL зображення профілю. Має пріоритет над будь-яким ID файлу.
* `X-GETQR-IMAGE-FILEID:<fileId>`: зображення профілю (target `logo`).
* `X-GETQR-PAGE-LOGO-FILEID:<fileId>`: логотип сторінки (target `logo`).
* `X-GETQR-LANDING-THEME:p|<0-4>` або `X-GETQR-LANDING-THEME:c|#RRGGBB|#RRGGBB|#RRGGBB`: тема лендінгу — або індекс готової теми (від 0 до 4), або власні кольори фону, кнопок і іконок.

Соцмережі: `facebook`, `whatsapp`, `instagram`, `youtube`, `tiktok`, `messenger`, `snapchat`, `linkedin`, `x`, `reddit`, `pinterest`, `telegram`, `wechat`, `viber`, `line`.

```json Тіло запиту 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"
}
```

Помилки:

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

## Social Media

`qrType`: `"social"`. Посібник для панелі керування: [QR-код Social Media](https://docs.getqr.com/ua/qr-types/social.md).

| Поле | Поведінка |
| - | - |
| `data` | Обов'язкове. Рядок JSON, що кодує об'єкт. Сформуйте його за допомогою `JSON.stringify`. |
| `fileId` | Необов'язкове зображення профілю на верхньому рівні (target `logo`). |
| `link.url` | Ігнорується й замінюється розміщеною сторінкою. Не передавайте його. |
| Кодує | Коротке посилання, що відкриває розміщену сторінку соцмереж. |
| Після друку | Можна змінити. Щоб оновити сторінку, надішліть нове `data`. |

Поля в `data`:

| Поле | Тип | Примітки |
| - | - | - |
| `firstName` | string | Заголовок сторінки та єдине ім'я, що відображається. **Конструктор:** обов'язкове, до 40. |
| `lastName` | string | До 40. На сторінці не відображається. |
| `summary` | string | До 200. |
| `socialLinks` | `{ platform, url }[]` | `platform` — одна з [соцмереж vCard](#vcard). **Конструктор:** кожна платформа один раз. |
| `customItems` | `{ name, url, logoFileId }[]` | **Конструктор:** `name` до 40, `url` http(s) і `logoFileId`. Загалом щонайменше одне посилання на соцмережу або власний елемент. |
| `fileId` | string | Зображення профілю (target `logo`). Резервним є `fileId` верхнього рівня. |
| `imageUrl` | string | URL зовнішнього зображення профілю; використовується, лише якщо немає ID файлу. |
| `pageLogoFileId` | string | Логотип сторінки (target `logo`). |
| `landingThemeMode` | `"preset" \| "custom"` | За замовчуванням — `preset`. |
| `landingPresetIndex` | 0–4 | За замовчуванням — 0. |
| `landingCustomBg`, `landingCustomButton`, `landingCustomIcon` | `#RRGGBB` | Використовуються в режимі `custom`. |

```json Тіло запиту theme={null}
{
  "qrType": "social",
  "data": "{\"firstName\":\"Acme Coffee\",\"summary\":\"Follow us\",\"socialLinks\":[{\"platform\":\"instagram\",\"url\":\"https://instagram.com/acme\"}],\"customItems\":[]}"
}
```

Помилки:

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

## Multi-Link

`qrType`: `"multilink"`. Посібник для панелі керування: [QR-код Multi-Link](https://docs.getqr.com/ua/qr-types/multi-link.md).

| Поле | Поведінка |
| - | - |
| `data` | Обов'язкове. Рядок JSON, що кодує об'єкт. |
| `fileId` | Необов'язкове зображення профілю на верхньому рівні (target `logo`). |
| `link.url` | Ігнорується й замінюється розміщеною сторінкою. Не передавайте його. |
| Кодує | Коротке посилання, що відкриває розміщену сторінку з посиланнями. |
| Після друку | Можна змінити. Щоб оновити сторінку, надішліть нове `data`. |

Поля в `data` такі самі, як у [Social Media](#social-media), але `firstName`, `lastName` і `summary` замінено на:

| Поле | Тип | Примітки |
| - | - | - |
| `title` | string | Заголовок сторінки. **Конструктор:** обов'язкове, до 40. |
| `description` | string | До 200. |

У `customItems` поле `logoFileId` необов'язкове: показується резервна іконка. **Конструктор:** щонайменше одне посилання на соцмережу або один непорожній власний елемент.

```json Тіло запиту theme={null}
{
  "qrType": "multilink",
  "data": "{\"title\":\"Acme links\",\"description\":\"Everything in one place\",\"socialLinks\":[],\"customItems\":[{\"name\":\"Shop\",\"url\":\"https://acme.com/shop\",\"logoFileId\":\"\"}]}"
}
```

Помилки:

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

## Event

`qrType`: `"event"`. Посібник для панелі керування: [QR-код Event](https://docs.getqr.com/ua/qr-types/event.md).

| Поле | Поведінка |
| - | - |
| `data` | Обов'язкове. Рядок JSON, що кодує об'єкт. Невідомі або некоректні значення замінюються значеннями за замовчуванням. |
| `fileId` | Перевіряється (target `logo`) і зберігається, але сторінка події бере обкладинку лише з `data.fileId`. Передавайте ID обкладинки в даних. |
| `link.url` | Ігнорується й замінюється розміщеною сторінкою. Не передавайте його. |
| Кодує | Коротке посилання, що відкриває розміщену сторінку події із завантаженням `.ics`. |
| Після друку | Можна змінити. Щоб оновити сторінку, надішліть нове `data`. |

Поля в `data`:

| Поле | Тип | Примітки |
| - | - | - |
| `name` | string | **Конструктор:** обов'язкове. |
| `eventType` | string | Один із наведених нижче типів подій або порожньо. |
| `start`, `end` | `"YYYY-MM-DDTHH:mm"` | Місцевий час у `timezone`. **Конструктор:** обидва обов'язкові, кінець пізніше за початок. |
| `timezone` | IANA, наприклад `"Europe/Berlin"` | Прив'язує початок і кінець у файлі `.ics`. Завжди надсилайте його: з порожнім або невідомим поясом `.ics` трактує час як UTC. |
| `street`, `zip`, `city`, `state`, `country` | string | **Конструктор:** `city` і `country` обов'язкові, кожне до 40. |
| `facilities` | string\[] | ID зі списку нижче. Невідомі ID відкидаються. |
| `notes` | string | Довільний текст. |
| `fileId` | string | Обкладинка (target `logo`). |
| `pageLogoFileId` | string | Логотип сторінки (target `logo`). |
| `organizerName`, `organizerEmail`, `mobile`, `work` | string | `mobile` і `work` до 40. |
| `socialLinks` | `{ platform, url }[]` | [Соцмережі vCard](#vcard), а також `website`. |
| `ticketsUrl` | URL http(s) | Посилання на купівлю квитків. |
| `ticketsLabel` | string | До 20 символів. Довші підписи обрізаються. Якщо порожньо, показується підпис за замовчуванням. |

> [accordion] Типи подій
>
> `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] Зручності
>
> | Група | ID |
> | - | - |
> | Вхід | `freeEntry`, `idRequired`, `invitationOnly`, `plusOneAllowed`, `reEntryAllowed` |
> | Вік (виберіть одне) | `adultsOnly`, `age18Plus`, `age21Plus`, `kidsWelcome` |
> | На місці | `parking`, `publicTransport`, `shuttle`, `wheelchairAccess`, `evCharging`, `wifi`, `foodDrinks`, `alcoholServed`, `atm`, `coatCheck`, `pool`, `phoneCharging`, `firstAid`, `wc` |
> | Правила | `petsAllowed`, `noPets`, `smokingArea`, `noSmoking`, `noPhotos` |
> | Дрес-код (виберіть одне) | `dressCasual`, `dressSmartCasual`, `dressBusiness`, `dressCocktail`, `dressThemed` |

```json Тіло запиту 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\"}"
}
```

Помилки:

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

## Файли в QR-кодах

Зареєструйте файл через [Файли](https://docs.getqr.com/ua/api/endpoints/files.md), завантажте його, а потім передайте його `fileId`. Використовуйте target, що відповідає призначенню:

* **`pdf`, `image`, `video`.** Вміст QR-коду PDF, Image або Video.
* **`logo`.** Зображення профілю, логотипи сторінок, іконки власних посилань і логотипи в центрі.

Файли, які так і не прикріпили до QR-коду, видаляються після пільгового періоду.

Помилки `fileId`, що повертаються під час створення та в `PATCH`, якщо надіслано `fileId`:

| Статус | Причина |
| - | - |
| `422 unprocessable_entity` | Тип не приймає файл. Файл приймають лише `pdf`, `image`, `video`, `vcard`, `social`, `multilink` і `event`. |
| `404 not_found` | Файлу з таким ID немає. Спершу зареєструйте його через `POST /api/v1/files`. |
| `422 unprocessable_entity` | Файл завантажено для іншого target. Наприклад, завантаження `image` для QR-коду PDF або завантаження `pdf`, `image` чи `video`, використане як фото vCard. |
| `422 unprocessable_entity` | Файл зареєстровано, але завантаження на `uploadUrl` так і не завершилося. |

ID файлів усередині даних (`fileId`, `pageLogoFileId`, `customItems[].logoFileId`, рядки `X-GETQR-*-FILEID`) не перевіряються. Вони відображаються, лише якщо файли завантажено з target `logo`. QR-код закріплює їх за собою, тому очищення їх не зачіпає.

## Зміна типу

Змінити `qrType` можна через [Оновлення QR-коду](https://docs.getqr.com/ua/api/endpoints/qr-codes.md#оновлення-qr-коду). Надішліть `data`, що відповідає новому типу: збережені дані належать старому типу, тому зміну без них буде відхилено.

Після оновлення адреса призначення визначається в такому порядку:

1. `vcard`, `social`, `multilink`, `event`: завжди розміщена сторінка.
2. Набір PDF або галерея зображень, створені в панелі керування: їхній лендінг.
3. `pdf`, `image`, `video`: URL файлу (новий `fileId`, інакше збережений).
4. `link.url`, якщо надіслано.
5. Змінене `data`.
6. Збережений URL.

Що відбувається під час кожної зміни:

* **З `pdf`, `image` або `video`.** `fileId` і будь-який набір або галерея очищаються.
* **На `pdf`, `image` або `video`.** Надішліть також `fileId`, інакше буде повторно використано збережений, а це може бути фото vCard.
* **З `app`.** Назва застосунку, `link.ios` і `link.android` очищаються, тож телефони переходять на нову адресу призначення.
* **На `wifi`.** Зображення переходить на сирі дані. Уже надруковані коди й далі містять коротке посилання, яке тепер перенаправляє на URL `wifi:`.
* **З `wifi`.** Надруковані коди зберігають стару мережу.
* **На `vcard`, `social`, `multilink` або `event`.** Коротке посилання спрямовується на нову розміщену сторінку.
* **З `vcard`, `social`, `multilink` або `event`.** Надішліть нове `data`. Адреса призначення визначається ним.

Статичні QR-коди, створені в панелі керування, не мають короткого посилання, тому зміна їхнього `link.url` повертає `422`.

## Не підтримується через API

Ці можливості панелі керування не входять до API v1. Невідомі поля відкидаються без помилки, тож їх надсилання ні на що не впливає.

| Поле | Опис |
| - | - |
| `appName` | Назва QR-коду App Link, що відображається. Для QR-кодів App Link, створених через API, у списку панелі керування показується URL магазину. |
| `isStatic` | Статичний QR-код без короткого посилання. Воно є в кожного QR-коду, створеного через API, тому після друку його можна редагувати й відстежувати (крім `wifi`). |
| `pdfBundle` | QR-код PDF із двома чи більше файлами. API створює лише QR-коди PDF з одним файлом. |
| `imageGallery` | QR-код Image із двома чи більше зображеннями. API створює лише QR-коди з одним зображенням. |

Набори й галереї, створені в панелі керування, і далі можна читати, призупиняти й видаляти через API, але змінити їхні файли через нього не можна.

## Поширені проблеми

> [accordion] 422 Invalid destination URL
>
> `link.url` використовує схему, на яку коротке посилання не може перенаправити, наприклад `geo:`, `smsto:`, `matmsg:` або `tel:`. Використовуйте формати з цієї сторінки.

> [accordion] 400 Missing destination URL
>
> `data` порожнє, а `link.url` немає. Для `app` задайте принаймні одне з `link.ios`, `link.android`, `link.url` або `data`.

> [accordion] У відповіді data — коротке посилання, а не мій URL
>
> Для типів-посилань збереженим `data` є коротке посилання. Адресу призначення читайте з `url`.

> [accordion] На лендінгу бракує деяких даних із мого запиту
>
> Сторінка читає лише поля й форми рядків, наведені для типу. Інші поля зберігаються, але не відображаються.

## Що далі

> [card] [QR-коди](https://docs.getqr.com/ua/api/endpoints/qr-codes.md)

> [card] [Файли](https://docs.getqr.com/ua/api/endpoints/files.md)

> [card] [Оформлення](https://docs.getqr.com/ua/api/guides/customization.md)

> [card] [Правила доступу](https://docs.getqr.com/ua/api/guides/access-rules.md)


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