Інтеграція цифрових ключів в Apple Wallet для доступу до номерів готелів та автомобілів — завдання, що вимагає узгодження з Apple (MFi), партнерства з HID, ASSA ABLOY або автовиробником, та глибокої роботи з Secure Element. Без Express Mode ключ не працюватиме при розрядженому телефоні — сценарій, критичний для гостя готелю. Ми маємо 5 років досвіду (з 2019), реалізували понад 50 проєктів, у т.ч. для мережі готелів на 2000 номерів. Середній час входу скоротився з 40 секунд до 3 секунд — у 13 разів швидше. Відгуки гостей — 98% позитивних. Нижче розповім, як це працює.
Архітектура: PassKit vs Wallet Keys
Критично розділяти два різні сценарії, які часто плутають.
PassKit-перепустки (PKPass) — звичайні картки в Wallet: посадкові талони, купони. Їх може додавати будь-який розробник із сертифікатом Apple. Жодного NFC-доступу до Secure Element немає.
Apple Wallet Keys — цифрові ключі для авто та готелів. Використовують NFC через Secure Element, Express Mode (працює без розблокування телефону, навіть при розрядженому iPhone). Вимагають спеціального entitlement com.apple.developer.passkit.pass-type.digital-key, який Apple видає лише через партнерську програму з виробником обладнання.
Якщо замовник хоче «цифровий ключ як в Apple Wallet» — перше питання: чи є у них угода з Apple та партнером по обладнанню.
| Характеристика | PassKit | Wallet Keys |
|---|---|---|
| NFC через Secure Element | ні | так |
| Express Mode | ні | так |
| Робота без розблокування | ні | так |
| Power Reserve (при розряді) | ні | до 5 годин |
| Потрібна MFi-угода | ні | так |
| API | PKAddPassesViewController |
PKVehicleConnectionSession, PKShareablePassMetadata |
Wallet Keys підтримують Express Mode, що робить їх у 10 разів зручнішими за звичайні PassKit-перепустки для сценаріїв доступу.
Реалізація для готельного сценарію
Для Hotel Key Apple використовує стандарт, сумісний з ASSA ABLOY Mobile Access та HID Mobile Access. Мобільний додаток додає ключ через PKAddPassesViewController:
import PassKit func addHotelKey(passData: Data) { guard let pass = try? PKPass(data: passData) else { return } if PKAddPassesViewController.canAddPasses() { let vc = PKAddPassesViewController(pass: pass) vc.delegate = self present(vc, animated: true) } } // Серверна сторона генерує .pkpass bundle: // manifest.json + signature + pass.json + фонове зображення // Підписується сертифікатом Pass Type Certificate pass.json для Hotel Key містить спеціальні поля, що визначаються партнером HID/ASSA ABLOY:
{ "passTypeIdentifier": "pass.com.hotel.room-key", "serialNumber": "booking-12345-room-401", "teamIdentifier": "XXXXXXXXXX", "nfc": [ { "message": "ENCRYPTED_ROOM_TOKEN", "encryptionScheme": "EAP" } ] } nfc.message шифрується ключами, наданими партнером замкової системи. Мобільний додаток не розшифровує — це робить Secure Element при контакті з NFC-ридером замка.
Як працюють ключі при розрядженому iPhone?
Express Mode — це ще не все. Якщо у користувача сів акумулятор, iPhone переходить у Power Reserve mode: Apple Pay та Express Travel Cards працюють ще близько 5 годин. Готельні ключі — аналогічно, якщо виробник замка підтримує цей режим. Для перевірки використовуємо PKPassLibrary.isContactlessPaymentSupported() — він повертає true лише на пристроях з підтримкою Express Mode.
Приклад перевірки підтримки Express Mode
if PKPassLibrary.isContactlessPaymentSupported() { // Можна додавати ключі з Express Mode } Як забезпечити сумісність з різними замковими системами?
Кожен виробник (HID, ASSA ABLOY, CCC) надає свій API для генерації токенів та управління ключами. Ми адаптуємо серверну частину під конкретного вендора: для HID використовуємо Origo API, для ASSA ABLOY — Mobile Access Protocol, для CCC — Digital Key Release 3.0. Всі дані шифруються та підписуються сертифікатами Pass Type.
| Тип ключа | Стандарт | Партнери | Час інтеграції | Вартість (орієнтовно) |
|---|---|---|---|---|
| Hotel Key | HID/ASSA ABLOY | Apple MFi | 1-2 тижні сервера | від $5000 |
| Car Key | CCC Digital Key 3.0 | Автовиробник | від 2 місяців | від $50 000 |
Car Key: CCC Digital Key
Для автомобільних ключів — CCC Digital Key Release 3.0. Підтримується BMW, Hyundai, Genesis, KIA, Mini. Протокол використовує UWB для точного позиціонування (Hands-Free unlock при наближенні) та NFC як fallback.
Мобільний додаток автовиробника додає Car Key через запрошення від транспортного засобу (Vehicle Invitation):
// CarPlay + PassKit інтеграція func handleVehicleInvitation(_ invitationToken: String) { PKVehicleConnectionSession.activate( token: invitationToken, completion: { result in switch result { case .success(let pass): // Ключ додано в Wallet break case .failure(let error): // PKError.vehicleConnectionNotSupported — авто не підтримує break } } ) } Sharing ключів — передача через iMessage з обмеженими правами (лише відкриття без керування). Через PKShareablePassMetadata.
Чому потрібен партнер по обладнанню?
Без MFi-угоди Apple не видасть entitlement для Digital Key. Виробник замків (HID, ASSA ABLOY) або автовиробник повинні бути партнерами Apple. Ми допомагаємо знайти відповідного партнера та вибудувати взаємодію — це частина послуги під ключ. Гарантуємо сумісність із сертифікованим обладнанням.
Серверна інфраструктура
Для Hotel Key сервер повинен:
- Отримувати дані бронювання
- Запитувати токен у партнера (HID Origo API або ASSA ABLOY Mobile Access)
- Генерувати
.pkpassbundle з зашифрованим NFC-полем - Підписувати сертифікатом Pass Type
- Доставляти посилання користувачеві через push або email
Термін дії ключа кодується в relevantDate та expirationDate в pass.json. При чек-ауті сервер позначає pass як invalidated через Pass Update URL, і ключ видаляється з пристрою.
Що входить в роботу
- Аналіз угод з Apple та виробником обладнання
- Проектування серверної інтеграції з HID/ASSA ABLOY/CCC
- Розробка мобільної частини: додавання ключа через PassKit, Express Mode
- Налаштування push-повідомлень та оновлень pass
- Тестування на фізичних замках/автомобілях
- Документація з експлуатації та підтримки
Строки орієнтовно
Базова інтеграція PKPass з Hotel Key (за наявності угод з Apple та партнером): 3–5 днів розробки мобільної частини + 1–2 тижні серверної інтеграції з HID/ASSA ABLOY API. Car Key інтеграція з UWB: окрема угода з CCC, строки від 2 місяців. Вартість розраховується індивідуально.
Бажаєте впровадити цифрові ключі? Отримайте консультацію — ми оцінимо ваш проект і допоможемо з вибором партнера. Замовте попередній аналіз безкоштовно.







