The Web troubleshooting guide covers issues and questions related to the following topics.
- Registration access
- merchantID
- Gateway validity
- Object validity
- Direct merchants
- CardInfo
- OR_BIBED_15 errors
Registration and access
You might encounter the following errors at some point in your integration. This list provides some helpful troubleshooting advice should these errors arise.
- This merchant is not enabled for Google Pay
- The Google Pay API requires a Google merchantId for sites that configure
PaymentsClient
for aPRODUCTION
environment. A GooglemerchantId
is associated with one or more fully qualified domains through the Google Pay & Wallet Console. Check the returned error details for more information. - This merchant has not completed registration to use Google Pay API. Please go to console (https://pay.google.com/business/console) to verify.
- You haven't completed the process to register your websites for the Google Pay API. Review Request production access to register using the Google Pay & Wallet Console and request a review of your website's use of the Google Pay API.
- This merchant profile does not have access to this feature
- Google hasn't configured your website to use the Google Pay API. Review Request production access to request a review of your website's use of the Google Pay API via the Google Pay & Wallet Console.
- This Google Pay API integration is disabled. Please contact us for more information (https://developers.google.com/pay/api/faq#how-to-get-support).
- Contact us to learn more about the required steps to re-enable the Google Pay API for your Google Account.
- Your domain "example.com" is not registered to use this API
- The domain where your checkout is hosted isn't associated with the
merchantId
that you use. Make sure themerchantId
parameter is correct and that your domain is registered via the Google Pay & Wallet Console. - The Google Pay API should be called in secure context!
- The Google Pay API can only be used on websites in a secure context. For more information, see Secure contexts.
- No keys found for this merchant profile
- You must register your public encryption key with Google via the
Google Pay & Wallet Console to complete a
DIRECT
tokenizationSpecification
type
integration.
merchantId
You might encounter the following errors related to merchantId
at some point in your
integration. This list provides some helpful troubleshooting advice should these errors arise.
- merchantId must be set!
- The
merchantId
parameter insidePaymentDataRequest
must be set to the value provided using the Google Pay & Wallet Console. AmerchantId
parameter is only required when you use aPaymentsClient
configured for aPRODUCTION
environment. Review our Integration checklist to request a review of your website's use of the Google Pay API and to obtain yourmerchantId
. - merchantId is not a string
- The
merchantId
parameter insidePaymentDataRequest
must always be a string. Ensure that the type of themerchantId
parameter you use is a string before you call the API. - merchantId is not registered.
- The
merchantId
parameter insidePaymentDataRequest
must be provisioned via the Google Pay & Wallet Console. Review Request production access for more information.
Gateway validity
You might encounter the following errors related to gateway validity at some point in your integration. This list provides some helpful troubleshooting advice should these errors arise.
- Unknown gateway 'yourgateway'
- The gateway parameter you specified in
paymentMethodTokenizationParameters.parameters
isn't currently supported by Google. Contact your gateway for more information on their gateway identifier and associated fields, such asgatewayMerchantId
. - Gateway 'example' cannot be used in production mode
- The example gateway parameter value is only used for testing purposes and can't be used with
a
PaymentsClient
configured for aPRODUCTION
environment. Contact your gateway for more information about thePaymentMethodTokenizationSpecification
parameters values that you need to set for use with the Google Pay API.
Object validity
You might encounter the following errors related to object validity at some point in your integration. This list provides some helpful troubleshooting advice should these errors arise.
- Google Pay's PaymentDataRequest is not valid json
- The parameter provided to
loadPaymentData
must always be a validPaymentDataRequest
object. - transactionInfo must be set!
- The
transactionInfo
parameter insidePaymentDataRequest
must always be a validTransactionInfo
object.
Direct merchants
You might encounter the following errors related to direct merchants at some point in your integration. This list provides some helpful troubleshooting advice should these errors arise.
- Signature verification
- You might encounter a signature verification error if the
merchantId
is wrong. This can happen in theTEST
environment when you use the Tink paymentmethodtoken library. To avoid this issue, set YOUR_MERCHANT_ID to12345678901234567890
in: .recipientId("merchant:YOUR_MERCHANT_ID")
- Cannot decrypt token
- If you use the Tink paymentmethodtoken library to decrypt a token, take note of the following:
- Ensure that the Google Pay API response environment corresponds with the Tink paymentmethodtoken environment. For more details, see the following example:
- If the Google Pay API response was returned by the environment
TEST
, then Tink points to the test environment for decryption. - Don't modify the response from Google Pay API before it's passed to Tink. Ensure that you pass the entire token returned from the Google Pay API response. For more details, see the following note:
- Verify that you have the proper private key associated with the public key that you registered with Google.
- Generate public and private key pair on Windows
- If you're on Windows, and you want to follow the steps mentioned in Use OpenSSL to generate a private and public key pair, make sure you install Cygwin on your machine. This is needed to run the Linux commands.
Error objects
Error objects are objects that are returned by a rejected promise from a client JavaScript method.
- PaymentsError
- This object contains details about errors returned by client JavaScript methods. Errors might not be displayed in a user-facing dialog.
Property | Type | Description |
---|---|---|
statusCode |
String | Short code that describes the type of error. |
statusMessage |
String | Developer-facing message that describes the error encountered and possible steps to correct it. |
- Common errors
- This object displays errors that you might encounter across all JavaScript methods. Be sure to check the developer console for additional error messages.
- What is the CardInfo feature?
- Google Pay indicates to consumers that there’s a card behind the Google Pay payment button, which renders both the card brand network and the last four digits of the card.
- Why doesn't the CardInfo feature render in my implementation?
To make the CardInfo feature work, we require the following conditions:
- You must implement the
createButton
API. - You must configure the
ButtonOptions.buttonType
tobuy
,long
orpay
. - The user must have an available payment method, as defined by your
CardParameters
object.
- You must implement the
- Why does the Google Pay payment button load indefinitely?
- Don't remove the
onLoad
event listeners. If you remove theonLoad
event listeners, it can cause the Google Pay payment button to load indefinitely. - Why is there no payment prompt after I click the Google Pay payment button?
- Assign an event listener callback to the
ButtonOptions.onClick
event. Cross-Origin-Opener-Policy
HTTP response header- If the
Cross-Origin-Opener-Policy
HTTP response header is set tosame-origin
it may prevent the browser to open the necessary pop-up for users to complete their transaction. Try changing the value of the header tosame-origin-allow-popups
to reduce those issues. - Delays between the users' click event and the call to
loadPaymentData()
-
If there is a delay after clicking the Google Pay button (or a similar checkout button) and before the
loadPaymentData()
call (examples:setTimeout()
, additional network calls, or similar long running logic) this can cause the browser's popup blocking mechanism to trigger. Our recommendation is that no delays are set between the user's click and theloadPaymentData()
call.
Status Code | Description |
---|---|
BUYER_ACCOUNT_ERROR |
The current Google user is unable to provide payment information. |
DEVELOPER_ERROR |
A passed parameter is improperly formatted. An error message may appear in the browser console for all configured environments. |
MERCHANT_ACCOUNT_ERROR |
The site that accesses the Google Pay API doesn't have the right permission. This could
be due to either an incorrect configuration or an incorrect merchant identifier set
in the request. For more details, check the |
INTERNAL_ERROR |
General server error. |
CardInfo
OR_BIBED_15
errors
You might encounter a OR_BIBED_15
error at some point in your integration. This list provides
some helpful troubleshooting advice should this error arise.