Discuss how to manage tickets, boarding passes, payment cards and other passes in the Wallet app.

Wallet Documentation

Posts under Wallet subtopic

Post

Replies

Boosts

Views

Activity

Gathering Required Information for Troubleshooting Wallet Issues
Hi, To ensure the issue is not caused by an error within your app or web service request, please review the following documentation: Wallet Passes Wallet Developer Guide If the resources above don’t help identify the cause of the error, please provide more information about your app or web services to get started. To prevent sending sensitive credentials in plain text, create a report in Feedback Assistant to share the details requested below. Additionally, if the error is something we need to investigate further, the appropriate engineering teams also have access to the same information and can communicate with you directly within Feedback Assistant for more information, as needed. Please follow the instructions below to submit your report. For issues occurring with your native app or web service, perform the following steps: Install the Wallet profile on your iOS or watchOS device. Reproduce the issue and make a note of the timestamp when the issue occurred, while optionally capturing screenshots or video. Gather a sysdiagnose on the same iOS or watchOS device. Create a Feedback Assistant report with the following information: The serial number of the device. Open Settings > General > About > Serial Number (tap and hold to copy). The SEID (Secure Element Identifier) of the device, represented as a HEX encoded string. Open Settings > General > About > SEID (tap and hold to copy). The sysdiagnose gathered after reproducing the issue. The .pkpass file(s), pass signing certificate(s) and pass type identiifier(s) (optional). The timestamp of when the issue was reproduced. Screenshots or videos of errors and unexpected behaviors (optional). Important: From the logs gathered above, you should be able to determine the cause of the failure from PassbookUIService, PassKit or PassKitCore, and by filtering for your SEID or pass type identifier in the Safari Web Inspector. See Inspecting Safari on macOS to learn more. Submitting your feedback Before you submit to Feedback Assistant, please confirm the requested information above is included in your feedback. Failure to provide the requested information will only delay my investigation into the reported issue within your Wallet pass implementation. After your submission to Feedback Assistant is complete, please respond in your existing Developer Forums post with the Feedback ID. Once received, I can begin my investigation and determine if this issue is caused by an error within your web implementation, a configuration issue within your developer account, or an underlying system bug. Cheers, Paris X Pinkney |  WWDR | DTS Engineer
0
0
2.9k
Mar ’25
Apple Wallet Pass Notification – How to Display a Custom Message Instead of “Today at [Date/Time]
Hello Apple Developer Community, I am implementing Apple Wallet passes in my iOS application for rail journeys. When a pass is added to Apple Wallet, the system displays a default message such as “Today at [relevant date/time]”. Our requirement is to display a meaningful, custom message containing the actual rail journey timing instead of this default date and time text. For example, we would like to display a message such as: “Your train departs at 10:45 AM. Please arrive at the station 15 minutes before departure.” I have explored the available Wallet pass configuration options, including the semantics field, but this has not produced the expected behaviour. We also do not want to use location-based relevance for our rail passes. Our requirement is to provide relevant journey information based on the actual train departure time, without relying on the user's location or geofencing. Could anyone clarify the following? Is it possible to customise the default “Today at [relevant date/time]” text displayed by Apple Wallet? Can a custom message containing the actual train departure time be displayed using supported fields in pass.json? What is the intended purpose of the semantics field in this scenario, and can it influence the notification or relevance text displayed by Wallet? Is there a supported way to configure time-based relevance for a rail pass without using location-based relevance? If Apple Wallet does not support customising this system-generated text, what alternative approach would Apple recommend for displaying the actual rail journey timing to users? Any guidance, implementation suggestions, or references to the relevant Apple Wallet documentation would be greatly appreciated. Below is the format currently using { "formatVersion": 1, "passTypeIdentifier": "", "serialNumber": "", "teamIdentifier": "", "webServiceURL": "", "authenticationToken": "", "relevantDate": "", "logoText": "", "locations": [ ], "barcodes": { "format": "PKBarcodeFormatAztec" }, "organizationName": "", "description": "E-ticket", "foregroundColor": "rgb(36, 36, 36)", "backgroundColor": "rgb(255, 236, 242)", "labelColor": "rgb(36, 36, 36)", "boardingPass": { "transitType": "PKTransitTypeGeneric", "headerFields": [ ], "primaryFields": [ ], "secondaryFields": [ ], "auxiliaryFields": [ ], "backFields": [ ] } }Thank you for your help.
0
0
16
2d
Apple Wallet Employee Badge
Hello, we are ANeT, an EU-based manufacturer and developer of physical access control and attendance systems. We develop our own access control platform, including: our own NFC access readers (PASO), access controllers, backend and management software (Webguard), credential and user management. Our goal is to support employee/access credentials in Apple Wallet so that users can unlock doors using an iPhone or Apple Watch, ideally also using Express Mode. We would like to implement this directly into our own access control ecosystem, without using a third-party credential platform or third-party NFC reader hardware. From the Apple documentation, our understanding is that Access Keys use a credential stored in the Secure Element together with a pass in Apple Wallet, and that communication between Apple Wallet and the reader uses the Aliro protocol over NFC. We also understand that a physical access provider can act as a Credential Manager and that participation in the Apple Wallet Access Program is required. Our intended architecture is: Webguard / ANeT backend → Apple Wallet Access credential → iPhone / Apple Watch → our PASO NFC reader → ANeT access controller → door We would appreciate clarification on the following technical points: Is this architecture supported for a physical access control manufacturer using its own NFC reader hardware and firmware? What technical requirements must our NFC reader meet to communicate with Apple Wallet Access Keys using Aliro? Are there specific requirements or certification procedures for reader identification, ECP, certificates, keys, or the reader trust chain? Can our Webguard/backend platform act directly as the Credential Manager and provision, manage and revoke Access Keys through the Apple Access Platform? Can credential provisioning be initiated from a web interface using an “Add to Apple Wallet” flow, or is a native iOS application required? Which entitlements, certificates, APIs and technical documentation become available after joining the Apple Wallet Access Program? Is Apple Wallet Access for employee/physical access credentials available for access control providers operating in the European Union, including the Czech Republic? We contacted Apple Developer Support regarding this integration and were advised to ask the technical questions here on the Developer Forums. Developer Support case: 102991167219 Our objective is not to create a standard Wallet pass or QR credential. We want to integrate secure NFC-based physical access credentials directly with Apple Wallet, our own backend and our own reader hardware. Thank you for any guidance on the correct technical integration path.
0
0
207
3d
Workout route map double-converts the first ~49 samples on mainland-China tracks (FB25306175)
Every ride I import into HealthKit from a Chinese bike computer renders wrong at the start in the Fitness and Health apps, and the same record is wrong on iOS 26 as well as on iOS 27.2 (iPhone 15 Pro, mainland China, AutoNavi base map). Filed as FB25306175. WHAT HAPPENS The first ~49 samples of an HKWorkoutRoute are drawn about 415 m east and 222 m south of the coordinates actually stored, and a straight line joins that piece back to the rest of the track. The green start marker is on the displaced piece. Every remaining sample, and the red end marker, are drawn exactly where stored. On this record (2794 points, 1 Hz, 17649 m drawn) the displaced block is the first 209 m of riding — about 53 seconds The displacement is one more application of the local WGS-84 → GCJ-02 transform, which these coordinates already contain: measured from screenshots at native 1179×2556, 417 m E / 219 m S on the full-screen map and 418 m E / 220 m S on the summary map, against a true local offset of 415.2 m E / 222.4 m S. THE STORED DATA IS CORRECT HKWorkoutRouteQuery returns all 2794 CLLocation values unchanged; the descriptor query returns the same count and the same first/last values. One workout, one route. The same coordinates drawn with SwiftUI Map + MapPolyline on the same phone render correctly end to end, including the start. The same unchanged workout, opened twice with no write in between, was correct the first time and offset after leaving and re-entering. So the data is not the variable. THE WRITE PATH The head unit writes GCJ-02 into record.position_lat / position_long. That is what makes the track land on the road here: MKMapSnapshotter on the mainland base map puts the GCJ-02 values exactly on two known intersections, and the WGS-84 values about 470 m north-west of them, and MapKit does no conversion for us. So they are written verbatim: let config = HKWorkoutConfiguration() config.activityType = .cycling config.locationType = .outdoor let builder = HKWorkoutBuilder(healthStore: store, configuration: config, device: nil) try await builder.beginCollection(at: firstPoint.timestamp.addingTimeInterval(-1)) // CLLocation per record, coordinates as recorded, horizontalAccuracy 10, // verticalAccuracy 10 (or -1 where the record has no altitude), recorded altitude // and speed, course computed from the previous point. let routeBuilder = builder.seriesBuilder(for: HKSeriesType.workoutRoute()) as? HKWorkoutRouteBuilder for batch in locations.chunked(into: 1000) { try await routeBuilder?.insertRouteData(batch) } try await builder.endCollection(at: lastPoint.timestamp.addingTimeInterval(10)) let workout = await builder.finishWorkout()WHAT IS NOT THE CAUSE Established with controlled synthetic routes written from the same start point: probe sample interval m per point displaced length displaced time samples E 1 s 10 ~480 m ~48 s ~49 F 2 s 10 ~480 m ~96 s ~49 G 1 s 20 ~950 m ~48 s ~49 The block follows SAMPLE COUNT, not time and not distance. Also ruled out, each by writing a variant: lap and pause/resume events (present, absent, and a 206-point probe carrying all three); the first point's metadata (altitude 0 / course -1 / verticalAccuracy -1); valid versus -1 values for horizontalAccuracy, verticalAccuracy, speed and course; dropping an isolated leading point; back-dating the first timestamp to the workout start; trimming the leading 200 m (the offset simply re-appears at the new start, which still begins with 49 samples). Writing WGS-84 instead inverts the symptom — the leading block then looks right and everything else goes ~470 m north-west — which is what you would expect if only the leading block is converted a second time. SCOPE This is not my one file. Three separate real rides, two cities, two head units, plus synthetic routes, all behave identically: MAGENE C706_54634 Suzhou 2026-10-23 17.61 km 2797 records / 2794 stored points MAGENE C706_54634 Suzhou 2026-10-22 12.66 km 2076 records MAGENE C606P_33206 Chengdu 2026-10-20 63.30 km 12069 records Apple Watch recordings made in mainland China render correctly, and a Garmin Edge 1050 file recorded in the US imported through the same code path renders correctly. The common factor is coordinates that are already GCJ-02 when they reach HKWorkoutRouteBuilder — which is every Chinese bike computer, every Chinese running app, and every GPX export from a Chinese service. So any third-party importer here hits this. WHAT I AM ASKING Does the workout map apply a datum conversion to a leading block of route samples, and is that block size fixed? What is the official coordinate contract for HKWorkoutRoute locations for apps working with GCJ-02 data in mainland China? Is there a supported way to opt out, and what decides whether a given route enters this state? Which component owns the conversion — Health/Fitness route rendering or MapKit? I am deliberately not pre-converting the first ~49 points: that would store mixed datums in HealthKit, wrong for the Health app itself, for exports, for every third-party reader, and wrong for all of them the moment this is fixed. Happy to share the one-tap sample project, the exported JSON with all 2794 stored CLLocation values, the original .fit, and the probe E/F/G screenshots — reply here and I'll attach them.
1
0
412
6d
Allow Transit Cards for Child Accounts under 13(Ref: FB25261157)
I would like to propose a policy adjustment regarding Apple Wallet restrictions for child accounts (under 13) under Family Sharing. Current Limitation: Currently, Apple IDs for children under 13 are completely blocked from adding any cards to Apple Wallet. While restricting credit and debit cards for minors is a necessary measure for financial security and CoPPA compliance, this blanket restriction also blocks transit cards (such as Suica, T-money, etc.). The Problem: In regions with advanced public transit infrastructures, many children rely on digital transit cards for daily commutes to school and academies. Because Apple Wallet blocks transit cards on child accounts—even on Apple Watch via Family Setup—children are forced to carry physical transit cards, leading to frequent losses and damages. Proposed Solution: Differentiate Transit from Financial Cards: Maintain strict blocks on credit/debit cards for accounts under 13, but grant an exception for Transit Cards. Family Sharing Integration: Require Parental Approval through Family Sharing for any transit card addition or balance top-up, ensuring full parental control and safety. By introducing this exception, Apple can greatly improve the usability of Apple Watch Family Setup for families while maintaining high safety standards. I have submitted this feedback via Feedback Assistant under FB25261157. If you agree or are facing similar design constraints, please upvote this thread or reference the FB number in your own feedback submissions. Thank you.
0
0
322
1w
PassKit NFC certificate request
Hi, I've been trying to request the PassKit NFC certificate on our organization Apple Developer account for some time. We submit our request at https://developer .apple.com/contact/passkit/ and usually within 1-2 weeks I get a response saying the request was denied for reasons that can't be shared, but we can resubmit. We have resubmitted several times, doing our best to guess at how to revise the application each time, and each time get the same response. Just wondering if this is a new thing or something others have experienced. Am I really supposed to just keep guessing? Is there an appropriate escalation path? Thank you.
1
0
414
2w
PassKit silently rejects every .pkpass from one Team ID — client-side ruled out, DTS silent 5 weeks — how to escalate?
Looking for guidance on how to escalate a PassKit issue that appears to be at the team-account level, after two months of exhausting every client-side variable. SYMPTOM Every .pkpass I sign under team XMJKFS3D66 (Mesh Community AS, Norway) is silently rejected on install with: "Sorry, your Pass cannot be installed to Passbook at this time." The rejection is silent — no user-facing hint at what iOS objects to. WHAT I'VE RULED OUT Reproduced across: 3 separate Pass Type IDs (pass.com.meshcommunity.membership original, .membership after re-issue, brand-new pass.com.meshcommunity.kiosk) 2 independently-issued signing certs on the same identifier 3 iPhone testers on 3 different iOS builds with different Apple IDs Paris Pinkney (WWDR DTS) sent me the standard 6-item team-wide checklist on Aug 5, and I'm verifiably clean on all six: Cert not expired — notBefore 2026-07-08, notAfter 2027-08-07 Cert not revoked — OCSP status "good" from ocsp.apple.com/ocsp03-wwdrg404 WWDR G4 intermediate matches cert issuer OU Program membership active, latest PLA accepted Both Pass Type IDs Active in Portal Team ID XMJKFS3D66 matches everywhere (pass.json.teamIdentifier + cert OU) Also verified: openssl smime -verify -in signature -inform DER -content manifest.json -noverify → "Verification successful" Full chain in signature: Pass Type ID cert → WWDR G4 → Apple Root CA PKCS#7 detached, DER, SHA-256, -noattr CDN serves application/vnd.apple.pkpass THE DEFINITIVE TEST To rule out the last remaining plausible client-side hypothesis (missing primaryFields causing a silent layout rejection, suggested by an independent review), I built a minimal known-good pass: { "formatVersion": 1, "passTypeIdentifier": "pass.com.meshcommunity.kiosk", "teamIdentifier": "XMJKFS3D66", "organizationName": "Mesh Community", "serialNumber": "10001", "description": "Mesh Kiosk Pass", "logoText": "Mesh Community", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(25, 25, 25)", "barcodes": [ { "format": "PKBarcodeFormatQR", "message": "10001", "messageEncoding": "iso-8859-1" } ], "generic": { "primaryFields": [ { "key": "name", "label": "MEMBER", "value": "Test User" } ] } } ASCII-only, no emoji, no hyphenated serial, includes primaryFields, minimal fields Same signing recipe, same G4 chain, verify clean Same 6 standard PNG assets (icon + logo, 1x/2x/3x) Result on a fresh iPhone: identical silent rejection. Same "Sorry, your Pass cannot be installed to Passbook at this time." dialog. At this point every plausible client-side variable has been isolated and eliminated. The block appears to be at team level inside Apple's PassKit backend — invisible from the Developer Portal. WHAT APPLE HAS DONE SO FAR DTS Case-ID: 21008005 — opened 2026-07-13, reproducer.zip attached same day Assigned engineer: Paris Pinkney (WWDR, DTS) since 2026-08-05 Sysdiagnose: filed via Feedback Assistant as FB24516356 on 2026-08-26 (device Serial HWT3HQ2F9F, SEID captured, iOS 23G71, reproduction timestamp 2026-08-13 11:02:15 +0200) with Wallet debug profile installed on the device before reproduction Radio silence since 2026-08-17 — 5 weeks and counting, including no reply to a polite check-in on 2026-09-08 WHAT I'M ASKING Anyone at Apple engineering seeing this: is there a way to accelerate the Case-ID 21008005 / FB24516356 log review? The PassbookUIService / PassKit / PassKitCore entries around the timestamp above would settle this in minutes on your end. Any developer who's hit team-wide PassKit rejection before: what unblocked it? Was it a PLA re-acceptance, a Developer Program Support ticket (separate from DTS), a re-provisioning request, something else? Any way to inspect a team's backend PassKit entitlement state from outside (a Portal page, an endpoint, an xcrun command), so I can either confirm my suspicion or eliminate it myself? Any known-good published .pkpass from a Norwegian-registered (C=NO) Developer Team I can diff against, just to eliminate country-registration as a factor? Working Apple Wallet is a launch-blocker for the Mesh Community Workbar Kiosk rollout — we're currently shipping Google Wallet + QR-in-email as a full fallback and it works everywhere including iPhone, so no user is being turned away. But we'd like to close the Apple Wallet loop, and after 2 months I've run out of things to try from my side. Any pointer welcome. Happy to share the full evidence bundle privately with anyone at Apple who can help. Thanks, Mesh Community AS · Team ID: XMJKFS3D66
1
0
351
Sep ’26
Can't add /Users/wes/code/wesbiggs/appclip-autologin/app/autologin.xcodeproj Entitlement com.apple.developer.pass-type-identifiers not found and could not be included in profile. This likely is not a valid entitlement and should be removed from your
I've tried to add the "Pass Type Identifiers" entitlement manually in .entitlements, but it will not archive and shows the error: Entitlement com.apple.developer.pass-type-identifiers not found and could not be included in profile. This likely is not a valid entitlement and should be removed from your entitlements file. It works correctly for the App (parent of ), but without it the App Clip can't see any passes. The documentation says this should be possible: Note In iOS 17 and later, App Clips can use the Wallet capability. For more information on functionality that’s available to App Clips, see Choosing the right functionality for your App Clip. It is not visible in the portal either. Is this an entitlement that I need to specifically request, and if so, how would I go about doing so? Thanks! Wes
7
2
2.7k
Sep ’26
Will renewing an expired Pass Type ID certificate affect Apple Pay “Add to Wallet” (in-app provisioning)?
Hi, We received a notice that our Pass Type ID certificate will expire soon, and we plan to renew it for the same Pass Type ID (we will not create a new identifier, and we will not revoke the old certificate until the new one is in place). Our app adds payment cards to Apple Wallet via in-app provisioning (PKAddPaymentPassViewController / com.apple.developer.payment-pass-provisioning). We do not sign or distribute .pkpass files with this certificate. The app entitlement com.apple.developer.pass-type-identifiers includes our existing Pass Type ID. Developer Support pointed us to the standard certificate overview: if the certificate expires, installed passes keep working, but we can no longer sign new passes or send updates. That sounds like generic Wallet passes, not payment-card provisioning. Could someone from Apple confirm: If we renew the Pass Type ID certificate for the same identifier, will Add to Wallet for payment cards still work for current users (no need to remove and re-add the card)? After renewal, can users add new payment cards as usual? Is the Pass Type ID certificate required for in-app provisioning, or do we only need the Pass Type ID identifier in entitlements? Thanks.
0
0
374
Sep ’26
HCE-based contactless NFC transactions
Hi, We're implementing a HCE contactless app on iOS. The intention of this app is to only support contactless payments. Next to the com.apple.developer.nfc.hce and com.apple.developer.nfc.hce.default-contactless-app entitlements, we've listed the identifiers that we're interested in through the com.apple.developer.nfc.hce.iso7816.select-identifier-prefixes in the Info.plist. (325041592E5359532E4444463031 & A0000000041010 f.e.) When the app is configured as the Default Contactless App, we start receiving NFCWindowSceneEvents through our NFCWindowSceneDelegate. However we notice that also non-payment related NFC events are being received, such as when the device is close to a NFC reader for Access cards for example. This experience results in launches of our app when it's not intended. Is there a way to allow the app to only receive NFC events related to ISO 7816 identifiers when the when the app is configured as the Default Contactless App? Thanks in advance for any guidance! Kind regards, Dimitri
1
0
423
Sep ’26
Entitlement com.apple.developer.pass-type-identifiers is missing for appclip
Hi All, We build a new feature according to the Apple docs: In iOS 17 and later, App Clips can use the Wallet capability. For more information on functionality that’s available to App Clips, see Choosing the right functionality for your App Clip. and based on that we proceeded with our development, our but in our appclip we are not able to see the wallet capability in the developer portal but for our main application the wallet is there and we enabled it and therefore the com.apple.developer.pass-type-identifiers entitlement has been added to our main app and the appclip, the signing for the main app is working fine, but for the appclip we are getting this issue: Entitlement com.apple.developer.pass-type-identifiers not found and could not be included in profile. This likely is not a valid entitlement and should be removed from your entitlements file.
0
0
366
Sep ’26
NFC PassKit Certificate request form submits without confirmation
I’m trying to request an NFC PassKit Certificate through https://developer.apple.com/contact/passkit/. After clicking Send, the completed form is POSTed successfully and receives 200 OK, but the server returns the original form instead of a confirmation page. The page’s passkit.js then clears all fields, and Developer Support confirmed that my earlier submission was never received. Has anyone else encountered this behavior or found another way to submit the NFC PassKit Certificate request?
5
1
1.8k
Sep ’26
iOS 26 Wallet Boarding Pass – Control Live Activities and Automatic Flight Updates
Hi everyone, We have recently started distributing iOS 26 Apple Wallet boarding passes, which support new features such as: Live Activities Automatic updates for flight-related information (e.g., gate changes, departure time updates) While these features are useful, we are looking for ways to control or limit some of this behavior. Our requirements Live Activity Control We would like to prevent Live Activities from being automatically shown when a boarding pass is added to Wallet. Automatic Flight Data Updates We would like to control or disable the automatic updates performed by Wallet for flight information. Reason for this requirement We already provide our own Live Activity implementation with more customization, and having two Live Activities leads to a poor user experience. We have observed that Wallet’s automatic updates can sometimes be delayed, and since Wallet overrides our data, we lose control over the displayed information. Question Is there any supported way to: Disable or control Live Activities triggered by Wallet passes? Disable or override Wallet’s automatic flight updates? Or are these behaviors managed entirely by the system with no developer control? Any guidance or documentation references would be greatly appreciated. Thanks in advance! Regards,
2
1
1.4k
Sep ’26
Wallet-based Live Activity is not suppressed despite associatedStoreIdentifiers
Hi, We're implementing the new semantic boarding pass experience and would like to completely suppress the Wallet-generated Live Activity. According to Apple's documentation: "To automatically suppress the Wallet-based Live Activity, list your App Store Identifier (Adam ID) in the associatedStoreIdentifiers array in the pass.json file of the boarding pass." We have added our App Store ID at the top level of pass.json: "associatedStoreIdentifiers": [ xxxxx ] However, Wallet continues to create and display the Live Activity for the flight. We have verified that: associatedStoreIdentifiers is at the top level of pass.json. The value is the correct numeric App Store ID (Adam ID). The associated production app is installed on the device. The generated and signed .pkpass contains the correct value. We removed the existing boarding pass and added a newly generated pass. Our app does not currently implement its own ActivityKit Live Activity. Our intention is to continue using the semantic boarding pass experience while completely suppressing the Wallet-generated Live Activity. Is there any additional requirement for associatedStoreIdentifiers to suppress the Wallet Live Activity? Does suppression require the associated app to implement its own Live Activity, or should associatedStoreIdentifiers suppress the Wallet Live Activity even when the associated app does not provide one? Any guidance would be appreciated.
0
0
257
Sep ’26
In-App Provisioning Internal Server Error 500
We are implementing In-App Provisioning functionality for our Bank but there is always 500 Internal Server Error respond by Apple server once we tried to add card to apple wallet. Our code let request = PKAddPaymentPassRequest() request.activationData = try decodeBase64(payload.activationDataText, field: "activationDataText") request.encryptedPassData = try decodeBase64(payload.encryptedDataText, field: "encryptedDataText") request.ephemeralPublicKey = try decodeBase64(payload.ephemeralPublicKeyText, field: "ephemeralPublicKeyText") return request Because of fPanId is not required so we are not pass it to Apple server and that field generated once the card already added to wallet. Please help us investigate the issue, thanks! FeedbackId 24065847 (In-App Provisioning 500 Internel Error)
0
0
607
Aug ’26
Geo with the same pass type id
Hello, We are the developers of a loyalty platform built on Apple Wallet for multiple independent merchants. Currently, all merchants issue their Wallet passes using the same Pass Type Identifier under a single Apple Developer account. However, each pass has its own: Unique serial number Merchant name Logo Geographic locations relevantText for location notifications We recently observed a behavior that we would like to better understand. For example: Pass A Merchant: La Minga Gourmet (coffee shop) relevantText: “Enjoy a delicious coffee ☕” Pass B Merchant: Papelisto (stationery store) relevantText: “Notebooks, pens, and everything you need…” A user had both passes installed on the same iPhone. The two businesses are located very close to each other. When the user entered that area, Apple Wallet displayed what visually appeared to be a notification for La Minga Gourmet, but the visible message was: “Notebooks, pens, and everything you need…” which corresponds to the relevantText configured for Papelisto. A short time later, the visible message changed again, alternating between messages belonging to other nearby merchants. We thoroughly reviewed our backend and database and confirmed that: Each merchant stores its own relevantText. Each pass is generated with the correct merchant information. We found no evidence of data mixing or cross-contamination on our server. Because of this, we would like to understand whether this behavior is expected from Apple Wallet itself. Our questions are: Is this expected behavior when multiple Wallet passes share the same Pass Type Identifier? Does Apple Wallet group or rotate nearby location-relevant passes that share the same Pass Type Identifier? For a platform issuing Wallet passes on behalf of many independent merchants, is the recommended architecture to use a different Pass Type Identifier for each merchant? Is there any documented way to prevent this behavior while keeping location-based notifications enabled? Is there a recommended or practical limit to the number of Pass Type Identifiers that can be managed under a single Apple Developer account? Our goal is to ensure that users never receive a location notification that could create confusion about which merchant it belongs to. We would greatly appreciate any clarification, best practices, or official documentation regarding this behavior. Thank you very much for your time and assistance.
0
0
892
Jul ’26
Push provisioning failing.
Hello, We are trying to provision in apple wallet, I am getting an error "Card can not be added". Please check below and let me know if I am missing anything. SEID: 04401D7BCE578001930001236930311377D86C15D956BBA1 TimeStamp: 2025-08-18 11:53:04.570431-0500. CST Last 4 FPAN: 2345 Thanks
2
0
1.7k
Jun ’26
HCE issues
This post contains sensitive language. Please revise it in order to continue.Hello, We are working on digital key style application using custom communication with HCE (Host Card Emulation). We have a working solution but there is one issue - if our application is not selected as default NFC application our users may see Wallet popup when there's no active presentment intent in our application. I didn't find in documentation any information how to stop Wallet from activating. I found there's requestAutomaticPassPresentationSuppression method in PassKit, it requires special permission, however I am not sure if it can be used in this situation, as there's no information how it will impact HCE communication in our application. I'll be greatful for any advice. Regards, Valdemar
1
0
1.9k
Jun ’26
Gathering Required Information for Troubleshooting Wallet Issues
Hi, To ensure the issue is not caused by an error within your app or web service request, please review the following documentation: Wallet Passes Wallet Developer Guide If the resources above don’t help identify the cause of the error, please provide more information about your app or web services to get started. To prevent sending sensitive credentials in plain text, create a report in Feedback Assistant to share the details requested below. Additionally, if the error is something we need to investigate further, the appropriate engineering teams also have access to the same information and can communicate with you directly within Feedback Assistant for more information, as needed. Please follow the instructions below to submit your report. For issues occurring with your native app or web service, perform the following steps: Install the Wallet profile on your iOS or watchOS device. Reproduce the issue and make a note of the timestamp when the issue occurred, while optionally capturing screenshots or video. Gather a sysdiagnose on the same iOS or watchOS device. Create a Feedback Assistant report with the following information: The serial number of the device. Open Settings > General > About > Serial Number (tap and hold to copy). The SEID (Secure Element Identifier) of the device, represented as a HEX encoded string. Open Settings > General > About > SEID (tap and hold to copy). The sysdiagnose gathered after reproducing the issue. The .pkpass file(s), pass signing certificate(s) and pass type identiifier(s) (optional). The timestamp of when the issue was reproduced. Screenshots or videos of errors and unexpected behaviors (optional). Important: From the logs gathered above, you should be able to determine the cause of the failure from PassbookUIService, PassKit or PassKitCore, and by filtering for your SEID or pass type identifier in the Safari Web Inspector. See Inspecting Safari on macOS to learn more. Submitting your feedback Before you submit to Feedback Assistant, please confirm the requested information above is included in your feedback. Failure to provide the requested information will only delay my investigation into the reported issue within your Wallet pass implementation. After your submission to Feedback Assistant is complete, please respond in your existing Developer Forums post with the Feedback ID. Once received, I can begin my investigation and determine if this issue is caused by an error within your web implementation, a configuration issue within your developer account, or an underlying system bug. Cheers, Paris X Pinkney |  WWDR | DTS Engineer
Replies
0
Boosts
0
Views
2.9k
Activity
Mar ’25
Apple Wallet Pass Notification – How to Display a Custom Message Instead of “Today at [Date/Time]
Hello Apple Developer Community, I am implementing Apple Wallet passes in my iOS application for rail journeys. When a pass is added to Apple Wallet, the system displays a default message such as “Today at [relevant date/time]”. Our requirement is to display a meaningful, custom message containing the actual rail journey timing instead of this default date and time text. For example, we would like to display a message such as: “Your train departs at 10:45 AM. Please arrive at the station 15 minutes before departure.” I have explored the available Wallet pass configuration options, including the semantics field, but this has not produced the expected behaviour. We also do not want to use location-based relevance for our rail passes. Our requirement is to provide relevant journey information based on the actual train departure time, without relying on the user's location or geofencing. Could anyone clarify the following? Is it possible to customise the default “Today at [relevant date/time]” text displayed by Apple Wallet? Can a custom message containing the actual train departure time be displayed using supported fields in pass.json? What is the intended purpose of the semantics field in this scenario, and can it influence the notification or relevance text displayed by Wallet? Is there a supported way to configure time-based relevance for a rail pass without using location-based relevance? If Apple Wallet does not support customising this system-generated text, what alternative approach would Apple recommend for displaying the actual rail journey timing to users? Any guidance, implementation suggestions, or references to the relevant Apple Wallet documentation would be greatly appreciated. Below is the format currently using { "formatVersion": 1, "passTypeIdentifier": "", "serialNumber": "", "teamIdentifier": "", "webServiceURL": "", "authenticationToken": "", "relevantDate": "", "logoText": "", "locations": [ ], "barcodes": { "format": "PKBarcodeFormatAztec" }, "organizationName": "", "description": "E-ticket", "foregroundColor": "rgb(36, 36, 36)", "backgroundColor": "rgb(255, 236, 242)", "labelColor": "rgb(36, 36, 36)", "boardingPass": { "transitType": "PKTransitTypeGeneric", "headerFields": [ ], "primaryFields": [ ], "secondaryFields": [ ], "auxiliaryFields": [ ], "backFields": [ ] } }Thank you for your help.
Replies
0
Boosts
0
Views
16
Activity
2d
Apple Wallet Employee Badge
Hello, we are ANeT, an EU-based manufacturer and developer of physical access control and attendance systems. We develop our own access control platform, including: our own NFC access readers (PASO), access controllers, backend and management software (Webguard), credential and user management. Our goal is to support employee/access credentials in Apple Wallet so that users can unlock doors using an iPhone or Apple Watch, ideally also using Express Mode. We would like to implement this directly into our own access control ecosystem, without using a third-party credential platform or third-party NFC reader hardware. From the Apple documentation, our understanding is that Access Keys use a credential stored in the Secure Element together with a pass in Apple Wallet, and that communication between Apple Wallet and the reader uses the Aliro protocol over NFC. We also understand that a physical access provider can act as a Credential Manager and that participation in the Apple Wallet Access Program is required. Our intended architecture is: Webguard / ANeT backend → Apple Wallet Access credential → iPhone / Apple Watch → our PASO NFC reader → ANeT access controller → door We would appreciate clarification on the following technical points: Is this architecture supported for a physical access control manufacturer using its own NFC reader hardware and firmware? What technical requirements must our NFC reader meet to communicate with Apple Wallet Access Keys using Aliro? Are there specific requirements or certification procedures for reader identification, ECP, certificates, keys, or the reader trust chain? Can our Webguard/backend platform act directly as the Credential Manager and provision, manage and revoke Access Keys through the Apple Access Platform? Can credential provisioning be initiated from a web interface using an “Add to Apple Wallet” flow, or is a native iOS application required? Which entitlements, certificates, APIs and technical documentation become available after joining the Apple Wallet Access Program? Is Apple Wallet Access for employee/physical access credentials available for access control providers operating in the European Union, including the Czech Republic? We contacted Apple Developer Support regarding this integration and were advised to ask the technical questions here on the Developer Forums. Developer Support case: 102991167219 Our objective is not to create a standard Wallet pass or QR credential. We want to integrate secure NFC-based physical access credentials directly with Apple Wallet, our own backend and our own reader hardware. Thank you for any guidance on the correct technical integration path.
Replies
0
Boosts
0
Views
207
Activity
3d
Workout route map double-converts the first ~49 samples on mainland-China tracks (FB25306175)
Every ride I import into HealthKit from a Chinese bike computer renders wrong at the start in the Fitness and Health apps, and the same record is wrong on iOS 26 as well as on iOS 27.2 (iPhone 15 Pro, mainland China, AutoNavi base map). Filed as FB25306175. WHAT HAPPENS The first ~49 samples of an HKWorkoutRoute are drawn about 415 m east and 222 m south of the coordinates actually stored, and a straight line joins that piece back to the rest of the track. The green start marker is on the displaced piece. Every remaining sample, and the red end marker, are drawn exactly where stored. On this record (2794 points, 1 Hz, 17649 m drawn) the displaced block is the first 209 m of riding — about 53 seconds The displacement is one more application of the local WGS-84 → GCJ-02 transform, which these coordinates already contain: measured from screenshots at native 1179×2556, 417 m E / 219 m S on the full-screen map and 418 m E / 220 m S on the summary map, against a true local offset of 415.2 m E / 222.4 m S. THE STORED DATA IS CORRECT HKWorkoutRouteQuery returns all 2794 CLLocation values unchanged; the descriptor query returns the same count and the same first/last values. One workout, one route. The same coordinates drawn with SwiftUI Map + MapPolyline on the same phone render correctly end to end, including the start. The same unchanged workout, opened twice with no write in between, was correct the first time and offset after leaving and re-entering. So the data is not the variable. THE WRITE PATH The head unit writes GCJ-02 into record.position_lat / position_long. That is what makes the track land on the road here: MKMapSnapshotter on the mainland base map puts the GCJ-02 values exactly on two known intersections, and the WGS-84 values about 470 m north-west of them, and MapKit does no conversion for us. So they are written verbatim: let config = HKWorkoutConfiguration() config.activityType = .cycling config.locationType = .outdoor let builder = HKWorkoutBuilder(healthStore: store, configuration: config, device: nil) try await builder.beginCollection(at: firstPoint.timestamp.addingTimeInterval(-1)) // CLLocation per record, coordinates as recorded, horizontalAccuracy 10, // verticalAccuracy 10 (or -1 where the record has no altitude), recorded altitude // and speed, course computed from the previous point. let routeBuilder = builder.seriesBuilder(for: HKSeriesType.workoutRoute()) as? HKWorkoutRouteBuilder for batch in locations.chunked(into: 1000) { try await routeBuilder?.insertRouteData(batch) } try await builder.endCollection(at: lastPoint.timestamp.addingTimeInterval(10)) let workout = await builder.finishWorkout()WHAT IS NOT THE CAUSE Established with controlled synthetic routes written from the same start point: probe sample interval m per point displaced length displaced time samples E 1 s 10 ~480 m ~48 s ~49 F 2 s 10 ~480 m ~96 s ~49 G 1 s 20 ~950 m ~48 s ~49 The block follows SAMPLE COUNT, not time and not distance. Also ruled out, each by writing a variant: lap and pause/resume events (present, absent, and a 206-point probe carrying all three); the first point's metadata (altitude 0 / course -1 / verticalAccuracy -1); valid versus -1 values for horizontalAccuracy, verticalAccuracy, speed and course; dropping an isolated leading point; back-dating the first timestamp to the workout start; trimming the leading 200 m (the offset simply re-appears at the new start, which still begins with 49 samples). Writing WGS-84 instead inverts the symptom — the leading block then looks right and everything else goes ~470 m north-west — which is what you would expect if only the leading block is converted a second time. SCOPE This is not my one file. Three separate real rides, two cities, two head units, plus synthetic routes, all behave identically: MAGENE C706_54634 Suzhou 2026-10-23 17.61 km 2797 records / 2794 stored points MAGENE C706_54634 Suzhou 2026-10-22 12.66 km 2076 records MAGENE C606P_33206 Chengdu 2026-10-20 63.30 km 12069 records Apple Watch recordings made in mainland China render correctly, and a Garmin Edge 1050 file recorded in the US imported through the same code path renders correctly. The common factor is coordinates that are already GCJ-02 when they reach HKWorkoutRouteBuilder — which is every Chinese bike computer, every Chinese running app, and every GPX export from a Chinese service. So any third-party importer here hits this. WHAT I AM ASKING Does the workout map apply a datum conversion to a leading block of route samples, and is that block size fixed? What is the official coordinate contract for HKWorkoutRoute locations for apps working with GCJ-02 data in mainland China? Is there a supported way to opt out, and what decides whether a given route enters this state? Which component owns the conversion — Health/Fitness route rendering or MapKit? I am deliberately not pre-converting the first ~49 points: that would store mixed datums in HealthKit, wrong for the Health app itself, for exports, for every third-party reader, and wrong for all of them the moment this is fixed. Happy to share the one-tap sample project, the exported JSON with all 2794 stored CLLocation values, the original .fit, and the probe E/F/G screenshots — reply here and I'll attach them.
Replies
1
Boosts
0
Views
412
Activity
6d
Allow Transit Cards for Child Accounts under 13(Ref: FB25261157)
I would like to propose a policy adjustment regarding Apple Wallet restrictions for child accounts (under 13) under Family Sharing. Current Limitation: Currently, Apple IDs for children under 13 are completely blocked from adding any cards to Apple Wallet. While restricting credit and debit cards for minors is a necessary measure for financial security and CoPPA compliance, this blanket restriction also blocks transit cards (such as Suica, T-money, etc.). The Problem: In regions with advanced public transit infrastructures, many children rely on digital transit cards for daily commutes to school and academies. Because Apple Wallet blocks transit cards on child accounts—even on Apple Watch via Family Setup—children are forced to carry physical transit cards, leading to frequent losses and damages. Proposed Solution: Differentiate Transit from Financial Cards: Maintain strict blocks on credit/debit cards for accounts under 13, but grant an exception for Transit Cards. Family Sharing Integration: Require Parental Approval through Family Sharing for any transit card addition or balance top-up, ensuring full parental control and safety. By introducing this exception, Apple can greatly improve the usability of Apple Watch Family Setup for families while maintaining high safety standards. I have submitted this feedback via Feedback Assistant under FB25261157. If you agree or are facing similar design constraints, please upvote this thread or reference the FB number in your own feedback submissions. Thank you.
Replies
0
Boosts
0
Views
322
Activity
1w
Apple Wallet - add hotel keys - native app
Good day, I understand a native app is required in order to store hotel keys in Apple Wallet for scenarios where door locks are compatible (https://support.apple.com/en-us/118273). Must this be a traditional, App Store app? Or can this be achieved using an App Clip instead? Thank you very much!
Replies
1
Boosts
1
Views
1.1k
Activity
2w
PassKit NFC certificate request
Hi, I've been trying to request the PassKit NFC certificate on our organization Apple Developer account for some time. We submit our request at https://developer .apple.com/contact/passkit/ and usually within 1-2 weeks I get a response saying the request was denied for reasons that can't be shared, but we can resubmit. We have resubmitted several times, doing our best to guess at how to revise the application each time, and each time get the same response. Just wondering if this is a new thing or something others have experienced. Am I really supposed to just keep guessing? Is there an appropriate escalation path? Thank you.
Replies
1
Boosts
0
Views
414
Activity
2w
PassKit silently rejects every .pkpass from one Team ID — client-side ruled out, DTS silent 5 weeks — how to escalate?
Looking for guidance on how to escalate a PassKit issue that appears to be at the team-account level, after two months of exhausting every client-side variable. SYMPTOM Every .pkpass I sign under team XMJKFS3D66 (Mesh Community AS, Norway) is silently rejected on install with: "Sorry, your Pass cannot be installed to Passbook at this time." The rejection is silent — no user-facing hint at what iOS objects to. WHAT I'VE RULED OUT Reproduced across: 3 separate Pass Type IDs (pass.com.meshcommunity.membership original, .membership after re-issue, brand-new pass.com.meshcommunity.kiosk) 2 independently-issued signing certs on the same identifier 3 iPhone testers on 3 different iOS builds with different Apple IDs Paris Pinkney (WWDR DTS) sent me the standard 6-item team-wide checklist on Aug 5, and I'm verifiably clean on all six: Cert not expired — notBefore 2026-07-08, notAfter 2027-08-07 Cert not revoked — OCSP status "good" from ocsp.apple.com/ocsp03-wwdrg404 WWDR G4 intermediate matches cert issuer OU Program membership active, latest PLA accepted Both Pass Type IDs Active in Portal Team ID XMJKFS3D66 matches everywhere (pass.json.teamIdentifier + cert OU) Also verified: openssl smime -verify -in signature -inform DER -content manifest.json -noverify → "Verification successful" Full chain in signature: Pass Type ID cert → WWDR G4 → Apple Root CA PKCS#7 detached, DER, SHA-256, -noattr CDN serves application/vnd.apple.pkpass THE DEFINITIVE TEST To rule out the last remaining plausible client-side hypothesis (missing primaryFields causing a silent layout rejection, suggested by an independent review), I built a minimal known-good pass: { "formatVersion": 1, "passTypeIdentifier": "pass.com.meshcommunity.kiosk", "teamIdentifier": "XMJKFS3D66", "organizationName": "Mesh Community", "serialNumber": "10001", "description": "Mesh Kiosk Pass", "logoText": "Mesh Community", "foregroundColor": "rgb(255, 255, 255)", "backgroundColor": "rgb(25, 25, 25)", "barcodes": [ { "format": "PKBarcodeFormatQR", "message": "10001", "messageEncoding": "iso-8859-1" } ], "generic": { "primaryFields": [ { "key": "name", "label": "MEMBER", "value": "Test User" } ] } } ASCII-only, no emoji, no hyphenated serial, includes primaryFields, minimal fields Same signing recipe, same G4 chain, verify clean Same 6 standard PNG assets (icon + logo, 1x/2x/3x) Result on a fresh iPhone: identical silent rejection. Same "Sorry, your Pass cannot be installed to Passbook at this time." dialog. At this point every plausible client-side variable has been isolated and eliminated. The block appears to be at team level inside Apple's PassKit backend — invisible from the Developer Portal. WHAT APPLE HAS DONE SO FAR DTS Case-ID: 21008005 — opened 2026-07-13, reproducer.zip attached same day Assigned engineer: Paris Pinkney (WWDR, DTS) since 2026-08-05 Sysdiagnose: filed via Feedback Assistant as FB24516356 on 2026-08-26 (device Serial HWT3HQ2F9F, SEID captured, iOS 23G71, reproduction timestamp 2026-08-13 11:02:15 +0200) with Wallet debug profile installed on the device before reproduction Radio silence since 2026-08-17 — 5 weeks and counting, including no reply to a polite check-in on 2026-09-08 WHAT I'M ASKING Anyone at Apple engineering seeing this: is there a way to accelerate the Case-ID 21008005 / FB24516356 log review? The PassbookUIService / PassKit / PassKitCore entries around the timestamp above would settle this in minutes on your end. Any developer who's hit team-wide PassKit rejection before: what unblocked it? Was it a PLA re-acceptance, a Developer Program Support ticket (separate from DTS), a re-provisioning request, something else? Any way to inspect a team's backend PassKit entitlement state from outside (a Portal page, an endpoint, an xcrun command), so I can either confirm my suspicion or eliminate it myself? Any known-good published .pkpass from a Norwegian-registered (C=NO) Developer Team I can diff against, just to eliminate country-registration as a factor? Working Apple Wallet is a launch-blocker for the Mesh Community Workbar Kiosk rollout — we're currently shipping Google Wallet + QR-in-email as a full fallback and it works everywhere including iPhone, so no user is being turned away. But we'd like to close the Apple Wallet loop, and after 2 months I've run out of things to try from my side. Any pointer welcome. Happy to share the full evidence bundle privately with anyone at Apple who can help. Thanks, Mesh Community AS · Team ID: XMJKFS3D66
Replies
1
Boosts
0
Views
351
Activity
Sep ’26
Can't add /Users/wes/code/wesbiggs/appclip-autologin/app/autologin.xcodeproj Entitlement com.apple.developer.pass-type-identifiers not found and could not be included in profile. This likely is not a valid entitlement and should be removed from your
I've tried to add the "Pass Type Identifiers" entitlement manually in .entitlements, but it will not archive and shows the error: Entitlement com.apple.developer.pass-type-identifiers not found and could not be included in profile. This likely is not a valid entitlement and should be removed from your entitlements file. It works correctly for the App (parent of ), but without it the App Clip can't see any passes. The documentation says this should be possible: Note In iOS 17 and later, App Clips can use the Wallet capability. For more information on functionality that’s available to App Clips, see Choosing the right functionality for your App Clip. It is not visible in the portal either. Is this an entitlement that I need to specifically request, and if so, how would I go about doing so? Thanks! Wes
Replies
7
Boosts
2
Views
2.7k
Activity
Sep ’26
Will renewing an expired Pass Type ID certificate affect Apple Pay “Add to Wallet” (in-app provisioning)?
Hi, We received a notice that our Pass Type ID certificate will expire soon, and we plan to renew it for the same Pass Type ID (we will not create a new identifier, and we will not revoke the old certificate until the new one is in place). Our app adds payment cards to Apple Wallet via in-app provisioning (PKAddPaymentPassViewController / com.apple.developer.payment-pass-provisioning). We do not sign or distribute .pkpass files with this certificate. The app entitlement com.apple.developer.pass-type-identifiers includes our existing Pass Type ID. Developer Support pointed us to the standard certificate overview: if the certificate expires, installed passes keep working, but we can no longer sign new passes or send updates. That sounds like generic Wallet passes, not payment-card provisioning. Could someone from Apple confirm: If we renew the Pass Type ID certificate for the same identifier, will Add to Wallet for payment cards still work for current users (no need to remove and re-add the card)? After renewal, can users add new payment cards as usual? Is the Pass Type ID certificate required for in-app provisioning, or do we only need the Pass Type ID identifier in entitlements? Thanks.
Replies
0
Boosts
0
Views
374
Activity
Sep ’26
HCE-based contactless NFC transactions
Hi, We're implementing a HCE contactless app on iOS. The intention of this app is to only support contactless payments. Next to the com.apple.developer.nfc.hce and com.apple.developer.nfc.hce.default-contactless-app entitlements, we've listed the identifiers that we're interested in through the com.apple.developer.nfc.hce.iso7816.select-identifier-prefixes in the Info.plist. (325041592E5359532E4444463031 & A0000000041010 f.e.) When the app is configured as the Default Contactless App, we start receiving NFCWindowSceneEvents through our NFCWindowSceneDelegate. However we notice that also non-payment related NFC events are being received, such as when the device is close to a NFC reader for Access cards for example. This experience results in launches of our app when it's not intended. Is there a way to allow the app to only receive NFC events related to ISO 7816 identifiers when the when the app is configured as the Default Contactless App? Thanks in advance for any guidance! Kind regards, Dimitri
Replies
1
Boosts
0
Views
423
Activity
Sep ’26
Entitlement com.apple.developer.pass-type-identifiers is missing for appclip
Hi All, We build a new feature according to the Apple docs: In iOS 17 and later, App Clips can use the Wallet capability. For more information on functionality that’s available to App Clips, see Choosing the right functionality for your App Clip. and based on that we proceeded with our development, our but in our appclip we are not able to see the wallet capability in the developer portal but for our main application the wallet is there and we enabled it and therefore the com.apple.developer.pass-type-identifiers entitlement has been added to our main app and the appclip, the signing for the main app is working fine, but for the appclip we are getting this issue: Entitlement com.apple.developer.pass-type-identifiers not found and could not be included in profile. This likely is not a valid entitlement and should be removed from your entitlements file.
Replies
0
Boosts
0
Views
366
Activity
Sep ’26
NFC PassKit Certificate request form submits without confirmation
I’m trying to request an NFC PassKit Certificate through https://developer.apple.com/contact/passkit/. After clicking Send, the completed form is POSTed successfully and receives 200 OK, but the server returns the original form instead of a confirmation page. The page’s passkit.js then clears all fields, and Developer Support confirmed that my earlier submission was never received. Has anyone else encountered this behavior or found another way to submit the NFC PassKit Certificate request?
Replies
5
Boosts
1
Views
1.8k
Activity
Sep ’26
iOS 26 Wallet Boarding Pass – Control Live Activities and Automatic Flight Updates
Hi everyone, We have recently started distributing iOS 26 Apple Wallet boarding passes, which support new features such as: Live Activities Automatic updates for flight-related information (e.g., gate changes, departure time updates) While these features are useful, we are looking for ways to control or limit some of this behavior. Our requirements Live Activity Control We would like to prevent Live Activities from being automatically shown when a boarding pass is added to Wallet. Automatic Flight Data Updates We would like to control or disable the automatic updates performed by Wallet for flight information. Reason for this requirement We already provide our own Live Activity implementation with more customization, and having two Live Activities leads to a poor user experience. We have observed that Wallet’s automatic updates can sometimes be delayed, and since Wallet overrides our data, we lose control over the displayed information. Question Is there any supported way to: Disable or control Live Activities triggered by Wallet passes? Disable or override Wallet’s automatic flight updates? Or are these behaviors managed entirely by the system with no developer control? Any guidance or documentation references would be greatly appreciated. Thanks in advance! Regards,
Replies
2
Boosts
1
Views
1.4k
Activity
Sep ’26
Wallet-based Live Activity is not suppressed despite associatedStoreIdentifiers
Hi, We're implementing the new semantic boarding pass experience and would like to completely suppress the Wallet-generated Live Activity. According to Apple's documentation: "To automatically suppress the Wallet-based Live Activity, list your App Store Identifier (Adam ID) in the associatedStoreIdentifiers array in the pass.json file of the boarding pass." We have added our App Store ID at the top level of pass.json: "associatedStoreIdentifiers": [ xxxxx ] However, Wallet continues to create and display the Live Activity for the flight. We have verified that: associatedStoreIdentifiers is at the top level of pass.json. The value is the correct numeric App Store ID (Adam ID). The associated production app is installed on the device. The generated and signed .pkpass contains the correct value. We removed the existing boarding pass and added a newly generated pass. Our app does not currently implement its own ActivityKit Live Activity. Our intention is to continue using the semantic boarding pass experience while completely suppressing the Wallet-generated Live Activity. Is there any additional requirement for associatedStoreIdentifiers to suppress the Wallet Live Activity? Does suppression require the associated app to implement its own Live Activity, or should associatedStoreIdentifiers suppress the Wallet Live Activity even when the associated app does not provide one? Any guidance would be appreciated.
Replies
0
Boosts
0
Views
257
Activity
Sep ’26
In-App Provisioning Internal Server Error 500
We are implementing In-App Provisioning functionality for our Bank but there is always 500 Internal Server Error respond by Apple server once we tried to add card to apple wallet. Our code let request = PKAddPaymentPassRequest() request.activationData = try decodeBase64(payload.activationDataText, field: "activationDataText") request.encryptedPassData = try decodeBase64(payload.encryptedDataText, field: "encryptedDataText") request.ephemeralPublicKey = try decodeBase64(payload.ephemeralPublicKeyText, field: "ephemeralPublicKeyText") return request Because of fPanId is not required so we are not pass it to Apple server and that field generated once the card already added to wallet. Please help us investigate the issue, thanks! FeedbackId 24065847 (In-App Provisioning 500 Internel Error)
Replies
0
Boosts
0
Views
607
Activity
Aug ’26
Geo with the same pass type id
Hello, We are the developers of a loyalty platform built on Apple Wallet for multiple independent merchants. Currently, all merchants issue their Wallet passes using the same Pass Type Identifier under a single Apple Developer account. However, each pass has its own: Unique serial number Merchant name Logo Geographic locations relevantText for location notifications We recently observed a behavior that we would like to better understand. For example: Pass A Merchant: La Minga Gourmet (coffee shop) relevantText: “Enjoy a delicious coffee ☕” Pass B Merchant: Papelisto (stationery store) relevantText: “Notebooks, pens, and everything you need…” A user had both passes installed on the same iPhone. The two businesses are located very close to each other. When the user entered that area, Apple Wallet displayed what visually appeared to be a notification for La Minga Gourmet, but the visible message was: “Notebooks, pens, and everything you need…” which corresponds to the relevantText configured for Papelisto. A short time later, the visible message changed again, alternating between messages belonging to other nearby merchants. We thoroughly reviewed our backend and database and confirmed that: Each merchant stores its own relevantText. Each pass is generated with the correct merchant information. We found no evidence of data mixing or cross-contamination on our server. Because of this, we would like to understand whether this behavior is expected from Apple Wallet itself. Our questions are: Is this expected behavior when multiple Wallet passes share the same Pass Type Identifier? Does Apple Wallet group or rotate nearby location-relevant passes that share the same Pass Type Identifier? For a platform issuing Wallet passes on behalf of many independent merchants, is the recommended architecture to use a different Pass Type Identifier for each merchant? Is there any documented way to prevent this behavior while keeping location-based notifications enabled? Is there a recommended or practical limit to the number of Pass Type Identifiers that can be managed under a single Apple Developer account? Our goal is to ensure that users never receive a location notification that could create confusion about which merchant it belongs to. We would greatly appreciate any clarification, best practices, or official documentation regarding this behavior. Thank you very much for your time and assistance.
Replies
0
Boosts
0
Views
892
Activity
Jul ’26
Push provisioning failing.
Hello, We are trying to provision in apple wallet, I am getting an error "Card can not be added". Please check below and let me know if I am missing anything. SEID: 04401D7BCE578001930001236930311377D86C15D956BBA1 TimeStamp: 2025-08-18 11:53:04.570431-0500. CST Last 4 FPAN: 2345 Thanks
Replies
2
Boosts
0
Views
1.7k
Activity
Jun ’26
HCE issues
This post contains sensitive language. Please revise it in order to continue.Hello, We are working on digital key style application using custom communication with HCE (Host Card Emulation). We have a working solution but there is one issue - if our application is not selected as default NFC application our users may see Wallet popup when there's no active presentment intent in our application. I didn't find in documentation any information how to stop Wallet from activating. I found there's requestAutomaticPassPresentationSuppression method in PassKit, it requires special permission, however I am not sure if it can be used in this situation, as there's no information how it will impact HCE communication in our application. I'll be greatful for any advice. Regards, Valdemar
Replies
1
Boosts
0
Views
1.9k
Activity
Jun ’26