# Enrolment Flow

In order to use our SDK you need an authorization token. Please check our API "[Authorisation](/docs/kyc/uqudo-api/authorisation.md)" in this regard.

Add the following code at the start-up of your application to initialise the SDK:

```javascript
import * as UqudoSDK from 'uqudosdk-capacitor';

...
//On App startup
new UqudoSDK.UqudoPlugin().init();
...
```

For setting the locale of the application you can use the below method:

```javascript
...
new UqudoSDK.UqudoPlugin().setLocale(<your locale eg. en, ar etc.>);
...
```

To check if a document supports enrollment, reading and facial recognition and the enrollment flow you can use the below methods:

```javascript
...
let isEnrollmentSupported = await new UqudoSDK.UqudoPlugin().isEnrollmentSupported(DocumentType.UAE_ID)
let isReadingSupported = await new UqudoSDK.UqudoPlugin().isReadingSupported(DocumentType.UAE_ID)
let isFacialRecognitionSupported = await new UqudoSDK.UqudoPlugin().isFacialRecognitionSupported(DocumentType.UAE_ID)
...
```

Below, you can find an example on how to initiate the enrolment process for a passport enabling the reading through NFC and facial recognition:

```javascript
var passport = new UqudoSDK.DocumentBuilder()
			.setDocumentType(UqudoSDK.DocumentType.PASSPORT)
			.enableReading(new UqudoSDK.ReadingConfigurationBuilder()
			   .forceReadingIfSupported(true)
			   .build()
			)
			.build();
var enrollment = new UqudoSDK.EnrollmentBuilder()
			.setToken(token)
			.enableFacialRecognition()
			.add(passport)
                        .setAppearanceMode(AppearanceMode.SYSTEM)
			.build();
try {
   const plugin = new UqudoSDK.UqudoPlugin();
   const result = await plugin.enroll(enrollment);
   console.log(result.value);
} catch (error) {
   console.log(JSON.parse(error.code));
   //example: {"code":"USER_CANCEL","message":"User canceled the Enrollment process","task":"SCAN"}
}
```

In order to evaluate all the possible options please refer to paragraph [Enrolment Flow](/docs/kyc/uqudo-sdk/integration/android/enrolment-flow.md). The TS interface is the porting of the JAVA one. In addition, you can check index.d.ts inside the plugin ./dist folder or directly from your IDE.

If **successful**, the response is a JSON Web Signature (JWS). Please refer to section "[SDK result](/docs/kyc/uqudo-sdk/sdk-result.md)" for further details.

In case of a **failure**, the callback returns the following object:

<table><thead><tr><th width="122">Property</th><th width="83">Type</th><th width="99">Optional</th><th width="96">Default</th><th>Description</th></tr></thead><tbody><tr><td>code</td><td>String</td><td>No</td><td>None</td><td>See <a href="/pages/N3LvvSBJs3ZtSPx6Czsf#handling-the-result">Handling the Result</a></td></tr><tr><td>message</td><td>String</td><td>Yes</td><td>null</td><td>Description of the error if any</td></tr><tr><td>task</td><td>String</td><td>Yes</td><td>null</td><td>See <a href="/pages/N3LvvSBJs3ZtSPx6Czsf#handling-the-result">Handling the Result</a></td></tr></tbody></table>

Add the following code in your Javascript/Typescript to enable the tracing mechanism. Please refer to section [Analytics](/docs/kyc/uqudo-sdk/integration/android/analytics.md) for details.

```kotlin
window.addEventListener("TraceEvent", function (msg) {
     console.log("Trace Event: " + JSON.stringify(msg));
   });
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.uqudo.com/docs/kyc/uqudo-sdk/integration/capacitor/enrolment-flow.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
