> For the complete documentation index, see [llms.txt](https://docs.payments.thalescloud.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.payments.thalescloud.io/classic-push-provisioning/use-cases/push-provisioning-to-xpay-wallets/android/google-wallet-bounce-provisioning.md).

# Google wallet bounce provisioning

Use bounce provisioning to let end users discover and provision cards from Google Wallet.

Google Wallet discovers the issuer application through Android OS. The issuer application authenticates the end user and displays eligible cards.

For Google requirements, see [Google Pay Bounce Provisioning](https://developers.google.com/pay/issuers/apis/push-provisioning/android/bounce_provisioning?authuser=0).

### User experience

Bounce provisioning has two phases:

1. Google Wallet discovers and launches the issuer application.
2. The issuer application authenticates the end user and starts Tokenization.

#### Discovery and authentication

![Google Wallet discovery and issuer application authentication flow](https://853619325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWDlYTPaq4dNHuiWtf8ux%2Fuploads%2Fgit-blob-4b34b13e2a61b8db31a2ca63c8313968439db30d%2FDiscover%20and%20authentication.png?alt=media)

{% stepper %}
{% step %}
**Open Google Wallet**

The end user opens Google Wallet and selects the option to add a payment card.
{% endstep %}

{% step %}
**Select the issuer application**

Google Wallet displays the issuer application when its Android manifest meets the registration requirements.
{% endstep %}

{% step %}
**Authenticate the end user**

Google Wallet opens the issuer application. The issuer application authenticates the end user.
{% endstep %}
{% endstepper %}

#### Select and provision a card

![Eligible-card selection and Google Wallet provisioning flow](https://853619325-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FWDlYTPaq4dNHuiWtf8ux%2Fuploads%2Fgit-blob-e46b1a3bf4e4487691f81c87e594d72bb721a92a%2FSelection%20and%20provisioning%20cards.png?alt=media)

{% stepper %}
{% step %}
**Display eligible cards**

After authentication, [check each card's digitization state](/classic-push-provisioning/use-cases/push-provisioning-to-xpay-wallets/android/push-provisioning.md#step-1-showing-the-add-to-wallet-button). Display cards that are eligible for Tokenization.
{% endstep %}

{% step %}
**Start provisioning**

When the end user selects a card, set `cardInfo.setBounceProvisioned(true)`. Then [provision the card](/classic-push-provisioning/use-cases/push-provisioning-to-xpay-wallets/android/push-provisioning.md#step-2-provisioning-a-request) by using the Google Pay `addCard` overload that accepts an `Activity`.
{% endstep %}

{% step %}
**Accept terms and conditions**

Google Wallet presents the applicable terms and conditions. The end user accepts them to continue.
{% endstep %}

{% step %}
**Add the card to Google Wallet**

Google Wallet completes Tokenization and adds the card.
{% endstep %}
{% endstepper %}

### Enable bounce provisioning

#### Complete registration

Complete the required bounce provisioning registration [form](https://developers.google.com/pay/issuers/apis/push-provisioning/android/bounce_provisioning) before enabling the feature.

#### Update the Android manifest

Bounce provisioning is available on physical Android smartphones with Push Provisioning SDK 2.0.0 and later.

Create an activity that displays eligible cards. Add an **Add to Google Wallet** button for each card. Then declare the `ACTION_INITIATE_PROVISIONING` intent in `AndroidManifest.xml`.

```xml
<activity
    android:name=".BounceProvisioningActivity"
    android:exported="true">
    <intent-filter>
        <action android:name="com.google.android.gms.tapandpay.issuer.ACTION_INITIATE_PROVISIONING" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
```

{% hint style="warning" %}
Include the `category` element in the `intent-filter`. Without it, Google Wallet does not display the issuer application for bounce provisioning.
{% endhint %}

#### Create an Android activity

Create an activity that handles the Google Wallet bounce provisioning intent. Display eligible cards and an **Add to Google Wallet** button.

```java
public class BounceProvisioningActivity extends FragmentActivity {

    private PushProvisioning pushProvisioning;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Intent intent = getIntent();
        if (intent != null
                && "com.google.android.gms.tapandpay.issuer.ACTION_INITIATE_PROVISIONING"
                .equals(intent.getAction())) {
            // Display eligible cards and an Add to Google Wallet button.
            // For the selected card, call cardInfo.setBounceProvisioned(true).
            // Then call addCard(activity, cardInfo, addCardListenerGPay).
        }
    }

    @Override
    public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        pushProvisioning.handleWalletResult(requestCode, resultCode, data);
    }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.payments.thalescloud.io/classic-push-provisioning/use-cases/push-provisioning-to-xpay-wallets/android/google-wallet-bounce-provisioning.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
