Real-Time Score Updates in Apple Wallet iOS 18
With the release of iOS 18, Apple Wallet transformed event passes into dynamic, real-time event companions capable of displaying live scores, in-game stats, and venue updates. This functionality is powered by an integration between Apple’s PassKit framework, the Apple Push Notification service (APNs), and native Live Activities synchronization. This article breaks down the technical workflow that enables ticket issuers to stream live score changes directly to event tickets without requiring manual user refreshes.
The Registration and Device Token Handshake
When an attendee adds an event pass to Apple Wallet, the device registers the pass with the ticket provider’s backend server via Apple’s PassKit Web Service API. During this handshake, the device sends a unique push token and device library identifier to the issuer. The issuer associates this token with the specific event and ticket serial number, creating an active channel ready to receive real-time match events.
Low-Latency APNs Push Triggers
Whenever a point is scored or game state changes, the ticketing provider's event feed detects the update and dispatches a silent push notification through the Apple Push Notification service. Unlike standard user notifications, this background payload signals the operating system that updated data is available for that specific pass identifier.
Data Retrieval and PassKit JSON Updates
Upon receiving the silent notification, iOS automatically issues a
background HTTP GET request to the issuer’s web service endpoint. The
server responds with an updated pass.json bundle containing
the newest score, quarter or half details, and game clock data mapped to
designated pass fields (such as primary, secondary, or auxiliary
fields). The operating system decrypts and verifies the updated package
using Apple’s cryptographic signatures to ensure data integrity.
Integration with Live Activities and Dynamic Island
iOS 18 enhances the traditional PassKit update model by linking event passes directly to the Live Activities framework. If enabled, the wallet pass seamlessly spawns or binds to an active Lock Screen widget and the Dynamic Island. The system uses high-frequency ActivityKit push channels to update both the visual ticket interface inside Wallet and the Lock Screen widget simultaneously, ensuring sub-second updates while minimizing battery consumption.
Dynamic On-Screen Rendering
Once the pass receives the updated payload, the Wallet application dynamically re-renders the pass canvas. The visual card smoothly transitions text fields to show the current score, game state, and relevant context—such as possession indicators or penalty notices—without requiring the user to close or pull to refresh the pass. When the event concludes, a final update marks the pass as finished, archiving the real-time feed and displaying the final score.