> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enfuce.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Pay push provisioning

> This endpoint is only used for Google Pay push provisioning.

Response is a JSON that must be passed to Google and onwards to MDES/VTS.

Google is introducing Unified Android Push Provisioning (UPP) for Google Wallet.

Existing Enfuce Google Pay Push Provisioning integrations remain backwards compatible.
Customers migrating to UPP only need to extend their existing integration with two additional
request fields (`googleOpaquePaymentCardRequested` and `serverSessionId`) and one additional
response field (`googleOpaquePaymentCard`).

These fields are only required when integrating with Google's Unified Android Push
Provisioning flow. Existing integrations using the legacy Google Pay Push Provisioning flow
continue to work unchanged.




## OpenAPI

````yaml wallet post /v1/{cardId}/provision/googlepay
openapi: 3.0.3
info:
  version: '1'
  title: Wallet operations
  contact:
    name: Enfuce Financial Services
    url: https://enfuce.com
    email: info@enfuce.com
  x-logo:
    url: resources/enfuce.svg
    altText: Enfuce logo
  description: >
    Wallet API enables getting needed data for tokenization and enablement in
    programs like

    Apple Pay and Google Pay, and Visa Click to Pay.


    #### Terms used

    <table>
      <tr>
        <th>Term</th>
        <th>Definition</th>
      <tr>
        <td>Customer</td>
        <td>End customer using financial institution's mobile application</td>
      </tr>
      <tr>
        <td>In-app activation</td>
        <td>Wallet provisioning using financial institution app as authentication method</td>
      </tr>
      <tr>
        <td>In-app provisioning</td>
        <td>Mastercard's term for push provisioning</td>
      </tr>
      <tr>
        <td>Push provisioning</td>
        <td>VISA's term for pushing card details from within mobile application. This term will be used in this document</td>
      </tr>
      <tr>
        <td>Wallet provider</td>
        <td>Such as Apple Pay, Google Pay or Samsung Pay </td>
      </tr>
    </table>


    It's called in two cases:

    - *Push provisioning* - this is usually done within issuers own application
    and card holder does

    not need to enter any information. Then the different endpoints for push
    provisioning must be used.

    - *In-app activation* - activating a card by manually adding information,
    then endpoint for generate activation

    data must be used after authentication of end customer is completed.


    ![ Provisioning example
    ](https://enfuce-public-resources.s3.eu-central-1.amazonaws.com/public/wallet_push_prov.svg)


    In above case the difference between push provisioning and in-app activation
    is which endpoint that is

    called in step 3.

    Note that diagram above is a simplification of full flow in order to explain
    it from a developer point of view.
servers:
  - url: >-
      https://integration-api-cat2.{{environment}}.ext.{{realm}}.cia.enfuce.com/wallet
  - url: https://integration-api-cat2.live.ext.prod.cia.enfuce.com/wallet
    description: Live environment
security: []
tags:
  - name: Push Provision
  - name: Activation data
  - name: Get tokens
  - name: Visa Click2Pay Enrol and Manage
  - name: Token Management
paths:
  /v1/{cardId}/provision/googlepay:
    post:
      tags:
        - Push Provision
      summary: Google Pay push provisioning
      description: >
        This endpoint is only used for Google Pay push provisioning.


        Response is a JSON that must be passed to Google and onwards to
        MDES/VTS.


        Google is introducing Unified Android Push Provisioning (UPP) for Google
        Wallet.


        Existing Enfuce Google Pay Push Provisioning integrations remain
        backwards compatible.

        Customers migrating to UPP only need to extend their existing
        integration with two additional

        request fields (`googleOpaquePaymentCardRequested` and
        `serverSessionId`) and one additional

        response field (`googleOpaquePaymentCard`).


        These fields are only required when integrating with Google's Unified
        Android Push

        Provisioning flow. Existing integrations using the legacy Google Pay
        Push Provisioning flow

        continue to work unchanged.
      operationId: provisionGooglePay
      parameters:
        - name: cardId
          in: path
          description: >-
            CardId for the card that should be provisioned (returned from card
            operation)
          required: true
          schema:
            type: integer
            format: int64
        - name: auditUser
          in: query
          description: The audit user to log the request
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GoogleParametersRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/externalResponseIssuerInitiatedDigitizationData
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '500':
          description: Internal server error
      deprecated: false
components:
  schemas:
    GoogleParametersRequest:
      type: object
      properties:
        clientAppID:
          type: string
          maxLength: 36
          description: Only applicable for VTS customers
        clientDeviceID:
          type: string
        clientWalletAccountID:
          type: string
        googleOpaquePaymentCardRequested:
          type: boolean
          default: false
          description: >-
            When true, a Google OPC is generated and returned in
            googleOpaquePaymentCard. Requires serverSessionId.
        serverSessionId:
          type: string
          format: uuid
          description: >
            UUID generated by the Google Wallet SDK for Unified Push
            Provisioning. Required when googleOpaquePaymentCardRequested is
            true; ignored otherwise.
      title: GoogleParametersRequest
    externalResponseIssuerInitiatedDigitizationData:
      type: object
      properties:
        digitizationData:
          type: string
          description: |
            Base64 encoded json structure containing needed data for MDES/VTS
        googleOpaquePaymentCard:
          $ref: '#/components/schemas/googleOpaquePaymentCard'
    googleOpaquePaymentCard:
      type: string
      description: >
        Base64-encoded (RFC 4648 §4, non-URL-safe) PGP signed and encrypted
        Google Opaque Payment Card. Present only on Google Pay provisioning
        responses when the request included a serverSessionId.
      title: googleOpaquePaymentCard

````