curl -X POST api.qrcw.cc/qr-codes
-H "Authorization: Bearer qrcw_..."
-d '{
"type": "URL",
"content": "https://shop.ru/123",
"dynamic": true
}'REST API для генерации QR-кодов — интеграция в 1С, CRM, Python
POST /qr-codes — один запрос, готовый QR. PNG, SVG, base64. Batch 1000 кодов. Webhook на каждый скан. OpenAPI 3.1. Серверы в РФ. Бесплатный старт без карты.
{
"id": "qr_8FzNb6Vk9Yp",
"short_url": "qrcw.cc/r/abc123",
"downloads": {
"png": "…/qr.png",
"svg": "…/qr.svg"
},
"dynamic": true
}12 возможностей QR API
Полный CRUD над QR-кодами, batch до 1000, webhooks, аналитика — всё через REST с OpenAPI 3.1 документацией.
Один эндпоинт — готовый QR
POST /qr-codes c типом, контентом, дизайном — в ответе PNG, SVG, PDF и ID. Статический и динамический — один путь.
"short_url": "qrcw.cc/r/abc"
"downloads": { "png", "svg" }Batch до 1 000 QR за вызов
POST /qr-codes/batch принимает массив объектов. BullMQ фоновая очередь, на выходе — ZIP + CSV-маппинг.
Webhook на скан
HMAC-SHA256 POST на ваш endpoint: время, гео, устройство, реферер. Retry 1 / 5 / 30 мин / 2 ч / 24 ч.
Аналитика через API
GET /qr-codes/:id/stats — агрегаты, /events — сырой поток сканов с пагинацией.
Безопасная аутентификация
qrcw_<24-nonce>. SHA-256 в БД, scope per-key, мгновенный отзыв.
Управление доменами
POST /domains — подключите свой домен через CNAME, SSL выпускаем сами.
OpenAPI 3.1
Полная спека в JSON. Импорт в Postman, Swagger UI, openapi-generator.
Серверы в России (152-ФЗ)
Latency 20–40 мс для запросов из РФ. Соответствие 152-ФЗ. Без зарубежных CDN.
SLA 99,9 / 99,99 %
Pro 99,9 %, Enterprise 99,99 %. Мониторинг 24/7, status-page.
A/B-тесты кампаний
PATCH /qr-codes/:id/destination — мгновенная смена URL.
p50 = 120 ms
PNG кэшируется на CDN — повторно за 15–30 мс. До 3 000 req/min на Business.
Swagger UI в кабинете
Тестируйте эндпоинты прямо в браузере без Postman. Ключ вводится один раз.
О REST API QRcode.website
QR API — это программный интерфейс, который позволяет генерировать QR-коды, управлять ими и получать аналитику сканирований без ручной работы в браузере. Вместо того чтобы создавать каждый QR в веб-конструкторе, разработчик отправляет HTTP-запрос со своего сервера или из своего приложения и получает готовый QR-код в нужном формате. Это критично для систем, где QR-коды генерируются массово: интернет-магазины с уникальными QR на каждом товаре, типографии с QR на каждом тираже, event-платформы с QR на каждом билете, ERP-системы с QR на каждой накладной.
Разница между no-code конструктором и API принципиальная. Конструктор — для одного пользователя, который создаёт QR вручную. API — для системы, которая создаёт тысячи QR автоматически, без участия человека. Наш REST API работает по стандартным принципам: HTTP-запрос, JSON-тело, JSON-ответ, Bearer-токен для авторизации. Документация в формате OpenAPI 3.1 — можно импортировать в Postman, Swagger UI или любой API-клиент за секунды.
Эндпоинты: создание, управление и аналитика
Основной эндпоинт создания QR-кода — POST /api/v1/qr-codes. В теле запроса вы передаёте тип контента (URL, vCard, WiFi, текст, email, телефон, событие и другие), само содержимое, параметры дизайна (цвет, логотип, форма модулей) и флаг dynamic — если true, QR будет динамическим с редактируемой ссылкой. В ответ получаете ID объекта, короткую ссылку для динамического QR и прямые URL для скачивания файлов в форматах PNG, SVG и PDF.
Для работы с существующими QR-кодами: GET /api/v1/qr-codes/:id — получить объект, PATCH /api/v1/qr-codes/:id — обновить целевую ссылку или параметры, DELETE /api/v1/qr-codes/:id — удалить. Список QR-кодов с пагинацией и фильтрацией — GET /api/v1/qr-codes с параметрами page, limit, type, dynamic.
Массовая генерация — POST /api/v1/qr-codes/batch. Принимает массив объектов (до 1000 штук за один запрос), обрабатывает их в фоновой очереди BullMQ и возвращает task_id. Статус задачи — GET /api/v1/tasks/:task_id. Когда задача завершена, по ссылке из ответа доступен ZIP-архив со всеми QR-кодами и CSV-файлом с соответствием данных и имён файлов.
Аналитика: GET /api/v1/qr-codes/:id/stats — агрегированная статистика (сканы по дням, странам, устройствам, операционным системам), GET /api/v1/qr-codes/:id/events — сырой поток событий сканирований с пагинацией. Поддерживаются фильтры по периоду, стране и устройству.
Аутентификация: API-ключи и безопасность
Все запросы к API требуют Bearer-токен в заголовке Authorization. Формат ключа: qrcw_<24-символьный nonce>, сгенерированный через nanoid. Создать ключ можно в кабинете в разделе «API» → «Создать ключ». Ключ показывается единственный раз при создании — скопируйте и сохраните в менеджере паролей или переменной окружения. В базе данных хранится только SHA-256 хэш ключа, не сам ключ — даже при утечке базы данных ключ не компрометируется.
Для каждого ключа настраивается область видимости (scope): read-only для мониторинга, write для создания QR, admin для управления аккаунтом. Можно создать несколько ключей — например, отдельный для каждого проекта или интеграции. Любой ключ можно отозвать мгновенно в один клик — это полезно при компрометации или завершении проекта.
Rate limiting работает по скользящему окну на уровне ключа. Текущие лимиты отдаются в заголовках каждого ответа: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset. При превышении лимита API возвращает статус 429 Too Many Requests с заголовком Retry-After.
Интеграции: 1С, CRM и e-commerce
Интеграция с 1С — один из популярных сценариев. При формировании накладной или этикетки 1С вызывает наш API через COM-объект или встроенный HTTP-клиент, получает PNG QR-кода и встраивает его в печатную форму. Для настройки нужны: URL нашего API, API-ключ в переменной конфигурации, обработчик события «Перед печатью». Примеры кода на встроенном языке 1С — в нашей документации.
amoCRM интегрируется через виджет или Zapier. При смене стадии сделки создаётся QR-код с уникальной ссылкой для клиента и прикрепляется к карточке. Bitrix24 поддерживает интеграцию через REST API Bitrix24 (исходящие вебхуки) и через marketplace-приложение.
e-commerce платформы (CS-Cart, OpenCart, WooCommerce) генерируют QR для каждого товара или заказа через плагин или прямой вызов нашего API в хуке. Tilda подключается через Webhooks Tilda + запрос к нашему API — QR автоматически создаётся при отправке формы на сайте.
iOS и Android SDK находятся в разработке (ожидаемый релиз Q3 2026), но уже сейчас мобильные приложения интегрируются напрямую через REST: сформируйте запрос на бэкенде своего приложения, передайте готовое изображение на фронт.
Webhooks: события в реальном времени
Webhook — это HTTP-запрос от нашего сервера на ваш endpoint, который происходит мгновенно при наступлении события: QR-код отсканирован, ссылка кликнута, форма мини-сайта отправлена. Это позволяет строить реактивные системы: CRM обновляет статус клиента в момент сканирования QR на договоре, аналитическая система получает данные без поллинга.
Тело webhook-запроса — JSON с полями: event_type (scan, click, form_submit), qr_id, short_url, timestamp, geo (страна, город), device (тип, OS, browser), referrer. Заголовок X-Webhook-Signature содержит HMAC-SHA256 подпись от тела запроса с вашим secret — проверяйте её на своей стороне для защиты от подделки. При неудачной доставке (ответ не 2xx или таймаут 5 секунд) система повторяет запрос по экспоненциальной задержке: через 1 мин, 5 мин, 30 мин, 2 ч, 24 ч. История доставки видна в кабинете.
Лимиты тарифов и производительность
Бесплатный тариф: 100 запросов в минуту, 10 000 запросов в сутки, до 50 QR-кодов в аккаунте, batch до 10 штук за раз. Pro тариф: 600 запросов в минуту, без суточного лимита, batch до 500 штук. Business: 3 000 запросов в минуту, batch до 1 000 штук. Enterprise: без ограничений, SLA 99,99%, выделенная инфраструктура, кастомные лимиты.
Время ответа API (p50): создание статического QR — 120 мс, создание динамического QR — 90 мс (не нужно рендерить изображение сразу), скачивание PNG — 200 мс для изображения 300×300 px. Генерация PNG 1000×1000 px — 450 мс. Все изображения кэшируются на CDN — повторные запросы одного и того же QR возвращаются за 15–30 мс.
Примеры кода: curl, Python, JavaScript, PHP
Для быстрого старта достаточно curl. Прочитайте OpenAPI 3.1 спецификацию по адресу /openapi.json — в ней описаны все эндпоинты, параметры и модели ответов. Импортируйте в Postman (File → Import → URL) или в VS Code с расширением REST Client. Swagger UI доступен в кабинете в разделе «API» — можно тестировать запросы прямо в браузере, не выходя из кабинета.
Создание QR одним запросом — curl, Python, JavaScript
POST на /qr-codes — получите PNG, SVG и PDF одним запросом
curl -X POST https://app.qrcode.website/api/v1/qr-codes \
-H "Authorization: Bearer qrcw_..." \
-H "Content-Type: application/json" \
-d '{
"type": "URL",
"content": "https://example.com/product/123",
"dynamic": true,
"design": {
"foreground": "#7c3aed",
"background": "#ffffff",
"logo": "https://cdn.example.com/logo.png"
}
}'{
"id": "qr_8FzNb6Vk9Yp2X7Lq",
"short_url": "https://qrcode.website/r/abc123",
"type": "URL",
"dynamic": true,
"downloads": {
"png": "https://cdn.qrcode.website/qr/qr_8Fz.../qr.png",
"svg": "https://cdn.qrcode.website/qr/qr_8Fz.../qr.svg",
"pdf": "https://cdn.qrcode.website/qr/qr_8Fz.../qr.pdf"
},
"created_at": "2026-05-15T10:23:45Z"
}import httpx
API_KEY = "qrcw_..."
BASE_URL = "https://app.qrcode.website/api/v1"
response = httpx.post(
f"{BASE_URL}/qr-codes",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"type": "URL",
"content": "https://example.com",
"dynamic": True,
},
)
data = response.json()
print(data["downloads"]["png"]) # PNG URLconst response = await fetch("https://app.qrcode.website/api/v1/qr-codes", {
method: "POST",
headers: {
"Authorization": "Bearer qrcw_...",
"Content-Type": "application/json",
},
body: JSON.stringify({
type: "URL",
content: "https://example.com",
dynamic: true,
}),
});
const data = await response.json();
console.log(data.downloads.png); // PNG URLПолная документация — OpenAPI 3.1 на https://app.qrcode.website/api/v1/openapi.json. Интерактивный Swagger UI и Postman-коллекция доступны в кабинете в разделе «API».
8 сценариев интеграции QR API
1С, e-commerce, CRM, типографии, мобильные приложения — реальные кейсы из практики
Этикетки в 1С: QR на каждой накладной
При проведении накладной в 1С вызывается обработчик, который POST-запросом к нашему API создаёт QR-код с уникальной ссылкой на карточку товара. PNG встраивается в печатную форму этикетки. При сканировании QR кладовщик видит актуальный остаток, серийный номер и историю перемещений. Интеграция занимает 1–2 дня силами 1С-программиста.
e-commerce: QR в checkout для каждого заказа
При создании заказа интернет-магазин через API генерирует динамический QR с коротким URL на страницу заказа. QR вставляется в PDF-квитанцию и в email-подтверждение. Покупатель сканирует QR с распечатки и сразу видит статус доставки в реальном времени. При изменении статуса заказа меняется только destination динамического QR — PDF переиздавать не нужно.
CRM: QR-код для каждой сделки amoCRM
При смене стадии сделки в amoCRM срабатывает webhook, ваш бэкенд вызывает наш API и создаёт уникальный QR для клиента. Менеджер распечатывает QR на договоре или коммерческом предложении. Когда клиент сканирует — через наш webhook в CRM фиксируется событие «клиент открыл документ», сделка обновляется автоматически.
Мобильное приложение: QR-логин
Мобильное приложение запрашивает с вашего бэкенда сессионный QR для входа (аналог WhatsApp Web). Бэкенд через наш API создаёт динамический QR с временным токеном. Пользователь сканирует QR на десктопе камерой смартфона — мобильное приложение подтверждает токен и открывает сессию. Webhook от нашего API уведомляет ваш бэкенд о сканировании.
Типография: QR на упаковке тиражом 50 000
Перед запуском тиража типография или бренд формирует CSV с уникальными данными (серийный номер, партия, дата). Наш API batch-эндпоинт принимает до 1 000 кодов за один запрос — для 50 000 потребуется 50 вызовов. ZIP-архив с готовыми PNG автоматически загружается в систему предпечатной подготовки. Уникальные QR для защиты от подделок.
Корпоративные визитки: QR для каждого сотрудника
HR-система при создании нового сотрудника вызывает API и генерирует vCard QR с его данными. QR передаётся в типографию вместе с шаблоном визитки. При смене телефона или должности — один PATCH-запрос меняет данные в динамическом QR, сотрудник отдаёт те же визитки и QR ведёт на актуальный контакт.
Аналитика рекламных кампаний через webhook
Маркетолог создаёт уникальный QR для каждого рекламного канала: наружная реклама, листовки, журнал, радио (промокод). Webhook на скан отправляет события в вашу аналитику (ClickHouse, Amplitude, Яндекс Метрика через Measurement Protocol). В реальном времени видно, какой канал даёт больше сканирований и конверсий.
A/B тестирование лендингов
Создайте динамический QR. Первую неделю destination — лендинг A. Вторую неделю — лендинг B. Количество сканов одинаково (один тираж листовок), разница в конверсиях покажет, какой лендинг лучше. Смена destination через PATCH /qr-codes/:id/destination занимает один запрос без перепечатки раздаточного материала.
Как начать работу с API за 15 минут
От регистрации до первого рабочего QR-кода через API
- 1
Зарегистрируйтесь и создайте API-ключ
Создайте аккаунт на QRcode.website — это бесплатно и не требует карты. Зайдите в кабинет, откройте раздел «API» в боковом меню, нажмите «Создать ключ». Задайте название (например, «Production» или «1С-интеграция»), выберите scope (read, write, admin), нажмите создать. Ключ формата qrcw_... показывается один раз — скопируйте и сохраните в менеджере паролей или переменной окружения.
- 2
Изучите документацию
Полная OpenAPI 3.1 спецификация доступна по адресу /api/v1/openapi.json без авторизации. Импортируйте в Postman через File → Import → URL. Или откройте интерактивный Swagger UI в кабинете — все параметры с описанием и примерами прямо в браузере. Для быстрого знакомства начните с раздела QR Codes — там основные эндпоинты.
- 3
Сделайте первый тестовый запрос
Скопируйте пример curl из документации, вставьте свой ключ и выполните в терминале. Вы получите JSON с ID, короткой ссылкой и URL для скачивания PNG. Откройте PNG в браузере — это ваш первый QR-код, созданный через API. Весь процесс от регистрации до первого рабочего QR — около 5 минут.
- 4
Интегрируйте в свой код
Перенесите логику запроса в свой стек: Python (httpx/requests), Node.js (fetch/axios), PHP (Guzzle), Go (net/http), 1С (HTTPСоединение). Используйте переменные окружения для хранения API-ключа — никогда не хардкодьте ключ в коде. В production-среде мониторьте заголовки X-RateLimit-Remaining, чтобы не превысить лимиты тарифа.
- 5
Подключите webhook для аналитики
В кабинете → «API» → «Webhooks» добавьте URL вашего endpoint и secret (произвольная строка). При каждом сканировании QR мы отправим POST с JSON-данными и заголовком X-Webhook-Signature — проверяйте подпись на своей стороне (HMAC-SHA256 от тела запроса и вашего secret). Так события сканирований сразу попадают в вашу CRM или аналитику.
- 6
Масштабируйтесь с batch и мониторингом
Когда нужно создать тысячи QR-кодов, переходите на batch-эндпоинт: POST /qr-codes/batch принимает массив до 1 000 объектов. Задача уходит в очередь, вы получаете task_id и опрашиваете статус. Когда готово — скачиваете ZIP. Для мониторинга состояния вашей интеграции подпишитесь на наш status-page или подключите Uptime Robot к тестовому GET /api/v1/health.
Свой код vs QRcode.website API
| Параметр | Свой код / библиотека | QRcode.website API |
|---|---|---|
| Время разработки интеграции | Часы / дни | Часы (OpenAPI → codegen) |
| Batch-генерация | Ручная загрузка CSV | 1 HTTP-запрос → 1000 QR |
| Webhook на каждый скан | Нет | HMAC-подписанный POST |
| Аналитика через API | Только в UI | REST + фильтры + экспорт |
| Изменение ссылки без перепечатки | Невозможно | PATCH /qr-codes/:id за 100 мс |
| Rate limit | 100 req/min (Free) | 3 000 req/min (Business) |
| Серверы в РФ (152-ФЗ) | Зависит от сервиса | |
| OpenAPI 3.1 спецификация | Нет / устаревшая |
Частые вопросы
Есть ли бесплатный API для генерации QR-кодов?
Да. Бесплатный тариф QRcode.website предоставляет полный доступ к REST API без ограничений по функциональности. На бесплатном тарифе доступны все эндпоинты: создание статических и динамических QR-кодов, массовая генерация (batch до 10 QR за запрос), аналитика, управление доменами, webhook. Ограничения бесплатного тарифа только количественные: 100 запросов в минуту, 10 000 запросов в сутки, максимум 50 QR-кодов в аккаунте. Регистрация занимает 30 секунд, карта не требуется. Это даёт возможность полноценно протестировать интеграцию перед переходом на платный тариф. В отличие от многих конкурентов, мы не ограничиваем batch-функциональность на бесплатном тарифе — можно проверить всю логику массовой генерации в реальных условиях.
Как сгенерировать QR-код через API?
Один HTTP-запрос — один QR-код. Сделайте POST-запрос на /api/v1/qr-codes с заголовком Authorization: Bearer qrcw_<ваш_ключ> и телом в JSON: поле type (URL, VCARD, WIFI, TEXT, EMAIL, PHONE, EVENT и другие), поле content с содержимым (например, URL), опциональное поле dynamic: true для динамического QR, опциональное поле design с параметрами дизайна (foreground, background, logo, shape). В ответе — объект с id, short_url (для динамических), и объект downloads со ссылками на PNG, SVG и PDF. PNG можно скачать напрямую или получить в base64, добавив параметр format=base64 к URL скачивания. Полный пример curl, Python, JavaScript и PHP — в разделе документации «Быстрый старт».
Как интегрировать QR-коды в 1С?
Интеграция 1С с нашим API занимает 1–2 дня разработки. Основной инструмент — объект HTTPСоединение встроенного языка 1С (доступен с версии 8.3.6). Алгоритм: в обработчике события (например, ПередПечатью накладной или ПриЗаписи объекта) создаёте HTTP-соединение с нашим сервером, формируете тело запроса в JSON, выполняете POST-запрос с заголовком Authorization: Bearer qrcw_..., разбираете JSON-ответ и извлекаете URL изображения PNG из поля downloads.png. Полученный PNG можно встроить в макет печатной формы через объект ПолеКартинка. Для хранения API-ключа используйте Константу или Параметр сеанса, не хардкодьте в коде модуля. Если 1С работает в облаке с ограниченным доступом к интернету — используйте наш IP-whitelist (статический IP для исходящих запросов предоставляется по запросу на Enterprise-тарифе). Полный пример кода на встроенном языке 1С — в нашей документации.
Как использовать QR API в Python?
Установите httpx или requests, добавьте API-ключ в переменную окружения (например, QRCW_API_KEY). Пример с httpx: import httpx; client = httpx.Client(headers={'Authorization': f'Bearer {api_key}'}); resp = client.post('https://app.qrcode.website/api/v1/qr-codes', json={'type': 'URL', 'content': 'https://example.com', 'dynamic': True}); data = resp.json(); png_url = data['downloads']['png']. Для скачивания самого PNG: image_bytes = httpx.get(png_url).content и сохраните через open('qr.png', 'wb').write(image_bytes). Для массовой генерации используйте /qr-codes/batch — передайте список объектов. Ответ будет содержать task_id; опрашивайте GET /tasks/:id до status == 'done', затем скачивайте ZIP по ссылке из ответа. Пример с asyncio и httpx.AsyncClient ускорит параллельную обработку больших батчей. Полный Jupyter Notebook с примерами — в нашей документации на GitHub.
Какие форматы возвращает QR API — PNG, SVG или base64?
По умолчанию API возвращает в ответе три URL для скачивания файлов: PNG (растровый, подходит для большинства задач), SVG (векторный, масштабируется без потери качества до любого размера — рекомендуем для типографской печати), PDF (PDF-файл с векторным QR, удобен для встраивания в документы). Все три формата доступны сразу в ответе на POST /qr-codes в объекте downloads. Также поддерживается base64-режим: добавьте параметр include_base64: true в тело запроса — ответ дополнится полем base64_png со строкой вида data:image/png;base64,.... Размер PNG настраивается параметром size (от 100 до 2000 пикселей по умолчанию 300). Коррекция ошибок контролируется параметром error_correction (L/M/Q/H, по умолчанию M — оптимальный баланс между размером модуля и надёжностью считывания).
Сколько стоит QR API?
Тарификация построена по аккаунтам, не по количеству сгенерированных QR. Бесплатный тариф: 0 рублей, 100 req/min, 10 000 req/сутки, до 50 QR-кодов. Pro: от 499 рублей в месяц, 600 req/min, без суточного лимита, до 5 000 QR-кодов, webhook, кастомный домен. Business: от 1 990 рублей в месяц, 3 000 req/min, batch до 1 000, без лимита QR-кодов, SLA 99,9%. Enterprise: индивидуально, без ограничений, выделенная инфраструктура, SLA 99,99%, интеграция с 1С под ключ, поддержка 24/7. Оплата в рублях через ЮKassa (карты РФ, СБП, ЮMoney). Сравнение тарифов с полным списком возможностей — на странице /pricing.
Есть ли лимиты на запросы к API?
Да, rate limiting работает по скользящему окну в 60 секунд на уровне API-ключа. Текущие лимиты: Бесплатный — 100 req/min и 10 000 req/сутки. Pro — 600 req/min, без суточного ограничения. Business — 3 000 req/min. Enterprise — без ограничений (или кастомные лимиты по договору). Текущее состояние лимитов возвращается в заголовках каждого ответа: X-RateLimit-Limit (максимум в окне), X-RateLimit-Remaining (осталось), X-RateLimit-Reset (Unix-timestamp сброса окна). При превышении лимита API возвращает HTTP 429 Too Many Requests с заголовком Retry-After в секундах. Рекомендуем добавить обработку 429 с экспоненциальной задержкой в вашем клиенте. Batch-эндпоинт потребляет 1 единицу лимита за вызов, независимо от количества QR в батче.
Как работают webhooks и как их настроить?
Webhook — это HTTP POST-запрос от нашего сервера на ваш endpoint при наступлении события. Поддерживаемые события: qr.scanned (QR-код отсканирован), link.clicked (клик по короткой ссылке), form.submitted (отправка формы мини-сайта). Настройка: в кабинете → API → Webhooks → добавьте URL вашего endpoint (должен отвечать на POST и возвращать 2xx в течение 5 секунд) и секрет (произвольная строка). Формат тела запроса: JSON с полями event, data (зависит от типа события) и timestamp. Подпись в заголовке X-Webhook-Signature — это HMAC-SHA256 от raw-тела запроса с вашим секретом. Проверка на Python: hmac.compare_digest(expected_sig, received_sig). При неудаче (не 2xx или таймаут) повторная попытка через 1 мин, 5 мин, 30 мин, 2 часа, 24 часа. История попыток доставки видна в кабинете. Для тестирования используйте RequestBin или webhook.site — вставьте временный URL и посмотрите структуру реального события.
Поддерживается ли интеграция с amoCRM и Bitrix24?
Да. amoCRM интегрируется через исходящие webhooks amoCRM: при смене стадии сделки amoCRM шлёт запрос на ваш сервер, который вызывает наш API и прикрепляет QR к сделке. Готовое решение — виджет в marketplace amoCRM (в разработке, ожидается Q3 2026). До выхода виджета — интеграция через Make (Integromat) или n8n: триггер amoCRM → HTTP-запрос к нашему API → обновление поля в amoCRM. Bitrix24 интегрируется аналогично через исходящие события Bitrix24 (webhook). Marketplace-приложение Bitrix24 — в роадмапе Q4 2026. Для обоих CRM работает схема через Zapier или Make без программирования: примеры в нашей документации. Для корпоративных инсталляций Bitrix24 On-Premise — прямая интеграция через REST API (наш и Bitrix24) силами разработчика, подробные примеры кода в документации.
Можно ли менять содержимое QR-кода после создания?
Да, но только для динамических QR-кодов. При создании QR с флагом dynamic: true изображение кода зашивает короткую ссылку вида qrcode.website/r/abc123 — это неизменная часть. Целевой URL за этой ссылкой можно менять в любой момент: PATCH /api/v1/qr-codes/:id/destination с телом {'destination': 'https://новый-url.com'} — изменение применяется немедленно, все уже распечатанные QR начинают вести на новый адрес. Это ключевое преимущество динамических QR: печатный тираж не нужно переиздавать при смене лендинга, меню, акции или контактных данных. Дизайн самого QR-кода (изображение) также можно обновить через PATCH — но это изменит только файл в CDN, физически распечатанные коды останутся прежними и продолжат работать (они ведут на короткую ссылку, а не хранят конечный URL).
Где хранятся данные — есть ли соответствие 152-ФЗ?
Инфраструктура QRcode.website полностью размещена на российских серверах в датацентрах на территории РФ. Персональные данные пользователей (имя, email, платёжные данные) обрабатываются и хранятся в России в соответствии с требованиями 152-ФЗ. Данные аналитики сканирований (IP-адрес усечённый, гео на уровне города, тип устройства) также хранятся на российских серверах. Мы не передаём данные третьим лицам и не используем зарубежные CDN для хранения пользовательских данных. Оплата обрабатывается через ЮKassa (российский агрегатор). Для Enterprise-клиентов доступна отдельная инсталляция с полной изоляцией данных. По запросу предоставляем DPA (соглашение об обработке данных) и заключаем договор на обработку персональных данных.
Есть ли SDK для Node.js, Python или PHP?
Официальные SDK в активной разработке. Ожидаемые релизы: Node.js SDK — Q3 2026, Python SDK — Q3 2026, PHP SDK — Q4 2026, Go SDK — Q1 2027. До выхода официальных SDK рекомендуем два подхода. Первый — сгенерировать клиент из нашей OpenAPI 3.1 спецификации с помощью openapi-generator-cli (поддерживает 50+ языков, включая Python, PHP, Java, Swift, Kotlin, Rust) или Speakeasy (генерирует типизированные SDK с retry-логикой и pagination). Команда: openapi-generator-cli generate -i https://app.qrcode.website/api/v1/openapi.json -g python -o ./qrcw-client. Второй — использовать обёртку на httpx/requests/axios с базовой логикой авторизации и retry — примеры есть в нашей документации на GitHub. Postman-коллекция с полным набором запросов доступна в кабинете для импорта одной кнопкой.
Получите тестовый API-ключ за 30 секунд
Бесплатный тариф: 100 запросов в минуту, до 50 QR-кодов, batch, webhook, аналитика. Карта не нужна. OpenAPI 3.1 документация открыта.