Title: Wallet Pass for Amelia
Author: bluebrainmedia
Published: <strong>September 29, 2026</strong>
Last modified: September 29, 2026

---

Search plugins

![](https://ps.w.org/wallet-pass-for-amelia/assets/banner-772x250.png?rev=3718279)

![](https://ps.w.org/wallet-pass-for-amelia/assets/icon-256x256.png?rev=3718279)

# Wallet Pass for Amelia

 By [bluebrainmedia](https://profiles.wordpress.org/bluebrainmedia/)

[Download](https://downloads.wordpress.org/plugin/wallet-pass-for-amelia.1.0.6.zip)

 * [Details](https://wordpress.org/plugins/wallet-pass-for-amelia/#description)
 * [Reviews](https://wordpress.org/plugins/wallet-pass-for-amelia/#reviews)
 *  [Installation](https://wordpress.org/plugins/wallet-pass-for-amelia/#installation)
 * [Development](https://wordpress.org/plugins/wallet-pass-for-amelia/#developers)

 [Support](https://wordpress.org/support/plugin/wallet-pass-for-amelia/)

## Description

Wallet Pass for Amelia turns each appointment booked through Amelia into a Google
Wallet pass. The customer gets an “Add to Google Wallet” button on the booking confirmation
screen and in the booking email. Add the `[bbmawp_wallet_passes]` shortcode to any
page and signed-in customers can also come back later for a list of their upcoming
appointments, each with its own button.

The pass shows the service, the provider, the date and time, the location, and a
QR code. The customer’s phone then reminds them before the appointment, without 
you paying for an SMS.

There is no third-party pass-hosting service and no subscription. Passes are built
using your own Google Wallet Issuer account and a service-account key you upload
on the plugin’s settings screen. The service name, the provider, the appointment
date and time, the location, the booking reference, and the customer’s name are 
the only data placed on a pass.

Passes are generated when the customer taps the button, from the booking’s current
state. If the appointment is later rescheduled or cancelled, the pass already in
the customer’s phone is updated or voided automatically.

This edition issues Google Wallet passes for Amelia’s appointments. A [premium edition](https://bluebrainmedia.ca/wallet-pass-for-amelia/)
is a separate plugin that also covers Amelia’s events, with one pass per ticket,
and adds Apple Wallet passes for iPhone and iPad, plus email support.

Wallet Pass for Amelia is an independent, third-party plugin built by Blue Brain
Media. It is not affiliated with, endorsed by, or sponsored by the makers of Amelia.

#### Features

 1. Google Wallet pass generation via your own Google Wallet Issuer account
 2. “Add to Google Wallet” buttons on the booking confirmation screen and in the booking
    email
 3. A `[bbmawp_wallet_passes]` shortcode listing a signed-in customer’s upcoming appointments,
    each with its own button
 4. A staff lookup on the settings screen for copying any upcoming appointment’s pass
    link
 5. Passes update automatically when an appointment is rescheduled, and void when it
    is cancelled
 6. Pass styling: organisation name, background colour, barcode format
 7. A settings-screen diagnostics panel, and a `wp amelia-wallet verify` command, that
    check your credentials and say exactly what is wrong

#### Requirements

 * Amelia – the free edition (Amelia Lite) is enough; nothing here needs a paid 
   Amelia licence
 * PHP 8.1+ with the OpenSSL extension
 * A Google Cloud project with the Google Wallet API enabled, and a Google Wallet
   Issuer account

#### A note on Amelia’s free edition

This plugin works on Amelia Lite. Two things behave differently there, because Amelia
itself gates them:

 * **Locations** are a paid Amelia feature. On Lite the pass falls back to the company
   address from Amelia’s own settings, and omits the venue entirely if that is empty
   too.
 * **Per-customer timezones** are a paid Amelia feature. On Lite every appointment
   is shown in your site’s WordPress timezone.

Neither stops passes from working.

### External services

This plugin connects to the Google Wallet API to create the pass that a customer
saves to Google Wallet. Creating the pass has to happen on Google’s servers, because
Google Wallet only accepts passes issued through its own API.

 * **What it is used for:** authenticating with your Google Cloud service account(
   https://oauth2.googleapis.com/token), then creating and updating a pass class
   and object (https://walletobjects.googleapis.com/walletobjects/v1). The customer’s“
   Add to Google Wallet” button opens a link on https://pay.google.com/gp/v/save/.
 * **What is sent, and when:** the first time a customer taps the button for a booking,
   and again whenever that appointment is rescheduled or cancelled, the plugin sends
   the service name, the provider’s name, the appointment date and time, the location,
   your pass styling (organisation name, background colour, barcode format), the
   booking reference and barcode value, and the customer’s name. Your service-account
   credentials are used to sign the requests and are sent only to Google’s OAuth
   endpoint. Nothing is sent when the plugin is idle, and nothing is sent for customers
   who never tap the button.
 * **Provider:** Google LLC. [Google Terms of Service](https://policies.google.com/terms),
   [Google Privacy Policy](https://policies.google.com/privacy) and [Google APIs Terms of Service](https://developers.google.com/terms).

### Credits

The pass engine in this plugin descends from **CommerceBird – Wallet Pass for Tickera**(
https://github.com/RoadmapStudios/commercebird-wallet-pass), originally written 
by Roadmap Studios / CommerceBird and released under GPL-3.0. The CommerceBird SaaS
account layer (subscription check, the app.commercebird.com connection, the remote
pass-generation API, and the CommerceBird application-password requirement) has 
been removed; Google Wallet passes are generated and cryptographically signed directly
on the site’s own server, using credentials the site owner supplies on the plugin’s
own settings screen. The GPL-3.0 obligations from the upstream project carry forward
unchanged: source is available and the licence text is distributed verbatim in LICENSE.

The Google Wallet JWT (used for the OAuth2 service-account assertion and the “Add
to Google Wallet” link) is RS256-signed with PHP’s own OpenSSL extension; this edition
does not bundle any third-party libraries.

## Screenshots

[⌊Wallet Pass settings: Issuer ID, service-account key upload, pass styling, and
the diagnostics panel.⌉⌊Wallet Pass settings: Issuer ID, service-account key upload,
pass styling, and the diagnostics panel.⌉[

Wallet Pass settings: Issuer ID, service-account key upload, pass styling, and the
diagnostics panel.

[⌊The "Add to Google Wallet" button on the Amelia booking confirmation screen.⌉⌊
The "Add to Google Wallet" button on the Amelia booking confirmation screen.⌉[

The “Add to Google Wallet” button on the Amelia booking confirmation screen.

## Installation

 1. Upload the plugin to `wp-content/plugins/` and activate it.
 2. Go to Amelia > Wallet Pass.
 3. Enter your Google Wallet Issuer ID and upload your Google Cloud service-account
    JSON key.
 4. Click **Check configuration**. It will tell you if the key, the issuer, or the 
    link between them is wrong, and what to do about it.
 5. Set the pass styling (organisation name, background colour, barcode format).
 6. Book a test appointment and save the pass to Google Wallet.
 7. **Before going live:** request Google Wallet publishing access for your Issuer 
    account (free, one-time, see FAQ below) – until Google approves it, every pass 
    shows a “[TEST ONLY]” banner and can only be added by accounts on your own tester
    list.

## FAQ

### Do I need a paid Amelia licence?

No. Everything this plugin depends on is present in Amelia’s free edition. See the
note above for the two places a paid Amelia tier changes what appears on the pass.

### Do I need a paid third-party plan?

No. The plugin runs entirely on your server. You do need a free Google Cloud project
and a Google Wallet Issuer account to obtain the credentials the plugin uses to 
sign passes.

### Why do my Google Wallet passes show a “[TEST ONLY]” banner?

Every Google Wallet Issuer account starts in Google’s own demo mode, and Google 
adds this banner to every pass – and blocks anyone not on your tester list from 
adding one – until you request and receive publishing access for that account. This
is a one-time approval from Google, free of charge, and applies to every Google 
Wallet integration; the plugin has no setting to skip it. To remove it:

 1. Sign in to the [Google Pay & Wallet Console](https://pay.google.com/business/console/)
    with the Google account tied to your Wallet Issuer ID.
 2. Under Business profile, complete both the Business identity (payments profile) 
    and Business information sections.
 3. Have at least one pass on file, so there is a class for Google to review.
 4. Under Google Wallet API, click “Request publishing access” and submit for review.

Approval isn’t instant, so do this well before you need real customers to add passes.
Once approved, the banner disappears automatically from all your passes – no plugin
update or setting change is needed.

### Does this include Apple Wallet?

No. This edition generates Google Wallet passes only. Apple Wallet passes, for iPhone
and iPad customers, are part of the [premium edition](https://bluebrainmedia.ca/wallet-pass-for-amelia/).

One difference worth knowing before you buy: Google Wallet passes update themselves
on the customer’s phone when an appointment moves, and Apple Wallet passes in the
current premium release do not. The customer’s remedy is one tap – opening the same
pass link again rebuilds the pass from today’s booking – and the emails say so. 
Automatic Apple updates need Apple’s push service, which the current release does
not include.

### Does this work with Amelia’s events?

No. This edition issues passes for appointments. Event bookings are left alone: 
no button appears on the confirmation screen or in the email, and nothing is added
to the customer’s phone. Event passes, one per ticket, are part of the [premium edition](https://bluebrainmedia.ca/wallet-pass-for-amelia/).
Your appointment passes are unaffected either way.

### Can I choose where the button appears in my booking emails?

Yes. By default the button is added to the end of Amelia’s own notification, which
needs no setup. If you would rather place it yourself, put `%wallet_pass%` anywhere
in the notification template under Amelia > Notifications, and the button appears
there instead. The token is removed automatically whenever no button applies, so
it never shows up as raw text in a customer’s inbox.

### Can customers get their pass again later?

Yes. Put the `[bbmawp_wallet_passes]` shortcode on any page – the same page as Amelia’s
customer panel is the natural home for it – and a signed-in customer sees their 
upcoming appointments there, each with its own button. It works for customers signed
in through Amelia’s own customer panel and for customers signed in to WordPress.

The list only ever shows the appointments of the person actually signed in. There
is no way to ask it for somebody else’s: it takes no email address, either as a 
shortcode attribute or in the URL. Visitors who are not signed in are simply told
to sign in.

### A customer says they never got the link. Can I send it to them?

Yes. Go to Amelia > Wallet Pass and scroll to “Pass links”. It lists your upcoming
appointments, and you can search by customer name, email, service or booking ID.
Click Copy next to the right one and paste it into your reply.

Only upcoming appointments that have not been cancelled are listed, because those
are the only ones a pass link works for.

### What happens if an appointment is rescheduled or cancelled?

The pass already saved on the customer’s phone is updated to the new time, or marked
void if the appointment is cancelled. This happens in the free edition too.

### Where are the passes stored?

Generated pass data is served directly from Google’s own save link (`https://pay.
google.com/gp/v/save/...`); nothing is stored on your server long-term.

### Do I need to change anything in my caching plugin or CDN?

Usually not, but it is worth two minutes to check. Pass links are ordinary URLs 
on your site carrying an `awp_pass` parameter, and each one is personal to a single
customer’s booking. The plugin marks those responses as never-cache, using both 
the standard WordPress headers and the `DONOTCACHEPAGE` flag that WP Rocket, W3 
Total Cache, WP Super Cache and LiteSpeed all read, so in a normal setup the right
thing happens on its own.

What that cannot reach is a cache running in front of WordPress — a CDN set to cache
whole pages, or Varnish or nginx caching configured by your host. If you run one
of those, exclude any URL containing `awp_pass` from it. The reason to bother: if
such a cache did store one of these responses, the next person to open a pass link
would be handed the pass belonging to whoever came before them, complete with their
name and appointment.

### Is any personal data sent anywhere?

Only to Google, as described under External services below. No data is sent to Blue
Brain Media or any other third party.

### Where do I get support?

Ask in the support forum on this plugin’s WordPress.org page, or use the form at
https://bluebrainmedia.ca/support/ if you would rather write to us directly. Either
way, saying which versions of WordPress, this plugin and Amelia you are running 
saves a round of follow-up questions.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Wallet Pass for Amelia” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ bluebrainmedia ](https://profiles.wordpress.org/bluebrainmedia/)

[Translate “Wallet Pass for Amelia” into your language.](https://translate.wordpress.org/projects/wp-plugins/wallet-pass-for-amelia)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wallet-pass-for-amelia/),
check out the [SVN repository](https://plugins.svn.wordpress.org/wallet-pass-for-amelia/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/wallet-pass-for-amelia/)
by [RSS](https://plugins.trac.wordpress.org/log/wallet-pass-for-amelia/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.0.6

When a pass cannot be created, the reason is now kept and shown on the Wallet Pass
settings screen, under the verify button: the last five failures, each with the 
booking and what went wrong, and a button to clear the list. Until now that reason
was written only when WP_DEBUG was switched on, so on most sites it was thrown away,
and a customer telling you their pass would not open left you with nothing to go
on. One reason in particular is now written in plain English: Google downloads your
logo from your site rather than being handed it, so if anything stands in the way—
a password on a staging site, an IP allowlist, hotlink protection — it refuses the
pass. That now says so, and names the address it could not reach, instead of reading
like a problem with your Google credentials.

#### 1.0.5

The settings screen no longer says your logo is “Apple only” when your site is not
on https. The free edition makes Google Wallet passes, so there was no Apple pass
for the logo to be on, and the note now says plainly that the logo is not being 
used and that Google needs the site to be on https to fetch it. Wording only — nothing
about your passes or your settings changes.

#### 1.0.4

Maintenance release, keeping the free and premium editions on one version number.
The fix in this release is to Apple Wallet pass colours, which the free edition 
does not generate, so nothing changes for you.

#### 1.0.3

Checking your Google Wallet settings no longer adds a new item to your Google Wallet
issuer account every time you run it. Google has no way to delete one of these once
it exists, so a diagnostic you ran twenty times while setting up your credentials
left twenty of them behind for good. It now reuses the same one. Nothing about the
passes your customers receive has changed.

#### 1.0.2

The shortcode is now [bbmawp_wallet_passes]. The old [wallet_passes] name no longer
works, so if you have it on a page, edit that page and change the tag. WordPress.
org asks that every shortcode carry its plugin prefix, which is what stops two plugins
claiming the same tag as each other. Nothing else about the list has changed.

#### 1.0.1

Maintenance release, keeping the free and premium editions on one version number.
No functional change to the free edition.

#### 1.0.0

First release of the free, Google Wallet only edition. The pass engine is shared
with Bluebrain Wallet Pass for Tickera, itself forked from CommerceBird – Wallet
Pass for Tickera (GPL-3.0); see Credits below.

## Meta

 *  Version **1.0.6**
 *  Last updated **10 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.5 or higher **
 *  Tested up to **7.1.2**
 *  PHP version ** 8.1 or higher **
 * Tags
 * [Amelia](https://wordpress.org/plugins/tags/amelia/)[appointments](https://wordpress.org/plugins/tags/appointments/)
   [booking](https://wordpress.org/plugins/tags/booking/)[google wallet](https://wordpress.org/plugins/tags/google-wallet/)
   [wallet-pass](https://wordpress.org/plugins/tags/wallet-pass/)
 *  [Advanced View](https://wordpress.org/plugins/wallet-pass-for-amelia/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/wallet-pass-for-amelia/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wallet-pass-for-amelia/reviews/)

## Contributors

 *   [ bluebrainmedia ](https://profiles.wordpress.org/bluebrainmedia/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wallet-pass-for-amelia/)