> For the complete documentation index, see [llms.txt](https://docs.vida.id/identity-stack/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.vida.id/identity-stack/verify/kyc-web-sdk/customization/configuration-options.md).

# Configuration Options

### Full Configuration Example - With Default Values <a href="#full-configuration-example-with-default-values" id="full-configuration-example-with-default-values"></a>

{% code expandable="true" %}

````js
# 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. If set, userInfo.id becomes required.
  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',
        },
      },
    },
  },
});
```

````

{% endcode %}
