1e41f4b71Sopenharmony_ci# @ohos.userIAM.faceAuth (Facial Authentication) (System API)
2e41f4b71Sopenharmony_ci
3e41f4b71Sopenharmony_ciThe **userIAM.faceAuth** module provides APIs for face enrollment.
4e41f4b71Sopenharmony_ci
5e41f4b71Sopenharmony_ci> **NOTE**
6e41f4b71Sopenharmony_ci>
7e41f4b71Sopenharmony_ci> - The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8e41f4b71Sopenharmony_ci>
9e41f4b71Sopenharmony_ci> - The APIs provided by this module are system APIs.
10e41f4b71Sopenharmony_ci
11e41f4b71Sopenharmony_ci## Modules to Import
12e41f4b71Sopenharmony_ci
13e41f4b71Sopenharmony_ci```ts
14e41f4b71Sopenharmony_ciimport { faceAuth } from '@kit.UserAuthenticationKit';
15e41f4b71Sopenharmony_ci```
16e41f4b71Sopenharmony_ci
17e41f4b71Sopenharmony_ci## FaceAuthManager
18e41f4b71Sopenharmony_ci
19e41f4b71Sopenharmony_ciProvides APIs for facial authentication management.
20e41f4b71Sopenharmony_ci
21e41f4b71Sopenharmony_ci### constructor
22e41f4b71Sopenharmony_ci
23e41f4b71Sopenharmony_ciconstructor()
24e41f4b71Sopenharmony_ci
25e41f4b71Sopenharmony_ciA constructor used to create a **FaceAuthManager** object.
26e41f4b71Sopenharmony_ci
27e41f4b71Sopenharmony_ci**System capability**: SystemCapability.UserIAM.UserAuth.FaceAuth
28e41f4b71Sopenharmony_ci
29e41f4b71Sopenharmony_ci**System API**: This is a system API.
30e41f4b71Sopenharmony_ci
31e41f4b71Sopenharmony_ci**Return value**
32e41f4b71Sopenharmony_ci
33e41f4b71Sopenharmony_ci| Type                  | Description                |
34e41f4b71Sopenharmony_ci| ---------------------- | -------------------- |
35e41f4b71Sopenharmony_ci| [FaceAuthManager](#faceauthmanager) | **FaceAuthManager** object.|
36e41f4b71Sopenharmony_ci
37e41f4b71Sopenharmony_ci**Example**
38e41f4b71Sopenharmony_ci
39e41f4b71Sopenharmony_ci```ts
40e41f4b71Sopenharmony_ciimport { faceAuth } from '@kit.UserAuthenticationKit';
41e41f4b71Sopenharmony_ci
42e41f4b71Sopenharmony_cilet faceAuthManager = new faceAuth.FaceAuthManager();
43e41f4b71Sopenharmony_ci```
44e41f4b71Sopenharmony_ci
45e41f4b71Sopenharmony_ci### setSurfaceId
46e41f4b71Sopenharmony_ci
47e41f4b71Sopenharmony_cisetSurfaceId(surfaceId: string): void;
48e41f4b71Sopenharmony_ci
49e41f4b71Sopenharmony_ciSets an [XComponent surface ID](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid) for the face preview page in the face enrollment process. This API must be used with [addCredential](../apis-basic-services-kit/js-apis-osAccount-sys.md#addcredential8).
50e41f4b71Sopenharmony_ci
51e41f4b71Sopenharmony_ci**System capability**: SystemCapability.UserIAM.UserAuth.FaceAuth
52e41f4b71Sopenharmony_ci
53e41f4b71Sopenharmony_ci**System API**: This is a system API.
54e41f4b71Sopenharmony_ci
55e41f4b71Sopenharmony_ci**Required permissions**: ohos.permission.MANAGE_USER_IDM
56e41f4b71Sopenharmony_ci
57e41f4b71Sopenharmony_ci**Parameters**
58e41f4b71Sopenharmony_ci
59e41f4b71Sopenharmony_ci| Name        | Type                              | Mandatory | Description                      |
60e41f4b71Sopenharmony_ci| -------------- | ---------------------------------- | ---- | -------------------------- |
61e41f4b71Sopenharmony_ci| surfaceId       | string     | Yes  | ID of the surface held by [XComponent](../apis-arkui/arkui-ts/ts-basic-components-xcomponent.md#getxcomponentsurfaceid). |
62e41f4b71Sopenharmony_ci
63e41f4b71Sopenharmony_ciFor details about the error codes, see [User Authentication Error Codes](errorcode-useriam.md).
64e41f4b71Sopenharmony_ci
65e41f4b71Sopenharmony_ci**Error codes**
66e41f4b71Sopenharmony_ci
67e41f4b71Sopenharmony_ci| ID | Error Message |
68e41f4b71Sopenharmony_ci| -------- | ------- |
69e41f4b71Sopenharmony_ci| 201 | Permission verification failed. |
70e41f4b71Sopenharmony_ci| 202 | The caller is not a system application. |
71e41f4b71Sopenharmony_ci| 12700001 | Operation failed. |
72e41f4b71Sopenharmony_ci
73e41f4b71Sopenharmony_ci**Example**
74e41f4b71Sopenharmony_ci
75e41f4b71Sopenharmony_ci```ts
76e41f4b71Sopenharmony_ciimport { faceAuth } from '@kit.UserAuthenticationKit';
77e41f4b71Sopenharmony_ci
78e41f4b71Sopenharmony_ci// The surfaceId is obtained from the XComponent control. The surfaceId here is only an example.
79e41f4b71Sopenharmony_cilet surfaceId = '123456';
80e41f4b71Sopenharmony_cilet manager = new faceAuth.FaceAuthManager();
81e41f4b71Sopenharmony_citry {
82e41f4b71Sopenharmony_ci  manager.setSurfaceId(surfaceId);
83e41f4b71Sopenharmony_ci  console.info('set surface id success');
84e41f4b71Sopenharmony_ci} catch (error) {
85e41f4b71Sopenharmony_ci  console.error('set surface id failed, error = ' + error);
86e41f4b71Sopenharmony_ci}
87e41f4b71Sopenharmony_ci```
88