To keep your business profile as accurate as possible, Google uses information from sources like
user reports and licensed content. If the information provided by business owners is reported as
incorrect, Google notifies the listing owners. Listing owners can then accept or reject the
updates.

As a listing owner, the My Business Business Information API lets you review these updates to make sure that
your business information is accurate. This guide describes how to accept or reject updates.

To manage your Google Updates, complete the following steps:

1. [Find locations with pending updates](https://developers.google.com/my-business/content/accept-or-reject-updates#findloc)
2. [Review updated fields](https://developers.google.com/my-business/content/accept-or-reject-updates#revfields)
3. [Accept or reject updates](https://developers.google.com/my-business/content/accept-or-reject-updates#acc-rej-updates)
4. [Review the results](https://developers.google.com/my-business/content/accept-or-reject-updates#revresults)

## Find locations with pending updates

Before you can accept or reject updates, you must find out which locations have Google Updates
available. The best way to get Google Updates for locations is to
[Manage real-time notifications](https://developers.google.com/my-business/content/notification-setup) with
[Cloud Pub/Sub](https://cloud.google.com/pubsub). If you receive a
`https://developers.google.com/my-business/reference/notifications/rest/v1/NotificationSetting#NotificationType`
notification on your
[Pub/Sub topic](https://cloud.google.com/pubsub/docs/admin#create_a_topic),
a change is ready for your review. The `locationName` field on the notification
provides the resource name of the location with Google Updates.

Alternatively, you can see the call
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/get`
and inspect the
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations#Location.Metadata`
for the presence of the `hasGoogleUpdated` flag. If `"isGoogleUpdated": true`,
the place ID associated with this location has updates.

### Request

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/get`
request example:
HTTP

```
GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}
```

### Request

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/get`
response example:

```
{
  "name": "locations/{locationId}",
  "title": "Test Business",
  "phoneNumbers": {
      "primaryPhone": "02 9374 4000"
   },
  ...
  "metadata": {
    "hasGoogleUpdated": true,
    ...
  }
  ...
}
```

## Review updated fields

To review the specific fields that have Google Updates, call
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/getGoogleUpdated`.

This method returns two important masks in the [response body](https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/getGoogleUpdated#response-body):

- `diffMask`: Indicates fields where the serving data (what customers see on Google Maps and Search) differs from your local preferred values. This is typically driven by Google updates or user-generated content. You **must** accept or reject these fields to resolve the discrepancy.
- `pendingMask`: Indicates fields where you previously submitted an update, but the update is still processing and has not yet been pushed to Google Maps and Search. You **do not** need to take action on these fields.

> [!NOTE]
> **Note:** In `v1alpha`, you can also call `https://developers.google.com/my-business/reference/businessinformation/rest/v1alpha/locations/getExtended` and `https://developers.google.com/my-business/reference/businessinformation/rest/v1alpha/locations.attributes/getExtended` to retrieve the merchant-provided data, the consumer-facing data, per-field edit lifecycle stages (such as `EDIT_LIFECYCLE_STAGE_PENDING` or `EDIT_LIFECYCLE_STAGE_REJECTED`), edit origin source, and policy violation rejection reasons in a single request. For details, see [Check edit status for locations and attributes](https://developers.google.com/my-business/content/edit-status).

### Request

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/getGoogleUpdated`
request example:
HTTP

```
GET
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}:googleUpdated
```

### Response

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/getGoogleUpdated#response-body`
response example. It shows an available update in the **phoneNumbers.primaryPhone** field. The value in
this response is the suggested update value:

```
{
  "location": {
    "name": "locations/{locationId}",
    "locationName": "Test Business",
    "phoneNumbers": {
      "primaryPhone": "+1 111 111 1111"
     },
    ...
  },
  "diffMask": "phoneNumbers.primaryPhone"
}
```

## Accept or reject updates

To resolve the fields listed in the `diffMask`, you must accept or reject the updates using a
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/patch` request:

- **Accept an update:** Patch the location using the new **value** returned in the `getGoogleUpdated` response. This updates your local record to match the serving data.
- **Reject an update:** Patch the location using your original **preferred value**. This re-asserts your preferred data through the update pipeline and overwrites the serving data.

In both cases, set the **updateMask** to cover the fields you want to resolve.

### Accept a request

The following is an `https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/patch`
request example:
HTTP

```
PATCH
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?updateMask=phoneNumbers.primaryPhone
{
    "phoneNumbers": {
      "primaryPhone": "+1 111 111 1111"
     },
}
```

### Response

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/patch`
response example:

```
{
    "name": "locations/{locationId}",
    "locationName": "Test Business",
    "phoneNumbers": {
      "primaryPhone": "+1 111 111 1111"
     },
    ...
}
```

### Reject a request

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/patch`
request example:
HTTP

```
PATCH
https://mybusinessbusinessinformation.googleapis.com/v1/locations/{locationId}?updateMask=phoneNumbers.primaryPhone
{
    "name": "locations/{locationId}",
    "locationName": "Test Business",
    "phoneNumbers": {
      "primaryPhone": "222 222 2222"
     },
    ...
}
```

### Response

The following is an
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/patch`
response example:

```
{
    "name": "locations/{locationId}",
    "locationName": "Test Business",
    "phoneNumbers": {
      "primaryPhone": "222 222 2222"
     },
    ...
}
```

## Review the results

If your location is patched successfully, the `diffMask` field in the
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/getGoogleUpdated#response-body`
response shows the values as `"diffMask": ""`. Also, the flag
`"hasGoogleUpdated"` within `Metadata` shows the value as
`false`, or no value is present.

> [!NOTE]
> **Note:** We highly recommend that you build logic to verify the `diffMask` and `Metadata`.

If the field values aren't clear,
[reach out to
our support team](https://support.google.com/business/contact/api_default) with the request and response for `getGoogleUpdated`. The
request must include the response before the
`https://developers.google.com/my-business/reference/businessinformation/rest/v1/locations/patch`
call, the patch call, and the `getGoogleUpdated` call.