> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PFAuthenticationLoginWithCustomIDAsync

> Signs the user in using a custom unique identifier generated by the title, returning a session identifier that can subsequently be used for API calls which.

Signs the user in using a custom unique identifier generated by the title, returning a session identifier that can subsequently be used for API calls which require an authenticated user

## Syntax

```cpp theme={null}
HRESULT PFAuthenticationLoginWithCustomIDAsync(  
    PFServiceConfigHandle serviceConfigHandle,  
    const PFAuthenticationLoginWithCustomIDRequest* request,  
    XAsyncBlock* async  
)  
```

### Parameters

**`serviceConfigHandle`**   PFServiceConfigHandle

PFServiceConfigHandle returned from PFServiceConfigCreateHandle call.

**`request`**   [PFAuthenticationLoginWithCustomIDRequest\*](/services/playfab/api-references/c/pfauthenticationtypes/structs/pfauthenticationloginwithcustomidrequest)

Populated request object.

**`async`**   XAsyncBlock\*<br />*Inout*

XAsyncBlock for the async operation.

### Return value

Type: HRESULT

Result code for this API operation.

## Remarks

This API is available on all platforms. It is highly recommended that developers ensure that it is extremely unlikely that a customer could generate an ID which is already in use by another customer. If this is the first time a user has signed in with the Custom ID and CreateAccount is set to true, a new PlayFab account will be created and linked to the Custom ID. In this case, no email or username will be associated with the PlayFab account. Otherwise, if no PlayFab account is linked to the Custom ID, an error indicating this will be returned, so that the title can guide the user through creation of a PlayFab account. See also ClientLinkCustomIDAsync, ClientUnlinkCustomIDAsync. When the asynchronous task is complete, call [PFAuthenticationLoginWithCustomIDGetResult](/services/playfab/api-references/c/pfauthentication/functions/pfauthenticationloginwithcustomidgetresult) to get the result.

## Requirements

**Header:** PFAuthentication.h

## See also

[PFAuthentication members](/services/playfab/api-references/c/pfauthentication/pfauthentication_members)


## Related topics

- [PFAuthenticationLoginWithCustomIDGetResult](/services/playfab/api-references/c/pfauthentication/functions/pfauthenticationloginwithcustomidgetresult.md)
- [PFAuthenticationLoginWithCustomIDGetResultSize](/services/playfab/api-references/c/pfauthentication/functions/pfauthenticationloginwithcustomidgetresultsize.md)
- [Quickstart Android](/services/playfab/sdks/c/quickstart-android.md)
- [Quickstart Linux](/services/playfab/sdks/c/quickstart-linux.md)
- [Services C API overview - PFAuthentication.h](/services/playfab/api-references/c/pfauthentication/pfauthentication_members.md)
