Google Pay integration guide
Google Pay is a payment provider allowing customers to pay using payment methods saved to their Google account. This section is intended to help you implement Google Pay based on your preferred integration workflow.
Services and compatibility
Payment method gateway name | Google Pay through Authorize.net Google Pay through Cybersource |
Supported transaction types | |
Supported integration methods |
|
Supported processing currencies | For Google Pay through Authorize.net:
For Google Pay through CyberSource:
|
Webhook event types |
|
Configuration
In order to use Google Pay with your merchant account, you must first work with Integrations to add it to your account.
Prerequisites
In order to have Integrations configure your account for use with Google Pay, you need to provide Integrations with the following information:
- A Google Pay Console account
- A Google Pay Console Business Profile
- A Google Pay Console Merchant ID
- An Authorize.Net or Cybersource account (if needed, Integrations Support can assist you with creating the Cybersource account)
Configuration tasks
The following steps provide guidance on how to get ready for adding Google Pay to your account.
- Go to the Google Pay & Wallet Console.
- If you do not yet have a Google Pay Console account, complete the requested information and click Continue.
- After logging into the console, make note of the Merchant ID in the upper right corner of the page.
- Click Get Started in the Business Profile section of the page to enable the merchant profile.
- Set up an Authorize.net or Cybersource account (if needed, Integrations Support can assist you with creating the Cybersource account).
- For Authorize.net, make note of your login ID and transactionKey.
- For Cybersource, make note of your Cybersource merchant ID, merchant key ID, and merchant secret.
- Contact Integrations Support to provide the required information for the gateway used with Google Pay.
Required fields
The following table shows the required and optional fields for Google Pay transactions in the Create APM one-time-use token request.
Field | Required? | Description |
---|---|---|
data.amount | Yes | The transaction amount. |
data.currency | Yes | The three-character ISO currency code for the transaction. For Google Pay through Authorize.net ( googlePayAuthNet ), supported currencies are BRL, CAD, CLP, CZK, DKK, EUR, GBP, HKD, HNL, JPY, NOK, NZD, PLN, RUB, SEK, SGD, TWD, UAH, and USD.For Google Pay through CyberSource ( googlePayCyberSource ), supported currencies are AUD, CAD, and USD. |
data.customer.orderNumber | Yes | The order number. |
data.customer.firstName | Yes | The customer's first name, as it is set for the payment method. |
data.customer.lastName | Yes | The customer's last name, as it is set for the payment method. |
data.customer.email | Yes | The customer's email address. |
data.customer.billToAddressOne | Yes | The street address for the customer. |
data.customer.billToCity | Yes | The city for the address record. |
data.customer.billToState | Yes | The state or province on file with the payment provider. (If in the US, this must be the two-character state abbreviation). |
data.customer.billToPostal | Yes | The postal code on file. |
data.customer.billToCountry | Yes | The two-character (Alpha-2) ISO country code. |
customerRedirectUrl | Conditional | The URL to which the customer will be redirected after completing their payment. The customer will be sent here upon successful or failed payment. This URL must use the HTTPS protocol. Required if you intend to use Nexio’s redirectUrls with your own buttons. |
data.cart.items[n].description | No | A description of the item. |
data.cart.items[n].price | No | The price per item |
data.cart.items[n].quantity | No | The quantity sold. |
data.cart.items[n].item | No | Item number or code. |
data.cart.items[n].type | No | The transaction type. |
data.customer.billToAddressTwo | No | Additional street address information, if required. |
data.customer.billToPhone | No | The billing phone number. |
data.customer.customerRef | No | Customer identifier. You can use this field to pass a customer ID to the APM or to manage user subscriptions. |
data.customer.shipToAddressOne | No | The shipping address, if different from the billing address. |
data.customer.shipToAddressTwo | No | Additional shipping address information, if required. |
data.customer.shipToCity | No | The shipping city. |
data.customer.shipToState | No | The shipping state or province. (If in the US, this must be the two-character state abbreviation). |
data.customer.shipToPostal | No | The shipping postal code. |
data.customer.shipToCountry | No | The two-character (Alpha-2) ISO shipping country code. |
data.customer.shipToPhone | No | The shipping phone number. |
data.description | No | A description of the transaction. |
data.descriptor {} | No | For Google Pay through CyberSource (googlePayCyberSource ) only, include this object and the appropriate parameters to dynamically change the descriptor on the customer's statement.Supported parameters in the descriptor object are the following:
|
data.paymentMethod | No | The identifier for the alternative payment method. Use this parameter when you want to only return the Google Pay iframe button URL (rather than data for all payment methods associated with the account). The value to use is googlePayAuthNet or googlePayCyberSource , depending on your integration. |
isAuthOnly | No | Set to true to run an auth only transaction. |
processingOptions.merchantId | No | The Nexio merchant ID (MID). |
processingOptions.paymentOptionTag | No | A custom value used to route transactions to a specific gateway or merchant account. |
uiOptions.css | No | The URL where your custom CSS file is hosted. |
uiOptions.displaySubmitButton | No | Set to true to include a submit button in the iframe. |
Example requests
The following are example one-time-use token requests for Google Pay.
curl -X POST https://api.nexiopaysandbox.com/apm/v3/token \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Basic [Base64_encoded_login]'
-d '{
"data": {
"amount": 4.00,
"currency": "USD",
"paymentMethod": "googlePayAuthNet",
"customer": {
"orderNumber": "12345678",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"billToAddressOne": "123 Test St",
"billToCity": "Testerville",
"billToState": "UT",
"billToPostal": "12345",
"billToCountry": "US"
}
}
}'
curl -X POST https://api.nexiopaysandbox.com/apm/v3/token \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Basic [Base64_encoded_login]'
-d '{
"data": {
"amount": 4.00,
"currency": "USD",
"paymentMethod": "googlePayCyberSource",
"customer": {
"orderNumber": "12345678",
"firstName": "John",
"lastName": "Doe",
"email": "[email protected]",
"billToAddressOne": "123 Test St",
"billToCity": "Testerville",
"billToState": "UT",
"billToPostal": "12345",
"billToCountry": "US"
}
}
}'
A successful request returns a response similar to the following:
{
"expiration": "2018-09-18T15:43:05.664Z",
"token": "830d36f6-a5e3-4455-9600-3a55b63e2fc2",
"scriptUrl": "https://api.nexiopaysandbox.com/apm/v3/script?token=b61ca2a9-b804-4a28-a00e-b794c8975dee",
"expressIFrameUrl": "https://www.api.nexiopaysandbox.com/v3?token=79001ef6-fb40-4917-b8ae-2294fdfe1cf2",
"redirectUrls": [
{
"paymentMethod": "payPal",
"url": "https://www.api.nexiopaysandbox.com/v3/popup?token=79001ef6-fb40-4917-b8ae-2294fdfe1cf2&paymentMethod=payPal"
},
{
"paymentMethod": "googlePayAuthNet",
"url": "https://www.api.nexiopaysandbox.com/v3/popup?token=79001ef6-fb40-4917-b8ae-2294fdfe1cf2&paymentMethod=googlePayAuthNet"
},
{
"paymentMethod": "googlePayCyberSource",
"url": "https://www.api.nexiopaysandbox.com/v3/popup?token=79001ef6-fb40-4917-b8ae-2294fdfe1cf2&paymentMethod=googlePayCyberSource"
}
],
"buttonIFrameUrls": [
{
"paymentMethod": "payPal",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=b61ca2a9-b804-4a28-a00e-b794c8975dee&paymentMethod=payPal"
},
{
"paymentMethod": "googlePayAuthNet",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=b61ca2a9-b804-4a28-a00e-b794c8975dee&paymentMethod=googlePayAuthNet"
},
{
"paymentMethod": "googlePayCyberSource",
"url": "https://api.nexiopaysandbox.com/apm/v3?token=b61ca2a9-b804-4a28-a00e-b794c8975dee&paymentMethod=googlePayCyberSource"
}
]
}
For the multi iframe integration method: You use the expressIFrameUrl
value in the steps for the transaction.
For the individual iframe option: You use the buttonIFrameUrls.url
of the Google Pay APM for the transaction.
For the custom redirect option: You use the redirectUrls.url
of the Google Pay APM for the transaction.
Transaction types and integration methods
Regardless of the integration method workflow you implement, consumers are redirected to Google Pay to complete their transactions.
Nexio supports the following transaction types for Google Pay:
- Auth Only
- Sale
- In an iframe that displays all payment methods available to the customer (based on the customer’s location and the merchant’s configured payment methods)
- In an individual iframe
- Using your own button or image
- Void
- Capture
- Refund
Testing data
For testing data, see the appropriate page for your target platform:
- For Android: Test card suite
- For Web: Test card suite
Response handling
In the one-time-use token request, Google Pay gets returned in the paymentMethod
parameter as googlePayAuthNet
or googlePayCyberSource
.
Nexio responds with transaction results in one of the following ways, depending on your integration workflow:
- Event messages: This applies to integrations that do not pass a
customerRedirectUrl
in the request. - Response fields in the URL: This applies to integrations that do provide a
customerRedirectUrl
in the request.
In addition to one of the above, if your merchant account is configured to receive webhooks, Nexio provides responses to the webhook URLs that have been registered. For further explanation of the webhook event types, see the webhook Event types table.
For Google Pay, these are the possible webhook event types:
- TRANSACTION_AUTHORIZED
- TRANSACTION_CAPTURED
- TRANSACTION_REFUNDED
- TRANSACTION_SETTLED
- TRANSACTION_VOIDED
For information about how to run each of the integration workflows, see Transaction types and integration methods above.
Status workflows
The status of a successful transaction with Google Pay varies, depending on the options you choose.
Sale | When isAuthOnly is false , successful sale transactions have the following statuses:
|
Auth only | When isAuthOnly is true , successful sale transactions have the following statuses:
|
Capture | Successful capture transactions have the following status:
|
Void | Successful void transactions have the following status:
|
Refund | Successful refund transactions have the following status:
|
*Pending status displays as "authorized" or "AUTHORIZED" in the Nexio Dashboard; it displays as 10
, meaning "authorized", in the response when querying transactions (for more information about transactionStatus
, see the table).
Next steps
Now, you are ready to get started with running transactions:
If you have any additional questions or feedback, see Contact us.
Updated 4 months ago