Skip to main content

Parental Authentication for Minors

LI PASS provides a standardized compliance solution package, allowing businesses to directly configure compliance services without needing to integrate the interfaces mentioned in this document once integrated with LI PASS.For businesses integrating LI PASS, you can contact the Player Network assistant for more details.

For businesses not using the standard LI PASS compliance solution, this document aims to introduce the interfaces provided by Player Network for compliance services and how to use these interfaces.

Prerequisites

  1. Integrate the SDK.
  2. Integrate Player Network login authentication service.
  3. Fill in the Minor Services backend configuration according to Country or Region Configuration and submit it to the Compliance team.
Configure the Multi-language Protocol URL

For games planning to support multiple languages, you also need to provide separate Terms of Service and Privacy Policy for each language, and fill their URLs in the configuration profile in the Minor Services submission backend.
To set an independent URL for each language, you should add ?lang_type= followed by the appropriate language code to the end of the agreement terms URL.

URL example:
English Terms of Service: https://www.example.com/TermsofService.html?lang_type=en
Simplified Chinese Privacy Policy: https://www.example.com/PrivacyPolicy.html?lang_type=zh-Hans

Configure Age Authentication Service for Game Application

Process Callback

Add the following callback for age authentication services.

Set Player Configuration Information

Due to varying compliance requirements across regions, such as age of majority and data protection laws, developers first need to set the player's user profile to determine the specific compliance process required for each player.Therefore, developers should prompt players to submit their regional information.

The service can call ComplianceInitWithParams and pass the game ID, OpenID, token, and channel ID as input parameters to set the player's user profile.Businesses can retrieve the age of majority in the player's region based on previously submitted compliance region configurations and player regional information in the user profile.Based on the player's actual age, the business can determine whether the player needs parental certification or real-name certification.

bool succ = INTLAPI.ComplianceInitWithParams(gameID, openID, token, channelID, langType, complianceResultJson);

Set Region and Player Age Status

The player's adult status is set differently depending on their country or region.

For countries or regions with country codes 840 (USA), 826 (UK), 170 (Colombia), and 356 (India), developers should prompt the player to enter their date of birth, and then call ComplianceMultiSetStatusWithAge to save region and date information.The player's adult status will be determined by their birthday and the legal age of majority in their region.

string openID = "123456789";
string token = "qwewerasd123456789qwewer";
string region = "413";
int age = 18;
int certificate_type = 1;
int channelID = 131;
bool isUid = false;
int uiType = 0;

INTLAPI.ComplianceMultiSetStatusWithAge(openID,token,region,age,certificate_type,"{}",channelID,isUid,uiType);

For mobile clients with country code 410 (South Korea), authentication must be done based on the player's age group. First, call ComplianceMultiSetStatusWithAge to save the player's region, and pass the corresponding age of 13, 16, or 20 for the age groups under 14 years old, 14–18 years old, and over 18 years old, respectively.The player's adult status will be determined by their specific age and the legal age of majority in their region.

string openID = "123456789";
string token = "qwewerasd123456789qwewer";
string region = "410";
int age = 18;
int certificate_type = 1;
int channelID = 131;
bool isUid = false;
int uiType = 0;

INTLAPI.ComplianceMultiSetStatusWithAge(openID,token,region,age,certificate_type,"{}",channelID,isUid,uiType);

For PC clients with country code 410 (South Korea), according to the Korean compliance requirements, real name authentication is needed. First, call ComplianceMultiSetStatusWithAdultCheckStatus to directly save the player's region, and the adult status should be passed as the default unknown state.Obtain the player's actual age through real name authentication. The player's adult status is determined by their actual age and the legal adulthood age of their region.

string openID = "123456789";
string token = "qwewerasd123456789qwewer";
string region = "410";
int adult_check_status = 0;
int compare_age = 18;
int certificate_type = 1;
int channelID = 131;
bool isUid = false;
int uiType = 0;

INTLAPI.ComplianceMultiSetStatusWithAdultCheckStatus(openID,token,region,adult_check_status,compare_age,certificate_type,"{}",channelID,isUid,uiType);

For other countries or regions, businesses can choose to prompt the player to self-confirm whether they are an adult, and then call ComplianceMultiSetStatusWithAdultCheckStatus to set their adult status directly based on the player's selection.

string openID = "123456789";
string token = "qwewerasd123456789qwewer";
string region = "410";
int adult_check_status = 1;
int compare_age = 18;
int certificate_type = 1;
int channelID = 131;
bool isUid = false;
int uiType = 0;

INTLAPI.ComplianceMultiSetStatusWithAdultCheckStatus(openID,token,region,adult_check_status,compare_age,certificate_type,"{}",channelID,isUid,uiType);

Query Player Configuration Information

The compliance process required varies by region.The service should call ComplianceQueryUserInfo to return the ComplianceResult data structure, which is used to confirm the compliance process applicable to the player.

For example, each country has its legal age of majority, and each game has a minimum age limit based on its rating.Businesses can call ComplianceQueryUserInfo to return the logged-in player's ComplianceResult.This information can be used to check if the player's country or region has any age restrictions for the game.If there are no age restrictions in the region, the player can proceed directly into the game.Otherwise, continue to verify whether the player is an adult according to the region's age of majority.If the player is under the game's rating age, exit the game immediately.If the player is of legal age, they can directly enter the game.If the player is a minor but above the game's rating age, they need to complete Parental Consent in the respective country or region to enter the game.

Parental Consent

For minor players, Player Network provides parents with three different methods to confirm their identity and grant parental consent.Certification methods can be determined by the certificate_type interface in AuthResult through the Unity SDK or Unreal Engine SDK.

Image: Parental Authentication

Self-Certification

For minor players choosing self-certification, businesses should prompt a confirmation window to ensure parents have agreed to allow minors to participate in the game.

If the parent agrees, call ComplianceSetParentCertificateStatus to set the parent certification status to received.After the parent agrees, the player's status will be updated. The game can call the ComplianceQueryUserInfo API to query the latest player status and determine whether they can enter the game.
If parental consent is denied, exit the game.

Email Certification

For underage players who choose to obtain parental certification by email, the service should prompt the player to enter the parent's name and email address, then call the ComplianceSendEmail API to send a certification email to the parent, allowing the parent to verify their identity and agree to the player's entry into the game.

If the parent agrees, LI PASS will update the player's status. The game can call the ComplianceQueryUserInfo API to query the latest player status and determine whether to initiate a new compliance process.
If consent is denied, LI PASS will call EnterGameFailed to set retCode == INTLErrorCode.CANCEL in INTLAuthResult, notifying the game of certification failure, and players will receive a refusal notification and wait time upon login.It is recommended that businesses take subsequent actions based on the platform used:

  • Mobile, PC (independent launcher): Reopen the login interface.
  • PC (Steam/Epic), console: Exit game.

For more information on error codes like INTLErrorCode.CANCEL, refer to the INTLErrorCode.cs file.

Credit Card Certification

For underage players who choose credit card authentication, the service should call ComplianceVerifyCreditCard to open the credit card verification webpage and continue certification.

If certification is successful, set the parental certification status to received and proceed directly into the game.
If certification fails, exit the game.

Sync LI PASS Compliance Status

caution

It is recommended that businesses adopt the standard LI PASS compliance process.If the business insists on developing its own compliance process but does not follow the steps mentioned below, issues may occur.Specifically, when a player attempts to bind their account to LI PASS without completing the LI PASS compliance process, their LI PASS compliance status may override the game compliance status. This can result in a conflict between LI PASS and the game compliance status, which must be resolved manually by the business.

It is worth noting that LI PASS compliance parameters may differ significantly from the game's compliance parameters.INTLAuthResult or FINTLAuthResult contains all authentication parameters, including those related to compliance status.For more information, contact the Player Network business interface.

If the business fully customizes the compliance process without using any SDK interfaces but still allows players to bind LI PASS, the following steps must be integrated into the customized compliance process.The following steps exemplify parental certification, similar logic can be added for other compliance processes.

After player login, check if their account is bound to LI PASS and if the LI PASS parental authentication process for minors is completed.In other words, has_bind_li is true, and the player is identified as an adult or as a minor who has completed the parental authentication process, i.e., parent_certificate_status is 1.These attributes can be found in the AuthResult under need_notify_rsp and get_status_rsp in the extra_json.

If has_bind_li is false, the player can proceed directly into the game's customized compliance process.However, if has_bind_li is true, indicating the account is bound to LI PASS, it is necessary to check the LI PASS majority status.For players identified as "minors," their parental certification status must be checked.

  • If parent_certificate_status is -1, parental certification was declined, and the player cannot bind LI PASS, continuing with the current third-party or guest account to play.
  • If parent_certificate_status is 1, parental certification is successful, and the player's account is successfully bound to LI PASS.
  • If parent_certificate_status is 0 or 10, it indicates the player has not started or completed the parental certification program.Therefore, the game needs to initiate or continue the parental certification program.First, call GetLIUidAndTokenForAdultCert to set LI PASS UID and token for the current login channel, then call ComplianceInitWithParams to save the player's game ID, OpenID, token, and channel ID.In the ComplianceInitWithParams interface, the channelID parameter needs to be set to either the third-party channel ID or 131 (LI PASS channel ID) depending on the situation.Before parental certification, the game needs to call ComplianceMultiSetStatusWithBirthday, ComplianceMultiSetStatusWithAdultCheckStatus, or ComplianceMultiSetStatusWithBirthday to save the player's region, birthday, or minor status based on the player's region.Once this information is saved, the game can proceed to the Parental Consent for the respective region after receiving the callback.

Image: Sync LI PASS Compliance Status

Configure Age Authentication Service for Web Pages

Step 1: Introduce SDK

caution

During the project joint debugging phase, introduce the SDK debugging version package, which is only for integration testing.For project launch, introduce the SDK formal version package.

Currently, npm package method and CDN method are supported.

$ npm install @intlsdk/compliance-api

Step 2: Use SDK

caution

During integration testing, set env to the test environment https://test.intlgame.com; when launching the game, set env to the corresponding production environment.

const complianceApi = new IntlgameComplianceApi({
env: "test",
});
ParametersTypeDescriptionNote
envStringSDK Environment
For more information, see Obtaining Deployment Cluster Information.
Mandatory

Step 3: Implement age verification feature

Set player login state

Since the adulthood age varies by region, the service should first prompt the player to enter their regional information, then call the setUserProfile API to set this information.

Save player status

To verify the player's adult status, the service should prompt the player to enter their date of birth, then call the commitBirthday API to save this information.The saved information will be used to calculate the player's actual age and compare it with the age of majority in the player's region to determine whether the player is considered an adult.

Query player status

Each country has its own legal age of majority, and each game has a minimum age restriction corresponding to its rating.Call queryUserStatus and use the returned information to verify whether the player's country/region has age restrictions for playing games.If there is no age restriction in the country/region, the player can enter the game directly.Otherwise, the game needs to verify whether the player is an adult or a minor based on the legal age of majority in the player’s country/region.If the player has reached or exceeded the legal age of majority, they can enter the game.If the player is under the legal age, the game must verify parental consent to determine if the player can enter the game.