availability

Google Pay is currently available with our latest Android and JavaScript SDKs.

Creating transactions

Using card nonces

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.

Ruby
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 nonces

PayPal nonces returned from the client will be a PayPalAccount type rather than a GooglePayCard. 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.

Ruby
result = gateway.transaction.sale(
  :amount => "10.00",
  :payment_method_nonce => params[:payment_method_nonce],
  :device_data => params[: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.success?
  "Success ID: #{result.transaction.id}"
else
  result.message
end

note

The merchant account used at transaction time must accept PayPal transactions.

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 Pay

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:

Next Page: Testing and Go Live →