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 configurePaymentsClientfor aPRODUCTIONenvironment. A GooglemerchantIdis associated with one or more fully qualified domains through theGoogle 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. ReviewRequest production accessto register using theGoogle Pay & Wallet Consoleand
request a review of your website's use of the Google Pay API.
This merchant profile does not have access to this feature
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 usto 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 themerchantIdthat you use. Make sure themerchantIdparameter is correct and that your domain
is registered via theGoogle 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,
seeSecure contexts.
No keys found for this merchant profile
You must register your public encryption key with Google via theGoogle Pay & Wallet Consoleto complete aDIRECTtokenizationSpecificationtypeintegration.
merchantId
You might encounter the following errors related tomerchantIdat some point in your
integration. This list provides some helpful troubleshooting advice should these errors arise.
merchantId must be set!
ThemerchantIdparameter insidePaymentDataRequestmust be set to the value provided using theGoogle Pay & Wallet Console. AmerchantIdparameter is only required when you use aPaymentsClientconfigured for aPRODUCTIONenvironment. Review ourIntegration checklistto request a review of your website's use of the Google Pay API and to obtain yourmerchantId.
merchantId is not a string
ThemerchantIdparameter insidePaymentDataRequestmust always be a string. Ensure that the type of themerchantIdparameter you use
is a string before you call the API.
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 inpaymentMethodTokenizationParameters.parametersisn'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
aPaymentsClientconfigured for aPRODUCTIONenvironment. Contact your
gateway for more information about thePaymentMethodTokenizationSpecificationparameters 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.
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 themerchantIdis wrong.
This can happen in theTESTenvironment when you use theTink paymentmethodtoken library. To avoid this issue, setYOUR_MERCHANT_IDto12345678901234567890in:
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 environmentTEST, 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.
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.
Status Code
Description
BUYER_ACCOUNT_ERROR
The current Google user is unable to provide payment information.
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 thestatusMessagefield. If you
continue to have trouble,contact support.
INTERNAL_ERROR
General server error.
CardInfo
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 might encounter aOR_BIBED_15error at some point in your integration. This list provides
some helpful troubleshooting advice should this error arise.
Cross-Origin-Opener-PolicyHTTP response header
If theCross-Origin-Opener-PolicyHTTP response header is set tosame-originit 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-popupsto reduce those issues.
Delays between the users' click event and the call toloadPaymentData()
If there is a delay after clicking the Google Pay button (or a similar checkout button) and before theloadPaymentData()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.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-02-10 UTC."],[[["\u003cp\u003eThis guide addresses common Google Pay API integration issues related to registration, merchant IDs, gateways, data objects, and direct merchant integrations.\u003c/p\u003e\n"],["\u003cp\u003eSolutions are provided for frequent errors encountered during Google Pay API integration, such as registration issues, merchant ID errors, gateway problems, and object validity problems.\u003c/p\u003e\n"],["\u003cp\u003eIt emphasizes the importance of the Google Pay & Wallet Console for merchant registration, domain association, and encryption key management.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting advice is offered for direct merchant integrations, including signature verification and token decryption using the Tink library.\u003c/p\u003e\n"],["\u003cp\u003eInformation on error objects like \u003ccode\u003ePaymentsError\u003c/code\u003e is included to assist developers in understanding and resolving integration problems.\u003c/p\u003e\n"]]],["The document outlines troubleshooting for Google Pay API integration, covering common issues and their resolutions. Key actions include: registering websites and domains via the Google Pay & Wallet Console, ensuring the correct `merchantId` is used and properly formatted as a string, and confirming gateway validity. It also emphasizes using valid JSON and `TransactionInfo` objects in `PaymentDataRequest`. For direct merchants, it addresses signature verification and token decryption, along with guidance on error objects and common errors.\n"],null,["# Troubleshooting\n\nThe Web troubleshooting guide covers issues and questions related to the following topics.\n\n- [Registration access](#registration-access)\n- [merchantID](#merchantId)\n- [Gateway validity](#gateway-validity)\n- [Object validity](#object-validity)\n- [Direct merchants](#direct-merchants)\n- [CardInfo](#cardinfo)\n- [OR_BIBED_15 errors](#OR-BIBED-15)\n\nRegistration and access\n-----------------------\n\nYou might encounter the following errors at some point in your integration. This list provides\nsome helpful troubleshooting advice should these errors arise.\n\nThis merchant is not enabled for Google Pay\n: The Google Pay API requires a Google merchantId for sites that configure\n `PaymentsClient` for a `PRODUCTION` environment. A Google\n `merchantId` is associated with one or more fully qualified domains through the\n [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite). Check the returned\n error details for more information.\n\nThis merchant has not completed registration to use Google Pay API. Please go to console (https://pay.google.com/business/console) to verify.\n: You haven't completed the process to register your websites for the Google Pay API. Review\n [Request production access](/pay/api/web/guides/test-and-deploy/request-prod-access)\n to register using the [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite) and\n request a review of your website's use of the Google Pay API.\n\nThis merchant profile does not have access to this feature\n: Google hasn't configured your website to use the Google Pay API. Review\n [Request production access]() to request a review of your website's use of the\n Google Pay API via the [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite).\n\nThis Google Pay API integration is disabled. Please contact us for more information (https://developers.google.com/pay/api/faq#how-to-get-support).\n: [Contact us](/pay/api/web/support/how-to-get-help) to learn more about the\n required steps to re-enable the Google Pay API for your Google Account.\n\nYour domain *\"example.com\"* is not registered to use this API\n: The domain where your checkout is hosted isn't associated with the `merchantId`\n that you use. Make sure the `merchantId` parameter is correct and that your domain\n is registered via the [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite).\n\nThe Google Pay API should be called in secure context!\n: The Google Pay API can only be used on websites in a secure context. For more information,\n see\n [Secure contexts](https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts).\n\nNo keys found for this merchant profile\n: You must register your public encryption key with Google via the\n [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite) to complete a\n `DIRECT``tokenizationSpecification` `type` integration.\n\nmerchantId\n----------\n\nYou might encounter the following errors related to `merchantId` at some point in your\nintegration. This list provides some helpful troubleshooting advice should these errors arise.\n\nmerchantId must be set!\n: The `merchantId` parameter inside\n [`PaymentDataRequest`](/pay/api/web/reference/request-objects#PaymentDataRequest)\n must be set to the value provided using the\n [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite). A\n `merchantId` parameter is only required when you use a `PaymentsClient`\n configured for a `PRODUCTION` environment. Review our\n [Integration checklist](/pay/api/web/guides/test-and-deploy/integration-checklist)\n to request a review of your website's use of the Google Pay API and to obtain your\n `merchantId`.\n\nmerchantId is not a string\n: The `merchantId` parameter inside\n [`PaymentDataRequest`](/pay/api/web/reference/request-objects#PaymentDataRequest)\n must always be a string. Ensure that the type of the `merchantId` parameter you use\n is a string before you call the API.\n\nmerchantId is not registered.\n: The `merchantId` parameter inside\n [`PaymentDataRequest`](/pay/api/web/reference/request-objects#PaymentDataRequest)\n must be provisioned via the [Google Pay \\& Wallet Console](https://pay.google.com/business/console?utm_source=devsite&utm_medium=devsite&utm_campaign=devsite).\n Review [Request production\n access](/pay/api/web/guides/test-and-deploy/request-prod-access) for more information.\n\nGateway validity\n----------------\n\nYou might encounter the following errors related to gateway validity at some point in your\nintegration. This list provides some helpful troubleshooting advice should these errors arise.\n\nUnknown gateway *'yourgateway'*\n: The gateway parameter you specified in `paymentMethodTokenizationParameters.parameters`\n isn't currently supported by Google. Contact your gateway for more information on their\n gateway identifier and associated fields, such as `gatewayMerchantId`.\n\nGateway 'example' cannot be used in production mode\n: The example gateway parameter value is only used for testing purposes and can't be used with\n a `PaymentsClient` configured for a `PRODUCTION` environment. Contact your\n gateway for more information about the `PaymentMethodTokenizationSpecification`\n parameters values that you need to set for use with the Google Pay API.\n\nObject validity\n---------------\n\nYou might encounter the following errors related to object validity at some point in your\nintegration. This list provides some helpful troubleshooting advice should these errors arise.\n\nGoogle Pay's PaymentDataRequest is not valid json\n: The parameter provided to\n [`loadPaymentData`](/pay/api/web/reference/client#loadPaymentData)\n must always be a valid\n [`PaymentDataRequest`](/pay/api/web/reference/request-objects#PaymentDataRequest)\n object.\n\ntransactionInfo must be set!\n: The `transactionInfo` parameter inside\n [`PaymentDataRequest`](/pay/api/web/reference/request-objects#PaymentDataRequest)\n must always be a valid\n [`TransactionInfo`](/pay/api/web/reference/request-objects#TransactionInfo)\n object.\n\nDirect merchants\n----------------\n\nYou might encounter the following errors related to direct merchants at some point in your\nintegration. This list provides some helpful troubleshooting advice should these errors arise.\n\nSignature verification\n: You might encounter a signature verification error if the `merchantId` is wrong.\n This can happen in the `TEST` environment when you use the\n [Tink paymentmethodtoken library](https://github.com/tink-crypto/tink-java-apps). To avoid this issue, set\n \u003cvar translate=\"no\"\u003eYOUR_MERCHANT_ID\u003c/var\u003e to\n `12345678901234567890` in:\n:\n\n ```gas\n .recipientId(\"merchant:\u003cvar translate=\"no\"\u003eYOUR_MERCHANT_ID\u003c/var\u003e\")\n ```\n\nCannot decrypt token\n: If you use the [Tink paymentmethodtoken library](https://github.com/tink-crypto/tink-java-apps) to decrypt a token, take note of the\n following:\n\nGenerate public and private key pair on Windows\n: If you're on Windows, and you want to follow the steps mentioned in\n [Use OpenSSL to generate a private and public key pair](/pay/api/processors/guides/implementation/payment-data-cryptography#using-openssl), make sure you install\n [Cygwin](https://www.cygwin.com/) on your machine. This is needed to run the Linux commands.\n\nError objects\n-------------\n\nError objects are objects that are returned by a rejected promise from a client JavaScript\nmethod.\n\nPaymentsError\n: This object contains details about errors returned by client JavaScript methods. Errors\n might not be displayed in a user-facing dialog.\n\n| Property | Type | Description |\n|-----------------|--------|-------------------------------------------------------------------------------------------------|\n| `statusCode` | String | Short code that describes the type of error. |\n| `statusMessage` | String | Developer-facing message that describes the error encountered and possible steps to correct it. |\n\nCommon errors\n: This object displays errors that you might encounter across all JavaScript methods. Be sure\n to check the developer console for additional error messages."]]