Skip to content

Tổng quan Mobile SDK ​

eKYC Mobile SDK bọc luồng chụp ảnh, kiểm tra chất lượng và xác minh thành hai lệnh gọi: takeNID cho thẻ định danh và takeFaces cho ảnh selfie. SDK có bản cho Android, iOS và Flutter, với cùng khái niệm và mã lỗi trên cả ba nền tảng.

Nền tảng ​

Thông tinMô tả
AndroidKotlin. Gradle 7.4, minSdk 21, targetSdk 33. Phiên bản hiện tại 1.1.9.
iOSSwift 5. Xcode 16.0+, iOS 13+. Phiên bản hiện tại 1.1.9.
FlutterDart. Flutter SDK >=3.0.0 <4.0.0. Phiên bản hiện tại 1.0.0.

Cả ba đều gọi cùng API bên dưới, nên các verdict, nhãn ảnh và cấu trúc response được ghi ở đó áp dụng không đổi.

SDK làm gì cho bạn ​

Mỗi entry point chạy một pipeline thay vì một thao tác đơn lẻ.

Thông tinMô tả
takeNIDChụp thẻ → tải ảnh lên → kiểm tra sanity → kiểm tra giả mạo → trích xuất thông tin thẻ.
takeFacesChụp selfie → tải ảnh lên → kiểm tra sanity khuôn mặt → kiểm tra liveness.

Nếu bất kỳ bước nào thất bại, pipeline dừng lại và trả về lỗi; nó không tiếp tục với một ảnh xấu. Mỗi SDK cũng expose các lệnh gọi API riêng lẻ (upload, checkNIDSanity, checkNIDTampering, readNIDInfo, checkFaceSanity, checkFaceLiveness, compareFaces) khi bạn cần tự điều khiển từng bước.

WARNING

Đối tượng kết quả của SDK chỉ dùng để điều khiển giao diện. Quyết định onboarding phải dựa trên kết quả backend của bạn lấy từ eKYC server (hoặc trên response mà backend đã xác minh X-Signature) — không bao giờ dựa trên verdict do ứng dụng hay trình duyệt báo về, vì client bị chỉnh sửa có thể thay đổi chúng.

Cấu hình chung ​

Mọi nền tảng đều dựng một config object với cùng bốn nhóm thiết lập.

Tham sốKiểuBắt buộcMặc địnhMô tả
baseUrlstringCó—Base URL cho các request API. Xem Tổng quan § Điều kiện tiên quyết.
languageCodestringKhôngvivi cho tiếng Việt, en cho tiếng Anh.
tokenProviderTokenProviderCó—Cung cấp authentication token. Được gọi với timestamp, path và method.
loggerLoggerKhông—Nhận các thông báo info, error và warning từ SDK.

WARNING

TokenProvider.getToken(timestamp, path, method) nhận chính xác method và path của request vì token là một signature theo từng request, không phải một chuỗi tĩnh. Không bao giờ hardcode token trong ứng dụng — hãy tính toán nó trên backend của bạn. Xem Ký request để biết cơ chế.

Tùy chọn chụp ảnh ​

Cả hai entry point đều nhận các cờ để tắt một phần của pipeline.

Tham sốKiểuBắt buộcMặc địnhMô tả
captureOnlyboolKhôngfalseChỉ chụp ảnh — không tải lên, không kiểm tra chất lượng, không OCR.
requiredReviewboolKhôngtrueHiển thị màn hình xác nhận sau khi chụp. Chỉ áp dụng cho NID.
autoCaptureEnableboolKhôngtrueTự động chụp khi chất lượng ảnh đạt yêu cầu. Đặt false để chụp thủ công. Chỉ áp dụng cho NID.
requiredScanQRboolKhôngfalseQuét mã QR ở mặt trước thẻ. Chỉ áp dụng cho NID.
cardSidesCardSide[]Không[front, back]Mặt nào cần chụp.
otherSideImagesMapKhông—Mặt còn lại đã được chụp trước đó, để kiểm tra chất lượng có thể chạy trên cả hai mặt.

INFO

Kiểm tra sanity và giả mạo chính xác hơn khi có đủ cả hai mặt thẻ. Nếu luồng của bạn chụp từng mặt qua từng lệnh gọi riêng, hãy truyền mặt còn lại qua otherSideImages thay vì kiểm tra từng mặt một cách tách biệt.

Nhãn ảnh ​

Khi gọi upload trực tiếp, label PHẢI là một trong các giá trị sau:

TrườngKiểuMô tả
portraitstringẢnh chân dung.
qr_codestringẢnh mã QR.
id_card.vn.national_id.frontstringMặt trước của thẻ Việt Nam (CMND cũ/mới, CCCD, Hộ chiếu).
id_card.vn.national_id.backstringMặt sau của thẻ Việt Nam.
doc.vn.business_licensestringẢnh giấy phép kinh doanh.

Mã lỗi của SDK ​

Các mã này do chính SDK phát sinh, tách biệt với mã lỗi API dạng số.

TrườngKiểuMô tả
40000stringTimeout.
40001stringNgười dùng đã hủy — nhấn nút back của thiết bị hoặc nút back trên màn hình.
40002stringCác quyền bắt buộc chưa được cấp.
40003stringMở thiết bị camera thất bại. Chỉ Android và Flutter.
50000stringRuntime exception không mong đợi.
60000stringKiểm tra sanity của NID thất bại.
60001stringKiểm tra giả mạo của NID thất bại.
60002stringKiểm tra sanity khuôn mặt thất bại.
60003stringKiểm tra liveness khuôn mặt thất bại.

Tên hằng số khác nhau tùy nền tảng — EkycError.NID_SANITY_FAILED trên Android, kErrorCodeNidSanityFailed trên iOS, EkycFailure.nidSanityFailed trên Flutter — nhưng giá trị số thì giống hệt nhau.

API được sử dụng ​

Thông tinMô tả
Tải ảnh lênMọi ảnh đã chụp đều được tải lên trước khi bất kỳ kiểm tra nào chạy.
Xác minh ID Card SanityKiểm tra tính xác thực và hợp lệ của thẻ.
Phát hiện giả mạo thẻ IDPhát hiện làm giả và chỉnh sửa.
Đọc thông tin thẻ IDTrích xuất OCR, MRZ và QR.
Xác minh sanity khuôn mặt · Xác minh liveness khuôn mặtChất lượng và liveness của selfie.
So sánh khuôn mặtSo khớp ảnh selfie với ảnh chân dung trên thẻ.

Bước tiếp theo ​

Developers