GooglePayPayment:
  description: |
    A representation of a payment made using Google Pay.  
    Please note that authorizations using a payment card from the Google Pay is set to `card holder initiated`.
  type: object
  required:
    - token
  properties:
    token:
      description: |
        The token that was returned by Google Pay upon the consumer selecting a payment card from the Google Wallet.
      type: string
      format: byte
      minLength: 1
      example: eyJhY3NPcGVyYXRvcklEIjoiM2RzZWN1cmVpby1zdGFuZGluLWFjcyIsImFjc1JlZmVyZW5jZU51bWJlciI6IjNkc2VjdXJlaW8tc3RhbmRpbi1hY3MiLCJhY3NUcmFuc0lEIjoiOGIwMWE1NmEtNTZlMS00MzAyLThhNzQtNzNkNGFjYzVhOTlkIiwiYXV0aGVudGljYXRpb25WYWx1ZSI6ImtqaUp1TXkyTGJzamRWU1RQODdzMGxZOFBPcz0iLCJkc1JlZmVyZW5jZU51bWJlciI6IjNkc2VjdXJlaW8tc3RhbmRpbi1kcyIsImRzVHJhbnNJRCI6ImM2YmEwZGE3LTgyNzQtNDMyMS1iZjAwLTZkNzhkNzVmNTdlNiIsImVjaSI6IjA1IiwibWVzc2FnZVR5cGUiOiJBUmVzIiwibWVzc2FnZVZlcnNpb24iOiIyLjIuMCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiMDUzMTUwMDItZTgzYi00OGRlLTllN2ItMDM5ZThlYmJkYjUwIiwidHJhbnNTdGF0dXMiOiJZIn0=
    cvv:
      description: |
        The payment card's Card Verification Code (CVC) / Card Verification Value (CVV).  
        This is generally a 3-digits number except for American Express cards which use a 4-digits number.
      type: integer
      format: int32
      minimum: 1
      maximum: 9999
      example: 123
    cryptogram:
      description: |
        The cryptogram that was returned by Strong Consumer Authentication (SCA) using 3D Secure.  
        Providing a cryptogram as part of the payment authorization for a payment transaction is required to obtain liability shift
        and comply with EU's PSD2 directive.
      type: string
      format: byte
      minLength: 1
      example: eyJhY3NPcGVyYXRvcklEIjoiM2RzZWN1cmVpby1zdGFuZGluLWFjcyIsImFjc1JlZmVyZW5jZU51bWJlciI6IjNkc2VjdXJlaW8tc3RhbmRpbi1hY3MiLCJhY3NUcmFuc0lEIjoiOGIwMWE1NmEtNTZlMS00MzAyLThhNzQtNzNkNGFjYzVhOTlkIiwiYXV0aGVudGljYXRpb25WYWx1ZSI6ImtqaUp1TXkyTGJzamRWU1RQODdzMGxZOFBPcz0iLCJkc1JlZmVyZW5jZU51bWJlciI6IjNkc2VjdXJlaW8tc3RhbmRpbi1kcyIsImRzVHJhbnNJRCI6ImM2YmEwZGE3LTgyNzQtNDMyMS1iZjAwLTZkNzhkNzVmNTdlNiIsImVjaSI6IjA1IiwibWVzc2FnZVR5cGUiOiJBUmVzIiwibWVzc2FnZVZlcnNpb24iOiIyLjIuMCIsInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjoiMDUzMTUwMDItZTgzYi00OGRlLTllN2ItMDM5ZThlYmJkYjUwIiwidHJhbnNTdGF0dXMiOiJZIn0=
    save:
      description: |
        Boolean flag indicating whether the payment card retrieved from Google Pay should be tokenized and saved in Transpayrent's secure vault.
        Setting this to true will set the `allowedAuthMethods` to `PAN_ONLY`.
        The saved payment card will automatically be added to Transpayrent's consumer wallet if a `consumer_id` was provided when the payment session was created.
      type: boolean
      default: false
      example: true
  allOf:
    - $ref: './payment-details_v1.yaml#/PaymentDetails'