Skip to content
WebViewGold Vibe Coding to App Store
English
Get WebViewGold

Cursor + Apple Wallet

Apple Wallet passes from your Cursor app: tickets, loyalty cards, coupons

If your Cursor 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.

  • Approval guarantee – or money back within 14 days
  • No coding needed
  • One-time payment, free updates
  • 24/7 human support
  • Made in Germany since 2014 · ISO 27001

How Add to Apple Wallet works in the app

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.

You create and sign the pass

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.

Serve it correctly

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.

Android: Google Wallet

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.

Prompt for Cursor

Paste this into Cursor to implement the web-app side. Review the result, publish, then test inside the WebViewGold app.

Prompt for the Cursor agent
Prompt for the Cursor agent: Add Wallet passes for our tickets. 1) Create lib/wallet/apple.ts that builds and signs an eventTicket .pkpass (passkit-generator or equivalent) with certificates from server-side environment variables, including serialNumber, a QR barcode with the ticket code, relevantDate and an optional webServiceURL. 2) Add an authenticated route that issues a signed, short-lived download URL, and a download route that verifies the token and returns the pass with Content-Type application/vnd.apple.pkpass. 3) Write a test that unzips a generated pass and checks that manifest.json lists every file with the right SHA-1 hash. 4) In the UI, use Apple's official badge: inside the iOS app (navigator.userAgent contains our WebViewGold token and iPhone or iPad) link to the download URL with https:// replaced by addpkpass://; Safari gets the https URL. 5) Optionally add lib/wallet/google.ts that signs a Google Wallet save JWT and returns https://pay.google.com/gp/v/save/JWT for Android. 6) Document both flows and the BROWSER_BLACKLIST entry for pay.google.com in .cursor/rules.

Great way of converting your web app to a native app! Fast turn-around, and a great way to get your apps into the app stores without the need to develop a full native app!

Kevin Joling · FlightConnections & TrainConnections · Trustpilot

Passes that fit vibe-coded apps

Apple Wallet has five pass styles: event ticket, store card, coupon, boarding pass and generic. The ones that come up most:

Event tickets

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.

Loyalty and stamp cards

Cafes, salons, gyms. A store card with the member number as a barcode and a points balance that you can update later.

Coupons and offers

A discount code that is scanned at the counter or shown at checkout, with an expiry date users can see.

Membership and access

Club memberships, coworking access, VIP or season passes: identification is one of the uses Apple names explicitly.

Add Wallet passes to a Cursor app

A day for the first pass type; certificates take the longest.

  1. Create a Pass Type ID and certificate

    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.

  2. Generate passes on your server

    A server function in Your own API routes or services 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.

  3. Protect the download with a token

    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.

  4. Add the button

    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.

  5. Keep passes current (optional)

    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.

  6. Test on a real iPhone

    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.

One helper for every platform

Your server returns both URLs; the page picks the right one. YourAppToken is the custom user agent from Config.swift / Config.java.

javascript
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);

Android and Google Wallet

WebViewGold has no dedicated Google Wallet API, and the addpkpass:// scheme is iOS-only. The web route works well:

  • Create an issuer account in the Google Pay and Wallet Console, define a pass class (event ticket, loyalty, offer or generic) and let your server sign a JWT with a service account. The result is a save link on pay.google.com.
  • Open that link outside the web view, where the user is signed in to Google: add pay.google.com to BROWSER_BLACKLIST in Config.java, or prefix the link with newtab: and set SPECIAL_LINK_HANDLING_OPTIONS to 2 (URL handling docs).
  • Use Google's official Add to Google Wallet button artwork and follow its brand guidelines, just as you use Apple's badge on iOS.
  • Recent Google Wallet versions can also import .pkpass files, but treat that as a bonus you test on your target devices, not as the plan: inside the app there is no Wallet handling for .pkpass links on Android.
  • Always keep a fallback: a PDF ticket or the QR code on screen works on every device.

Frequently asked questions

Does WebViewGold create the Wallet pass for me?

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.

Does Add to Apple Wallet work on Android?

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.

Can I update a pass after the user added it?

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.

Why does the pass open in an in-app browser tab?

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.

Can users add passes from the website too?

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.

Three ways to get your app into the stores

Same result, different amount of work on your side. All three come with the approval guarantee and 24/7 human support.

Do it yourself

$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

Cloud Builder

$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

Full Service

$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 by WeSetupYourWebViewApp

Winter Sale prices valid until December 31, 2026.

Ready to ship your Cursor app?

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.