What is Account Linking
Account linking is the process by which the end user links his game account with his FACEIT account. This operation is performed by the end user through the FACEIT frontend (website, desktop client or mobile app).

The account linking phase is mandatory for each user who wants to join a competition on FACEIT: it will allow to securely obtain the identifier of the player inside the game, used in the “match configuration” process (which happens between FACEIT and the game in the backend) when sending factions and players to the game.
Glossary
The identifier of the user inside the game is also called gameId. The nickname (or any other human readable identifier) of the player inside the game is also called gameName. When we refer to the game account linked to a FACEIT account, we also refer to it as game profile. In a similar way, when we talk about platforms (Steam, Epic, PSN, Xbox, Riot, Supercell etc) we can have platformId, platformName and platform profile.
Linked game accounts
Once a user links his game account, the account can’t be unlinked from the frontend: only FACEIT support can perform this operation. This is not due to a technical limitation, it’s a product decision which aims to avoid abuses (bans, reputation scores, alts etc). We can’t have more than one FACEIT account linked to a specific game account. Moreover, a FACEIT account can link only one game account.
Security and platforms
The goal of the account linking phase is to obtain the identifier in a secure and verified way: we want to avoid players inputting their identifiers without checking the real account ownership. With no real ownership check, a user could impersonate another player on FACEIT (without being able to join a match on the game) or simply “grab” someone else’s gameId (the real owner wouldn’t then be able to link it since it is already linked by a malicious user).
To do so, we usually ask to link a platform first (e.g. Steam), and then we register the game checking that the platform profile owns the title it is trying to link. The platform linking process is performed using an OAuth2.0 flow provided by the platform itself. Using this approach, the user won’t input his credentials on FACEIT, but they will login and approve the FACEIT OAuth client within the platform domain (loaded inside a popup window). FACEIT will retrieve and store only the information strictly needed for the game registration (user identifier, nickname, experience points, etc).

Automatic and custom endpoints
Once the platform is linked, the title ownership check can be “automatic” (some platforms are providing APIs to check title ownerships) or “custom”: in the latter case the game developer should implement a secure endpoint that FACEIT will call in order to check the game ownership and get some key information about the user. While the automatic approach allows to have the ownership check “out of the box” without any development required from the game developer, the custom approach allows to retrieve more information about the player inside the game, like stats, ranks, experience etc. This information is useful when it comes to creating an onboarding elo, the initial value that we assign to newly registered accounts.