Delete a account
Stay organized with collections
Save and categorize content based on your preferences.
Merchant API code sample to delete a account.
Java
// Copyright 2024 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// https://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package shopping.merchant.samples.accounts.accounts.v1;
import com.google.api.gax.core.FixedCredentialsProvider;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.shopping.merchant.accounts.v1.AccountName;
import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;
import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;
import com.google.shopping.merchant.accounts.v1.DeleteAccountRequest;
import shopping.merchant.samples.utils.Authenticator;
import shopping.merchant.samples.utils.Config;
/** This class demonstrates how to delete a given Merchant Center account. */
public class DeleteAccountSample {
// This method can delete a standalone, advanced account or sub-account. If you delete an advanced
// account,
// all sub-accounts will also be deleted.
// Admin user access is required to execute this method.
public static void deleteAccount(Config config) throws Exception {
// Obtains OAuth token based on the user's configuration.
GoogleCredentials credential = new Authenticator().authenticate();
// Creates service settings using the credentials retrieved above.
AccountsServiceSettings accountsServiceSettings =
AccountsServiceSettings.newBuilder()
.setCredentialsProvider(FixedCredentialsProvider.create(credential))
.build();
// Gets the account ID from the config file.
String accountId = config.getAccountId().toString();
// Creates account name to identify the account.
String name =
AccountName.newBuilder()
.setAccount(accountId)
.build()
.toString();
// Calls the API and catches and prints any network failures/errors.
try (AccountsServiceClient accountsServiceClient =
AccountsServiceClient.create(accountsServiceSettings)) {
DeleteAccountRequest request =
DeleteAccountRequest.newBuilder()
.setName(name)
// Optional. If set to true, the account will be deleted even if it has offers or
// provides services to other accounts. Defaults to 'false'.
.setForce(true)
.build();
System.out.println("Sending Delete Account request");
accountsServiceClient.deleteAccount(request); // No response returned on success.
System.out.println("Delete successful.");
} catch (Exception e) {
System.out.println(e);
}
}
public static void main(String[] args) throws Exception {
Config config = Config.load();
deleteAccount(config);
}
}
PHP
<?php
/**
* Copyright 2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
require_once __DIR__ . '/../../../../vendor/autoload.php';
require_once __DIR__ . '/../../../Authentication/Authentication.php';
require_once __DIR__ . '/../../../Authentication/Config.php';
use Google\ApiCore\ApiException;
use Google\Shopping\Merchant\Accounts\V1\Client\AccountsServiceClient;
use Google\Shopping\Merchant\Accounts\V1\DeleteAccountRequest;
/**
* This class demonstrates how to delete a given Merchant Center account.
*/
class DeleteAccount
{
private static function getParent(string $accountId): string
{
return sprintf("accounts/%s", $accountId);
}
// This method can delete a standalone, advanced account or sub-account.
// If you delete an advanced account, all sub-accounts will also be deleted.
// Admin user access is required to execute this method.
public static function deleteAccount(array $config): void
{
// Gets the OAuth credentials to make the request.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Creates options config containing credentials for the client to use.
$options = ['credentials' => $credentials];
// Creates a client.
$accountsServiceClient = new AccountsServiceClient($options);
// Gets the account ID from the config file.
$accountId = $config['accountId'];
// Creates account name to identify the account.
$name = self::getParent($accountId);
// Calls the API and catches and prints any network failures/errors.
try {
$request = new DeleteAccountRequest([
'name' => $name,
// Optional. If set to true, the account will be deleted even if it has offers or
// provides services to other accounts. Defaults to 'false'.
'force' => true,
]);
print "Sending Delete Account request\n";
$accountsServiceClient->deleteAccount($request); // No response returned on success.
print "Delete successful.\n";
} catch (ApiException $e) {
print $e->getMessage();
}
}
public function callSample(): void
{
$config = Config::generateConfig();
self::deleteAccount($config);
}
}
$sample = new DeleteAccount();
$sample->callSample();
Python
# -*- coding: utf-8 -*-
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""A module to delete a specific Merchant Center account."""
from examples.authentication import configuration
from examples.authentication import generate_user_credentials
from google.shopping.merchant_accounts_v1 import AccountsServiceClient
from google.shopping.merchant_accounts_v1 import DeleteAccountRequest
_ACCOUNT = configuration.Configuration().read_merchant_info()
def get_parent(account_id):
return f"accounts/{account_id}"
def delete_account():
"""Deletes a given Merchant Center account."""
# Get OAuth credentials.
credentials = generate_user_credentials.main()
# Create a client.
client = AccountsServiceClient(credentials=credentials)
# Create the account name.
name = get_parent(_ACCOUNT)
# Create the request.
request = DeleteAccountRequest(name=name, force=True)
# Make the request and print the response.
try:
print("Sending Delete Account request")
client.delete_account(request=request)
print("Delete successful.")
except RuntimeError as e:
print(e)
if __name__ == "__main__":
delete_account()
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-13 UTC.
[null,null,["Last updated 2025-08-13 UTC."],[[["\u003cp\u003eThis page provides code samples in Java, PHP, and Python demonstrating how to delete a Merchant Center account using the Merchant API.\u003c/p\u003e\n"],["\u003cp\u003eThe code samples can delete standalone accounts, Multi-Client Accounts (MCAs), or sub-accounts, with the deletion of an MCA also deleting all its sub-accounts.\u003c/p\u003e\n"],["\u003cp\u003eAdmin user access is required to execute the account deletion process, as demonstrated by the samples, which includes setting up OAuth credentials for authentication.\u003c/p\u003e\n"],["\u003cp\u003eEach code sample constructs a \u003ccode\u003eDeleteAccountRequest\u003c/code\u003e that includes the account's name and a \u003ccode\u003eforce\u003c/code\u003e flag, which, when set to \u003ccode\u003etrue\u003c/code\u003e, ensures deletion even if the account has offers or services linked to other accounts.\u003c/p\u003e\n"],["\u003cp\u003eAfter successfully sending the \u003ccode\u003eDeleteAccountRequest\u003c/code\u003e, the API does not return a response, and the code prints a "Delete successful" message to confirm the action.\u003c/p\u003e\n"]]],["The provided code demonstrates how to delete a Merchant Center account using Java, PHP, and Python. Key actions include: authenticating with OAuth credentials, retrieving the account ID, constructing an account name, creating a `DeleteAccountRequest`, and calling the `deleteAccount` method of the `AccountsServiceClient`. Each implementation sets the `force` parameter to `true`, ensuring account deletion even with active offers or services. The process involves sending a request and managing potential network failures or errors. Upon successful execution, no response is returned.\n"],null,["# Delete a account\n\nMerchant API code sample to delete a account. \n\n### Java\n\n // Copyright 2024 Google LLC\n //\n // Licensed under the Apache License, Version 2.0 (the \"License\");\n // you may not use this file except in compliance with the License.\n // You may obtain a copy of the License at\n //\n // https://www.apache.org/licenses/LICENSE-2.0\n //\n // Unless required by applicable law or agreed to in writing, software\n // distributed under the License is distributed on an \"AS IS\" BASIS,\n // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n // See the License for the specific language governing permissions and\n // limitations under the License.\n\n package shopping.merchant.samples.accounts.accounts.v1;\n import com.google.api.gax.core.FixedCredentialsProvider;\n import com.google.auth.oauth2.GoogleCredentials;\n import com.google.shopping.merchant.accounts.v1.AccountName;\n import com.google.shopping.merchant.accounts.v1.AccountsServiceClient;\n import com.google.shopping.merchant.accounts.v1.AccountsServiceSettings;\n import com.google.shopping.merchant.accounts.v1.DeleteAccountRequest;\n import shopping.merchant.samples.utils.Authenticator;\n import shopping.merchant.samples.utils.Config;\n\n /** This class demonstrates how to delete a given Merchant Center account. */\n public class DeleteAccountSample {\n\n // This method can delete a standalone, advanced account or sub-account. If you delete an advanced\n // account,\n // all sub-accounts will also be deleted.\n // Admin user access is required to execute this method.\n\n public static void deleteAccount(Config config) throws Exception {\n\n // Obtains OAuth token based on the user's configuration.\n GoogleCredentials credential = new Authenticator().authenticate();\n\n // Creates service settings using the credentials retrieved above.\n AccountsServiceSettings accountsServiceSettings =\n AccountsServiceSettings.newBuilder()\n .setCredentialsProvider(FixedCredentialsProvider.create(credential))\n .build();\n\n // Gets the account ID from the config file.\n String accountId = config.getAccountId().toString();\n\n // Creates account name to identify the account.\n String name =\n AccountName.newBuilder()\n .setAccount(accountId)\n .build()\n .toString();\n\n // Calls the API and catches and prints any network failures/errors.\n try (AccountsServiceClient accountsServiceClient =\n AccountsServiceClient.create(accountsServiceSettings)) {\n DeleteAccountRequest request =\n DeleteAccountRequest.newBuilder()\n .setName(name)\n // Optional. If set to true, the account will be deleted even if it has offers or\n // provides services to other accounts. Defaults to 'false'.\n .setForce(true)\n .build();\n\n System.out.println(\"Sending Delete Account request\");\n accountsServiceClient.deleteAccount(request); // No response returned on success.\n System.out.println(\"Delete successful.\");\n } catch (Exception e) {\n System.out.println(e);\n }\n }\n\n public static void main(String[] args) throws Exception {\n Config config = Config.load();\n deleteAccount(config);\n }\n } \n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/java/src/main/java/shopping/merchant/samples/accounts/accounts/v1/DeleteAccountSample.java\n\n### PHP\n\n \u003c?php\n /**\n * Copyright 2025 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n require_once __DIR__ . '/../../../../vendor/autoload.php';\n require_once __DIR__ . '/../../../Authentication/Authentication.php';\n require_once __DIR__ . '/../../../Authentication/Config.php';\n use Google\\ApiCore\\ApiException;\n use Google\\Shopping\\Merchant\\Accounts\\V1\\Client\\AccountsServiceClient;\n use Google\\Shopping\\Merchant\\Accounts\\V1\\DeleteAccountRequest;\n\n\n /**\n * This class demonstrates how to delete a given Merchant Center account.\n */\n class DeleteAccount\n {\n private static function getParent(string $accountId): string\n {\n return sprintf(\"accounts/%s\", $accountId);\n }\n\n // This method can delete a standalone, advanced account or sub-account.\n // If you delete an advanced account, all sub-accounts will also be deleted.\n // Admin user access is required to execute this method.\n public static function deleteAccount(array $config): void\n {\n // Gets the OAuth credentials to make the request.\n $credentials = Authentication::useServiceAccountOrTokenFile();\n\n // Creates options config containing credentials for the client to use.\n $options = ['credentials' =\u003e $credentials];\n\n // Creates a client.\n $accountsServiceClient = new AccountsServiceClient($options);\n\n\n // Gets the account ID from the config file.\n $accountId = $config['accountId'];\n\n // Creates account name to identify the account.\n $name = self::getParent($accountId);\n\n // Calls the API and catches and prints any network failures/errors.\n try {\n $request = new DeleteAccountRequest([\n 'name' =\u003e $name,\n // Optional. If set to true, the account will be deleted even if it has offers or\n // provides services to other accounts. Defaults to 'false'.\n 'force' =\u003e true,\n ]);\n\n print \"Sending Delete Account request\\n\";\n $accountsServiceClient-\u003edeleteAccount($request); // No response returned on success.\n print \"Delete successful.\\n\";\n } catch (ApiException $e) {\n print $e-\u003egetMessage();\n }\n }\n\n public function callSample(): void\n {\n $config = Config::generateConfig();\n self::deleteAccount($config);\n }\n }\n\n $sample = new DeleteAccount();\n $sample-\u003ecallSample(); \n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/php/examples/accounts/accounts/v1/DeleteAccountSample.php\n\n### Python\n\n # -*- coding: utf-8 -*-\n # Copyright 2024 Google LLC\n #\n # Licensed under the Apache License, Version 2.0 (the \"License\");\n # you may not use this file except in compliance with the License.\n # You may obtain a copy of the License at\n #\n # http://www.apache.org/licenses/LICENSE-2.0\n #\n # Unless required by applicable law or agreed to in writing, software\n # distributed under the License is distributed on an \"AS IS\" BASIS,\n # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n # See the License for the specific language governing permissions and\n # limitations under the License.\n \"\"\"A module to delete a specific Merchant Center account.\"\"\"\n\n\n from examples.authentication import configuration\n from examples.authentication import generate_user_credentials\n from google.shopping.merchant_accounts_v1 import AccountsServiceClient\n from google.shopping.merchant_accounts_v1 import DeleteAccountRequest\n\n _ACCOUNT = configuration.Configuration().read_merchant_info()\n\n\n def get_parent(account_id):\n return f\"accounts/{account_id}\"\n\n\n def delete_account():\n \"\"\"Deletes a given Merchant Center account.\"\"\"\n\n # Get OAuth credentials.\n credentials = generate_user_credentials.main()\n\n # Create a client.\n client = AccountsServiceClient(credentials=credentials)\n\n # Create the account name.\n name = get_parent(_ACCOUNT)\n\n # Create the request.\n request = DeleteAccountRequest(name=name, force=True)\n\n # Make the request and print the response.\n try:\n print(\"Sending Delete Account request\")\n client.delete_account(request=request)\n print(\"Delete successful.\")\n except RuntimeError as e:\n print(e)\n\n\n if __name__ == \"__main__\":\n delete_account()\n\n https://github.com/google/merchant-api-samples/blob/c6de994268c785ce22af0065932518a9ac5b3c03/python/examples/accounts/accounts/v1/delete_account_sample.py"]]