Skip to main content

Legal Agreements

Last updated on

Overview

AccelByte Cloud's Legal Agreement service has the power to manage legal documents such as Terms of Service, Privacy Policy, End User License Agreement (EULA), and even Marketing Preferences, such as whether a player would like to receive updates via email. You can create and manage documents with different versions and locales, then store them in the Admin Portal.

Legal Agreements can be uploaded to either a game namespace or to your publisher namespace. Any agreements uploaded to your publisher namespace will be applied to all of your games in Player Portal or Launcher, and players will only need to agree to them once, when creating their account for your platform.

Permissions

Permissions are used to grant access to specific resources within our services. Make sure your account has the following permissions before you attempt to manage legal agreements in the Admin Portal. For a full list of permissions that impact legal agreements management, see the Legal tab of the permissions reference.

UsagePermission TagAction
Create a Legal DocumentADMIN:NAMESPACE:*:LEGALCreate
Update a Legal DocumentADMIN:NAMESPACE:*:LEGALUpdate
Create a Country-Specific PolicyADMIN:NAMESPACE:*:LEGALUpdate
Create a New Version of a DocumentADMIN:NAMESPACE:*:LEGALCreate
Edit Document Version DetailsADMIN:NAMESPACE:*:LEGALUpdate
Publish a Document VersionADMIN:NAMESPACE:*:LEGALUpdate
Retrieving Policies by CountryADMIN:NAMESPACE:*:LEGALRead
Retrieving a Document ContentADMIN:NAMESPACE:*:LEGALRead

Permissions work slightly differently depending on whether they are assigned to IAM Clients or Roles assigned to users. For more information, read the Authentication and Authorization documentation.

To use AccelByte Cloud's Legal Agreements service, first you must create a legal document in the Admin Portal. This document acts as a container that you can upload the actual contents of the document into. To create this document, follow the steps below:

  1. In the Admin Portal, go to Platform Configurations and click Legal Documents.

  2. On the Legal Documents page you can see a list of all existing Legal Documents. To create a new document, click Create Document.

  3. The Create Document form appears. Fill in the required fields:

    • Input a name for the legal document in the Document Name field. Only letters and spaces are allowed.

    • Choose the type of document you're creating from the Document Type dropdown menu. Choose Legal Document for legal documents such as Privacy Policies or Terms and Conditions. Choose Marketing Preference for marketing preferences such as the option for players to sign up for a newsletter.

    • Select the namespace where the document will be created from the Namespace dropdown menu. To apply the document to a single game select that game's namespace, or to apply a document to all of your games select the publisher namespace.

    • Select the countries that you want to create country-specific policies for later from the Country dropdown menu. The first country that you input will be the default country, so the documents uploaded later for this country will also apply to all countries that do not have their own country-specific policies.

      :::tip IMPORTANT You won't be able to delete countries later, so make sure your selections are correct before submitting this form. :::

    • Input a tag for the document in the Tag field. This field is optional. Tags can be used to further classify documents.

    • Select the client this legal document will be applied to in the Client field. In the publisher namespace, this could be Player Portal or Launcher, whereas in the game namespace this could be Steam, PSN, or other platforms. If left blank, the legal document will not appear in any platform.

      NOTE

      You can add additional clients to the legal document after it's created by opening the document and clicking Add More… next to Client.

    • Input a description of the document in the Description field.

  4. When you're finished, click the Create button. The new document will be added to the list.

You can edit an existing legal document by following the steps below:

  1. In the Admin Portal, go to Platform Configurations and click Legal Documents.

  2. On the Legal Documents page you can see a list of all existing Legal Documents. Choose the document you want to update and click Update in that document's Action column.

  3. The Update Document form appears. Make the desired edits to the fields below:

    • Input a new name for the document in the Document Name field. Only letters and spaces are allowed.
    • Select a new type for the document from the Document Type dropdown menu. Choose Legal Document for legal documents such as Privacy Policies or Terms and Conditions. Choose Marketing Preference for marketing preferences such as the option for players to sign up for a newsletter.
    • Select a new country for the document to apply to from the Country dropdown menu.
    • Input a new tag in the Tag field. This field is optional. Tags can be used to classify documents.
    • Select a new client for this legal document to apply to from the Client dropdown menu. In the publisher namespace, this could be Player Portal or Launcher, whereas in the game namespace this could be Steam, PSN, or other platforms. If left blank, the legal document will not appear on any platform. You can select multiple clients.
    • Input a new description of the document in the Description field.
  4. Once completed, click the Edit button. The document will be updated.

Create a Country-specific Policy

After creating a legal document, you can create a country-specific policy to hold special versions of that document that are for specific countries. The countries that were entered when a legal document was created or edited will be listed as countries that require a specific version of that document. To add a new country-specific policy to that list, follow the steps below:

  1. In the Admin Portal, go to Platform Configurations and click Legal Documents.

  2. On the Legal Documents page you can see a list of all existing Legal Documents. Choose the document to which you want to add a new country-specific policy and click View next to that document.

  3. On the Legal Document Details page, you can see the details of the selected Legal Document and the list of country-specific versions of that document. To create a new country-specific policy, click Add Policy.

  4. The Add Policy form appears. Choose a country from the dropdown and click Create.

  5. The country-specific policy is successfully created. You'll be redirected to the country-specific policy page that you just created.

  6. To set this country as the default country for country-specific policies, click the Set as Default button.

  7. If you want to require players to accept this policy before continuing to use the platform, select the Mandatory Update checkbox.

Create a New Version of a Document

After creating a country-specific policy, you can add a new version of that document anytime it's revised. To create a new version of a document, follow the steps below:

  1. In the Admin Portal, go to Platform Configurations and click Legal Documents.

  2. On the Legal Documents page you can see a list of all existing Legal Documents. Choose the document to which you want to add a new version and click View next to that document.

  3. On the Legal Document Details page, you can see detailed information about the selected Legal Document and the list of country-specific policies related to that document. To create a new version of a country-specific policy, click View in the Action column of the country-specific policy you want to add a version to.

  4. On the Country-Specific Policy page, you can see information about the policy and its existing versions. To create a new version of the document, click Create Version.

  5. Enter a name for the new version in the Version Name field.

  6. Once completed, click the Create button. The new document version will be created.

  7. To add content to your new document version, click View in the Action column of that version.

  8. On the Version Details page, you can see detailed information about the selected document version. To add content to this version, click Create New.

  9. Select the language the document is in from the Locale dropdown menu. Then click Browse to find the document on your computer. The file should be in .md format.

  10. Once completed, click the Create button. The selected file will be uploaded.

Edit a Document Version

You can edit the content of a legal document. To do so, follow the steps below:

  1. In the Admin Portal, go to Platform Configurations and click Legal Documents.

  2. On the Legal Documents page you can see a list of all existing Legal Documents. Choose the document you want to edit and click View next to that document.

  3. On the Legal Document Details page, you can see detailed information about the selected Legal Document and the list of country-specific versions of that document. To open one of these country-specific policies, click View next to it.

  4. On the Country-specific Policy page, you can see detailed information about the policy and existing versions of it. To edit a version, click View next to the version you want to edit.

  5. On the Version Details page, use the text editor on the left side of the page to make your edits. The text box on the right side shows you how your changes will look after they're published.

  6. Once completed, click Save.

Publish a Document Version

After you create a legal document, you can publish the legal document for all players in the affected namespace. To do so, follow the steps below:

  1. In the Admin Portal, go to Platform Configurations and click Legal Documents.

  2. On the Legal Documents page you can see a list of all existing Legal Documents. Choose the document that you want to publish and click View in that document's Action column.

  3. On the Legal Document Details page, you can see detailed information about the selected Legal Document and the list of country-specific versions of it. Click View next to the country-specific policy you want to publish.

  4. On the Country-specific Policy page, you can see detailed information about the policy and existing versions of it. To publish a version, click Publish next to that version.

  5. A confirmation window will appear. Type PUBLISH in all caps and select the checkbox if you want to notify players about the policy update via email.

  6. Once completed, click Publish. The new version will be published.

The Legal Agreement API can be called by using the functions in AccelByte::FRegistry::Agreement.

Check Player Eligibilities

Check all players' legal eligibility from a specified namespace. Use this function to check whether the logged in player has already agreed to the legal agreement.

AccelByte::FRegistry::Agreement.QueryLegalEligibilites(
/* specified namespace */
,
THandler < TArray < FAccelByteModelsRetrieveUserEligibilitiesResponse >> ::
CreateLambda(
[](TArray < FAccelByteModelsRetrieveUserElegibilitiesResponse > Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Retrieve Policies

Retrieve all latest active policies based on the namespace from the game configuration and country code from the user's profile.

AccelByte::FRegistry::Agreement.GetLegalPolicies(
/* specified policy type */
,
/* default on empty flag */
,
THandler < TArray < FAccelByteModelsPublicPolicy >> ::
CreateLambda([](TArray < FAccelByteModelsPublicPolicy > Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Retrieve List of Policies by Namespace

Retrieve all latest active policies from a specified namespace and country code from the user's profile.

AccelByte::FRegistry::Agreement.GetLegalPolicies(
/* specified namespace */
,
/* specified policy type */
,
/* default on empty flag */
,
THandler < TArray < FAccelByteModelsPublicPolicy >> ::
CreateLambda([](TArray < FAccelByteModelsPublicPolicy > Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Retrieve List of Policies by Tag

Retrieve all latest active policies that have specified tags based on the namespace from game configuration and country code from the user's profile.

AccelByte::FRegistry::Agreement.GetLegalPolicies(
/* specified policy type */
,
/* list of tags */
,
/* default on empty flag */
,
THandler < TArray < FAccelByteModelsPublicPolicy >> ::
CreateLambda([](TArray < FAccelByteModelsPublicPolicy > Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Retrieve List of Policies by Country

Retrieve all latest active policies based on a specified country and the namespace from game configuration.

AccelByte::FRegistry::Agreement.GetLegalPolicies(
/* specified country code */
,
/* specified policy type */
,
/* default on empty flag */
,
THandler < TArray < FAccelByteModelsPublicPolicy >> ::
CreateLambda([](TArray < FAccelByteModelsPublicPolicy > Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Retrieve List of Policies by Country and Tag

Retrieve all latest active policies that have specified tags based on a specified country and the namespace from game configuration.

AccelByte::FRegistry::Agreement.GetLegalPolicies(
/* specified country code */
,
/* specified policy type */
,
/* list of tags */
,
/* default on empty flag */
,
THandler < TArray < FAccelByteModelsPublicPolicy >> ::
CreateLambda([](TArray < FAccelByteModelsPublicPolicy > Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Retrieving a Document's Content

Use this function to retrieve the content of the specified document.

AccelByte::FRegistry::Agreement.GetLegalDocument(
/* specified url */
,
THandler < FString > ::CreateLambda([](FString Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Accepting Policies

Accept a Policy

Use this function to accept a localized policy document by providing the localized policy version ID.

AccelByte::FRegistry::Agreement.AcceptPolicyVersion(
/* specified localized policy version Id */
,
FVoidHandler::CreateLambda([]() {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

Accept Policies in Bulk

Use this function to accept many localized policy documents at once.

AccelByte::FRegistry::Agreement.BulkAcceptPolicyVersions(
/* list of localized policy versions */
,
THandler < FAccelByteModelsAcceptAgreementResponse > ::
CreateLambda([](FAccelByteModelsAcceptAgreementResponse Result) {
/* do something when succeeded */
}),
FError::CreateLambda([](int32 ErrorCode, FString ErrorMessage) {
/* do something when fails */
})
);

SDK Initialization

Before using the Legal service from the SDK, you will need to initialize your server-side SDK to ensure you are authorized and able to perform create, read, update, and delete actions.

Golang SDK Initialization

Before using the Legal service from the Golang SDK, you will need to initialize the SDK by following the steps below:

agreementService := &legal.AgreementService{
Client: factory.NewLegalClient(&repository.ConfigRepositoryImpl{}),
TokenRepository: &repository.TokenRepositoryImpl{},
}

Once completed, you can use the Golang SDK to create, read, update, or delete the Legal service from your serverless app.

Golang test case files

Python SDK Initialization

Before using the Legal service from the Python SDK, you need to initialize the SDK by making sure that you've done the following requirements.

On a successful initialization, you can use the Python SDK to create, read, update and delete Legal from your serverless app.

To use the Legal Service, make sure you have the necessary permissions.

Python test case files

.NET (C#) SDK Initialization

Before using the Legal service, you will need to set some permissions. Use the following .NET namespaces:

    using AccelByte.Sdk.Api.Legal.Model;
using AccelByte.Sdk.Api.Legal.Operation;
using AccelByte.Sdk.Api.Legal.Wrapper;

.NET (C#) test case files

Java SDK Initialization

Before using the Legal service, you will need to set some permissions. Initialize the Agreement wrapper from the Legal service using the following code:

Agreement wLegalAgreement = new Agreement(sdk);

Once completed, you can use the SDK to create, read, update, or delete agreements.

Java test case files

Bulk Accept Policy Versions

Use the following function to bulk accept policy versions:

err := dataRetrievalService.SaveAdminEmailConfiguration(input)
if err != nil {
return err
}
return nil

Retrieve Agreements

Use the following function to retrieve agreements:

ok, err := agreementService.RetrieveAgreementsPublic()
if err != nil {
return err
}
return nil

Use the following function to update marketing preference consent:

err := agreementService.ChangePreferenceConsent()
if err != nil {
return err
}
return nil
  • To learn more about GDPR and CCPA compliance, see the GDPR documentation.
  • Players are shown legal documents based on their country as defined in their player profile. To learn more about profiles, see the Profile documentation.