NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #4171 most downloaded on Packagist
Generate mobile passes for iOS and Android
Last release 11 days ago
28 Sep 2026
Ships unpredictably
gaps range from 9 days to 13 months
Nearly every release is documented
notes for 26 of 26 stable releases
Nothing withdrawn
no release was ever pulled
2 years old
26 releases · first in 2025
One column per month.
fix: set Google pass class review status on update by @Alibaghaee in #72
Full Changelog: 1.11.0...1.11.1
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.11.0...1.11.1
feat: add remaining top-level Apple pass.json fields (poster + boarding + general) by @manfield in #69
Full Changelog: 1.10.0...1.11.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.10.0...1.11.0
Each single moment is written to both relevantDate and date so Wallet picks it up on iOS 18 as well as iOS 26, and the deprecated top-level relevantDa…
Apple passes can now declare several relevance windows with addRelevantDate() and addRelevantDateInterval(). Each single moment is written to both relevantDate and date so Wallet picks it up on iOS 18 as well as iOS 26, and the deprecated top-level relevantDate is derived from the first window so passes still surface on iOS 17 and earlier.
Pass personalization adds a new table. Existing installs should publish and run the new migration:
php artisan vendor:publish --tag="mobile-pass-migrations"
php artisan migrateFull Changelog: 1.9.0...1.10.0
Added support for PosterEventTicket and PosterGeneric, via new fields + semantic tags. Added missing semantic tags to BoardingPassBuilder. Created Tra
Full Changelog: 1.8.1...1.9.0
Keep falsy scalar values like "0" in Apple entity serialization by @matthias-deschoenmacker in #59
Full Changelog: 1.8.0...1.8.1
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.8.0...1.8.1
Add points labels and secondaryLoyaltyPoints to the loyalty builder by @matthias-deschoenmacker in #60
Full Changelog: 1.7.1...1.8.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.7.1...1.8.0
Apple wallet i18n loc support by @manfield in #58
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.7.0...1.7.1
Google wallet i18n support by @manfield in #56
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.6.0...1.7.0
Add link, text and image modules to Google objects by @lasseeee in #53
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.5.0...1.6.0
Bump actions/checkout from 4 to 7 by @dependabot [bot] in #51
Full Changelog: 1.4.0...1.5.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.4.0...1.5.0
Apple pass builders can now set a background image, matching what the docs and Apple's pass spec describe for event tickets. Previously only setStripI
Apple pass builders can now set a background image, matching what the docs and Apple's pass spec describe for event tickets. Previously only setStripImage and setThumbnailImage were available.
EventTicketPassBuilder::make()
// ...
->setBackgroundImage(public_path('images/background.png'))
->save();A remote variant, setRemoteBackgroundImage(), is available as well. The image (along with its @2x and @3x densities) is bundled into the generated .pkpass.
Google Wallet pass classes now support the shared building blocks that the Google Pay & Wallet console exposes: geographic locations, the links module
Google Wallet pass classes now support the shared building blocks that the Google Pay & Wallet console exposes: geographic locations, the links module (the "main page URL" and any other URIs), text modules, and image modules.
These are available on every class type (GenericPassClass, LoyaltyPassClass, OfferPassClass, EventTicketPassClass, BoardingPassClass):
EventTicketPassClass::make('beatles-shea-1965')
->setEventName('The Beatles | Live at Shea')
->addLocation(40.7569, -73.8458)
->addLink('https://fabfour.example.com', 'Official site')
->addTextModule('Doors', 'Doors open at 18:30')
->addImageModule('https://example.com/seating-chart.png', 'seating')
->save();Values hydrate back when fetching a class through find() or all(), readable via getLocations(), getLinks(), getTextModules(), and getImageModules(). The change is fully backwards compatible.
Google Wallet pass classes now support the shared building blocks that the Google Pay & Wallet console exposes: geographic locations, the links module (the "main page URL" and any other URIs), text modules, and image modules.
These are available on every class type (GenericPassClass, LoyaltyPassClass, OfferPassClass, EventTicketPassClass, BoardingPassClass):
EventTicketPassClass::make('beatles-shea-1965')
->setEventName('The Beatles | Live at Shea')
->addLocation(40.7569, -73.8458)
->addLink('https://fabfour.example.com', 'Official site')
->addTextModule('Doors', 'Doors open at 18:30')
->addImageModule('https://example.com/seating-chart.png', 'seating')
->save();
Values hydrate back when fetching a class through find() or all(), readable via getLocations(), getLinks(), getTextModules(), and getImageModules(). The change is fully backwards compatible.
Implemented in #48, closes #47.
Respect the configured mobile_pass model in the Apple pass builder and the check-for-updates request, so overriding mobile-pass.models.mobile_pass (e.
mobile_pass model in the Apple pass builder and the check-for-updates request, so overriding mobile-pass.models.mobile_pass (e.g. to use a custom table) is honored throughout the package by @freekmurze in #43Fixes #42
Full Changelog: 1.2.0...1.2.1
Switch Google callback verification to ECv2SigningOnly. by @pmartelletti in #41
Full Changelog: 1.1.0...1.2.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.1.0...1.2.0
Add support for remote images by @chatisk in https://github.com/spatie/laravel-mobile-pass/pull/38
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.5...1.1.0
Fix #32: route Apple webservice lookups by pass_serial by @freekmurze in https://github.com/spatie/laravel-mobile-pass/pull/34
pass_serial by @freekmurze in https://github.com/spatie/laravel-mobile-pass/pull/34MobilePass model by https://github.com/spatie/laravel-mobile-pass/pull/35\$keyType = 'string' so Apple device can resolve id by @pmartelletti in https://github.com/spatie/laravel-mobile-pass/pull/36PR #34 includes a required schema migration. See UPGRADING.md for the paste-in migration.
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.4...1.0.5
fill timeStyle on re-hydration by @niekbr in https://github.com/spatie/laravel-mobile-pass/pull/31
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.3...1.0.4
Fix #28: hash certificate contents in cached temp filename by @freekmurze in https://github.com/spatie/laravel-mobile-pass/pull/29
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.2...1.0.3
Include language to payload of Google EventTicketClass by @niekbr in https://github.com/spatie/laravel-mobile-pass/pull/26
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.1...1.0.2
Fix broken links in documentation by @injektion in https://github.com/spatie/laravel-mobile-pass/pull/18
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/1.0.0...1.0.1
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/0.2.0...1.0.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/0.2.0...1.0.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/0.1.2...0.2.0
Full Changelog: https://github.com/spatie/laravel-mobile-pass/compare/0.1.2...0.2.0
Building an Apple pass with a non-HTTPS mobile-pass.apple.webservice.host now throws InvalidConfig::webserviceHostMustBeHttps instead of silently prod
mobile-pass.apple.webservice.host now throws InvalidConfig::webserviceHostMustBeHttps instead of silently producing a pass that Apple Wallet rejects (Apple requires webServiceURL to be HTTPS)Apple .pkpass downloads are now served with Content-Disposition: inline instead of attachment, so Safari opens the Wallet preview directly (other brow
.pkpass downloads are now served with Content-Disposition: inline instead of attachment, so Safari opens the Wallet preview directly (other browsers still download the file, as they have no Wallet handler)Apple pass.json now includes webServiceURL derived from mobile-pass.apple.webservice.host, so iOS can register devices and receive pass updates
pass.json now includes webServiceURL derived from mobile-pass.apple.webservice.host, so iOS can register devices and receive pass updates$pass->addToWalletUrl() unified across Apple and Google$pass->expire() unified across Apple and GoogleNotifyGoogleOfPassUpdateAction automatically PATCHes Google-side objects when MobilePass is updated/mobile-pass/google/callbacks with GoogleMobilePassSaved / GoogleMobilePassRemoved Laravel events$pass->googleEvents relation and $pass->isCurrentlySavedToGoogleWallet() helperPushPassUpdateJob queueing opt-in via MOBILE_PASS_QUEUE_CONNECTION.pkpass download route backing addToWalletUrl()EventTicketPassBuilder on the Apple side (previously missing)docs/basic-usage/ and docs/advanced-usage/MobilePass::boot() is now platform-aware and dispatches a PushPassUpdateJob (previously called NotifyAppleOfPassUpdateAction synchronously)Image::fromUrl() is the supported path)Simplify model by @freekmurze in https://github.com/spatie/laravel-mobile-pass/pull/1
Full Changelog: https://github.com/spatie/laravel-mobile-pass/commits/0.0.1
Your coding agent can read these notes before it upgrades. Set up the MCP server →