### Install and Run Demo Application Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9 Commands to install dependencies and start the local demo server. ```Shell 1npm i --verbose ``` ```Shell 1npm run start ``` -------------------------------- ### Initialize and Start Face Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/face-integration-guide Basic setup sequence for configuring the capture view with a use case and starting the process. ```Swift let environmentInfo = // select type of authorization let delegates = // create delegates let useCase = //create use case let uiSettings = // optionally create ui settings, could be nil self.captureView.setup(with: useCase, uiSettings: uiSettings) self.captureView.start() ``` -------------------------------- ### Install Pods Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/document-integration-guide Execute the installation command to resolve and download dependencies. ```Bash pod install ``` -------------------------------- ### Handle capture preparation Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Handles initial capture delay and setup before starting the capture process. ```Swift public func handleCapturePrepared(delay: Int = 3, timeToUnlockHandler: (()->(Int))? = nil, completionHandler: (()->())? = nil) ``` -------------------------------- ### Start Capture Session Usage Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Example of starting a document capture session using a previously obtained video stream. ```JavaScript // Init a doc capture client const docCaptureClient = await DocserverVideo.initDocCaptureClient(docCaptureOptions); // Get a videoStream const videoStream = await DocserverVideo.getDeviceStream(); // start capture session docCaptureClient.start({ stream: videoStream }); ``` -------------------------------- ### Setting Up and Starting Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/finger-integration-guide Configuring the capture view with a use case and optional UI settings before starting the process. ```Swift let useCase = // create use case let uiSettings = // optionally create ui settings self.captureView.setup(with useCase: useCase, uiSettings: uiSettings) self.captureView.start() ``` -------------------------------- ### Start NFC Tutorial Animation Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Starts the tutorial animation in lottie format. ```Swift public func start(animation: Data, completion: (()->())? = nil ) ``` -------------------------------- ### Start Sample Application Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Launch the sample application. ```Shell npm run start ``` -------------------------------- ### Manual Capture Usage Examples Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Demonstrates starting a manual capture without retries and with multiple retry attempts. ```JavaScript 1const docCaptureClient = await DocserverVideo.initDocCaptureClient(docCaptureOptions); 2 3// Capture of the front side 4await docCaptureClient.startManualCapture({ isRetry: false }) 5// Wait for document image retrieval 6await docCaptureClient.pushImage(documentImage) 7 8// Capture of the back side 9await docCaptureClient.startManualCapture({ isRetry: false }) 10// Wait for document image retrieval 11await docCaptureClient.pushImage(documentImage) ``` ```JavaScript 1// Init a doc capture client 2const docCaptureClient = await DocserverVideo.initDocCaptureClient(docCaptureOptions); 3 4// Capture of the front side 5await docCaptureClient.startManualCapture({ isRetry: false }) 6// Wait for document image retrieval 7await docCaptureClient.pushImage(documentImage) 8 9// Capture of the front side again 10await docCaptureClient.startManualCapture({ isRetry: true }) 11// Wait for document image retrieval 12await docCaptureClient.pushImage(documentImage) 13 14// Capture of the back side 15await docCaptureClient.startManualCapture({ isRetry: false }) 16// Wait for document image retrieval 17await docCaptureClient.pushImage(documentImage) ``` -------------------------------- ### start() Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Prepares the view to perform a challenge. ```APIDOC ## func start() ### Description Prepares the view to perform the challenge. This method should be called before any other interaction with the view. ``` -------------------------------- ### Handle Preparation Started Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Call this method to handle the start of capture preparation from the SDK. ```Swift 1public func handlePreparationStarted() ``` -------------------------------- ### Start Demo Application Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Launch the demo application server. ```Shell 1npm run start ``` -------------------------------- ### Start Scene Controller with Callbacks Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/extensions Use these snippets to start the scene controller and capture process using Java callbacks within the PreviewStatusListener. ```Java captureHandler.startPreview(new PreviewStatusListener() { @Override public void onStarted() { try { sceneController.start(captureHandler) { captureHandler.startCapture() } } catch (MSCException e) { // handle exception } } @Override public void onError(PreviewError error) { // Preview initialization failed and can not be started } }) ``` ```Java captureHandler.startPreview(new PreviewStatusListener() { @Override public void onStarted() { try { sceneController.start() { captureHandler.startCapture() } } catch (MSCException e) { // handle exception } } @Override public void onError(PreviewError error) { // Preview initialization failed and can not be started } }) ``` -------------------------------- ### Start Face Capture View Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/face-integration-guide Configure and start the capture view using the initialized use case and UI settings. ```Swift self.captureView.setup(with: useCase, uiSettings: uiSettings) self.captureView.start() ``` -------------------------------- ### FaceCaptureView.start() Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/capturesdk-api-reference Starts the face capture process. ```APIDOC ## func start() ### Description Starts the face capture process. ### Signature `func start()` ``` -------------------------------- ### Get Video Stream Example Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web Demonstrates requesting a video stream from a default camera and assigning it to a video element. Implement a catch mechanism to handle cases where the user denies camera access. ```JavaScript // Requests video stream from the default camera device // HTML Code: const videoStream = await BioserverVideo.getMediaStream({videoId: 'user-video'}); // Assign stream to srcObject (mandatory) videoElement.srcObject = videoStream; ``` -------------------------------- ### Install Dependencies Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Install project dependencies using npm. ```Shell npm install --verbose ``` -------------------------------- ### Start capture view Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Prepares the view for the challenge; call this before using the view. ```Swift public func start() ``` -------------------------------- ### Check Permissions on Start Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x Logic to verify permissions before proceeding with license fetching. ```Kotlin suspend fun onStart() { if (permission.permissionsGranted()) { fetchLicence() } else { permission.requestPermissions() } } ``` -------------------------------- ### Start Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x Initiate the capture process. ```Objective-C [BIOSDK createFaceCaptureHandlerWithOptions:options withCompletionHandler:^(id captureHandler, NSError* error) { if (!captureHandler || error) { NSLog(@"Cannot create the capture handler, error: %@", error); return; } self.captureHandler = captureHandler; self.captureHandler.delegate = self; self.captureHandler.preview = self.preview; [self.captureHandler startCaptureWithCompletionHandlerError:nil]; }]; ``` -------------------------------- ### SdkInfo JSON Example Source: https://idplatform.idemia.com/identity-proofing/develop/biometric-services/3_9_0 Contains versioning information for the native SDK. ```JSON { "sdkVersion": "1.0.0" } ``` -------------------------------- ### Start Scene Controller with Coroutines Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/extensions Use these snippets to start the scene controller and capture process asynchronously using Kotlin coroutines. ```Kotlin CoroutineScope(Dispatchers.Main).launch { sceneController.start(captureHandler) captureHandler.startCapture() } ``` ```Kotlin CoroutineScope(Dispatchers.Main).launch { sceneController.start() captureHandler.startCapture() } ``` -------------------------------- ### ChallengeStartPoint Protocol Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Protocol for implementing a custom starting point element. ```Swift public protocol ChallengeStartPoint: ChallangeElementViewSource ``` -------------------------------- ### Start face capture in Swift Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/capturesdk-api-reference Initiates the face capture process. ```Swift func start() ``` -------------------------------- ### startCapture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web Starts the face capture process by establishing peer-to-peer communication with the server. ```APIDOC ## startCapture ### Description Establishes peer-to-peer communication between the browser and the capture server to begin the capture process. Users should wait for the onClientInitEnd event before displaying the video stream. ``` -------------------------------- ### setUp(useCase, lifecycle, uiSettings) Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/face-integration-guide Initializes the capture view with the specified use case, lifecycle, and UI settings. ```APIDOC ## setUp(useCase, lifecycle, uiSettings) ### Description Initializes the capture view. If a lifecycle is provided, the SDK manages the flow automatically; otherwise, the integrator must manually call start(), cancel(), and destroy(). ### Parameters - **useCase** (UseCase) - Required - Provides the type of capture and data access. - **lifecycle** (Lifecycle) - Optional - Android lifecycle component for automatic flow management. - **uiSettings** (UISettings) - Optional - Configuration for UI-Extensions library. ``` -------------------------------- ### Access TutorialProvider Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Retrieves the TutorialProvider instance, falling back to local configuration if SDKExperience is not set. ```Swift public var tutorialProvider: TutorialProvider { get } ``` -------------------------------- ### Start Document Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/document-integration-guide Initiate the capture process once the handler is fully configured. ```Objective-C [BIOSDK createDocumentCaptureHandlerWithOptions:options withCompletionHandler:^(id captureHandler, NSError* error) { self.captureHandler = captureHandler; self.captureHandler.delegate = self; self.captureHandler.preview = self.preview; [self.captureHandler startCaptureWithCompletionHandlerError:nil]; }]; ``` -------------------------------- ### Get Device Stream Usage Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Examples for requesting a video stream from the default camera device, with and without an error callback. ```JavaScript // be sure to initialize the client first const docCaptureClient = await DocserverVideo.initDocCaptureClient(docCaptureOptions); // request the video stream of the default camera device const videoStream = await DocserverVideo.getDeviceStream(); ``` ```JavaScript // be sure to initialize the client first const docCaptureClient = await DocserverVideo.initDocCaptureClient(docCaptureOptions); // request video stream of the default camera device with error callback handler const videoStream = await DocserverVideo.getDeviceStream({errorFn: (err) => {console.debug("get User Media Stream failed", err);}}) ``` -------------------------------- ### Retrieve Replay Liveness Metadata Response Source: https://idplatform.idemia.com/identity-proofing/develop/biometric-services/3_9_0/release-notes Example JSON response structure for the GET /bioserver-app/v3/bio-sessions/{bioSessionId}/replay-liveness-metadata endpoint. ```json { "signature": "eyJhbGciOiJSUzI1NiJ9..ciOeyJhiJSmRseU5hbWogIClbmRseU5hbWUoroAE_oxDF_ZtH-E", "status": "SUCCESS", "image":"F401MTb6QMNy8VFDMYDJ0dBQZepKDeHbTTCXRGaL+gFOCAomRITeZeJoQG3+CU2YNT2JXVzVgcZWD5LQNASqJA==", "landmarks": { "eyes": { "x1": 581.0, "y1": 270.0, "x2": 695.0, "y2": 266.0 }, "box": { "x": 465, "y": 149, "width": 348, "height": 348 } } } ``` -------------------------------- ### Configure Tutorial Navigation Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x Handles tutorial settings and challenge mode selection to determine the starting destination of the tutorial flow. ```Kotlin //This part handles tutorial settings choice override fun configureTutorial() { if (!appSettings.showTutorial) { tutorialView.setStartingDestination(R.id.settingsActivity) } else { chooseChallengeMode() } } //if you checked tutorial field in settings then the second condition handles challenge mode. private fun chooseChallengeMode() { when (appSettings.mode) { ChallengeMode.CR2D -> { tutorialView.setStartingDestination( R.id.firstStepFragment, bundleOf(TutorialActivity.USE_ILLUMINATION to appSettings.useIllumination) ) } ChallengeMode.SLAM -> tutorialView.setStartingDestination(R.id.SLAMStepFragment) } } ``` -------------------------------- ### Start Preview and Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/document-integration-guide Asynchronously initializes the camera preview and begins the capture process. ```Kotlin 1coroutineScope.launch { 2 captureHandler.startPreview() 3 captureHandler.startCapture() 4} ``` -------------------------------- ### TutorialView Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/extensions Component for displaying tutorials using Lottie animations. ```APIDOC ## TutorialView ### Methods - **start(animation: ByteArray, listener: TutorialListener?)** - Sets and starts the animation in Lottie format. ### TutorialListener - **onAnimationComplete()** - Callback triggered when the animation finishes. ``` -------------------------------- ### Start Point View Properties Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Configures the visual appearance of the start point. ```Swift 1@objc dynamic public var fillColor: UIColor = .defaultStartPointFillColor ``` ```Swift 1@objc dynamic public var strokeColor: UIColor = .defaultStartPointStrokeColor ``` ```Swift 1@objc dynamic public var pointSize: CGSize = CGSize(width: 40, height: 40) ``` -------------------------------- ### Start a live capture video session (Web SDK) Source: https://idplatform.idemia.com/identity-proofing/develop/identity-proofing-verification/api-docs/1/liveness-detection Initiates a liveness session for browser-based clients using the webSDK mode. ```Shell curl -X POST \ https://[URL_MAIN_PART]/gips/v1/identities/[IDENTITY_ID]/attributes/portrait/capture-session?mode=webSDK \ -H 'Content-Type: application/json' \ -H 'apikey: [APIKEY_VALUE]' ``` -------------------------------- ### Install CocoaPods dependencies Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x Use these terminal commands to install the necessary Ruby gems. ```Shell gem install cocoapods gem install cocoapods-art ``` -------------------------------- ### Start Fingerprint Scanning Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Prepares the view for scanning; call immediately after starting the handler. ```Swift public func start(with settings: DistanceIndicatorSettings?, duration: TimeInterval) ``` ```Swift BIOSDK.createFingerCaptureHandler(with: options) { [weak self] bioCaptureHandler, error in /// some implementation self.captureHandler?.startCapture() //start captureView from UIExtensions with settings. let range = DistanceBarRange(from: captureHandler.captureDistanceRange()) let settings = DistanceIndicatorSettings(with: range) self.captureView.start(with: settings, duration: captureHandler.fullCaptureTime()) } ``` -------------------------------- ### Install CocoaPods Artifactory Plugin Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/document-integration-guide Install the cocoapods-art plugin to manage private repository dependencies. ```Bash gem install cocoapods-art ``` -------------------------------- ### Replay Status Response Examples Source: https://idplatform.idemia.com/identity-proofing/develop/biometric-services/3_9_0 Example JSON responses for different liveness processing states. ```JSON { "signature": "eyJhbGciOiJSUzI1NiJ9..ciOeyJhiJSmRseU5hbWogIClbmRseU5hbWUoroAE_oxDF_ZtH-E", "id": "c672be72-89c1-4035-b0b6-9e9afa6bc85b", "status": "IN_PROGRESS" } ``` ```JSON { "signature": "eyJhbGciOiJSUzI1NiJ9..ciOeyJhiJSmRseU5hbWogIClbmRseU5hbWUoroAE_oxDF_ZtH-E", "id": "c672be72-89c1-4035-b0b6-9e9afa6bc85b", "status": "SUCCESS", "image": "F401MTb6QMNy8VFDMYDJ0dBQZepKDeHbTTCXRGaL+gFOCAomRITeZeJoQG3+CU2YNT2JXVzVgcZWD5LQNASqJA==", "landmarks": { "eyes": { "x1": 581.0, "y1": 270.0, "x2": 695.0, "y2": 266.0 }, "box": { "x": 465, "y": 149, "width": 348, "height": 441 } } } ``` ```JSON { "signature": "eyJhbGciOiJSUzI1NiJ9..ciOeyJhiJSmRseU5hbWogIClbmRseU5hbWUoroAE_oxDF_ZtH-E", "id": "c672be72-89c1-4035-b0b6-9e9afa6bc85b", "status": "SPOOF" } ``` ```JSON { "signature": "eyJhbGciOiJSUzI1NiJ9..ciOeyJhiJSmRseU5hbWogIClbmRseU5hbWUoroAE_oxDF_ZtH-E", "id": "c672be72-89c1-4035-b0b6-9e9afa6bc85b", "status": "TIMEOUT", "diagnostic": "Too much brightness", "diagnosticCode": "TOO_BRIGHT" } ``` -------------------------------- ### Customize Starting Point Appearance Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Adjust the fill color, stroke color, and size of the starting point view. ```Swift JoinThePoints3StartPointView.appearance().fillColor = .blue ``` ```Swift JoinThePoints3StartPointView.appearance().strokeColor = .green ``` ```Swift JoinThePoints3StartPointView.appearance().pointSize = CGSize(width: 60, height: 60) ``` -------------------------------- ### FaceCaptureView.setup(with:uiSettings:) Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/capturesdk-api-reference Configures the face capture view with a specific use case and UI settings. ```APIDOC ## func setup(with:uiSettings:) ### Description Configures required settings for face capture. ### Signature `func setup(with: FaceCaptureUseCase, uiSettings: UISettings?)` ### Parameters - **with** (FaceCaptureUseCase) - Required - Configured face capture use case. - **uiSettings** (UISettings?) - Optional - Configured UI settings for UIExtensions view. ``` -------------------------------- ### Configure Demo Server Settings Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Update the server configuration file with the required API keys and URLs from the Experience Portal. ```JavaScript 1// Remote server to call 2DOCSERVER_VIDEO_URL: '', 3WEB_SDK_LIVENESS_ID_DOC: '' ``` ```JavaScript 1// ID&V Demo integration 2GIPS_URL: '/gips', 3GIPS_RS_API_Key: '', 4IDPROOFING: false // Enable ID&V Demo integration : true or false ``` -------------------------------- ### Liveness Session Response Example Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9 Example of a successful HTTP 200 response body containing session metadata. ```HTTP HTTP/1.1 200 { "id": "6217fd4f-9710-49f4-88fd-188cd082927d", "correlationId": "postman-video-correlationId", "evidenceId": "postman-video-evidenceId", "callbackURL": "https://localhost/demo-server/liveness-result-callback", "ttlSeconds": 1800, "imageStorageEnabled": true, "livenessMode": "LIVENESS_PASSIVE", "numberOfChallenge": 2, "securityLevel": "HIGH", "created": "2025-06-20T06:32:21.326Z", "expires": "2025-06-20T07:02:21.326Z" } ``` -------------------------------- ### Submit Portrait JSON Example Source: https://idplatform.idemia.com/identity-proofing/develop/identity-proofing-verification/postman Example JSON structure for submitting portrait information including source and metadata. ```JSON { "source": "LIVE_CAPTURE_IMAGE", "metadata": [{ "key": "KEY1", "value": "value1" },{ "key": "KEY2", "value": "value2" }] } ``` -------------------------------- ### Configure Loading Screens with DSL Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/extensions Example of using the Kotlin DSL to configure loading screen settings with custom resource IDs and colors. ```Kotlin val loadingScreensSettings = loadingScreensSettings { preparingSessionView { enabled = true titleTextId = R.string.preparing_session_title descriptionTextId = R.string.preparing_session_description progressColor = Colors.idemia_blue.toColorInt() } preparingForUploadView { enabled = true titleTextId = R.string.preparing_for_upload_title descriptionTextId = R.string.preparing_for_upload_description progressColor = Colors.idemia_blue.toColorInt() } livenessProcessingView { enabled = true titleTextId = R.string.liveness_processing_title descriptionTextId = R.string.liveness_processing_description progressColor = Colors.idemia_blue.toColorInt() } } ``` -------------------------------- ### Identity Status Response Example Source: https://idplatform.idemia.com/identity-proofing/develop/identity-proofing-verification/api-docs/1/liveness-detection Example JSON response showing the identity status and associated evidence references. ```JSON { "globalStatus": { "id": "gips-c386c92e-fd7a-4024-bb41-b0f2aab7540c", "status": "EXPECTING_INPUT", "levelOfAssurance": "LOA1", "creationDateTime": "2022-12-20T14:46:27.2675744", "evaluationDateTime": "2022-12-20T14:55:24.927849", "nameReferenceEvidenceId": "a0416ffd-1ecf-4e0c-910d-b4192e963011", "portraitReferenceEvidenceId": "a0416ffd-1ecf-4e0c-910d-b4192e963011", "upgradePaths": {} }, "consents": [ { ``` -------------------------------- ### CaptureRule Usage Example Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Example of a CaptureRule object containing rule status and detailed MRZ extraction results. ```JSON { "name": "MRZ", "status": "DONE", "result": { "rawData": "[\"IDFRAX4RTBPFW46<<<<<<<<<<<<<<<\",\"9007138F3002119FRA<<<<<<<<<<<6\",\"MARTIN< Void) - Required - Callback invoked when the capture process starts. ``` -------------------------------- ### BioserverVideo.initFaceCaptureClient(options) Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9 Initializes the face capture client with the provided configuration options and callback functions. ```APIDOC ## BioserverVideo.initFaceCaptureClient(options) ### Description Initializes the face capture client. This method returns a promise that resolves to the client instance. ### Parameters - **options** (Object) - Required - Configuration object containing: - **wspath** (string) - The engine.io path. - **bioserverVideoUrl** (string) - The base URL for the video server. - **bioSessionId** (string) - The session ID obtained from the backend. - **onClientInitEnd** (Function) - Callback triggered when initialization ends. - **trackingFn** (Function) - Callback for tracking information. - **errorFn** (Function) - Callback for handling errors. - **showChallengeInstruction** (Function) - Callback for challenge instructions. - **showChallengeResult** (Function) - Callback for challenge results. ``` -------------------------------- ### startCaptureWithCompletionHandler Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/document-integration-guide Starts the biometric capture process. ```APIDOC ## [Objective-C] startCaptureWithCompletionHandler ### Description Starts the biometric capture process. ### Parameters - **completionHandler** (void (^)(NSError *)) - Required - Object with error code if an error occurred, else nil. ``` -------------------------------- ### Initialize Face Capture Client Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web Initializes the face capture client with the provided configuration. Avoid using optional parameters for optimal settings. ```JavaScript BioserverVideo.initFaceCaptureClient(options) ``` -------------------------------- ### Configure Capture Handler and Delegate Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Setup the capture handler, preview view, and prepare the capture process within the view controller. ```Swift // STEP 4. Set created capture handler self.captureHandler = captureHandler // STEP 5. Set the delegate self.captureHandler?.delegate = self // STEP 6. Set the preview self.captureHandler?.preview = self.captureView.previewView // STEP 7A. Pass information needed before starting the capture to UIExtension. self.captureView.handleCapturePrepared(timeToUnlockHandler: { [weak self] () -> (Int) in // STEP 7B. Pass information about unlock time in case capture is locked. return self.?.captureHandler?.timeToUnlock ?? 0 }, completionHandler: { [weak self] in //STEP 7C. Start capturing after UIExtension finished it's work self?.captureHandler?.startCapture() }} } ``` -------------------------------- ### Start Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/document-integration-guide Initiates the biometric capture process. ```Kotlin 1handler.startCapture() ``` -------------------------------- ### Start a live capture video session (Native SDK) Source: https://idplatform.idemia.com/identity-proofing/develop/identity-proofing-verification/api-docs/1/liveness-detection Initiates a liveness session for native mobile applications using the nativeSDK mode. ```Shell curl -X POST \ https://[URL_MAIN_PART]/gips/v1/identities/[IDENTITY_ID]/attributes/portrait/capture-session?mode=nativeSDK \ -H 'Content-Type: application/json' \ -H 'apikey: [APIKEY_VALUE]' \ -d '{ "type": "LIVENESS_PASSIVE_VIDEO" }' ``` -------------------------------- ### Start Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/finger-integration-guide Initiate the fingerprint scanning process. ```Swift self.captureHandler?.startCapture(completionHandler: nil) ``` -------------------------------- ### faceCaptureClient.startCapture(options) Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9 Starts the face capture process using the provided media stream. ```APIDOC ## faceCaptureClient.startCapture(options) ### Description Starts the video capture process for the face capture client. ### Parameters - **options** (Object) - Required - Configuration object containing: - **stream** (MediaStream) - The video stream from the user's camera. ``` -------------------------------- ### GET /bioserver-app{bioSessionPath} Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/face-integration-guide Retrieves the bioSession ID. ```APIDOC ## GET /bioserver-app{bioSessionPath} ### Description Retrieves the bioSession ID required by the SDK. ### Method GET ### Endpoint /bioserver-app{bioSessionPath} ``` -------------------------------- ### PassiveLivenessCaptureView.start() Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Prepares the view to perform the challenge. This method should be called before using the view. ```APIDOC ## start() ### Description Prepares the view to perform the challenge. You should call this method before you start using this view. ``` -------------------------------- ### handlePreparationStarted() Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Method to handle the start of capture preparation from the SDK. ```APIDOC ## handlePreparationStarted() ### Description Method that you should call to handle start of capture preparation from SDK. ``` -------------------------------- ### showCountdown(seconds:) Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/extensions Starts a countdown timer for a specified duration. ```APIDOC ## showCountdown(seconds:) ### Description Starts a countdown from the given amount of seconds. ### Signature `public func showCountdown(seconds: Int)` ### Parameters - **seconds** (Int) - Starting number of seconds. - **completionHandler** (Closure) - Completion handler that will be executed when counting is finished. ``` -------------------------------- ### Initialize and Configure FaceCaptureHandler Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/ios/4_x/face-integration-guide These snippets demonstrate the sequential steps to initialize the handler, set the delegate, assign the preview, and start the capture process. ```Objective-C [BIOSDK createFaceCaptureHandlerWithOptions:options withCompletionHandler:^(id captureHandler, NSError* error) { self.captureHandler = captureHandler; ... }]; ``` ```Objective-C [BIOSDK createFaceCaptureHandlerWithOptions:options withCompletionHandler:^(id captureHandler, NSError* error) { self.captureHandler = captureHandler; self.captureHandler.delegate = self; ... }]; ``` ```Objective-C [BIOSDK createFaceCaptureHandlerWithOptions:options withCompletionHandler:^(id captureHandler, NSError* error) { self.captureHandler = captureHandler; self.captureHandler.delegate = self; self.captureHandler.preview = self.preview; ... }]; ``` ```Objective-C [BIOSDK createFaceCaptureHandlerWithOptions:options withCompletionHandler:^(id captureHandler, NSError* error) { self.captureHandler = captureHandler; self.captureHandler.delegate = self; self.captureHandler.preview = self.preview; [self.captureHandler startCaptureWithCompletionHandlerError:nil]; }]; ``` -------------------------------- ### Configuring UISettings Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/finger-integration-guide Example of customizing the capture UI appearance and behavior using the fingerCaptureSettings DSL. ```Kotlin val settings = fingerCaptureSettings { scene { background { colorEnd = Color.parseColor("#189482") colorStart = Color.parseColor("#38ddb8") } rectangle { color = Color.BLACK strokeWidth = 20f cornerRadius { rx = 20f ry = 20f } } previewScale { scaleX = 1.0f scaleY = 1.0f } tapping { colorBackground = Color.parseColor("#FAFAFA") colorImage = Color.parseColor("#000000") colorText = Color.parseColor("#000000") textResId = R.string.use_your_head textH1ResId = R.string.no_tapping_feedback enabled = true } feedback { feedbackStringMapping = mapping show = true } distance { showOptimalDistanceIndicator = true } progressBar { labelRes = R.string.scanning show = true } } } ``` -------------------------------- ### Configure Document Capture Options Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/web/3_9/document-webcapture Example configuration object for initDocCaptureClient, including callbacks for document side changes, initialization completion, tracking, and capture results. ```JavaScript // init a doc capture client const docCaptureOptions = { docserverVideoUrl: 'doc_server_endpoint', fullDocCapture: true, sessionId: sessionId, onChangeDocumentSide: (data) => { console.log('onChangeDocumentSide: ', data); // Handle the flip of the document }, onClientInitEnd: () => { console.log("Init ended. Remove loading for video") // display the video stream to the user }, trackingFn: (trackingInfo) => { console.log("onTracking", trackingInfo) }, onDocCaptured: (doc) => { console.log("onDoc", doc); console.log('Full Document ID: ' + doc.id); console.log('Full Document status: ', doc.status); // Handle the end of capture and capture status analysis // Disconnect the client }, errorFn: (error) => { console.log("doc capture error", error) }, }; const docCaptureClient = await DocserverVideo.initDocCaptureClient(docCaptureOptions); ``` -------------------------------- ### MscAsyncCallbacks onPreExecute Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/face-integration-guide Callback executed before the asynchronous task starts. ```Kotlin 1fun onPreExecute() { 2 3} ``` -------------------------------- ### Configuring Feedback and Countdown in Kotlin DSL Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/extensions Example showing how to configure feedback appearance, custom string mappings, and countdown settings within the passive capture settings. ```APIDOC ## Configuring Feedback and Countdown ### Description Use the Kotlin DSL to customize the visual appearance of feedback, provide custom string mappings for capture events, and enable countdown timers for passive capture modes. ### Configuration Example ```kotlin val settings = passiveCaptureSettings { scene { feedback { background { colorBackgroundResId = R.color.idemia_blue alphaCanal = 0.5f } showFeedback = true colorTextResId = R.color.white faceFeedbackStringMapping = { faceCaptureInfo -> mapToString(faceCaptureInfo) // Custom mapping for legacy API } faceCaptureFeedbackStringMapping = { captureFeedback -> mapToString(captureFeedback) // Custom mapping for new API } } } countdown { countdownSeconds = 3 countdownText = getString(R.string.countdown) } } ``` ``` -------------------------------- ### Start Biometric Capture Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x/finger-integration-guide Initiates the biometric capture process. ```Kotlin handler.startCapture() ``` -------------------------------- ### Implement prepareLicence in LkmsLicenseService Source: https://idplatform.idemia.com/identity-proofing/develop/capture-sdk/android/4_x Use the licenseManager to trigger the activation process within the LkmsLicenseService. ```Kotlin override suspend fun prepareLicence(): LicenseActivationResult { return licenseManager.activate() } ```