Most teams spend months building KYC from scratch. Camera logic, liveness detection, document parsing, face matching - each one a project in itself. Veris is the infrastructure layer that replaces all of it. One key. Ship this week.
Use one product or all three. Same license key, same dashboard. Modular by design - integrate what you need, add the rest later.
Live face capture with liveness detection on device. Returns a cryptographically signed result. Supports Android, iOS, Flutter, React Native.
Document OCR for all 9 Nigerian ID and utility bill types. Snap or upload. Returns clean structured JSON.
Server-side face similarity. POST two images from your backend, get a 0-100 score. No SDK required.
All three products are designed to work together as one complete workflow. Or drop in just the piece you need. Your architecture, your choice.
Veris Scan extracts structured fields plus a face photo from the document - on device, no upload.
Veris Capture runs liveness on-device and returns a signed proof that the person is real and present.
Veris Compare: document face vs live selfie. One HTTP POST from your backend. 0-100 similarity score back.
Your backend has structured ID fields, signed liveness proof, and a face match score. Everything compliance needs.
Every product ships on all four platforms with identical APIs and the same sandbox key. Copy the snippet, swap in your key, run it.
// build.gradle implementation 'com.verisinfra:veris-capture-android:1.3.0' implementation 'com.verisinfra:veris-scan-android:1.3.0' // Capture: register for results, init once, then start a session val verisLauncher = VerisCapture.registerForResult(this) { result -> when (result) { is VerisResult.Success -> verifyWithBackend(result.signedResult) is VerisResult.Failure -> showError(result.humanReadableReason) is VerisResult.Cancelled -> { /* user closed it */ } is VerisResult.SubscriptionInactive -> showUpgradePrompt() } } VerisCapture.init(this, VerisConfig(licenseKey = "veris_sandbox_xxxx", initNonce = nonce)) { /* ready */ } VerisCapture.startCapture(verisLauncher, VerisSessionConfig(nonce = nonce)) // Scan: init once, then start a session VerisScan.init(context = this, licenseKey = "veris_sandbox_xxxx") VerisScan.startCapture(context = this, documentType = DocumentType.AUTO_DETECT) { response -> when (response) { is ScanResult -> processFields(response.idFields, response.faceImageBase64) is ScanFailure -> showError(response.userMessage) } }
# Podfile pod 'VerisCapture', '~> 1.3' // Capture VerisCapture.initialise( config: VerisConfig(licenseKey: "veris_sandbox_xxxx", initNonce: nonce) ) { _ in } VerisCapture.startVerification(from: self, session: VerisSessionConfig(nonce: nonce)) { result in switch result { case .success(let capture): verifyWithBackend(capture.signedResult) case .failure(_, let reason, _): showError(reason) default: break } } // Scan: see SDK Access in your dashboard for the current iOS package
# pubspec.yaml veris_capture: ^1.3.0 // Capture await VerisCapture.instance.initialise( config: VerisConfig(licenseKey: 'veris_sandbox_xxxx', initNonce: nonce), ); final result = await VerisCapture.instance.startVerification( session: VerisSessionConfig(nonce: nonce), ); if (result is VerisSuccess) { verifyWithBackend(result.signedResult); } // Scan: see SDK Access in your dashboard for the current Flutter package
// npm install npm install @verisinfra/react-native-capture // Capture await VerisCapture.initialise({ licenseKey: 'veris_sandbox_xxxx', initNonce: nonce }); const result = await VerisCapture.startVerification({ nonce }); if (result.type === 'success') { verifyWithBackend(result.signedResult); } // Scan: see SDK Access in your dashboard for the current React Native package
Samples use a sandbox key. Find the exact copy-paste snippet in your dashboard under SDK Access →
Download Veris Labs - our free demo app. Run a live face capture, scan a Nigerian ID, and test a face comparison. No account or key needed. Android now, iOS coming soon.
Sandbox key in seconds. All three products. Compliance-ready from day one. No credit card required.
No credit card - Sandbox includes all 3 products - Live key once your business is verified