The IdenfySdkPlugin is an official Cordova plugin, which provides an easier integration of iDenfy KYC services.
The SDK requires an identification token for starting initialization. Token generation guide
Minimum required versions by the platform:
IOS - 13.00
Android - API 21
If you are starting a new Cordova project you can follow environment setup guide. Once the setup completed successfully, you can initialize a new project with CLI:
$ cordova create hello com.example.hello HelloWorld
Navigate to the root directory of your Cordova project. The rest of this second section will assume you are in the root directory.
Copy IdenfySdkPlugin folder from this repository and add it to the root of your project. Run the following command:
$ cordova plugin add IdenfySdkPlugin
If you need to remove the plugin, run the following command:
$ cordova plugin rm com.idenfy.idenfysdkcordovaplugin
`NSCameraUsageDescription' must be provided in the application's 'Info.plist' file:
<key>NSCameraUsageDescription</key>
<string>Required for document and facial capture</string>
Also navigate to platforms/ios/Podfile file and add the following post_install script:
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
if target.name == "lottie-ios"
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
end
Then ensure that you have use_frameworks! linkage as STATIC.
platform :ios, '13.0'
target 'CordovaSDK' do
use_frameworks! :linkage => :static
project 'CordovaSDK.xcodeproj'
pod 'iDenfySDK-Static/iDenfyLiveness-Static', '8.5.7'
end
The sample app uses the following Podfile structure:
platform :ios, '13.0'
target 'CordovaSDK' do
use_frameworks! :linkage => :static
project 'CordovaSDK.xcodeproj'
pod 'iDenfySDK-Static/iDenfyLiveness-Static', '8.5.7'
end
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = 'NO'
config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'
if target.name == "lottie-ios"
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
end
After successful integration, you should be able to call IdenfySdkPlugin.startIdentification method. You can run on IOS with:
$ cordova build ios
$ cordova run ios
If you face issues, try these commands:
$ cordova platform remove ios
$ cordova platform add ios
On Android you would run it like this:
$ cordova run android
If you face issues, try these commands:
$ cordova platform remove android
$ cordova platform add android
If the project is not successfully compiled or runtime issues occur, make sure you have followed the steps. For better understanding, you may check the sample app in this repository.
Once you have an identification token, you can initialize the idenfy cordova plugin, by calling IdenfySdkPlugin.startIdentification with provided authToken:
function presentIdenfySDK() {
IdenfySdkPlugin.startIdentification(
"AUTH_TOKEN",
function (result) {
alert(JSON.stringify(result));
},
function (err) {
alert(JSON.stringify(err));
}
);
}
Callback from the SDK can be retrieved from the success callback in the method startIdentification:
IdenfySdkPlugin.startIdentification(
...function (result) {
alert(JSON.stringify(result));
}
);
The result will have the following JSON structure:
{
"autoIdentificationStatus": "APPROVED",
"manualIdentificationStatus": "APPROVED"
}
Information about the IdenfyIdentificationResult autoIdentificationStatus statuses:
Name | Description |
---|---|
APPROVED |
The user completed an identification flow and the identification status, provided by an automated platform, is APPROVED. |
FAILED |
The user completed an identification flow and the identification status, provided by an automated platform, is FAILED. |
UNVERIFIED |
The user did not complete an identification flow and the identification status, provided by an automated platform, is UNVERIFIED. |
Information about the IdenfyIdentificationResult manualIdentificationStatus statuses:
Name | Description |
---|---|
APPROVED |
The user completed an identification flow and was verified manually while waiting for the manual verification results in the iDenfy SDK. The identification status, provided by a manual review, is APPROVED. |
FAILED |
The user completed an identification flow and was verified manually while waiting for the manual verification results in the iDenfy SDK. The identification status, provided by a manual review, is FAILED. |
WAITING |
The user completed an identification flow and started waiting for the manual verification results in the iDenfy SDK. Then he/she decided to stop waiting and pressed a "BACK TO ACCOUNT" button. The manual identification review is still ongoing. |
INACTIVE |
The user was only verified by an automated platform, not by a manual reviewer. The identification performed by the user can still be verified by the manual review if your system uses the manual verification service. |
*Note The manualIdentificationStatus status always returns INACTIVE status, unless your system implements manual identification callback, but does not create a separate waiting screen for indicating about the ongoing manual identity verification process. For better customization we suggest using the immediate redirect feature. As a result, the user will not see an automatic identification status, provided by the iDenfy service. The SDK will be closed while showing loading indicators.
Currently, this Cordova plugin does not provide customization options via Javascript code directly. For any additional SDK customization, you should edit the native code inside of the plugin.
Android customization: Follow Android native SDK guide and edit IdenfySdkPlugin.java.
IOS customization: Follow IOS native SDK guide and edit IdenfySdkPlugin.swift.