[AUDIO LOGO] KEVIN FLANAGAN: Hi. I'm Kevin Flanagan, a
partner engineer at Google. PETRA CROSS: And
I'm Petra Cross, a software engineer at Google. Today, we're excited
to introduce the Google Wallet for Android, which will
soon be available in over 40 countries, with plans to expand
access to all Android users globally. I'll talk about how this will
affect existing integrations with the Google
Pay API for passes. Then, we'll explore
new features that let you create any type of
pass and visually group passes together. I'll also introduce you to
the new Android SDK, updates we made to the Business
Console, and some of the other integration
options using Wallet API. But first, Kevin is
going to give you a general overview of what
Google Wallet has to offer. Over to you, Kevin. KEVIN FLANAGAN: Thanks, Petra. In the last couple of years,
the use of digital wallets has grown significantly. Initially, they were just
for credit and debit cards, but now they can manage
so much more than that. Like a physical
wallet, they can store all kinds of tickets and passes,
but unlike a physical wallet, there's never any
rummaging at the checkout line for the right loyalty
card, or worrying about leaving your passes behind at home. We're excited about
the wallet we've built, and we think
developers will be too. That's because
with Google Wallet, we're building a common
platform that makes it easier for device makers to provide a
digital wallet on every Android device. And developers can
enable their users to have quick, convenient
access to wallet objects across the Android ecosystem. In the next few
months, Google Wallet will be available in over 40
countries across Android phones and Wear OS devices. And we will expand access
for millions more users later this year as we
continue to add countries. We know that fumbling through
your phone at the checkout line or at a boarding
gate is stressful. So Google Wallet will be quickly
accessible from the device lock screen and from the
pull down shade. Your users will be able to
quickly access their passes when they need them. And your users will
never have to worry about selecting which cards to
carry in their Google Wallet. They can store their
loyalty cards, gift cards, maybe some special
offers or event tickets. How about boarding
passes, transit tickets, their vaccine cards. And soon, users in
select areas will be able to store their driver's
license in the Google Wallet. In addition to these
pass types, we're excited to announce a new API
that supports passes that don't fit into one of these types. The new Generic Passes
API will allow developers to digitize passes of any kind. We've partnered with AAA
on the use of this new API so AAA members will be able to
easily store their membership cards in their wallet. You'll also be able to offer
your users a helpful grouping feature during those moments
when more than one item is necessary. For example, say you're
going to a concert and you have your entry
ticket, a parking pass, maybe you have
some food vouchers. In your Passes list,
you'll see a pass tile with a badge showing the
number of items in that group. When you tap on this
tile, a carousel will appear, allowing
you to easily swipe between all passes in
the group, so everything you need for your
night is in one place. And in addition to being broadly
available to Android users, Google Wallet allows you
to share wallet objects with other Google Apps when
the sharing option is enabled. For example, users who
have transit cards saved to their wallet will be
able to see information about their card and balance
while searching for directions using Google Maps. And users can easily save
their cards and passes from Gmail and Photos
to their wallet. It's really important to
mention that this sharing option doesn't apply to
sensitive objects like vaccine cards. Those are private to
the user and stored only on their device. Driving all of these
features are powerful privacy and security controls. Wallet brings all
of the security features that you're already
familiar with in Android as its first line of defense,
such as authentication, Find My Phone, remote
data wipe, and more. Your users can rest easy knowing
that their valuables stored in Google Wallet
are safe and secure. On top of that,
all payments made using the wallet are encrypted,
and card information is never shared with third parties. Privacy controls allow users
to maintain full control over their data,
with transparency about what is shared and
who has access to it. Now Petra is going
to show you how to enable these features with
an overview of the Google Wallet API. PETRA CROSS: Thank you, Kevin. Now that you've seen
the vision, let's talk about the
Google Wallet API. Formerly known as Google
Pay API for Passes, the Google Wallet API lets
you digitize everything from boarding passes
to loyalty programs and engage your customers
with notifications and real-time updates. All existing
developer integrations with the Passes
API will continue to work once we
launch Google Wallet. The only thing that has
changed is the new look of the GPay Save to
Phone button, which now says Add to Google Wallet. So if your integration
is using buttons that say GPay Save
to Phone, we ask you to please update
these buttons to reflect the change in branding
after Google Wallet launches in a few weeks. Let's talk about new
features in our API. The Google Pay API
for Passes supported seven types of passes-- offers, loyalty cards,
gift cards, event tickets, boarding passes, transit
tickets, and vaccine cards. But what if you want to issue
passes or cards that do not fit into any of these categories? You may want to issue
your users other things, such as membership cards
or insurance cards. We do not have a pass type for
each of these other use cases, so we added support
for generic passes to the Google Wallet API. It's for all the cards that do
not fit into the seven already supported pass types. The options are endless. If it is a card and has some
text and a barcode or a QR code, it can be saved
as a generic card. And you will have
the flexibility to control the look and
design of the card itself. You do this by providing
a card template that may contain a
maximum of three rows with up to three fields per row. You can configure a number of
attributes such as the barcode, QR code, or your image. While generic passes can be
used to emulate appearance of any existing supported pass
types, such as a loyalty card, developers should continue
to use an existing pass type when available for
type-specific specializations. For example, you should
use the Boarding Pass type for boarding passes
in order to receive the benefit of
flight-delay notifications and other features that only
exist for boarding passes. Generic cards are different from
other pass types, in that they contain most of the pass data
on the object, not the class. Class only contains
template information. Object contains most
of the pass data, which makes it easier to
rapidly develop generic passes. Here you can see
a generic object. It has a small set of
self-explanatory fields. And this is a generic class. You can add up to three rows
and three fields per row by populating class template
info with card template override with up to three
card row template infos. We also implemented
another cool feature, grouping of passes in
user's Google Wallet, and mixing multiple
pass types together. This feature lets you
issue multiple passes to the same user and ensure
they're all displayed together in their Google Wallet. You can also use this feature
if you are issuing passes over a longer period of time. For example, your user
saves your event ticket and three days later
you send them a voucher to get a free
drink at the event. You can include the same
grouping ID in both saves, and we will make sure to group
these two passes together in the user's wallet. You also get to control the
order in which these passes get displayed within the group. Here is an example of
JSON web token payload showing one offer
and one event ticket mixed together and sharing
the same grouping ID. The event ticket will be
displayed within the group first, because it
has Sort Index 1. You can use the same
grouping ID in future passes you issue
to the same user if you want to keep adding
more passes to their group. If you need to update the
grouping info of a previously saved pass, or separate one
pass from the rest of the group, you can use our
REST API to update the grouping ID on the object. At the beginning
of this video, I mentioned that there
is a new Android SDK. As you might know, our
existing Android SDK only supports saving offers,
loyalty cards, and gift cards. But you've been asking us to add
support for other pass types. We heard you. That's why we created a
new, more extensible Android SDK that allows you to save all
existing pass types and also future pass types. It also lets you mix and
match multiple pass types in a single save and
supports grouping passes. This SDK receives passes in
JSON or JSON Web Token, a.k.a. JWT format. If you have already integrated
with one of our JWT-based APIs, you are already
generating the same JSON and turning it
into a signed JWT. Please note that the Android SDK
allows you to only save passes from your Android app. If you do need to update or
edit previously saved passes, you would still need to
integrate with our REST API. If you have already integrated
with the old Android SDK, don't worry. There is no current
plan to deprecate it. But we do encourage you
to please use the new JSON or JWT-based Android SDK. Using Android SDK is very easy. First, you create a JSON
payload with the pass data. You can either build it
within your Android app, or you can fetch it
from your server. You can pass this unsigned
JSON directly into our SDK, or you can first turn
it into a signed JWT by signing it with
your OAuth 2.0 service account private key. You then call the API, in this
case, payClient.savePasses JWT method, like so. Our SDK then takes over the user
experience and guides the user through the safe
flow for this pass, allowing them to preview
the pass and save it. Once the SDK completes or the
save flow encounters an error, your app will handle the result
by overwriting onActivityResult method, where you can implement
your own custom behavior. We've created an
Android SDK codelab, which you can follow to
integrate with an Android app. The codelab has more
code examples showing you how to check for
availability of the Pay API on the Android device,
how to handle errors, and how to add Android
SDK button to your app. We have also redesigned our
developer documentation to make the content easier to follow,
and added plenty of code samples to reflect additional
languages that you commonly use, including Java, PHP,
Python, Node.js, C# and Kotlin. Don't forget to play with
our interactive Pass Builder tool, which lets you
fill in the fields and create your own custom
pass prototype without writing a single line of code. You can show this prototype
to your broader team at your company
before your company decides to invest in an
integration with the Google Wallet API. Not only will you see
what the pass will look like with
your company's logo and any additional
details, the tool will also generate
code samples that show you how you would build
the pass data structures, which we call
classes and objects. You can manage your
passes directly from Google Pay and Wallet
Console, previously known as Google Pay's
Business Console. Find the new Google
Wallet API section in the Console's left-hand
navigation bar, and from there you can access your tickets,
loyalty programs, offers, and other passes resources. The Google Pay
and Wallet Console has a more intuitive
user interface and lets you easily navigate
and discover new features. The new Google
Wallet API section lets you onboard, request
access to the Google Wallet API, create and manage your passes,
validate API calls, and onboard and manage smart tap
authentication keys. Very soon, we're also going to
launch a trial mode for Passes, where we give you instant
access to the Passes sandbox environment so that you can
develop and test Google Wallet API in a safe environment
while waiting for approval for your service account. Now let's talk about
your integration options. Integrating with Wallet API
does not take much time at all. In fact, we've had partners
who integrated and went live in two days. You can choose from multiple
integration methods, depending on where you
want your customers to be saving your passes from. If you want your customers to
save passes from your Android app, integrate with our new
JSON and JWT-based Android SDK. If you want your customers to
save passes from your website, integrate with our
JavaScript web button. And if you want your customers
to save your passes from SMS, email, and/or web,
then you should integrate using JWT links. For SMS email or
web integration, if your pass data requires
more than 1,800 characters, you would need to
preinsert a pass to Google servers ahead of time
using our REST API or JWT POST method. After you preinsert
the pass object, you only need to include its
object ID in the skinny JWT link that you give
to your users. This will make the
resulting URL much shorter and acceptable by web browsers. Share this link
with your customers to let them save your
pass to their wallets. Remember, you can allow
the same pass object to be saved into multiple Google
Wallets of multiple users. Users who saved your
pass own the association to the object you preinserted. But you, the issuer,
own the actual object. Only you can make changes
to the object or disable it. Users can only delete
the pass in their Wallet, which only removes their
association to your object. That's all from me. Over to you, Kevin. KEVIN FLANAGAN: Thanks, Petra. So let's summarize. We explored how
we're making Wallet more accessible, comprehensive,
and secure for users. We introduced support for a new
Generic Passes API and a Pass Grouping feature. And we talked about the new
JSON or JWT-based Android SDK as well as additional
integration options. And finally, we shared a
preview of the updated developer documentation, with useful
samples and developer tools which can simplify
your integration. We're really excited to
build a great digital wallet experience with
you, and we're here to guide you
through the process. Check out our hands-on workshop
called Digitize Any Wallet Object with the
Google Wallet API during this year's I/O.
Thanks for listening. Have a great rest of your day. [AUDIO LOGO]