### 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()
}
```