Skip to main content

Changelog

v1.5.0 — May 2026

Cross-platform release line

All five SDKs (iOS, Android, Flutter, React Native, Web) are now unified at v1.5.0. Previously the platforms had drifted (iOS at 1.4.2, Android at 1.3.0, Flutter/RN/Web at 1.4.1) — there was no actual feature drift, just inconsistent version labels. From v1.5.0 onward all five platforms ship together.

npm publishing

@koraidv/core, @koraidv/react, and @koraidv/react-native are now published to the public npm registry under the @koraidv scope. Previous versions were github-installed only. Migrate your install:

# Before
npm i github:badedokun/koraidv-react-native#v1.4.1

# Now
npm i @koraidv/react-native

Bug fixes

  • KoraWallet (Web + RN) — fixed a TypeScript duplicate-identifier error that silently broke .d.ts generation in v1.4.x. The wallet now ships full type declarations on npm. Public API is unchanged; only an internal property was renamed.
  • Web DocumentSelectionScreen — removed stale references to DocumentType.US_PASSPORT and UK_PASSPORT enum values that were dropped in v1.2.3 in favour of INTERNATIONAL_PASSPORT.
  • Flutter selective_disclosure.dart (post-release patch, applied in place on v1.5.0)Set.of(...DisclosureClaim.values) used JavaScript spread syntax which is invalid Dart and broke compilation. Fixed in place to Set.of(DisclosureClaim.values). Other SDKs were unaffected. The v1.5.0 git tag on koraidv-flutter was force-updated to point at the patched commit; if your pubspec.lock is pinned to the original SHA, run flutter pub upgrade koraidv_flutter.
  • Android DocumentDewarper (post-release patch, applied in place on v1.5.0)org.opencv.* imports broke consumer R8 release minification because the SDK declares OpenCV as implementation (not api), so consumers' R8 saw unresolved classes and stopped the build. The SDK's bundled consumer-rules.pro now includes -dontwarn org.opencv.**, which is auto-applied to consumer builds — no action required for new integrators. Runtime safety was already correct: OpenCVLoader.initLocal() is wrapped in try/catch and dewarp() returns null when OpenCV isn't on the classpath. The README documents OpenCV as an optional dependency (add implementation("org.opencv:opencv:4.10.0") to enable dewarping; otherwise the SDK falls back to the original capture). The v1.5.0 git tag was force-updated on koraidv-koraidv-android, koraidv-flutter, and koraidv-react-native mirrors. If you're locked to the original tag SHA, re-resolve via JitPack / pub upgrade / npm install to pick up the patch.

v1.4.0–1.4.2 — April 2026

On-device PDF417 barcode decoding

iOS, Android, Flutter, RN, and Web SDKs gained on-device PDF417 barcode reading for US/Canadian driver's licenses. Decode happens locally via ML Kit (Android), Vision (iOS), or ZXing-WASM (Web) — no server round-trip. License scans are now noticeably faster and work offline.

Sandbox URL fix (iOS, Web)

APIEnvironment.sandbox on iOS and Web SDKs was incorrectly returning the production URL — sandbox API keys were getting HTTP 400 responses. Fixed in v1.4.1 (Web/RN/Flutter) and v1.4.2 (iOS, plus a JSON-casing fix that was iOS-only).

v1.3.0 — March 2026

Wallet (W3C Verifiable Credentials)

All SDKs gained a KoraWallet module for storing and presenting credentials with selective disclosure. Use it to issue a verifiable credential after successful verification, then have the user present specific claims (e.g. age over 18) without revealing the full document.

QR handoff (REQ-006)

The Web SDK now supports desktop → mobile QR handoff: start verification on a desktop browser, scan a QR code with the user's phone to finish capture there, then return to desktop with the completed verification.

Document type sync

Document type catalogue extended with Canadian PR Card, Canadian National ID Card, and additional EU residence permits.

v1.2.0–1.2.3 — February 2026

Dynamic country/document fetching

SDKs now fetch the supported country and document type list dynamically from the API instead of bundling a static list. New countries and document types added on the backend become available immediately without an SDK upgrade.

Document type expansion

  • 44 uniform document types across all 5 SDKs
  • Driver's licenses for Africa (Nigeria, Ghana, Kenya, South Africa, Liberia, Sierra Leone, Gambia), UK, Canada, India
  • Removed country-specific passport types in favour of a single INTERNATIONAL_PASSPORT (covers all 197 ICAO-compliant countries)

NFC passport reading

iOS and Android SDKs gained ICAO 9303 NFC chip reading for biometric passports. Validates the chip's signed data structures and matches them against the OCR'd MRZ.

Network timeout fix

Default request timeout raised from 30s to 120s — covers slower mobile networks where document upload was timing out before completion.

v1.1.0 — February 2025

Image Persistence & Compliance API

  • Image persistence: Verification images (document front, document back, selfie, liveness frames) are now automatically persisted to Google Cloud Storage for compliance and audit purposes
  • Image retrieval API: New endpoints to list and retrieve verification images with signed URLs
    • GET /verifications/{id}/images — list available images
    • GET /verifications/{id}/images/{imageType} — get a 15-minute signed URL
  • SDK updates: Both iOS (v1.1.0) and Android (v1.1.0) SDKs now report imagePersisted status in verification results
  • Async processing: Image uploads are processed asynchronously — the imagePersisted field on the verification object confirms when persistence is complete

SDK Changes

  • Android SDK v1.1.0: Added imagePersisted field to VerificationResult, automatic image persistence support
  • iOS SDK v1.1.0: Added imagePersisted property to KoraVerificationResult, automatic image persistence support

v1.0.0 — January 2025

Initial Release

  • Document verification: Support for 18+ document types across US, EU, and Africa
    • 5-layer document authenticity (template matching, font consistency, photo integrity, compression analysis, edge consistency)
    • MRZ parsing and validation for ICAO 9303 documents
  • Face matching: FaceNet 512-dimensional embedding comparison with >99% accuracy
  • Liveness detection: Active liveness with 6 challenge types (blink, smile, turn left/right, nod up/down)
  • Anti-spoofing: 5-layer analysis (texture, frequency, challenge, temporal, quality)
  • Compliance screening: CEngine integration for sanctions, PEP, and adverse media screening
  • Scoring engine: Composite scoring with configurable thresholds for auto-approve, manual review, and auto-reject
  • Webhooks: 9 event types with HMAC-SHA256 signature verification and exponential backoff retry
  • Fraud detection: Duplicate document, duplicate face, spoof detection, and document tampering alerts
  • Mobile SDKs: iOS (v1.0.0) and Android (v1.0.0) with full verification UI, camera capture, and theme customization
  • Sandbox: Full sandbox environment with test fixtures for deterministic results