Server-Side Implementation

Creating transactionsAnchorIcon

Using card noncesAnchorIcon

Include the Google Pay card nonce in the Transaction: Sale call on your server: Collect device data from the client and include the device_data_from_the_client in the transaction.
  1. Python
result = gateway.transaction.sale({
  "amount": "10.00",
  "payment_method_nonce": nonce_from_the_client,
  "device_data": device_data_from_the_client,
  "options": {
    "submit_for_settlement": True
  },
  "billing": {
    "postal_code": postal_code_from_the_client
  }
})

Using PayPal noncesAnchorIcon

PayPal nonces returned from the client will be a PayPalAccount type rather than an AndroidPayCard. To create a transaction with a PayPal nonce:

Collect device data from the client and include the device_data_from_the_client in the transaction.
  1. Python
result = gateway.transaction.sale({
  "amount" : request.form["amount"],
  "payment_method_nonce" : request.form["payment_method_nonce"],
  "device_data": request.form["device_data"],
  "order_id" : "Mapped to PayPal Invoice Number",
  "options" : {
    "submit_for_settlement": True,
    "paypal": {
      "custom_field" : "PayPal custom field",
      "description" : "Description for PayPal email receipt",
    },
  }
})

if result.is_success:
  "Success ID: ".format(result.transaction.id)
else:
  format(result.message)
Because creating a transaction with a PayPalAccount nonce from Google Pay is effectively the same as creating a transaction from your PayPal integration, they have the same settlement rules and options that typical PayPal transactions have.

When making a transaction with PayPalAccount nonce through Google Pay, the resulting transaction will have facilitator_details.oauth_application_name set to Google.

Vaulting Google PayAnchorIcon

Google Pay cards can only be saved to your Vault for specific use cases; see the support article for details.

Vaulting of PayPal accounts from Google Pay is currently not supported. This means the options.store_in_vault and options.store_in_vault_on_success options are not supported when creating a transaction.

If your use case is supported, you can store a customer's Google Pay card in your Vault in a few different ways: