AI-generated Key Takeaways
-
This code sample demonstrates how to retrieve the Terms of Service Agreement State for a specific kind of service and country.
-
The code examples are provided in Java, PHP, and Python, showcasing how to use the Merchant API to get the terms of service agreement state.
-
Each sample code initializes a
TermsOfServiceAgreementStateServiceClientand uses aGetTermsOfServiceAgreementStateRequestto query the API. -
The required identifier to identify a TermsOfServiceAgreementState is composed of the
TermsOfServiceKindandcountry, presented in the format: "{TermsOfServiceKind}-{country}". -
The response from the API includes the current state of the terms of service, including details if acceptance is required along with the specific version and link.
Merchant API code sample to get a terms of service agreement state.
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.termsofservices.v1
;
import
com.google.api.gax.core.FixedCredentialsProvider
;
import
com.google.auth.oauth2.GoogleCredentials
;
import
com.google.shopping.merchant.accounts.v1.GetTermsOfServiceAgreementStateRequest
;
import
com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementState
;
import
com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementStateName
;
import
com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementStateServiceClient
;
import
com.google.shopping.merchant.accounts.v1.TermsOfServiceAgreementStateServiceSettings
;
import
shopping.merchant.samples.utils.Authenticator
;
import
shopping.merchant.samples.utils.Config
;
/**
* This class demonstrates how to get a TermsOfServiceAgreementState for a specific
* TermsOfServiceKind and country.
*/
public
class
GetTermsOfServiceAgreementStateSample
{
public
static
void
getTermsOfServiceAgreementState
(
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.
TermsOfServiceAgreementStateServiceSettings
termsOfServiceAgreementStateServiceSettings
=
TermsOfServiceAgreementStateServiceSettings
.
newBuilder
()
.
setCredentialsProvider
(
FixedCredentialsProvider
.
create
(
credential
))
.
build
();
// Creates TermsOfServiceAgreementState name to identify TermsOfServiceAgreementState.
String
name
=
TermsOfServiceAgreementStateName
.
newBuilder
()
.
setAccount
(
config
.
getAccountId
().
toString
())
// The Identifier is: "{TermsOfServiceKind}-{country}"
.
setIdentifier
(
"MERCHANT_CENTER-US"
)
.
build
()
.
toString
();
System
.
out
.
println
(
name
);
// Calls the API and catches and prints any network failures/errors.
try
(
TermsOfServiceAgreementStateServiceClient
termsOfServiceAgreementStateServiceClient
=
TermsOfServiceAgreementStateServiceClient
.
create
(
termsOfServiceAgreementStateServiceSettings
))
{
// The name has the format:
// accounts/{account}/termsOfServiceAgreementStates/{TermsOfServiceKind}-{country}
GetTermsOfServiceAgreementStateRequest
request
=
GetTermsOfServiceAgreementStateRequest
.
newBuilder
().
setName
(
name
).
build
();
System
.
out
.
println
(
"Sending Get TermsOfServiceAgreementState request:"
);
TermsOfServiceAgreementState
response
=
termsOfServiceAgreementStateServiceClient
.
getTermsOfServiceAgreementState
(
request
);
System
.
out
.
println
(
"Retrieved TermsOfServiceAgreementState below"
);
// If the terms of service needs to be accepted, the "required" field will include the
// specific version of the terms of service which needs to be accepted, alongside a link to
// the terms of service itself.
System
.
out
.
println
(
response
);
}
catch
(
Exception
e
)
{
System
.
out
.
println
(
e
);
}
}
public
static
void
main
(
String
[]
args
)
throws
Exception
{
Config
config
=
Config
.
load
();
getTermsOfServiceAgreementState
(
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\TermsOfServiceAgreementStateServiceClient;
use Google\Shopping\Merchant\Accounts\V1\GetTermsOfServiceAgreementStateRequest;
/**
* Demonstrates how to get a TermsOfServiceAgreementState.
*/
class GetTermsOfServiceAgreementState
{
/**
* Gets a TermsOfServiceAgreementState.
*
* @param array $config The configuration data.
* @return void
*/
public static function getTermsOfServiceAgreementState($config): void
{
// Get OAuth credentials.
$credentials = Authentication::useServiceAccountOrTokenFile();
// Create client options.
$options = ['credentials' => $credentials];
// Create a TermsOfServiceAgreementStateServiceClient.
$termsOfServiceAgreementStateServiceClient = new TermsOfServiceAgreementStateServiceClient($options);
// Service agreeement identifier
$identifier = "MERCHANT_CENTER-US";
// Create TermsOfServiceAgreementState name.
$name = "accounts/" . $config['accountId'] . "/termsOfServiceAgreementStates/" . $identifier;
print $name . PHP_EOL;
try {
// Prepare the request.
$request = new GetTermsOfServiceAgreementStateRequest([
'name' => $name,
]);
print "Sending Get TermsOfServiceAgreementState request:" . PHP_EOL;
$response = $termsOfServiceAgreementStateServiceClient->getTermsOfServiceAgreementState($request);
print "Retrieved TermsOfServiceAgreementState below\n";
print $response->serializeToJsonString() . PHP_EOL;
} catch (ApiException $e) {
print $e->getMessage();
}
}
/**
* Helper to execute the sample.
*
* @return void
*/
public function callSample(): void
{
$config = Config::generateConfig();
self::getTermsOfServiceAgreementState($config);
}
}
// Run the script
$sample = new GetTermsOfServiceAgreementState();
$sample->callSample();

