One link
<a href="addpkpass://yourdomain.com/passes/ticket-123.pkpass">: WebViewGold turns it back into an https:// URL and opens it in an in-app browser tab, which recognizes the pass and shows the native Add to Apple Wallet preview.
ChatGPT & Codex + Apple Wallet
If your ChatGPT & Codex app sells event tickets, runs a loyalty program or hands out coupons, the pass belongs in Apple Wallet, on the lock screen when it matters. WebViewGold adds the missing link: replace https:// with addpkpass:// in your .pkpass URL and iOS shows the native Add to Apple Wallet sheet. You still create and sign the pass yourself, and on Android, Google Wallet works through its own web save link.
From $109 one-time per platform, or let our team do it all from $698.
<a href="addpkpass://yourdomain.com/passes/ticket-123.pkpass">: WebViewGold turns it back into an https:// URL and opens it in an in-app browser tab, which recognizes the pass and shows the native Add to Apple Wallet preview.
A .pkpass file is a signed bundle (pass.json, images, a manifest and a signature) made with your own Pass Type ID certificate from your Apple Developer account. Generate it on your server or with a pass service; WebViewGold hands it to Wallet.
HTTPS, the MIME type application/vnd.apple.pkpass and a valid signature. If any of the three is off, iOS cannot show the preview and the user sees an error instead.
Since 2024 Google Wallet can import many .pkpass files, but support varies by device and pass, and the addpkpass:// scheme is iOS-only. The dependable Android route is a Google Wallet pass created with the Google Wallet API and the official Add to Google Wallet button, which links to a save URL on pay.google.com that your server signs.
Paste this into ChatGPT & Codex to implement the web-app side. Review the result, publish, then test inside the WebViewGold app.
Prompt for Codex: Add Apple Wallet passes for event tickets and open a pull request. Create a server-side module that builds an eventTicket pass (event name, date, venue, seat, QR barcode with the ticket code, relevantDate, serialNumber = ticket id) and signs it with the Pass Type ID certificate, key and WWDR certificate from environment variables. Add an endpoint that returns a signed download URL, valid for ten minutes, to the ticket owner, and a download route that serves the file with Content-Type application/vnd.apple.pkpass. On the ticket page, render Apple's Add to Apple Wallet badge: when navigator.userAgent contains my custom WebViewGold token and the device is an iPhone or iPad, link to the download URL with https:// replaced by addpkpass://; in Safari use the https URL; on Android show a Download ticket PDF button. Add tests for token expiry and the pass contents, and document the pass rules in AGENTS.md.

My iOS WebView is finally approved. Thanks!!
Apple Wallet has five pass styles: event ticket, store card, coupon, boarding pass and generic. The ones that come up most:
Workshops, meetups, concerts, classes. A QR code with the ticket ID, date and venue, and a relevant date so the pass appears on the lock screen before the event.
Cafes, salons, gyms. A store card with the member number as a barcode and a points balance that you can update later.
A discount code that is scanned at the counter or shown at checkout, with an expiry date users can see.
Club memberships, coworking access, VIP or season passes: identification is one of the uses Apple names explicitly.
A day for the first pass type; certificates take the longest.
In your Apple Developer account under Certificates, Identifiers and Profiles, register a Pass Type ID (for example pass.com.yourcompany.tickets), create its certificate and download Apple's WWDR intermediate certificate. Both go to your server, never into the client.
A server function in Your own API or serverless functions builds pass.json (serial number, barcode with the ticket code, relevant date or location) and signs it, for example with passkit-generator on Node or through a hosted pass API. Store the serial number with the order.
The in-app browser tab may not share the web view's login cookies, so give the pass URL a signed, short-lived token instead of relying on the login session.
Use Apple's official Add to Apple Wallet badge. Inside the iOS app, link to the pass with addpkpass://; in Safari, the plain https link works natively; on Android show the Google Wallet button or a PDF ticket.
Add webServiceURL and authenticationToken to pass.json and implement Apple's pass web service; when a gate, seat or points balance changes, you notify the device via APNs and Wallet downloads the new version.
Add a pass, open it from the lock screen, try an expired token and a voided ticket. Check that the barcode scans with the reader you actually use at the door.
Your server returns both URLs; the page picks the right one. YourAppToken is the custom user agent from Config.swift / Config.java.
var ua = navigator.userAgent;
var inApp = ua.indexOf("YourAppToken") !== -1;
var isIOS = /iPhone|iPad|iPod/.test(ua);
var isAndroid = /Android/.test(ua);
// pass = {
// pkpassUrl: "https://yourdomain.com/passes/T-1042.pkpass?t=SIGNED_TOKEN",
// googleSaveUrl: "https://pay.google.com/gp/v/save/SIGNED_JWT", // created by your server
// pdfUrl: "https://yourdomain.com/tickets/T-1042.pdf"
// }
function walletLink(pass) {
if (isIOS && inApp) return pass.pkpassUrl.replace(/^https:\/\//, "addpkpass://");
if (isIOS) return pass.pkpassUrl; // Safari opens .pkpass natively
if (isAndroid && pass.googleSaveUrl) return pass.googleSaveUrl;
return pass.pdfUrl; // desktop and fallback
}
document.getElementById("add-to-wallet").href = walletLink(window.currentPass);WebViewGold has no dedicated Google Wallet API, and the addpkpass:// scheme is iOS-only. The web route works well:
BROWSER_BLACKLIST in Config.java, or prefix the link with newtab: and set SPECIAL_LINK_HANDLING_OPTIONS to 2 (URL handling docs).No. WebViewGold delivers a pass to Apple Wallet. Creating and signing the .pkpass file happens on your server or in a pass service, with your own Pass Type ID certificate from the Apple Developer Program.
Apple Wallet exists only on Apple devices. Google Wallet can import many .pkpass files on recent Android phones, but support varies, so the dependable route is a Google Wallet pass created through the Google Wallet API, with its save link opened outside the web view (BROWSER_BLACKLIST in Config.java) where the user is signed in to Google. WebViewGold has no dedicated Google Wallet API.
Yes, with Apple's pass web service: include webServiceURL and authenticationToken in pass.json and Wallet registers the device with your server. When the gate, seat or balance changes, you send a push through APNs and Wallet fetches the new version.
That tab recognizes the .pkpass content type and shows the native Add to Apple Wallet preview. It may not share cookies with the main web view, so the pass URL must work without the app's login session, for example with a signed, expiring token.
Yes. Safari on iPhone and Mac opens .pkpass links natively, so the same https URL works on the web; only the app uses the addpkpass:// prefix.
Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.
$109 per platform, one-time
The WebViewGold license: a finished Xcode or Android Studio project. Paste your URL, set name and icon, switch on features, build and submit. Free updates forever.
See plans on the main page$349 per license, one-time add-on
No Mac, no Xcode, no Android Studio: configure in the browser, we build both apps in the cloud and hand them to App Store Connect and the Play Console.
How the Cloud Builder works Try the free demo$698 per platform $798
Send us your URL and icon. Our team configures, builds and delivers your app within 72 hours, white-label, with source projects. Both platforms for $1,158.
Full Service details Powered byWinter Sale prices valid until December 31, 2026.
App Store & Google Play approval guarantee – or your money back within 14 days
Rather hand it over? Full Service: we configure, build and deliver within 72 hours, from $698 per platform. Questions? Chat with us 24/7.
Refunds are granted under the conditions listed in our FAQ: a non-content rejection by Apple and/or Google, claimed within 14 days after purchase.