Location & Geofencing Reference


Daniel Baudino

Updated March 20, 2026

TL;DR: How to trigger location-based notifications for wallet passes.
  • Apple: 10 GPS locations + 10 beacon UUIDs per pass
  • Google: 10 locations per class + 10 per object
  • Apple supports custom notification text via location.message
  • Google controls notification text automatically
  • User must enable Location Services for either platform

Overview

This reference covers location-based pass surfacing for Apple Wallet and Google Wallet. When users approach defined locations, their passes automatically appear on the lock screen.


Quick Reference

SpecApple WalletGoogle Wallet
GPS locations10 per pass*10 per class + 10 per object*
Beacons10 per pass**Not supported
Trigger radius100m (cards), 1km (tickets)Google-controlled
Custom notification textYes (location.message)No
User must enableLocation Services + WalletLocation Services

*Basic plan supports 1 location per pass. Enterprise plan supports up to 10 locations.

**Beacons are only available on Enterprise plan.


Apple Wallet

How It Works

  1. Pass includes (latitude) and (longitude) coordinates
  2. Device monitors (location.distance) to those coordinates
  3. When user enters trigger radius, pass surfaces on lock screen
  4. User sees location.message message

This is lock screen surfacing, not a push notification. The pass appears automatically based on proximity.

Limits

LimitValue
Maximum locations per pass10
Default trigger radius (loyalty/gift/coupon)~100 meters
Default trigger radius (event ticket)~1 kilometer
Custom location.distanceMay not work below ~100m

Trigger Radius Behavior

Pass TypeDefault RadiusRationale
Loyalty~100mNearby store reminder
Coupon~100mNearby store reminder
Access Control~100mNearby location
Event Ticket~1kmApproaching venue

Location Message Best Practices

GoodBad
"Store nearby""ACME Corp" (already on pass)
"Earn double points today""Redeem this pass now!" (too salesy)
"Show this pass at checkout""Don't forget your rewards!"

Describe why the pass is useful here. Don't repeat your brand name or give instructions.

User Requirements

For location-based surfacing to work, the user must have:

RequirementSetting
Location ServicesEnabled (device-wide)
Wallet location accessEnabled (Settings → Privacy → Location → Wallet)
Pass location settingEnabled (on the pass itself)

Users control all three settings. You cannot force location access.


Apple Wallet — iBeacons

How It Works

  1. Pass includes beacon UUIDs in beacons array
  2. Device monitors for matching Bluetooth beacons
  3. When user enters beacon proximity, pass surfaces on lock screen
  4. Most specific match (UUID + major + minor) determines location.message

Limits

LimitValue
Maximum beacon UUIDs per pass10
Major/minor combinationsUnlimited (within 10 UUIDs)

User Requirements

RequirementSetting
BluetoothEnabled
Location ServicesEnabled
Wallet location accessEnabled

Google Wallet

How It Works

Google uses latitude and longitude coordinates at the class or object level to trigger lock screen surfacing.

Limits

LimitValue
Locations per class10
Locations per object10
Total per pass20 (class + object combined)

Behavior

AspectDetails
Trigger radiusGoogle-controlled (not configurable)
Notification textGoogle-controlled (not customizable)
Dwell timeRequired (user must stay in area)

Key Differences from Apple

FeatureApple WalletGoogle Wallet
Custom notification textYes (location.message)No
Custom trigger radiusYes (location.distance)No
Beacon supportYes (iBeacons)No

Platform Comparison

Location Capabilities

CapabilityApple WalletGoogle Wallet
GPS locations10 per pass10 per class + 10 per object
Beacons10 UUIDsNot supported
Custom notification textYesNo
Custom trigger radiusYes (limited)No
Altitude supportYesNo

Common Mistakes

  1. Exceeding 10 locations (Apple) — Only first 10 are used

  2. Setting location.distance too small (Apple) — Values below ~100m may be ignored

  3. Expecting custom text on Google — Google controls notification content

  4. Forgetting user permissions — Location Services must be enabled by user

  5. Not testing on physical devices — Simulators don't support location triggers

  6. Using beacons without hardware — iBeacons require physical beacon deployment

  7. Including brand name in location.message — Already displayed on pass


Privacy Considerations

What You CAN'T Do

LimitationDetails
Track user locationLocation data never leaves device
Know when pass surfacesNo callback or analytics
Force location accessUser controls all permissions

What You CAN Do

CapabilityDetails
Define trigger locationsCoordinates stored in pass
Define beacon UUIDsBeacon config stored in pass
Customize Apple notification textVia location.message

Sources

Was this article helpful?
Yes No