Apple Wallet
Event passes and member cards are signed on the website Vercel project (https://vision20you.com).
Live status
Checking https://vision20you.com/api/wallet/health…
Setup checklist
- In Apple Developer → Pass Type IDs, create a Pass Type ID (e.g.
pass.com.vision20you.event). - Create a Pass Type ID Certificate, download the
.cer, export as PEM + private key from Keychain Access. - Download the Apple WWDR G4 cert and convert to PEM (
wwdr.pem). - On Vercel → vision20you.com → Settings → Environment Variables, set:
- PASS_TYPE_IDENTIFIER
- TEAM_IDENTIFIER (10-char Apple Team ID)
- PASS_SIGNER_CERT (full PEM, use \n for newlines)
- PASS_SIGNER_KEY (full PEM)
- PASS_SIGNER_KEY_PASSPHRASE (if key is encrypted)
- APPLE_WWDR_CERT (WWDR PEM)
- SUPABASE_SERVICE_ROLE_KEY (for pass tokens + wallet_passes)
- Alternatively, place
pass_cert.pem,pass_key.pem, andwwdr.pemin the website repo root (gitignored) for local dev only. - Redeploy the website, then refresh this page.
Test pass URL
Replace EVENT_UUID and USER_UUID with real IDs from an RSVP'd member:
https://vision20you.com/api/wallet/events/EVENT_UUID (Authorization: Bearer member session)Success returns a .pkpass download. A 501 means certs are still missing.