Google Pay™ — Processing.kz Documentation

How to accept Google Pay payments through the Processing.kz payment gateway.

Let customers pay in seconds with cards already saved to their Google Pay™ account

Google Pay™ is Google's instant payment method — customers check out with a saved card in a single tap, without re-entering card details for every purchase. Card data is stored securely by Google. It works in mobile apps on Android and in Chrome, Firefox, Safari, Edge, and other major browsers.

processing.kz
Your product
$25.00
Pay

Key information

Supported card networksVISA, MASTERCARD
Supported auth methodsPAN_ONLY, CRYPTOGRAM_3DS
Network tokens (CRYPTOGRAM_3DS)Accepted for VISA only. Mastercard is accepted as PAN_ONLY and taken through 3-D Secure.
Protocol versionECv2
Gateway IDprocessingkz
Integration methodsHosted Payment Page · SDK button · Direct API integration
3-D SecureApplied automatically for PAN_ONLY payloads to comply with SCA/PSD2
Billing address parameterNot used
Resource packGoogle Pay mark — official asset download

Terms of Service and Acceptable Use Policy

Required for all integration paths. Merchants accepting Google Pay through the Hosted Payment Page or the Processing.kz SDK button must comply with the Google Pay and Wallet APIs Acceptable Use Policy and accept the terms defined in the Google Pay API Terms of Service. Merchants using Direct API integration accept these same terms themselves as part of Google's own registration and review process.

By enabling Google Pay on your Processing.kz account — through any of the three integration paths below — you confirm that your business, products, and handling of customer payment data comply with these policies.

Three ways to accept Google Pay

Processing.kz supports three integration paths for Google Pay, depending on how much control and development effort the merchant wants:

  • Hosted Payment Page — customer is redirected to the Processing.kz payment page, where Google Pay appears automatically alongside other payment methods. No extra development work required.
  • Button via Processing.kz SDK — the Google Pay button is rendered directly on the merchant's own site or app using the Processing.kz SDK, without a redirect.
  • Direct integration via Google Pay API — the merchant integrates with the Google Pay API themselves and sends the resulting Payment Token to Processing.kz for processing. Offers the most control, but requires completing Google's own review process.

1. Hosted Payment Page

This is the simplest option. Processing.kz enables Google Pay on your account internally — once enabled, it appears automatically as a payment method on your standard Processing.kz payment page, with no extra integration work needed beyond your existing redirect-based connection.

To request Google Pay, contact our support team — they will enable it for your account.

2. Button via SDK

For merchants who want to keep customers on their own site or app rather than redirecting to a hosted page, the ProcessingSDK JavaScript library renders an express-checkout element directly in your checkout. This element automatically shows Google Pay to the customer when their browser/device supports it — the SDK loads the Google Pay API JavaScript client library and builds the IsReadyToPayRequest/PaymentDataRequest on your behalf, so you do not write any Google Pay API code yourself.

Domain registration. Unlike the Hosted Payment Page — where payment credentials are processed through Processing.kz's own domain and merchants need no registration with Google — the SDK renders the button on your domain. Your merchant web domain must therefore be enabled with Google, either through Processing.kz's Payments Merchant API integration (on your behalf, no Google account required on your side) or, where that is not yet available, by completing registration in the Google Pay & Wallet Console yourself and accepting the Google Pay API Terms of Service under your own Google Account. As with every integration path, you must also comply with the Google Pay and Wallet APIs Acceptable Use Policy.
SDK script (TEST)https://sdk.processing.kz/test/v1/processing.js
SDK script (PRODUCTION)https://sdk.processing.kz/v1/processing.js
Public keyObtain from Processing.kz support — pk_test_... for TEST, pk_live_... for PRODUCTION

1. Start a transaction server-side via startTransactionV2 on MerchantWebService. On success it returns tranGUID, guid, and tranKind — pass these to the page that will render the button.

2. Include the SDK script, then initialize the element:

const processing = ProcessingSDK("pk_replace_me");
const elements = processing.elements({
  tranGUID: "tranGUID",
  guid: "guid",
  tk: "tranKind",
  appearance: {
    variables: {
      borderRadius: "8px",
    },
  },
});

const expressCheckout = elements.create("express-checkout", {
  buttonHeight: 50,
});

expressCheckout.on("ready", () => {
  console.log("Express checkout is ready");
});
expressCheckout.on("error", (error) => {
  console.error(error.message);
});
expressCheckout.on("processing", () => {
  console.log("Payment is processing");
});
expressCheckout.on("retry", () => {
  console.log("Payment failed, express checkout is ready for another attempt");
});
expressCheckout.on("complete", ({ status }) => {
  if (status === "succeeded") {
    console.log("Payment completed");
  } else {
    console.log("Payment declined");
  }
});

expressCheckout.mount("#express-checkout-element");

Behind this single express-checkout element, the SDK loads the Google Pay client library and defines the request properties exactly as follows:

Google Pay JS client library<script src="https://pay.google.com/gp/p/js/pay.js" async></script> — injected automatically by the SDK
API versionapiVersion: 2, apiVersionMinor: 0
Allowed card auth methodsallowedAuthMethods: ['PAN_ONLY', 'CRYPTOGRAM_3DS']
Allowed card networksallowedCardNetworks: ['VISA', 'MASTERCARD']
Tokenization typetype: 'PAYMENT_GATEWAY'
gateway / gatewayMerchantIdprocessingkz / your Processing.kz point-of-sale identifier — resolved automatically from your tranGUID, no extra configuration needed
EnvironmentMatches the SDK script you loaded — TEST or PRODUCTION

The SDK calls isReadyToPay() and only shows the Google Pay button when it's available on the customer's device/browser. On completion, it sends the resulting Payment Token to Processing.kz for decryption and processing — the same server-side flow described in Sending the payment token to Processing.kz below — and fires the complete event with the final status.

3. Direct integration via Google Pay API

With this integration method, the merchant integrates directly with the Google Pay API. This requires completing a number of procedures and checks before going live: an application must be submitted, and the website or app must meet a set of requirements. Your site must run over HTTPS and support TLS 1.2.

To accept payments via direct Google Pay integration on your website or app, you must:

Use the Google Pay API to obtain PaymentData. Set the following script parameters:

Allowed card auth methodsconst allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
Allowed card networksconst allowedCardNetworks = ['VISA', 'MASTERCARD']; — network tokens (CRYPTOGRAM_3DS) are accepted for VISA only; Mastercard is processed as PAN_ONLY.
Protocol versionECv2
Tokenization typetype: 'PAYMENT_GATEWAY'
gateway parameterprocessingkz
gatewayMerchantId parameterMust be your Processing.kz point-of-sale identifier
EnvironmentTEST during integration, PRODUCTION for live traffic
Billing Address parameterNot used

Example PaymentDataRequest tokenization configuration, with gateway and gatewayMerchantId set to the values Processing.kz expects:

const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    'gateway': 'processingkz',
    'gatewayMerchantId': 'YOUR_PROCESSING_KZ_MERCHANT_ID'
  }
};

See the full Google Pay Web developer documentation for details on integrating Google Pay with your website.

Publishing and requesting production access

Once your integration passes testing, publish it and request production access directly with Google:

Retrieving the payment token

After a successful Google Pay interaction, extract the Payment Token to send onward for processing:

function processPayment(paymentData) {
  const paymentToken = paymentData.paymentMethodData.tokenizationData.token;
  // Send paymentToken to your Processing.kz payment processing endpoint
}
Important: forward the token to Processing.kz exactly as returned by Google — do not modify, re-encode, pretty-print, or unescape it (for example, do not replace \u003d escapes with =). Any change breaks signature verification and the token cannot be decrypted.

Sending the payment token to Processing.kz

Processing.kz decrypts and verifies the Google Pay payload on our servers — merchants never decrypt the token themselves. Send the encrypted paymentToken string to Processing.kz over HTTPS as part of the same server-to-server transaction request you already use to submit a standard card payment, marking it as a Google Pay payment rather than a raw PAN:

POST <your existing Processing.kz transaction endpoint>
Content-Type: application/json

{
  ... your standard transaction fields (merchantId, customerReference, amount, currency) ...,
  "paymentMethod": "GOOGLE_PAY",
  "googlePayToken": "<paymentData.paymentMethodData.tokenizationData.token, unmodified>"
}
Note: paymentMethod/googlePayToken above are illustrative — use the exact field names defined in your Processing.kz merchant integration agreement for this transaction endpoint.

SCA and PSD2 compliance

To comply with SCA and PSD2 regulations, Processing.kz will send Google Pay transactions through the 3DS process if necessary.

The payload received after decrypting the Google Pay Payment Token can have one of two authentication method values:

  • PAN_ONLY — a PAN that requires 3D Secure 2.0 authentication
  • CRYPTOGRAM_3DS — an authenticated payload that can be processed without any further step-up or challenge

Since the decryption of the Google Pay payload is handled by Processing.kz, the merchant does not have visibility of the underlying credential being PAN_ONLY or CRYPTOGRAM_3DS. Therefore, the merchant must expect that their customer may need to pass 3D Secure authentication on the payment processing request, if necessary.

Network-token authentication (CRYPTOGRAM_3DS) is accepted for VISA cards only, and only such a token is processed without further step-up. Mastercard payments are always processed as PAN_ONLY and taken through 3-D Secure; Mastercard network tokens are not accepted.