> ## 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]
>
> GetQR API находится в бета-версии и доступен для отдельных рабочих пространств. До общего релиза детали могут измениться.

У каждого QR-кода есть `qrType`, и тип определяет, что должно быть в `data`. В этом руководстве описаны формат каждого типа, рабочее тело запроса и то, что можно изменить после печати кода.

Примеры — это тела запросов для [Создания QR-кода](https://docs.getqr.com/ru/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/ru/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/ru/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/ru/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/ru/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/ru/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/ru/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/ru/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/ru/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/ru/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/ru/qr-types/pdf.md), [Image](https://docs.getqr.com/ru/qr-types/image.md), [Video](https://docs.getqr.com/ru/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/ru/api/endpoints/files.md).

## vCard

`qrType`: `"vcard"`. Инструкция для панели управления: [QR-код vCard](https://docs.getqr.com/ru/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/ru/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/ru/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/ru/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/ru/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/ru/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/ru/api/endpoints/qr-codes.md)

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

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

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


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