Last updated
Last updated
# Identity Verification Workflow — Init Configuration
```js
VidaSDK.init({
/* ═══════════════════════════════════════════════════
* REQUIRED
* ═══════════════════════════════════════════════════ */
// Your JWT Token
token: '<your-token>',
// Your Signing Key
signingKey: '<your-signing-key>',
/* ═══════════════════════════════════════════════════
* GENERAL
* ═══════════════════════════════════════════════════ */
// DOM element ID where SDK renders. Element must exist in the DOM. Optional
elementId: 'root',
// Workflow type. Must be 'identity-verification' for this workflow.
workflow: 'identity-verification',
// UI language. Options: 'EN' | 'ID'
locale: 'EN',
// ISO3 country code for the Identity Verification flow. Defaults to MYS ( Malaysia )
countryCode: 'MYS',
// User context for fraud detection. userInfo.id is required if device fraud shield is enabled.
userInfo: { id: 'user-123' },
// Partner's transaction ID for tracking.
partnerTransactionId: '',
// Your support email. Gets displayed on Error screen for some specific error cases
supportEmail: 'support@company.com',
// Client ID to enable device fraud detection.
fraudShieldClientId: '',
/* ═══════════════════════════════════════════════════
* UI VISIBILITY
* ═══════════════════════════════════════════════════ */
// Hide the session ID display.
hideSessionId: false,
// Hide the network status offline alert.
hideNetworkStatusAlert: false,
/* ═══════════════════════════════════════════════════
* CALLBACKS
* ═══════════════════════════════════════════════════ */
// Called when the entire identity verification workflow completes successfully.
onComplete: (data) => console.log('onComplete', data),
// Called when the workflow fails with an error.
onError: (data) => console.log('onError', data),
// Called when a selfie is captured during face match. Receives base64 image string.
onSelfieCapture: (image) => console.log('onSelfieCapture', image),
// Called when a document photo is captured. Receives base64 image string.
onDocCapture: (image) => console.log('onDocCapture', image),
// Called when front side document verification succeeds. Supported from v1.1.1
onDocFrontSideVerificationSuccess: (data) => console.log('onDocFrontSideVerificationSuccess', data),
// Called when front side document verification fails. Supported from v1.1.1
onDocFrontSideVerificationError: (data) => console.log('onDocFrontSideVerificationError', data),
// Called when full document verification succeeds.
onDocVerificationSuccess: (data) => console.log('onDocVerificationSuccess', data),
// Called when full document verification fails.
onDocVerificationError: (data) => console.log('onDocVerificationError', data),
// Called when face matching against the document fails.
onDocFaceMatchError: (data) => console.log('onDocFaceMatchError', data),
/* ═══════════════════════════════════════════════════
* WORKFLOW CONFIGS
* ═══════════════════════════════════════════════════ */
workflowConfigs: {
identityVerification: {
// Document type. Required when skipDocSelectionScreen is true.
// Allowed values depend on countryCode (accepts both type and subType):
// MYS: 'ID_CARD' | 'MyKad' | 'MyKas' | 'MyPR' | 'MyTentera' | 'PASSPORT' | 'DRIVING_LICENSE'
// IDN: 'ID_CARD' | 'KTP' | 'DRIVING_LICENSE' | 'PASSPORT'
// PHL: 'ID_CARD' | 'Philsys_ID' | 'Multipurpose_ID' | 'Professional_ID' | 'Social_Security_ID' | 'DRIVING_LICENSE' | 'PASSPORT'
// SGP: 'DRIVING_LICENSE' | 'PASSPORT'
// THA: 'DRIVING_LICENSE' | 'PASSPORT'
// VNM: 'DRIVING_LICENSE' | 'PASSPORT'
documentType: 'MyKad',
// Skip the face match step entirely after document verification.
skipFaceMatch: false,
// Verify document after front side capture (before back side). Supported from v1.1.1 onwards
verifyDocumentOnEachSideCapture: false,
// User consent. Required when both skipIntroductionScreen and skipDocSelectionScreen are true.
// obtained must be true, obtainedAt must be a positive integer (epoch milliseconds).
userConsent: {
obtained: true,
obtainedAt: Date.now(),
},
/* ── Document Verification Configs ── */
docVerification: {
// Skip the introduction/onboarding screen.
skipIntroductionScreen: false,
// Skip the document type selection screen. Requires documentType to be set.
skipDocSelectionScreen: false,
// Skip the document capture tutorial screen.
skipTutorialScreen: false,
// Capture only front side of the document (skip back side).
skipDocBackSideCapture: false,
// Document capture timeout in milliseconds. Must be a positive integer.
captureTimeOut: 90000,
// Duration (ms) to show countdown alert before capture timeout. Must be less than captureTimeOut.
captureTimeOutCountdownDuration: 20000,
// Hide the countdown alert that appears before capture timeout.
hideCaptureTimeOutCountdownAlert: false,
// Hide the help button on the document capture screen.
hideHelpOnCaptureScreen: false,
// Granular control to hide description text on individual screens.
hideDescriptions: {
idvIntroduction: false, // Hide introduction screen description
documentSelection: false, // Hide document selection screen description
documentCapture: false, // Hide document capture screen description
documentPreview: false, // Hide document preview screen description
},
},
/* ── Liveness + Face Match Configs ── */
faceMatch: {
// Skip the liveness tutorial screen.
skipTutorialScreen: false,
// Skip the selfie review confirmation screen.
skipSelfieReviewScreen: false,
// Camera frame shape overlay. Options: 'circle' | 'oval' | 'square' | 'rectangle'
cameraFrameShape: 'oval',
// Face detection timeout in milliseconds. Must be a positive integer.
detectionTimeOut: 90000,
// Duration (ms) to show countdown alert before timeout. Must be less than detectionTimeOut.
detectionTimeOutCountdownDuration: 20000,
// Hide the countdown alert that appears before detection timeout.
hideDetectionTimeOutCountdownAlert: false,
// Maximum retry attempts allowed. Must be a positive integer.
maxRetryAttempts: 3,
// Hide the error message when max retries are exhausted.
hideMaxRetryError: false,
// Hide the static head shape overlay on the camera screen.
hideStaticHeadShape: false,
// Skip the white screen flash effect in low-light conditions.
skipDarkLightingScreenFlash: false,
// Hide the help button on the camera capture screen.
hideHelpOnCaptureScreen: false,
// Granular control to hide description text on individual screens.
hideDescriptions: {
tutorial: false, // Hide tutorial screen description
cameraAccess: false, // Hide camera access prompt description
camera: false, // Hide camera screen description
},
},
},
},
/* ═══════════════════════════════════════════════════
* THEME CONFIGS
* All fields are optional. Shown values are defaults.
* ═══════════════════════════════════════════════════ */
themeConfigs: {
// Typography
fontFamily: 'Plus Jakarta Sans, sans-serif', // Font family for all SDK text
fontFamilyUrl: 'https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:ital,wght@0,200..800;1,200..800&display=swap', // Fonts URL to load a custom font
titleTextColor: '#333334', // Title text color
titleTextFontSize: '20px', // Title text font size
descriptionTextColor: '#4C4D4F', // Description text color
descriptionFontSize: '14px', // Description text font size
bodyTextColor: '#4C4D4F', // Body text color
bodyTextFontSize: '14px', // Body text font size
// Primary button
primaryButtonBgColor: '#00EB76', // Background color
primaryButtonBorderColor: 'none', // Border color
primaryButtonHoverBgColor: '#00EB76', // Hover background color
primaryButtonDisabledBgColor: '#BBBBBB', // Disabled background color
primaryButtonTextColor: '#142C42', // Text color
primaryButtonHoverTextColor: '#FFFFFF', // Hover text color
primaryButtonBorderRadius: '6px', // Border radius
// Secondary button
secondaryButtonBgColor: '#FFFFFF', // Background color
secondaryButtonBorderColor: '#DCE1E7', // Border color
secondaryButtonHoverBgColor: '#F4F4F5', // Hover background color
secondaryButtonDisabledBgColor: '#BBBBBB', // Disabled background color
secondaryButtonTextColor: '#142C42', // Text color
secondaryButtonHoverTextColor: '#142C42', // Hover text color
secondaryButtonBorderRadius: '6px', // Border radius
// Camera & frame
cameraFrameBorderInitialColor: '#FFFFFF', // Initial frame border color
cameraFrameBorderAnimationColor: '#00EB76', // Animated frame border color (progress)
cameraFrameOverlayColor: '#000000', // Overlay color outside the frame
instructionIconColor: '#000000', // Tutorial instruction icon color
cameraInstructionTextColor: '#FFFFFF', // Camera feedback text color
cameraInstructionBgColor: '#00172F', // Camera feedback background color
cameraInstructionFontSize: '12px', // Camera feedback font size
cameraCaptureButtonColor: '#FFFFFF', // Capture button color
// Alerts & errors
errorAlertBgColor: '#FEE2E2', // Error alert background color
errorAlertTextColor: '#991919', // Error alert text color
errorAlertTextFontSize: '14px', // Error alert font size
errorTextColor: '#DC2626', // Error text color
// UI controls
loadingSpinnerColor: '#00EB76', // Loading spinner color
backButtonColor: '#000000', // Back button color
modalCloseButtonColor: '#000000', // Close button color
sessionIdFontSize: '12px', // Session ID font size
backgroundColor: '#FFFFFF', // SDK background color
},
/* ═══════════════════════════════════════════════════
* LOCALE CONFIGS
* Custom text overrides for EN and ID locales.
* All fields are optional — SDK uses defaults if not provided.
* Only 'EN' and 'ID' locale keys are supported.
* Fields with ${docType} are dynamically replaced with the selected document type name.
* Fields with ${time} are dynamically replaced with remaining seconds.
* ═══════════════════════════════════════════════════ */
localeConfigs: {
identityVerification: {
EN: {
sessionId: 'Session ID', // Session ID label
networkStatus: 'You seem to be offline. Please check your internet connection', // Offline status message
// Introduction screen
idvIntroduction: {
title: 'Verify Your Identity', // Screen title
description:
"We'll guide you through a quick set of steps to verify your identity. The whole process usually takes 1\u20132 minutes.", // Screen description
stepsSubTitle: 'What to expect', // Steps section subtitle
docCaptureStepTitle: 'Document Capture', // Document capture step title
docCaptureStepDescription: 'Take a photo of your ID or passport', // Document capture step description
selfieCaptureStepTitle: 'Selfie Capture', // Selfie capture step title
selfieCaptureStepDescription: 'Verify your face matches your document', // Selfie capture step description
actionButton: 'Continue', // Continue button
},
// Document selection screen
documentSelection: {
title: 'Document Selection', // Screen title
description: 'Take a photo of the original document so we can verify who you are', // Screen description
countryCardsSubTitle: '', // Country-specific cards subtitle (dynamic based on countryCode)
foreignCardsSubTitle: '', // Foreign citizen cards subtitle
actionButton: 'Continue', // Continue button
},
// Document tutorial screen
docTutorial: {
title: 'Capture Your ${docType}', // Screen title. ${docType} replaced with document name.
description: 'Place your original ${docType} within the frame and follow the instructions below', // Screen description
instructions: {
idFitsFrame: 'Make sure your ID card fits inside the frame', // Instruction: fit in frame
idCardNotCropped: 'Ensure the ID card is fully visible and not cropped', // Instruction: no cropping
avoidCoveringIdCard: 'Avoid covering the ID card with your finger', // Instruction: no finger covering
avoidLightReflection: 'Avoid light reflection on the ID card', // Instruction: no glare
avoidBlurriness: 'Eliminate any blurriness to guarantee a sharp and clear photo', // Instruction: no blur
},
actionButton: 'Start Document Capture', // Start button
},
// Document capture screen
docCapture: {
title: 'Capture Your ${docType}', // Screen title. ${docType} replaced with document name.
description: 'Take a photo of your ID or passport', // Screen description
captureFrontSide: 'Capture the Front Side of ${docType}', // Front side capture feedback. ${docType} replaced.
captureBackSide: 'Capture the Back Side of ${docType}', // Back side capture feedback. ${docType} replaced.
docPreviewDescription: 'Ensure the document is visible and easy to read', // Document preview description
detectionTimeOut: '${time} seconds left to complete your verification', // Countdown alert. ${time} replaced with seconds.
primaryActionButton: 'Continue', // Confirm/continue button
secondaryActionButton: 'Retake Photo', // Retake button
permission: {
title: 'Allow Camera Access', // Permission screen title
description: 'To continue, please enable camera access. We cannot verify your identity without using your camera.', // Permission description
actionButton: 'Allow', // Permission action button
},
error: {
title: 'The camera is either not supported or the access is denied.', // Error title
description: 'If you denied camera access by mistake, follow these steps:', // Error description
actionButton: 'Retry', // Retry button
unsupportedDeviceTitle: 'Unable to proceed', // Unsupported device error title
unsupportedDeviceDescription: 'Unsupported device. Switch to a compatible device or use a desktop/mobile browser.', // Unsupported device description
moduleDownloadErrorTitle: 'Unable to proceed', // Module download error title
moduleDownloadErrorDescription: 'Module download failed. Check your connection and try again', // Module download error description
browserPrivacyModeErrorTitle: 'Unable to proceed', // Private/incognito mode error title
browserPrivacyModeErrorDescription:
'Face detection failed. Do not use a private window, and disable browser tracking protection for this site before trying again.', // Privacy mode error description
},
},
// Liveness tutorial screen (shown before face match selfie capture)
livenessTutorial: {
title: 'Capture Your Selfie', // Screen title
description: 'Position your face within the frame.', // Screen description
instructions: {
holdPhoneSteady: 'Hold the phone steady using both hands', // (Visible for mobile/tanlet devices) Instruction: steady phone
avoidGlasses: "Don't wear glasses", // Instruction: no glasses
avoidBrightPlace: 'Avoid being in a very bright place', /// (Visible for color flash) Instruction: avoid bright light
faceFullyVisible: 'Ensure your face is fully visible within the frame', // (Visible for desktop devices) Instruction: face visibility
},
actionButton: 'Start Selfie Capture', // Start button
},
// Selfie capture screen (face match camera screen)
selfieCapture: {
title: 'Capture Your Selfie', // Screen title
description: 'Follow the instructions provided and ensure your face is clearly visible', // Screen description
helpText: 'Need Help?', // Help button text
helpBackButton: 'Back', // Help overlay back button
selfieCaptureTipsTitle: 'Capture Your Selfie', // Selfie tips overlay title
docCaptureTipsTitle: 'Document Capture Tips', // Doc tips overlay title
noFaceDetected: 'Put your face in the frame', // Feedback: no face found
faceDetected: 'Stay still', // Feedback: face detected
placeFaceinFrame: 'Put your face in the frame', // Feedback: face outside frame
multipleFaceDetected: 'Ensure no additional faces are visible in the frame', // Feedback: multiple faces
faceTooFar: 'Move closer', // Feedback: face too far
faceNotStraight: 'Keep your face straight', // Feedback: face angle off
faceToodark: 'Move to well-lit area', // Feedback: too dark
faceTooBright: 'Too bright', // Feedback: too bright
eyesClosed: 'Open your eyes', // Feedback: eyes closed
detectionTimeOut: '${time} seconds left to complete your verification', // Countdown alert. ${time} replaced with seconds.
permission: {
title: 'Allow Camera Access', // Permission screen title
description: 'To continue, please enable camera access. We cannot verify your identity without using your camera.', // Permission description
actionButton: 'Allow', // Permission action button
},
error: {
title: 'The camera is either not supported or the access is denied.', // Error title
description: 'If you denied camera access by mistake, follow these steps:', // Error description
actionButton: 'Retry', // Retry button
unsupportedDeviceTitle: 'Unable to proceed', // Unsupported device error title
unsupportedDeviceDescription: 'Unsupported device. Switch to a compatible device or use a desktop/mobile browser.', // Unsupported device description
moduleDownloadErrorTitle: 'Unable to proceed', // Module download error title
moduleDownloadErrorDescription: 'Module download failed. Check your connection and try again', // Module download error description
browserPrivacyModeErrorTitle: 'Unable to proceed', // Private/incognito mode error title
browserPrivacyModeErrorDescription:
'Face detection failed. Do not use a private window, and disable browser tracking protection for this site before trying again.', // Privacy mode error description
},
},
// Identity verification error screen
idvError: {
title: 'Verification Failed', // Error screen title
description: "We couldn't complete your verification", // Error screen description
actionButton: 'Retake Photo', // Retake action button
errorSectionSubTitle: "We couldn't complete your verification", // Error details subtitle
docErrorLabel: 'Document Photo', // Document error label
selfieErrorLabel: 'Selfie Photo', // Selfie error label
tipsSectionSubTitle: 'Please retry & follow these tips', // Tips section subtitle
// Backend error messages — document verification (error code → display text)
backendError_5010: 'Invalid Card', // Invalid card
backendError_5016: 'Invalid Card', // Invalid card (alt)
backendError_5020: 'No card detected', // No card detected
backendError_5023: 'Bad quality image', // Bad quality
backendError_5027: 'Front & Back side of the card not matching', // Front/back mismatch
backendError_5101: 'No card detected', // No card detected (alt)
backendError_5103: 'Bad quality image', // Bad quality (alt)
backendError_5202: 'Blurry', // Document blurry
backendError_5203: 'Too Dark', // Document too dark
backendError_5204: 'Too Bright', // Document too bright
backendError_5207: 'Glare', // Document glare
backendError_5402: 'Front & Back side of the card not matching', // Front/back mismatch (alt)
backendError_5403: '', // Custom override only
// Backend error messages — liveness (inherited from selfieReview)
backendError_1041: 'Liveness verification failed',
backendError_1051: 'Remove any obstructions from your face',
backendError_1052: 'Move closer',
backendError_1053: 'Please ensure the lighting is sufficient and the photo is clear',
backendError_1054: 'Ensure no additional faces are visible in the frame',
backendError_1055: 'Put your face in the frame',
backendError_1058: 'Please ensure the lighting is sufficient and the photo is clear',
backendError_1059: 'The selfie is blurry, hold your phone steady',
backendError_1060: 'Keep your face straight',
backendError_1062: 'Open your eyes',
backendError_1063: 'Please ensure the lighting is sufficient and the photo is clear',
backendError_1064: "The selfie is too dark, ensure there's enough lighting for a clear photo",
backendError_1074: "The selfie is too dark, ensure there's enough lighting for a clear photo",
backendError_1065: 'The selfie is too bright, please adjust the lighting for a clear photo',
backendError_1075: 'The selfie is too bright, please adjust the lighting for a clear photo',
backendError_1066: 'The selfie is blurry, hold your phone steady',
backendError_1076: 'The selfie is blurry, hold your phone steady',
sessionExpired: 'Session expired. Please restart the selfie process to continue',
unknownError: 'Oops! Something went wrong, please try again later',
maxRetryExhausted: "You've reached the maximum number of attempts. Please try again later",
},
},
ID: {
sessionId: 'ID Sesi',
networkStatus: 'Sepertinya Anda offline. Silakan periksa koneksi internet Anda',
idvIntroduction: {
title: 'Verifikasi Identitas Anda',
description:
'Kami akan memandu Anda melalui serangkaian langkah cepat untuk memverifikasi identitas Anda. Seluruh proses biasanya memakan waktu 1-2 menit.',
stepsSubTitle: 'Apa yang diharapkan',
docCaptureStepTitle: 'Pengambilan Dokumen',
docCaptureStepDescription: 'Ambil foto identitas atau paspor Anda',
selfieCaptureStepTitle: 'Pengambilan Selfie',
selfieCaptureStepDescription: 'Verifikasi apakah wajah Anda cocok dengan dokumen Anda',
actionButton: 'Melanjutkan',
},
documentSelection: {
title: 'Seleksi Dokumen',
description: 'Ambil foto dokumen asli sehingga kami dapat memverifikasi siapa Anda',
countryCardsSubTitle: '',
foreignCardsSubTitle: '',
actionButton: 'Melanjutkan',
},
docTutorial: {
title: 'Tangkap ${docType} Anda',
description: 'Letakkan ${docType} asli Anda di dalam bingkai dan ikuti petunjuk di bawah ini',
instructions: {
idFitsFrame: 'Pastikan kartu identitas Anda pas di dalam bingkai',
idCardNotCropped: 'Pastikan kartu identitas terlihat sepenuhnya dan tidak terpotong',
avoidCoveringIdCard: 'Hindari menutupi kartu identitas dengan jari Anda',
avoidLightReflection: 'Hindari pantulan cahaya pada kartu identitas',
avoidBlurriness: 'Hilangkan segala keburaman untuk menjamin foto yang tajam dan jelas',
},
actionButton: 'Mulai Pengambilan Dokumen',
},
docCapture: {
title: 'Tangkap ${docType} Anda',
description: 'Ambil foto identitas atau paspor Anda',
captureFrontSide: 'Tangkap Sisi Depan ${docType}',
captureBackSide: 'Tangkap Sisi Belakang ${docType}',
docPreviewDescription: 'Pastikan dokumen terlihat dan mudah dibaca',
detectionTimeOut: 'Waktu hampir habis, ${time} detik tersisa untuk verifikasi',
primaryActionButton: 'Melanjutkan',
secondaryActionButton: 'Ambil Ulang Foto',
permission: {
title: 'Izinkan akses kamera',
description:
'Untuk melanjutkan, Anda perlu mengizinkan akses kamera. Kami tidak dapat memverifikasi Anda tanpa menggunakan kamera.',
actionButton: 'Izinkan',
},
error: {
title: 'Kamera tidak didukung atau akses ditolak.',
description: 'Jika Anda tidak sengaja menolak akses kamera, ikuti langkah-langkah berikut:',
actionButton: 'Coba kembali',
unsupportedDeviceTitle: 'Tidak dapat melanjutkan',
unsupportedDeviceDescription: 'Perangkat tidak didukung. Gunakan perangkat lain atau beralih ke desktop/mobile.',
moduleDownloadErrorTitle: 'Tidak dapat melanjutkan',
moduleDownloadErrorDescription: 'Pengunduhan modul gagal. Pastikan koneksi internet stabil dan coba lagi',
browserPrivacyModeErrorTitle: 'Tidak dapat melanjutkan',
browserPrivacyModeErrorDescription:
'Deteksi wajah gagal. Jangan gunakan jendela private, dan nonaktifkan perlindungan pelacakan browser untuk situs ini sebelum mencoba lagi.',
},
},
livenessTutorial: {
title: 'Ambil Swafoto',
description: 'Posisikan wajah Anda dalam bingkai.',
instructions: {
holdPhoneSteady: 'Pegang telepon dengan stabil menggunakan kedua tangan',
avoidGlasses: 'Jangan memakai kacamata',
avoidBrightPlace: 'Hindari berada di tempat yang terlalu terang',
faceFullyVisible: 'Pastikan wajah Anda terlihat sepenuhnya dalam bingkai',
},
actionButton: 'Mulai Pengambilan Selfie',
},
selfieCapture: {
title: 'Ambil Swafoto',
description: 'Ikuti petunjuk yang diberikan dan pastikan wajah Anda terlihat jelas',
helpText: 'Butuh Bantuan?',
helpBackButton: 'Kembali',
selfieCaptureTipsTitle: 'Ambil Swafoto',
docCaptureTipsTitle: 'Tip Pengambilan Dokumen',
noFaceDetected: 'Tempatkan wajah Anda dalam bingkai',
faceDetected: 'Tetap diam',
placeFaceinFrame: 'Tempatkan wajah Anda dalam bingkai',
multipleFaceDetected: 'Pastikan hanya satu wajah di layar',
faceTooFar: 'Mendekat',
faceNotStraight: 'Hadapkan wajah ke layar',
faceToodark: 'Pindah ke tempat cerah',
faceTooBright: 'Terlalu silau',
eyesClosed: 'Buka mata Anda',
detectionTimeOut: 'Waktu hampir habis, ${time} detik tersisa untuk verifikasi',
permission: {
title: 'Izinkan akses kamera',
description:
'Untuk melanjutkan, Anda perlu mengizinkan akses kamera. Kami tidak dapat memverifikasi Anda tanpa menggunakan kamera.',
actionButton: 'Izinkan',
},
error: {
title: 'Kamera tidak didukung atau akses ditolak.',
description: 'Jika Anda tidak sengaja menolak akses kamera, ikuti langkah-langkah berikut:',
actionButton: 'Coba kembali',
unsupportedDeviceTitle: 'Tidak dapat melanjutkan',
unsupportedDeviceDescription: 'Perangkat tidak didukung. Gunakan perangkat lain atau beralih ke desktop/mobile.',
moduleDownloadErrorTitle: 'Tidak dapat melanjutkan',
moduleDownloadErrorDescription: 'Pengunduhan modul gagal. Pastikan koneksi internet stabil dan coba lagi',
browserPrivacyModeErrorTitle: 'Tidak dapat melanjutkan',
browserPrivacyModeErrorDescription:
'Deteksi wajah gagal. Jangan gunakan jendela private, dan nonaktifkan perlindungan pelacakan browser untuk situs ini sebelum mencoba lagi.',
},
},
idvError: {
title: 'Verifikasi Gagal',
description: 'Kami tidak dapat menyelesaikan verifikasi Anda',
actionButton: 'Ambil Ulang Foto',
errorSectionSubTitle: 'Kami tidak dapat menyelesaikan verifikasi Anda',
docErrorLabel: 'Foto Dokumen',
selfieErrorLabel: 'Foto Selfie',
tipsSectionSubTitle: 'Silakan coba lagi dan ikuti tips berikut ini',
backendError_5010: 'Kartu Tidak Valid',
backendError_5016: 'Kartu Tidak Valid',
backendError_5020: 'Tidak ada kartu yang terdeteksi',
backendError_5023: 'Gambar berkualitas buruk',
backendError_5027: 'Sisi Depan & Belakang kartu tidak cocok',
backendError_5101: 'Tidak ada kartu yang terdeteksi',
backendError_5103: 'Gambar berkualitas buruk',
backendError_5202: 'Buram',
backendError_5203: 'Terlalu Gelap',
backendError_5204: 'Terlalu Terang',
backendError_5207: 'Silau',
backendError_5323: '',
backendError_5324: '',
backendError_5402: 'Sisi Depan & Belakang kartu tidak cocok',
backendError_5403: '',
backendError_1041: 'Verifikasi Liveness gagal',
backendError_1051: 'Jangan ada penghalang di wajah',
backendError_1052: 'Mendekat',
backendError_1053: 'Pastikan pencahayaan cukup agar foto terlihat jelas',
backendError_1054: 'Pastikan hanya satu wajah di layar',
backendError_1055: 'Tempatkan wajah Anda dalam bingkai',
backendError_1058: 'Pastikan pencahayaan cukup agar foto terlihat jelas',
backendError_1059: 'Swafoto buram, pastikan perangkat stabil',
backendError_1060: 'Hadapkan wajah ke layar',
backendError_1062: 'Buka mata Anda',
backendError_1063: 'Pastikan pencahayaan cukup agar foto terlihat jelas',
backendError_1064: 'Swafoto terlalu gelap, pastikan pencahayaannya cukup agar foto terlihat jelas',
backendError_1074: 'Swafoto terlalu gelap, pastikan pencahayaannya cukup agar foto terlihat jelas',
backendError_1065: 'Swafoto terlalu terang, atur pencahayaan agar foto terlihat jelas',
backendError_1075: 'Swafoto terlalu terang, atur pencahayaan agar foto terlihat jelas',
backendError_1066: 'Swafoto buram, pastikan perangkat stabil',
backendError_1076: 'Swafoto buram, pastikan perangkat stabil',
sessionExpired: 'Sesi telah habis. Mohon ulangi proses swafoto untuk melanjutkan',
unknownError: 'Ups! Terjadi kesalahan, silakan coba lagi nanti',
maxRetryExhausted: 'Anda telah mencapai batas maksimum percobaan. Silakan coba lagi nanti',
},
},
},
},
});
```
