Documentation

Overview

Google Pay™ is a secure digital wallet that simplifies checkout. Learn how it works with Curbstone and what merchants must comply with.

Google Pay™ is a secure digital wallet that simplifies checkout by eliminating the need to manually enter payment information. Google securely stores all payment credentials, enabling seamless transactions across any device, browser, or operating system.

Curbstone is the payment processor for Google Pay. Your website requests payment details from Google, and Google returns an encrypted payment token that is addressed to the Curbstone gateway.

Merchant requirements#

Merchants integrating Google Pay must comply with the guidelines and regulations published by Google, including the Google Pay API terms of service for sellers.

Web integration

Integrate Google Pay on your website and configure the Curbstone gateway parameters.

For website integration with the Google Pay™ method, follow these steps.

Google resources#

Use Google's documentation for the client-side integration, and complete these items before launch.

Gateway configuration#

The gateway parameter in the script must have the constant value curbstone, as shown in this example.

tokenizationSpecification
const tokenizationSpecification = {
  type: "PAYMENT_GATEWAY",
  parameters: {
    gateway: "curbstone",
    gatewayMerchantId: "CurbstoneMerchantId"
  }
}

Parameters#

ParameterValueDescription
typePAYMENT_GATEWAYTokenization type used when a payment gateway processes the payment.
gatewaycurbstoneConstant value. Do not change it.
gatewayMerchantIdYour Curbstone Merchant IDThe unique Merchant ID provided by Curbstone.

Networks and methods

Card networks and authentication methods that Curbstone supports for Google Pay.

As the payment processor for Google Pay™, Curbstone supports AMEX, DISCOVER, INTERAC, JCB, MASTERCARD, and VISA.

Supported card networks#

NetworkValue
American ExpressAMEX
DiscoverDISCOVER
InteracINTERAC
JCBJCB
MastercardMASTERCARD
VisaVISA

Authentication methods#

MethodDescription
PAN_ONLYCards stored in the customer's Google Account. Returns the card number (PAN) and expiration date.
CRYPTOGRAM_3DSDevice-tokenized cards. Returns a device token with a 3-D Secure cryptogram.

Script configuration#

Configure the Google Pay script using the following parameter settings.

Card parameters
const allowedCardNetworks = ["AMEX", "DISCOVER", "INTERAC", "JCB", "MASTERCARD", "VISA"]
const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"]

Payment token

Where Google returns the encrypted payment token and what the payload looks like.

Upon successful authentication, Google returns the PaymentData payload. The encrypted Google Pay token is located in the paymentMethodData.tokenizationData.token field.

Read the token#

The token is a JSON string at paymentMethodData.tokenizationData.token. In the browser, read it from the PaymentData object that Google returns. If your page posts PaymentData to your server as JSON, you can read the same field there.

Read the token
const token = paymentData.paymentMethodData.tokenizationData.token

Sample Google Pay token#

paymentMethodData.tokenizationData.token
{
  "signature": "MEUCIQDY3wBQyHB4sZcktRoJXKxm+OLcjHzCvdDeGn23oX0kkwIgKznRFZZL+sDMv1b5cuD+YurXMZraYBsr9hbravVY5Ro\u003d",
  "protocolVersion": "ECv1",
  "signedMessage": "{\"encryptedMessage\":\"cI87tLqzqTGyCFnMMCVWcTHw3xhYIK+CEnuQ74K+nlLpCgOlfpScib9jds4sxDtN6CunCqCSMfd/3yHeeRy6aCx1yyqcT4ey6NueeBznprJpkmVVgI1JHWLQt4hzAXMUAcYASYLOabKP9fUZvHkOBDytD531jpzNXa+Spc/zrpGzFKx2C4VU9sC95q9i+ey+kr7ZMNVCOFJPWXu7lKZ105IOOqozJ6/70MKmxP3jM89eeq+/19QnyHjQLXfnQPvQjiUJKGCcRKDLlrb3XoY5ZUUzGfN5eZCLzCVg0hWEbwU+6J7KWYJyW+Wr1r8bagN9zWsrMKhDpsQbHfyzb+yBzFUoxeUgL4a7FeVvEllIcHtqsvTCf6FENV20aF5VLDv5qzUkV+PzTAIbFEuabA0God9UbVCVVv7nM8QFzvRPhzYYFVFTn4JHvL2qZ4pAR9lE+w\\u003d\\u003d\",\"ephemeralPublicKey\":\"BPHLC4sBHpenY1M0ixmiDMuWJTaTJOqggRUwtgBJMcBp28VsxHD7zPI7985x4F5EjMP5y8j/cuUzbe/cGPjOKGk\\u003d\",\"tag\":\"RaXrPOUuc5iw3oxDa0C2MOjaKxgxIRQvwOspmtFV0zU\\u003d\"}"
}

Token fields#

FieldDescription
signatureSignature that Google generates over the signed message.
protocolVersionVersion of the token protocol. The sample above uses ECv1.
signedMessageA JSON string containing the encrypted payment data: encryptedMessage, ephemeralPublicKey, and tag.

Testing (sandbox)

Use the TEST environment while you build and verify your Google Pay integration.

During integration and testing, explicitly set the environment property to 'TEST' when initializing the Google Pay client.

Initialize the client (TEST)
var paymentsClient = new google.payments.api.PaymentsClient({
  environment: 'TEST'
})

Go live

Switch to the production environment and complete the launch checklist before processing live Google Pay transactions.

When you are ready to process live transactions, switch the environment property to 'PRODUCTION'.

Environment#

Testing#

TEST environment
var paymentsClient = new google.payments.api.PaymentsClient({
  environment: 'TEST'
})

Production#

Production environment
var paymentsClient = new google.payments.api.PaymentsClient({
  environment: 'PROD'
})

Launch checklist#

Work through these items before you process live transactions. Your progress is saved in this browser.

0 of 9 complete

Error codes

Standard errors returned by Google Pay and where to find troubleshooting guidance.

The list of standard errors returned by Google Pay is maintained by Google. See the Google Pay API troubleshooting guide.

Support

Contact Curbstone for help with your Google Pay integration.

Open a ticket#

Open a ticket at curb911.com for integration questions, Merchant ID requests, and processing issues.

Urgent issues#

For urgent issues, call our 24/7 urgent support line at 888-844-8533.