Google Pay

Accept Google Pay on Tonder's Google Pay profile, through the Web SDK or Hosted Checkout 2.0.

Google Pay lets a shopper pay with a card saved in their Google account, in one tap, without filling in a card form. Google hands over an encrypted token, so neither your site nor your server ever sees the card number. Tonder handles the relationship with Google: the payment runs on Tonder's Google Pay profile, you send Tonder your domains, and the button appears in the Web SDK or in Hosted Checkout 2.0. You don't need a Google Pay & Wallet Console account. Google has to approve your business, and your Tonder representative confirms it. The result is a Tonder transaction with the webhooks you already handle.

How it works

  1. The shopper taps the Google Pay button and picks a card in Google's payment sheet.
  2. Google encrypts the card into a token only Tonder's processor can open.
  3. The Web SDK or Hosted Checkout sends the token to Tonder.
  4. Tonder processes it as a card payment and answers with the status.
  5. If the bank asks for 3DS authentication, the shopper completes it before the payment finishes. The Web SDK and Hosted Checkout handle that step for you.

When is there 3DS? Cards saved in the shopper's Google account (PAN_ONLY) always go through 3DS. Cards saved on an Android device (CRYPTOGRAM_3DS) carry their own authentication and return a final status.

Currency: MXN. Networks: Visa and Mastercard.

Before you start

  • Google Pay enabled on your Tonder account. Your representative turns it on.
  • Google's approval for your business, which your representative confirms.
  • The list of domains where the button will appear.
  • Your checkout on Tonder's Web SDK or on Hosted Checkout 2.0.

Step 1: ask Tonder to enable it and register your domains

Send your Tonder representative the domains where the button will show, without paths (for example checkout.yourstore.com). Tonder registers them on its Google Pay profile and enables the method on your account.

Step 2: show the button

The button appears only when Google Pay is enabled on your account and the shopper's browser can pay with Google Pay: Google checks this before it renders. You don't integrate Google's library yourself. Keep card payments in your checkout for shoppers who don't see the button.

Hosted Checkout 2.0

Add google_pay to payment_method_types when you create the session. Like Apple Pay, it shows on the v2 design, for accounts that process through the Direct API.

curl -X POST 'https://api-stage.tonder.io/checkout/v1/sessions' \
  -H 'Authorization: Token YOUR_TEST_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "customer": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com"
    },
    "amount_total": 150.00,
    "currency": "MXN",
    "line_items": [
      { "name": "Test Product", "quantity": 1, "unit_price": 150.00, "product_id": "your internal product id" }
    ],
    "payment_method_types": ["card", "google_pay"],
    "return_url": "https://your-store.com/checkout/complete",
    "external_id": "ORD-001",
    "metadata": { "external_id": "ORD-001" }
  }'
curl -X POST 'https://api.tonder.io/checkout/v1/sessions' \
  -H 'Authorization: Token YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "customer": {
      "first_name": "Jane",
      "last_name": "Doe",
      "email": "jane.doe@example.com"
    },
    "amount_total": 150.00,
    "currency": "MXN",
    "line_items": [
      { "name": "Test Product", "quantity": 1, "unit_price": 150.00, "product_id": "your internal product id" }
    ],
    "payment_method_types": ["card", "google_pay"],
    "return_url": "https://your-store.com/checkout/complete",
    "external_id": "ORD-001",
    "metadata": { "external_id": "ORD-001" }
  }'

Redirect the shopper to the url in the response, as in the quickstart. The hosted page shows the Google Pay sheet, handles 3DS when the bank asks for it and sends the shopper back to your return_url.

Web SDK

The Web SDK renders the button for you, so there's no Google code to add. When the bank asks for 3DS, the Web SDK opens it as it does for a card payment, following your presentation mode.

Step 3: confirm the payment

Google Pay payments are Tonder transactions. They show in the dashboard and in reports, and they send the payment webhooks you already handle, with payment_method_type: "GOOGLE_PAY". Reconcile on metadata.external_id. A payment_Success event:

{
  "id": "3b8f6a2e-7c41-4d9a-9e15-2f0c8d4b6a73",
  "event_type": "payment_Success",
  "operation_type": "payment",
  "status": "Success",
  "amount": "150.00",
  "currency": "MXN",
  "country": "MX",
  "client_reference": "ORD-001",
  "transaction_id": "1465",
  "payment_method_type": "GOOGLE_PAY",
  "decline_code": null,
  "decline_reason": null,
  "created": "2026-11-13T18:20:41Z",
  "metadata": { "external_id": "ORD-001" },
  "action": "MODIFY"
}
  • event_type stays payment_<status>. A declined payment ends as Declined, as a declined card payment does: offer the shopper another payment method.
  • If your system checks payment_method_type against a fixed list, add GOOGLE_PAY.
  • Every event and field is in the events catalog, and a handler that verifies and acknowledges them is in Listen for webhooks.

Before you fulfill the order, confirm the result from your server. With Hosted Checkout, get the session and read its transaction_status. With a transaction id (the webhook's id, a session's direct_transaction_id or the one your Web SDK integration receives), read the transaction:

curl 'https://stage.tonder.io/api/v1/transactions/3b8f6a2e-7c41-4d9a-9e15-2f0c8d4b6a73/' \
  -H 'Authorization: Token YOUR_TEST_API_KEY'
curl 'https://app.tonder.io/api/v1/transactions/3b8f6a2e-7c41-4d9a-9e15-2f0c8d4b6a73/' \
  -H 'Authorization: Token YOUR_API_KEY'
{
  "id": "3b8f6a2e-7c41-4d9a-9e15-2f0c8d4b6a73",
  "operation_type": "payment",
  "status": "Success",
  "amount": 150.00,
  "currency": "MXN",
  "client_reference": "ORD-001",
  "payment_method_type": "GOOGLE_PAY",
  "created_at": "2026-11-13T18:20:35Z",
  "updated_at": "2026-11-13T18:20:41Z"
}

Refunds and chargebacks work as they do for cards: see Refunds. If payments keep failing, contact support.

Testing

  • In Tonder's sandbox, Google Pay runs in Google's test environment: Google returns test tokens, and no real card is charged.
  • The test shopper needs to be signed in to Google in the browser. To see Google's test cards in the payment sheet, join the group named on Google's test card suite page.
  • Google's test card suite has no cards specific to Tonder's processor, so ask your representative which outcomes the sandbox returns.
  • Cards saved in the account (PAN_ONLY) go through 3DS. In sandbox the 3DS page is simulated.

Go-live checklist

  • Google's approval for your business, confirmed by your representative.
  • Domains sent to Tonder and registered.
  • Google Pay enabled on your production account.
  • One test payment approved in sandbox.

Next steps

Was this page helpful?

On this page