---
description: Understand the Google Pay transactionState ERROR. Learn why it occurs, how to properly configure PaymentDataError, and user retry best practices.
title: Google Pay ERROR: Transaction State Error Code Explained
image: https://cdn.smartretry.com/_next/static/media/og-image.0z0q4_5kazzzo.jpeg
---

[Skip to main content](#main-content)

Google Pay™️ · Transaction State

# Google Pay™️ Transaction State: ERROR

The payment authorization failed. Return this transactionState in PaymentAuthorizationResult alongside a PaymentDataError object specifying the reason and user-facing message. The sheet remains open for correction.

## What it means

In Google Pay, a transactionState of ERROR is a merchant-side response passed within the PaymentAuthorizationResult, rather than a traditional network or issuer decline. It signals to the Google Pay API that the authorization attempt failed, but explicitly keeps the payment sheet open. This allows the merchant to display targeted error messages so the customer can correct their data and retry the payment within the same active session.

## Classification & retryability

softRetryable: yes

Do not attempt automated backend gateway retries. Instead, return the ERROR state with a well-formed PaymentDataError object to the active Google Pay sheet, prompting the user to correct their input and retry manually.

## Common causes

* The selected payment method failed merchant validation checks, such as the use of an unsupported card brand.
* The provided shipping address is invalid, incomplete, or outside the merchant's serviceable area.
* The chosen shipping option or applied promotional offer is not valid for the current transaction.
* Internal merchant risk or fraud checks rejected the specific payment details during the live authorization attempt.

## How to resolve it

To resolve this flow, developers must ensure the Google Pay API integration returns an ERROR state inside the PaymentAuthorizationResult, accompanied by a fully populated PaymentDataError object. This object must specify a precise predefined reason (such as PAYMENT\_DATA\_INVALID or SHIPPING\_ADDRESS\_UNSERVICEABLE), an intent to highlight the correct UI element (like SHIPPING\_ADDRESS), and a clear, actionable user-facing message so the buyer can fix the issue.

### For merchants

Map your backend validation failures to the most specific PaymentDataError reason possible, avoiding the generic OTHER\_ERROR whenever you can. Write clear, localized error messages (e.g., 'We cannot ship to P.O. boxes') so the customer knows exactly what to fix. Rely on the Google Pay sheet's built-in UI for the retry loop rather than writing custom out-of-band retry logic.

### For customers

Read the error message displayed directly within the Google Pay window. Update the highlighted details—such as selecting a different credit card, modifying the shipping address, or removing an invalid coupon—and then submit the payment again.

## Sources

* [Google Pay API Web – Response objects (PaymentAuthorizationResult, PaymentDataError)](https://developers.google.com/pay/api/web/reference/response-objects)
* [Google Pay API for Android – JSON response objects (PaymentAuthorizationResult, PaymentDataError)](https://developers.google.com/pay/api/android/reference/response-objects)
* [Google Pay API Web – Tutorial (PaymentAuthorizationResult SUCCESS vs ERROR behavior)](https://developers.google.com/pay/api/web/guides/tutorial)

---

```json
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://www.smartretry.com/"},{"@type":"ListItem","position":2,"name":"Decline Code","item":"https://www.smartretry.com/decline-code"},{"@type":"ListItem","position":3,"name":"Google Pay™️","item":"https://www.smartretry.com/payment-providers/google-pay"},{"@type":"ListItem","position":4,"name":"ERROR","item":"https://www.smartretry.com/decline-code/google-pay-transaction-state-error"}]}
```
