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

  1. In Apple Developer → Pass Type IDs, create a Pass Type ID (e.g. pass.com.vision20you.event).
  2. Create a Pass Type ID Certificate, download the .cer, export as PEM + private key from Keychain Access.
  3. Download the Apple WWDR G4 cert and convert to PEM (wwdr.pem).
  4. 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)
  5. Alternatively, place pass_cert.pem, pass_key.pem, and wwdr.pem in the website repo root (gitignored) for local dev only.
  6. 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.