
QR-код в Apple Wallet и Google Wallet: карты, билеты, купоны
QR-код в Apple Wallet и Google Wallet — это карта лояльности, билет или купон, который лежит не в фотогалерее и не на бумажке, а в системном кошельке телефона. Достали, приложили, отсканировали. Разница с обычным скриншотом кода огромная: карта в Wallet сама всплывает на экране блокировки, когда вы у входа в магазин, штрихкод не блёкнет от яркости экрана, а баланс бонусов обновляется по воздуху без переустановки. В этом материале — как именно QR попадает внутрь Wallet (формат .pkpass у Apple, Google Wallet API у Google), что он умеет такого, чего не умеет картинка в галерее, и как бизнесу выпустить такую карту.
Что такое QR-код в Apple Wallet и Google Wallet
Apple Wallet (в русском народе — «Кошелёк») стоит на каждом iPhone из коробки, приложение с иконкой в виде карт. Google Wallet — аналог на Android, до 2022 года назывался Google Pay. Изначально оба хранили банковские карты для бесконтактной оплаты. Но рядом с картами живёт вторая, менее заметная функция — карты и пропуска (passes): скидочные карты магазинов, посадочные талоны, билеты в кино, абонементы, купоны, студенческие. Внутри почти каждого такого пропуска — либо штрихкод, либо QR-код.
Ключевой момент: это не картинка. Пропуск в Wallet — это структурированный объект. У него есть логотип, цвет фона, поля (номер карты, имя, срок, баланс), геометки и, главное, машиночитаемый код — QR, PDF417 или Aztec. Кассир сканирует код своим терминалом ровно так же, как раньше сканировал пластиковую карту. Только теперь у клиента в кармане не десять кусков пластика, а один телефон.
По данным самой Apple, к Wallet подключены десятки тысяч мерчантов по миру; в России карты лояльности в Wallet выпускают «Магнит», «Пятёрочка», «Лента», сети АЗС, кофейни, барбершопы — почти любой, у кого есть бонусная программа. На Android то же самое делает Google Wallet, а где-то встроенные кошельки самих банков и приложений типа «СберСпасибо».
Формат .pkpass: как QR попадает в Apple Wallet
У Apple карта Wallet — это файл с расширением .pkpass. По сути это ZIP-архив, внутри которого лежат: pass.json (описание карты — поля, цвета, тип штрихкода и его содержимое), картинки (логотип, иконка, фон) и криптографическая подпись сертификатом Apple. Без подписи iPhone файл не примет — это защита от подделок.
Тип кода задаётся прямо в pass.json в блоке barcodes. Для QR это PKBarcodeFormatQR, а поле message — то, что зашито в код: номер карты клиента, ссылка, токен. Есть ещё PKBarcodeFormatPDF417 (посадочные и авиабилеты) и PKBarcodeFormatAztec (ж/д и транспортные билеты во многих странах). Сам QR внутри Wallet — обычный статический код по стандарту, который придумала Denso Wave в 1994 году, никакой магии в самом квадрате нет. Магия — в оболочке вокруг него.
Простыми словами: .pkpass — это конверт. QR-код — письмо внутри. Apple проверяет печать на конверте (подпись), красиво его рисует и кладёт в Кошелёк так, чтобы он всплывал в нужный момент.
Как клиент добавляет карту. Он получает файл .pkpass — по ссылке на сайте, из письма, из SMS или отсканировав специальный QR, который отдаёт этот файл. iPhone показывает превью карты и кнопку «Добавить в Apple Wallet». Один тап — карта в кошельке. Никакого отдельного приложения ставить не надо: механизм встроен в iOS с версии 6 (2012 год, тогда это называлось Passbook).
Google Wallet API: как это устроено у Google
У Google логика другая, хотя результат для пользователя тот же. Здесь нет файла-архива, который вы качаете. Карта создаётся на серверах Google через Google Wallet API, а бизнес отдаёт клиенту ссылку «Save to Google Wallet» (или кнопку/QR, ведущий на эту ссылку). Клиент жмёт — объект добавляется в его Google Wallet, привязанный к Google-аккаунту.
Что это даёт на практике. Раз карта живёт на сервере Google и лишь отображается на телефоне, её содержимое можно менять централизованно: поменяли баланс или срок акции в своём бэкенде через API — у всех клиентов карта обновилась. Тип кода тоже настраивается: QR_CODE, PDF_417, AZTEC, CODE_128 и другие. Для карт лояльности обычно ставят QR или Code 128, для билетов — QR или Aztec.
Ещё одно отличие: Google различает готовые «классы» объектов — LoyaltyClass (карта лояльности), OfferClass (купон/акция), EventTicketClass (билет на мероприятие), GiftCardClass, TransitClass (транспорт). Вы не рисуете карту с нуля, а заполняете готовый шаблон под свой сценарий. Apple такого деления по классам не делает — там один универсальный pass.json с полем passStyle (storeCard, coupon, eventTicket, boardingPass, generic).
Чем QR в Wallet лучше бумажного и экранного QR
Тут и прячется вся суть. Можно ведь просто сфотографировать штрихкод пластиковой карты и показывать скриншот на кассе — многие так и делают. Разберём, почему Wallet выигрывает.
| Свойство | Бумага / пластик | Скриншот в галерее | Карта в Apple / Google Wallet |
|---|---|---|---|
| Всегда с собой | Забывается дома | Да, но искать в галерее | Да, один тап из кошелька |
| Всплывает сама у входа | Нет | Нет | Да — по геолокации и времени |
| Обновление баланса/акции | Нет | Нет (старый скрин) | Да — push с сервера |
| Яркость под сканер | Царапается, мнётся | Экран может тускнеть | Wallet сам поднимает яркость |
| Защита от копий | Легко скопировать | Легко переслать | Подпись/аккаунт, сложнее |
Три вещи, ради которых всё и затевается:
- Автопоказ по геолокации и времени. Вы добавили карту кофейни. Подошли к точке — карта сама выехала на экран блокировки, не надо разблокировать телефон и искать. Билет на концерт всплывёт в день события у входа на площадку. Это настраивается в самой карте: у Apple — блок
locationsиrelevantDate, у Google —locationsи время в объекте. - Push-обновление содержимого. Начислили бонусы — баланс на карте обновился без действий клиента. Изменили условия акции или продлили купон — новый текст приехал сам. У Apple это делает связка веб-сервиса и APNs, у Google — прямой вызов API. Клиент видит бейдж «обновлено».
- Яркость и надёжность считывания. Когда вы открываете карту в Wallet, телефон принудительно поднимает яркость экрана до максимума — код читается даже под пыльным сканером на кассе. Скриншот в галерее так не умеет: при энергосбережении экран тусклый, и код не ловится.
Отдельно про срок годности. Обычный распечатанный купон живёт, пока не выцвел. Карта в Wallet может иметь дату истечения и после неё автоматически помечается как недействительная. Про то, когда QR-коды вообще «протухают» и как их продлевать без перепечатки, это тоже управляется на стороне карты, а не клиента.
Карты лояльности в Wallet: сценарий для бизнеса
Самый массовый кейс. Вместо пластиковой карты клиент кладёт бонусную карту в телефон. Разберём на цифрах, что это даёт кофейне средней руки.
Кофейня «Гранула» в Казани раздавала пластиковые бонусные карты: печать 3000 штук — около 15 000 ₽, плюс каждый месяц допечатка потерянных. Клиенты карту теряли, забывали, кассир тратил время на поиск профиля по телефону. Перешли на карту в Apple/Google Wallet: клиент сканирует QR на кассе или на стойке, жмёт «Добавить», карта в телефоне. Печать пластика — ноль. Бонусный баланс подтягивается на саму карту push-уведомлением после каждой покупки, клиент видит «+45 баллов» на экране блокировки.
Что важно для маркетинга: карта в Wallet — это ещё и канал бесплатных пушей. Не через дорогие SMS (в среднем 3–4 ₽ за штуку), а прямо на карту. «Двойные баллы в выходные» приезжает как обновление карты. При базе в 3000 клиентов и двух акциях в месяц экономия только на SMS — порядка 20–24 000 ₽ в месяц против рассылки.
Как это связать с генератором QR. Чтобы клиент добавил карту, ему нужен вход — обычно это QR, который ведёт на страницу с кнопкой «Добавить в Wallet». Такой ведущий QR удобно делать динамическим: ссылку за ним можно поменять, не перепечатывая наклейки на кассах. Разница между статикой и динамикой подробно разобрана в термине QR-купон и в разделе динамических кодов.
Билеты и посадочные в Wallet
Второй крупный сценарий — билеты. Кино, концерты, спорт, самолёты, поезда, конференции. Тут Wallet почти вытеснил бумагу и PDF.
Как это выглядит. Вы купили билет на концерт — на почту или в личный кабинет приходит кнопка «Добавить в Apple Wallet» / «Save to Google Wallet». Билет ложится в кошелёк с QR-кодом (или Aztec/PDF417 для транспорта). В день события карта сама всплывает на экране блокировки, когда вы подходите к площадке. На входе контролёр сканирует код — проход занимает секунду.
Плюсы для организатора мероприятия ощутимы. Билет нельзя случайно удалить как письмо, он не мнётся, его сложнее подделать, а главное — QR можно погасить после первого сканирования, чтобы по одному билету не прошли двое. Как правильно строить систему проверки на входе и что делать, чтобы билет не сканировали дважды, разобрано в материале про QR-билеты и регистрацию на мероприятие. Для событий у Google есть отдельный класс QR-события с полями даты, места и сектора.
Отдельный нюанс для авиа и ж/д: там чаще не QR, а PDF417 (посадочные талоны) или Aztec (ж/д билеты в Европе). Wallet поддерживает все три формата, так что билет РЖД или посадочный «Победы» ложится в кошелёк ровно так же, как QR-карта магазина.
Купоны и акции: одноразовые и многоразовые
Купон в Wallet — это акция с кодом, который клиент предъявляет на кассе. «−20% на первый заказ», «кофе в подарок», «промокод на 500 ₽». У Apple это passStyle: coupon, у Google — OfferClass.
Чем это удобнее бумажного флаера. Во-первых, купон не выбрасывают — он лежит в кошельке и всплывает по гео у входа в магазин. Во-вторых, срок акции можно продлить или, наоборот, погасить купон удалённо после использования. В-третьих, вы видите статистику: сколько купонов добавлено, сколько погашено — конверсия акции считается точно, а не «раздали 500 листовок, пришло непонятно сколько».
Одноразовый или многоразовый — решаете вы. Одноразовый гасится push-обновлением сразу после сканирования (кассир пробил — купон стал «использован»). Многоразовый (например, «скидка постоянного гостя») живёт на карте и работает при каждом визите. Отслеживать, как именно клиенты приходят по коду и с каких точек, помогает встроенная аналитика переходов по динамическому коду.
Работают ли Apple Wallet и Google Wallet в России в 2026
Вопрос болезненный, разложим честно. С 2022 года платёжная функция обоих кошельков в России не работает: привязать банковскую карту для бесконтактной оплаты через Apple Pay / Google Pay нельзя, российские банки отключены. Это факт.
Но карты лояльности, билеты и купоны — это другая часть Wallet, не платёжная. И она в основном продолжает работать: файл .pkpass с бонусной картой добавляется в Apple Wallet на iPhone, QR на кассе сканируется, скидка проходит. То же с билетами. Ограничения касаются именно оплаты картой через кошелёк, а не хранения и показа кодов.
Нюансы всё же есть. Push-обновления карт у некоторых зарубежных сервисов могут не доходить из-за блокировок инфраструктуры; часть международных приложений ушла из App Store в РФ. Поэтому российский бизнес часто выпускает Wallet-карты через отечественные платформы, которые сами держат серверы для push и генерации .pkpass. На Android у Google Wallet ситуация схожая: показ карт и билетов работает, платёжная часть — нет. Кто на кнопочном телефоне или без Wallet — тем оставляют обычный QR ссылкой или в мини-приложении.
Как бизнесу выпустить карту в Wallet: варианты
Три пути, от сложного к простому.
- Свой код через API. Регистрируете сертификаты Apple (Pass Type ID в Apple Developer, аккаунт от 99 $/год) и/или доступ к Google Wallet API, генерируете
.pkpassи объекты сами. Полный контроль, но нужен разработчик и поддержка серверов для push. Оправдано при большой базе и своей CRM. - Готовая Wallet-платформа. Сервисы, которые берут генерацию
.pkpass, хостинг push и конструктор карты на себя. Вы в интерфейсе рисуете карту, они выдают ссылку и QR для добавления. Быстро, от нескольких тысяч рублей в месяц, без кода. - Гибрид через QR-генератор. Если вам не нужна сложная бонусная механика, а нужно просто раздать клиентам ссылку/визитку/меню/акцию, часто достаточно динамического QR, который ведёт на страницу с кнопкой добавления или на мини-сайт. Ведущий QR вы делаете у нас, а сам
.pkpass— на профильной платформе.
С чего начать проще всего: сделайте динамический QR, который ведёт на посадочную с кнопкой «Добавить карту». Ссылку за кодом потом можно перенаправить на другую платформу, не перепечатывая наклейки. Про смену ссылки без перепечатки наклеек — раздел динамических QR-кодов.
Готовы попробовать? Сделайте QR, который приведёт клиентов к карте в Wallet, за пару минут — без регистрации, с логотипом и в высоком разрешении для печати на кассе.
Частые ошибки и на что смотреть
Что ломает Wallet-карту на практике:
- Слишком длинный QR. В код лучше класть короткую ссылку или короткий токен, а не гигантскую строку с данными. Длинный QR становится плотным, мелким и хуже читается со скана. Короткие ссылки для этого и придуманы.
- Нет запасного варианта. Часть клиентов на Android без Google Wallet или на старых телефонах. Всегда оставляйте обычную ссылку или картинку QR рядом с кнопкой «Добавить в Wallet».
- Забыли про яркость на своей стороне. Если вы показываете QR клиенту на своём экране (обратный сценарий), а не он вам — поднимите яркость вручную, старые сканеры капризны.
- Не настроили push-домен. Если делаете сами, без корректно поднятого веб-сервиса push обновления баланса не поедут — карта станет «мёртвой» после первого добавления.
- Один QR на всех. Для лояльности код должен быть привязан к конкретному клиенту (его номер/токен). Общий QR не даст персональной аналитики и начислений.
И тест перед запуском обязателен: добавьте карту на реальный iPhone и реальный Android, проверьте скан на том терминале, что стоит на кассе, и убедитесь, что push с обновлением баланса доходит. Пять минут проверки экономят недели поддержки.
Готовы попробовать? QRcode.website генерирует и статические, и динамические коды под карты лояльности, билеты и купоны. Начните бесплатно на странице генератора и меняйте ссылку за кодом сколько угодно раз.