Client-side SDK(s)
In most use cases, document images need to be captured in real time from end users before sending them to the Verify API. There are, of course, exceptions like retroactive verification, unique markets, using specialized capturing hardware, looser domains or extremely low assurance use cases.
If you have one those exceptional use cases, check out our tuning guides, starting with CaptureConditions.
Requirements for a client-side SDK
In order to capture suitable images and avoid frustrating users, any client-side SDK must satisfy a few requirements:
- Real-time guidance - The SDK should provide real-time feedback to the user, helping them position the document, avoid things like blur, glare, occlusions, etc, and generally make sure the images are verifiable.
- Be fast and unobtrusive - The SDK should have an optimized UX and be performant because even the perfect verification system is useless if the users give up before images are captured.
- Capture verifiable images - The SDK should capture images that are verifiable by the Verify API as often as possible (and ideally 100% of the time)
- It has to be secure - The SDK should be secure, preventing injection attacks and protecting the communication channel between the SDK and the Verify API
If you have access to your own, or a third party SDK that satisfies these requirements, feel free to use it. The main downside will be that sometimes the Verify API will refuse to process images captured by it. Depending on the quality of the captured images, this can be rare or less rare, but will always happen to some degree because ML models are not perfect or fully predictable.
The Verify SDK has been designed to satisfy all of the above requirements, and most importantly, to completely mitigate the above mentioned issue by running the critical parts of the pipeline on device as well. This way, the SDK is able to detect unsuitable images before they're sent to the API, and prevent them from being sent.
Possible client-side SDKs
As mentioned you can, and should use the Verify SDK, but there are also a few other alternatives available (and you might already be using one of them):
Demo
To get a feel for our client-side SDKs, check out our demo apps.