Skip to content

Tài liệu tham chiếu Android SDK ​

Mọi class, thuộc tính và phương thức công khai trong eKYC Android SDK. Xem Tích hợp Android SDK để biết hướng dẫn tích hợp.

CakeEkyc ​

class CakeEkyc — entry point của SDK.

TrườngKiểuMô tả
upload(uploadImageRequest)Result<EkycResponse<UploadImageResponseData>>Tải một ảnh lên.
takeNID(activity, config, listener)UnitChụp NID → tải lên → kiểm tra sanity → kiểm tra giả mạo → trích xuất thông tin. Khi thất bại, pipeline dừng lại và listener.onError được gọi; ngược lại listener.onSuccess nhận một NIDCardResult.
checkNIDSanity(imageId, imageId2, cardType, specialTypeId)Result<EkycResponse<NIDSanityData>>Kiểm tra sanity của ảnh NID.
checkNIDTampering(imageId, imageId2, cardType, level)Result<EkycResponse<NIDTamperingData>>Kiểm tra giả mạo trong ảnh NID.
readNIDInfo(imageId, imageId2, cardType)Result<EkycResponse<NIDCardData>>Trích xuất thông tin từ ảnh NID.
takeFaces(activity, config, listener)UnitChụp khuôn mặt → tải lên → kiểm tra sanity → kiểm tra liveness. Trả về một SelfieResult.
checkFaceSanity(imageId)Result<EkycResponse<FaceSanityData>>Kiểm tra sanity của một ảnh khuôn mặt.
checkLiveness(imageIds)Result<EkycResponse<FaceLivenessData>>Kiểm tra liveness của ảnh khuôn mặt.
compareFaces(imageId1, imageId2)Result<EkycResponse<FaceComparedData>>So sánh hai ảnh khuôn mặt.
close()UnitKết thúc các tác vụ chụp NID và khuôn mặt đang diễn ra.
getInstance(context, config, executor)static Future<CakeEkyc>Tạo một instance CakeEkyc một cách bất đồng bộ.
start(activity, pipeline)static UnitBắt đầu quy trình eKYC với pipeline được cung cấp.
start(fromPackage, fromActivity, hostActivityFullClassName, pipeline, args)static UnitBắt đầu eKYC từ một package và activity class cụ thể.
start<T : EkycActivity>(activity, pipeline, hostActivityClass, args)static UnitBắt đầu eKYC với một activity class generic.
start(from, intent, pipeline)static UnitBắt đầu eKYC với một intent tùy chỉnh.
start(activity, fragmentContainerViewId, pipeline)static UnitBắt đầu eKYC trong một fragment container.

Kết quả ​

NIDCardResult ​

data class NIDCardResult

TrườngKiểuMô tả
cardTypeCardTypeLoại thẻ NID (CCCD).
frontSideImageEkycImage?Mặt trước của thẻ NID.
backSideImageEkycImage?Mặt sau của thẻ NID.
qrDataQRData?Dữ liệu mã QR của NID.
sanityResultEkycResponse<NIDSanityData>?Kết quả kiểm tra sanity.
tamperingResultEkycResponse<NIDTamperingData>?Kết quả kiểm tra giả mạo.
cardInfoEkycResponse<NIDCardData>?Thông tin thẻ đã trích xuất — tên, số ID, ngày sinh, mrz.

NIDCardResult.QRData ​

TrườngKiểuMô tả
rawString?Giá trị chuỗi thu được từ việc quét QR.
imageEkycImage?Ảnh mã QR.

SelfieResult ​

data class SelfieResult

TrườngKiểuMô tả
facesList<Face>?Các khuôn mặt đã chụp.
sanityResultList<EkycResponse<FaceSanityData>>?Response kiểm tra sanity cho từng ảnh khuôn mặt.
livenessResultEkycResponse<FaceLivenessData>?Kết quả kiểm tra liveness.

SelfieResult.Face ​

TrườngKiểuMô tả
imageEkycImage?Ảnh chân dung.
gestureFaceGestureCử chỉ khuôn mặt: frontal, left, right, up, down.

Cấu hình ​

Config ​

data class Config

TrườngKiểuMô tả
languageCodeStringvi cho tiếng Việt, en cho tiếng Anh.
baseUrlStringBase URL cho các network request.
networkConfigNetworkConfigThiết lập cấu hình mạng.
tokenProviderTokenProvider?Provider cung cấp authentication token.
loggerLogger?Sink nhận log.

Config.Builder ​

TrườngKiểuMô tả
withLanguage(languageCode)BuilderĐặt languageCode.
withBaseUrl(baseUrl)BuilderĐặt baseUrl.
withToken(tokenProvider)BuilderĐặt tokenProvider.
withNetworkConfig(networkConfig)BuilderĐặt networkConfig.
withLogger(logger)BuilderĐặt logger.
build()ConfigTạo Config.

NetworkConfig ​

TrườngKiểuMô tả
readTimeoutMilliSecondsLongTimeout đọc, mặc định 0.
writeTimeoutMilliSecondsLongTimeout ghi, mặc định 0.
connectTimeoutMilliSecondsLongTimeout kết nối, mặc định 0.
callTimeoutMilliSecondsLongTổng thời gian cho phép cho lệnh gọi, mặc định 60000.

TokenProvider ​

interface TokenProvider

TrườngKiểuMô tả
getToken(timestamp, path, method)StringTrả về một authentication token cho request đã cho.
from(authToken)static TokenProviderTạo một provider từ một token tĩnh.

Logger ​

TrườngKiểuMô tả
info(log)UnitGhi log một thông báo thông tin.
error(log)UnitGhi log một thông báo lỗi.
warning(log)UnitGhi log một thông báo cảnh báo.

TakeNIDConfig ​

TrườngKiểuMô tả
cardTypeCardTypeLoại thẻ cần chụp, mặc định CardType.CCCD.
cardSidesList<CardSide>Các mặt cần chụp, mặc định [Front, Back].
requiredReviewBooleanYêu cầu xem lại ảnh đã chụp, mặc định true.
autoCaptureEnableBooleanTự động chụp khi chất lượng đạt yêu cầu, mặc định true.
requiredScanQRBooleanYêu cầu quét QR, mặc định false.
captureOnlyBooleanChế độ chỉ chụp, mặc định false.
loadingViewView?Giao diện loading tùy chỉnh. Mặc định dùng của SDK.
otherSideImagesMap<CardSide, EkycImage>Mặt còn lại đã được chụp trước đó.

TakeFaceConfig ​

TrườngKiểuMô tả
captureOnlyBooleanChế độ chỉ chụp, mặc định false.
loadingViewView?Giao diện loading tùy chỉnh.

Kiểu dữ liệu ​

EkycImage ​

TrườngKiểuMô tả
idString?Định danh duy nhất sau khi tải lên server.
labelString?Nhãn mô tả ảnh.
bitmapBitmap?Dữ liệu ảnh.

EkycResponse ​

TrườngKiểuMô tả
dataT?Dữ liệu response.
errorList<EkycErrorDetail>?Chi tiết lỗi, nếu có.
codeInt?Status code của response.
messageString?Thông báo của response.
signatureString?Signature của response.
signatureTimestampString?Timestamp của signature.
rawDataString?Chuỗi dữ liệu thô.
requestString?Request.
responseBodyString?Response body thô.

EkycErrorDetail ​

TrườngKiểuMô tả
codeString?Mã lỗi.
messageString?Mô tả lỗi.

CardType ​

TrườngKiểuMô tả
idStringĐịnh danh loại thẻ, ví dụ vn.national_id.
nameStringTên loại thẻ, ví dụ id_card.vn.national_id.
CCCDstatic CardTypeCCCD Việt Nam: id vn.national_id, name id_card.vn.national_id.

CardSide ​

sealed class CardSide — name phải là front hoặc back. Object lồng bên trong: Front, Back.

NIDSanityData ​

TrườngKiểuMô tả
statusString?success hoặc failure.
cardSanityCardSanity?Chi tiết sanity của thẻ.
image1NIDImage?Ảnh NID thứ nhất được sử dụng.
image2NIDImage?Ảnh NID thứ hai được sử dụng.
requestIdString?Định danh request.

CardSanity ​

TrườngKiểuMô tả
verdictString?good khi kiểm tra đạt. Xem Định nghĩa kết luận.
scoreDouble?Điểm độ tin cậy.
infoString?Thông tin bổ sung.

NIDTamperingData ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra giả mạo.
cardTamperingCardTampering?Chi tiết kiểm tra giả mạo.
requestIdString?Định danh request.
imageIdString?Ảnh thứ nhất được sử dụng.
imageId2String?Ảnh thứ hai được sử dụng.

CardTampering ​

TrườngKiểuMô tả
verdictString?good khi kiểm tra đạt.
scoreDouble?Điểm độ tin cậy tổng thể.
detailsList<TamperingDetail>?Các tín hiệu giả mạo riêng lẻ.

TamperingDetail ​

TrườngKiểuMô tả
verdictString?Kết luận giả mạo cụ thể.
scoreDouble?Điểm độ tin cậy.
infoString?Thông tin bổ sung.

NIDCardData ​

TrườngKiểuMô tả
statusString?Trạng thái trích xuất.
extractedDataOnImage1ExtractedData?Dữ liệu từ ảnh thứ nhất.
extractedDataOnImage2ExtractedData?Dữ liệu từ ảnh thứ hai.
cardInfoList<CardInfo>?Thông tin thẻ đã hợp nhất.
requestIdString?Định danh request.

ExtractedData ​

TrườngKiểuMô tả
idString?Định danh ảnh NID.
transformedImageIdString?Định danh ảnh đã biến đổi.
cardBoxCardBox?Bounding box của thẻ.
qrQRData?Dữ liệu mã QR.
ocrOCRData?Dữ liệu OCR.
mrzDataMRZData?Dữ liệu MRZ.

QRData / OCRData / MRZData ​

TrườngKiểuMô tả
parsedFieldsList<ParsedField>?Các trường đã phân tích từ nguồn này.
rawString?Giá trị thô. Chỉ có ở QRData.
confidenceScoreDouble?Độ tin cậy của lần trích xuất.

ParsedField ​

TrườngKiểuMô tả
keyString?Tên trường.
valueString?Giá trị trường.
confidenceVerdictString?Kết luận độ tin cậy.
confidenceScoreDouble?Điểm độ tin cậy.

CardInfo ​

TrườngKiểuMô tả
keyString?Tên trường.
valueString?Giá trị trường.
confidenceVerdictString?Kết luận độ tin cậy.
confidentScoreDouble?Điểm độ tin cậy.

CardBox / Point ​

TrườngKiểuMô tả
topLeft topRight bottomLeft bottomRightPoint?Các góc của bounding box thẻ.
x yDouble?Tọa độ điểm.

FaceSanityData ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra sanity khuôn mặt.
portraitSanityPortraitSanity?Chi tiết sanity của ảnh chân dung.
requestIdString?Định danh request.
imagePortraitImageInfo?Thông tin ảnh chân dung.
isSanityPassed()BooleanTrue khi portraitSanity.verdict là good.

PortraitSanity ​

TrườngKiểuMô tả
verdictString?Kết quả của kiểm tra sanity.
scoreDouble?Điểm độ tin cậy.

FaceLivenessData ​

TrườngKiểuMô tả
statusString?Trạng thái của kiểm tra liveness.
isLiveBoolean?Khuôn mặt có phải là live hay không.
scoreDouble?Điểm độ tin cậy.
resultsList<LivenessResult>?Kết quả liveness theo từng ảnh.
requestIdString?Định danh request.
mainImageIdString?Ảnh chính được sử dụng.

LivenessResult ​

TrườngKiểuMô tả
idString?Định danh ảnh.
isLiveBoolean?Khuôn mặt này có phải là live hay không.
scoreDouble?Điểm độ tin cậy.

FaceComparedData / ComparedResult ​

TrườngKiểuMô tả
statusString?Trạng thái so sánh.
comparedResultsList<ComparedResult>?Kết quả so sánh.
face1Id face2IdString?ID của các ảnh khuôn mặt được so sánh.
scoreDouble?Điểm tương đồng.
resultString?matched hoặc not matched.

Listener và Event ​

NIDCapturingListener / FaceCapturingListener ​

TrườngKiểuMô tả
onEvent(event)UnitMột sự kiện xảy ra trong lúc chụp.
onError(error)UnitXảy ra lỗi.
onSuccess(result)UnitChụp thành công — NIDCardResult hoặc SelfieResult.

EkycEvent ​

TrườngKiểuMô tả
idIntĐịnh danh sự kiện.
paramsMap<String, Any>Tham số sự kiện.
timestampLongThời điểm tạo, tính bằng mili-giây.
STEP_COMPLETE_EVENT-1Một bước đã hoàn tất.
STEP_RETRY_EVENT-2Một bước đang được thử lại.
STEP_EXITED_EVENT-3Một bước đã thoát.
STEP_ENTERED_EVENT-4Đã vào một bước.
TIME_OUT_EVENT-1000Xảy ra timeout.
FACE_SELFIE_ASSESSING_RESULT_EVENT-1001Kết quả đánh giá selfie khuôn mặt.
FACE_LIVENESS_ASSESSING_RESULT_EVENT-1002Kết quả đánh giá liveness khuôn mặt.
NID_ASSESSING_RESULT_EVENT-1003Kết quả đánh giá NID.
LIVENESS_RESULT_EVENT-1004Kết quả kiểm tra liveness.
ON_BACK_NAV_PRESSED_EVENT-1005Nhấn điều hướng back của thiết bị.
ON_CREATE_ACTIVITY_EVENT-1006Một activity đã được tạo.
ON_PERMISSION_NOT_GRANTED-1007Quyền chưa được cấp.
NID_CAPTURE_STARTED_EVENT-1008Bắt đầu chụp NID.
NID_CAPTURE_ENDED_EVENT-1009Kết thúc chụp NID.
NID_REVIEW_STARTED_EVENT-1010Bắt đầu xem lại NID.
ON_ID_SHUTTLE_CLICKED_EVENT-1011Nhấn nút chụp.
ON_ID_AUTO_CAPTURE_SELECTED_EVENT-1012Đã chọn tự động chụp.
NID_REVIEW_ENDED_EVENT-1013Kết thúc xem lại NID.
NID_REVIEW_ACCEPT_CLICKED_EVENT-1014Nhấn Accept trong lúc xem lại.
NID_REVIEW_DENY_CLICKED_EVENT-1015Nhấn Deny trong lúc xem lại.
FACE_CAPTURE_STARTED_EVENT-1016Bắt đầu chụp khuôn mặt.
FACE_CAPTURE_ENDED_EVENT-1017Kết thúc chụp khuôn mặt.
ON_BACK_BTN_CLICKED_EVENT-1018Nhấn nút back trên màn hình.

EkycEvent.Builder ​

TrườngKiểuMô tả
setEventId(id)BuilderĐặt id sự kiện.
addParams(params)BuilderThêm nhiều tham số.
addParam(key, value)BuilderThêm một tham số.
build()EkycEventTạo sự kiện.

EkycConstant ​

Các key dùng bên trong EkycEvent.params.

TrườngKiểuMô tả
STEP_NAME_KEYstep_nameTên bước.
SELFIE_IMAGES_KEYselfie_imagesDữ liệu ảnh selfie.
ASSESSING_CODE_KEYassessing_codeMã đánh giá.
ASSESSING_MESSAGE_KEYassessing_messageThông báo đánh giá.
OFFSET_KEYoffsetDữ liệu offset.
CARD_TYPE_KEYcard_typeLoại thẻ.
CARD_SIDE_KEYcard_sideMặt thẻ.
AUTO_CAPTURE_KEYauto_captureThiết lập tự động chụp.
TIMESTAMP_KEYtimestampTimestamp.

EkycError ​

sealed class EkycError : RuntimeException()

TrườngKiểuMô tả
TIMEOUT_CODE40000Timeout.
USER_CANCEL_CODE40001Người dùng hủy.
PERMISSION_NOT_GRANTED_ERROR_CODE40002Từ chối cấp quyền.
CAMERA_ERROR_CODE40003Lỗi camera.
UNEXPECTED_ERROR_CODE50000Lỗi không mong đợi.
NID_SANITY_FAILED60000Lỗi sanity của NID.
NID_TAMPERING_FAILED60001Lỗi giả mạo của NID.
FACE_SANITY_FAILED60002Lỗi sanity khuôn mặt.
FACE_LIVENESS_FAILED60003Lỗi liveness khuôn mặt.

Object lồng bên trong: UserCanceledError, TimeoutError, PermissionNotGranted, CameraError, UnexpectedError, QualityFailed.

Bước tiếp theo ​

Developers