Providers who offer listing management directly on their platform can verify a merchant's
business within their site. This eliminates the need to redirect the merchant into the
Business Profile UI.

## Get current state

Users can call [`locations.getVoiceOfMerchantState`](https://developers.google.com/my-business/reference/verifications/rest/v1/locations/getVoiceOfMerchantState.md.txt)
on a location to retrieve its current status. If the
`hasVoiceOfMerchant`
boolean is `true`, then the location is already in good standing and no additional action is required. Otherwise, if the response includes a `verify` object, you must complete verification. Follow the instructions in the next sections for more information.

## Fetch verification options

Providers can use the
[`locations.fetchVerificationOptions`](https://developers.google.com/my-business/reference/verifications/rest/v1/locations/fetchVerificationOptions.md.txt)
method to prompt merchants to choose a preferred contact method from a list of available
[verification methods](https://developers.google.com/my-business/reference/verifications/rest/v1/VerificationMethod.md.txt).

> [!NOTE]
> **Note:** Verification methods vary due to language and regional differences.

To fetch the verification options, use the following:
HTTP

```
POST
https://mybusinessverifications.googleapis.com/v1/locations/{locationId}:fetchVerificationOptions

{
  "languageCode": "en"
}

```

## Initiate the verification process

After you choose a verification method, initiate the verification process with
[`locations.verify`](https://developers.google.com/my-business/reference/verifications/rest/v1/locations/verify.md.txt).
As a result of this call, the location moves to a verified state or an error status is returned.

> [!NOTE]
> An attempt to verify a new location when a location already exists returns an error and might initiate the [ownership resolution](https://support.google.com/business/answer/4661508) process.

HTTP

```
POST
https://mybusinessverifications.googleapis.com/v1/locations/{locationId}:verify

// Use only one of the verification methods below

// For postcard verification:
{
  "method": "ADDRESS",
  "languageCode": "en",
  "mailerContact": "Ann Droyd"
}

// For phone verification:
{
  "method": "PHONE_CALL",
  "languageCode": "en",
  "phoneNumber": "800-555-0136"
}

// For SMS verification:
{
  "method": "SMS",
  "languageCode": "en",
  "phoneNumber": "800-555-0136"
}

// For email verification:
{
  "method": "EMAIL",
  "languageCode": "en",
  "emailAddress": "ex@google.com"
}

```

## Retrieve current verifications

The
[`locations.verifications.list`](https://developers.google.com/my-business/reference/verifications/rest/v1/locations.verifications/list.md.txt)
call retrieves the history of verification requests along with their status for the location specified in the call.

To retrieve all verification requests, use the following:
HTTP

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

```

## Complete a pending verification

A PIN code and the
[`locations.verifications.complete`](https://developers.google.com/my-business/reference/verifications/rest/v1/locations.verifications/complete.md.txt)
method is usually required to complete the verification of a business.

To complete a pending verification, use the following:
HTTP

```
POST
https://mybusinessverifications.googleapis.com/v1/locations/{locationId}
/verifications/{verificationId}:complete

{
  "pin": "123456"
}

```

## Best practices for GBP verification using API

### Location creation

With the GBP Business Information API, you can embed your platform to provide location creation functionality. When you ask merchants to add a new location, make sure to follow these steps:

Collect location information such as business name, address, category from the merchant.

1. Call the [`googleLocations.search`](https://developers.google.com/my-business/reference/businessinformation/rest/v1/googleLocations/search.md.txt) endpoint.
2. Provide location data, such as business name, category, address, phone number and website within the API request.

Alternatively, perform a search for potential matching location by following these steps:

1. Query possible location matches.
2. Ask the merchant to choose the correct location.
3. If `requestAdminRightsUri` exists on the matched `GoogleLocation`, help the merchant request access and ownership for that location on Google Business Profile.
4. If `requestAdminRightsUri` doesn't exist, call [`accounts.locations.create`](https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations/create.md.txt) using the `location` details from the matched `GoogleLocation`.
5. Verify the new location.

**Note:** If you don't get any possible location matches from your initial query, call `accounts.locations.create` with the location details collected from the merchant, and then verify that new location.

### Location verification

To start the verification process using the GBP API, follow these steps:

1. Call the [`accounts.locations.list`](https://developers.google.com/my-business/reference/businessinformation/rest/v1/accounts.locations/list.md.txt) method to list all locations for a Google Account.
2. Select a location to verify.
3. Call the [`locations.getVoiceOfMerchantState`](https://developers.google.com/my-business/content/manage-verification.md.txt#get-current-state) API method to confirm whether that location requires verification.
4. If the response contains `verify`, call [`locations.fetchVerificationOptions`](https://developers.google.com/my-business/content/manage-verification.md.txt#fetch-options) to get a list of methods available to verify that location.
5. Double-check that the `VerificationOption` data includes the correct address, phone number, and email address.
6. After the merchant selects the best-available verification option, call the [`locations.verify`](https://developers.google.com/my-business/content/manage-verification.md.txt#initiate-verification) method to initiate the appropriate verification. To confirm that the initiation is in progress, call [`locations.verifications.list`](https://developers.google.com/my-business/content/manage-verification.md.txt#retrieve-current-verifications).
7. Call the [`locations.verifications.complete`](https://developers.google.com/my-business/content/manage-verification.md.txt#complete-verification) method with the merchant's PIN.
8. Call the [`locations.getVoiceOfMerchantState`](https://developers.google.com/my-business/reference/verifications/rest/v1/locations/getVoiceOfMerchantState.md.txt) API method. If `hasVoiceOfMerchant` is `true`, you have successfully verified the location.

**Note:** If `AUTO` verification is available for the location, the merchant need not perform any verification steps.

For further information on GBP verification, refer to our [help center support article](https://support.google.com/business/answer/7107242).