idmission-web-sdk 2.3.206 → 2.3.207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/components/submission/Errors.d.ts +4 -0
  2. package/dist/components/submission/Errors.d.ts.map +1 -1
  3. package/dist/components/submission/SubmissionErrorOverlay.d.ts +2 -2
  4. package/dist/components/submission/SubmissionErrorOverlay.d.ts.map +1 -1
  5. package/dist/components/submission/SubmissionProvider.d.ts +2 -2
  6. package/dist/components/submission/SubmissionProvider.d.ts.map +1 -1
  7. package/dist/lib/locales/de.d.ts +2 -0
  8. package/dist/lib/locales/de.d.ts.map +1 -1
  9. package/dist/lib/locales/es.d.ts +2 -0
  10. package/dist/lib/locales/es.d.ts.map +1 -1
  11. package/dist/lib/locales/fr.d.ts +2 -0
  12. package/dist/lib/locales/fr.d.ts.map +1 -1
  13. package/dist/lib/locales/index.d.ts +16 -0
  14. package/dist/lib/locales/index.d.ts.map +1 -1
  15. package/dist/lib/locales/it.d.ts +2 -0
  16. package/dist/lib/locales/it.d.ts.map +1 -1
  17. package/dist/lib/locales/ja.d.ts +2 -0
  18. package/dist/lib/locales/ja.d.ts.map +1 -1
  19. package/dist/lib/locales/pt.d.ts +2 -0
  20. package/dist/lib/locales/pt.d.ts.map +1 -1
  21. package/dist/lib/locales/ru.d.ts +2 -0
  22. package/dist/lib/locales/ru.d.ts.map +1 -1
  23. package/dist/lib/locales/zh.d.ts +2 -0
  24. package/dist/lib/locales/zh.d.ts.map +1 -1
  25. package/dist/sdk2.cjs.development.js +91 -43
  26. package/dist/sdk2.cjs.development.js.map +1 -1
  27. package/dist/sdk2.cjs.production.js +1 -1
  28. package/dist/sdk2.cjs.production.js.map +1 -1
  29. package/dist/sdk2.esm.js +91 -43
  30. package/dist/sdk2.esm.js.map +1 -1
  31. package/dist/sdk2.umd.development.js +91 -43
  32. package/dist/sdk2.umd.development.js.map +1 -1
  33. package/dist/sdk2.umd.production.js +1 -1
  34. package/dist/sdk2.umd.production.js.map +1 -1
  35. package/dist/version.d.ts +1 -1
  36. package/package.json +1 -1
package/dist/sdk2.esm.js CHANGED
@@ -204,7 +204,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
204
204
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
205
205
  };
206
206
 
207
- var webSdkVersion = '2.3.206';
207
+ var webSdkVersion = '2.3.207';
208
208
 
209
209
  function getPlatform() {
210
210
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
@@ -619,6 +619,15 @@ var NetworkError = /** @class */function (_super) {
619
619
  }
620
620
  return NetworkError;
621
621
  }(Error);
622
+ var AuthenticationError = /** @class */function (_super) {
623
+ __extends(AuthenticationError, _super);
624
+ function AuthenticationError(statusCode, message) {
625
+ var _this = _super.call(this, message) || this;
626
+ _this.statusCode = statusCode;
627
+ return _this;
628
+ }
629
+ return AuthenticationError;
630
+ }(Error);
622
631
  var SessionValidationFailedError = /** @class */function (_super) {
623
632
  __extends(SessionValidationFailedError, _super);
624
633
  function SessionValidationFailedError(err, host) {
@@ -760,7 +769,9 @@ var SubmissionErrorOverlay = function SubmissionErrorOverlay(_a) {
760
769
  alignItems: 'center',
761
770
  display: 'flex'
762
771
  }
763
- }, error instanceof NetworkError ? (/*#__PURE__*/React__default.createElement(NetworkErrorContent, {
772
+ }, error instanceof AuthenticationError ? (/*#__PURE__*/React__default.createElement(AuthenticationErrorContent, {
773
+ error: error
774
+ })) : error instanceof NetworkError ? (/*#__PURE__*/React__default.createElement(NetworkErrorContent, {
764
775
  error: error,
765
776
  onRetry: onRetry
766
777
  })) : (/*#__PURE__*/React__default.createElement(SubmissionErrorContent, {
@@ -801,6 +812,13 @@ var SubmissionErrorContent = function SubmissionErrorContent(_a) {
801
812
  onClick: onRetry
802
813
  }, retryText))));
803
814
  };
815
+ var AuthenticationErrorContent = function AuthenticationErrorContent(_a) {
816
+ var error = _a.error;
817
+ var t = useTranslation().t;
818
+ var headingText = t('Authentication failed');
819
+ var messageText = t("Your session could not be authenticated. Please start a new session and try again.");
820
+ return /*#__PURE__*/React__default.createElement(ErrorContainer, null, /*#__PURE__*/React__default.createElement(ErrorIcon, null, "!"), /*#__PURE__*/React__default.createElement(Heading$b, null, headingText), /*#__PURE__*/React__default.createElement(Message$1, null, messageText), /*#__PURE__*/React__default.createElement(StatusBadge$1, null, /*#__PURE__*/React__default.createElement(StatusLabel, null, "Status"), /*#__PURE__*/React__default.createElement(StatusValue, null, error.statusCode)));
821
+ };
804
822
  var NetworkErrorContent = function NetworkErrorContent(_a) {
805
823
  var onRetry = _a.onRetry;
806
824
  var t = useTranslation().t;
@@ -2461,10 +2479,10 @@ var SubmissionProvider = function SubmissionProvider(_a) {
2461
2479
  }, [additionalDocuments, bypassAgeValidation, bypassNameMatching, cardData, clientRequestID, companyId, customerDataMatchConfig, deduplicationEnabled, deduplicationSynchronous, barcodeCaptureAttempts, documentFileMetadata, documentServiceUrl, enrollmentId, expectedAudioText, geolocationResult, idBackCaptureAttempts, idBackImage, idBackImageRequired, idBackIrImage, idBackImageCapturedAt, idBackUvImage, idBarcodeImage, idBarcodeImageCapturedAt, idCaptureVideoAudioCapturedAt, idCaptureVideoAudioStartsAt, idCaptureVideoAudioUrl, idCaptureVideoCapturedAt, idCaptureVideoIdBackImage, idCaptureVideoIdBackImageCapturedAt, idCaptureVideoIdFrontImage, idCaptureVideoIdFrontImageCapturedAt, idCaptureVideoUrl, idCardForFaceMatch, idData, idFrontCaptureAttempts, idFrontImage, idFrontImageCapturedAt, idFrontIrImage, idFrontUvImage, idImageResolutionCheck, jobId, manualReviewRequired, needImmediateResponse, ocrMetadata, barcodeDecodeSummary, passportImage, passportImageCapturedAt, personalData, selfieCaptureAttempts, selfieImage, selfieImageCapturedAt, signatureData, signatureImageCapturedAt, signatureVideoCapturedAt, signatureVideoUrl, signatureVideoMetadata, uploadDocument, verifyIdWithExternalDatabases, webhooksClientTraceId, webhooksEnabled, webhooksFireOnReview, webhooksFireOnReviewURL, webhooksSendInputImages, webhooksSendProcessedImages, webhooksStripSpecialCharacters, webhooksURL]);
2462
2480
  var defaultOnSubmit = useCallback(function () {
2463
2481
  return __awaiter(void 0, void 0, void 0, function () {
2464
- var submissionResponse_1, payload, host, endpoint, response, statusMessage, submissionResponse_2, e_1, err;
2465
- var _a, _b, _c;
2466
- return __generator(this, function (_d) {
2467
- switch (_d.label) {
2482
+ var submissionResponse_1, payload, host, endpoint, response, _a, _b, statusMessage, submissionResponse_2, e_1, err;
2483
+ var _c, _d, _e;
2484
+ return __generator(this, function (_f) {
2485
+ switch (_f.label) {
2468
2486
  case 0:
2469
2487
  if (action === SubmissionAction.NONE) {
2470
2488
  submissionResponse_1 = {
@@ -2478,12 +2496,12 @@ var SubmissionProvider = function SubmissionProvider(_a) {
2478
2496
  return [2 /*return*/, submissionResponse_1];
2479
2497
  }
2480
2498
  setSubmissionStatus(SubmissionStatus.SUBMITTING);
2481
- _d.label = 1;
2499
+ _f.label = 1;
2482
2500
  case 1:
2483
- _d.trys.push([1, 7,, 8]);
2501
+ _f.trys.push([1, 9,, 10]);
2484
2502
  return [4 /*yield*/, buildSubmissionPayload()];
2485
2503
  case 2:
2486
- payload = _d.sent();
2504
+ payload = _f.sent();
2487
2505
  host = submissionUrl || determineSubmissionHost(environment);
2488
2506
  endpoint = determineSubmissionEndpoint(action, !!(idFrontImage || idBackImage || passportImage), !!selfieImage);
2489
2507
  return [4 /*yield*/, fetch(host + endpoint, {
@@ -2494,45 +2512,52 @@ var SubmissionProvider = function SubmissionProvider(_a) {
2494
2512
  throw new NetworkError(e.message);
2495
2513
  })];
2496
2514
  case 3:
2497
- response = _d.sent();
2498
- if (!(!response || !response.ok)) return [3 /*break*/, 5];
2499
- return [4 /*yield*/, response === null || response === void 0 ? void 0 : response.text()];
2515
+ response = _f.sent();
2516
+ if (!(!response || !response.ok)) return [3 /*break*/, 7];
2517
+ if (!((response === null || response === void 0 ? void 0 : response.status) === 401 || (response === null || response === void 0 ? void 0 : response.status) === 403)) return [3 /*break*/, 5];
2518
+ _a = AuthenticationError.bind;
2519
+ _b = [void 0, response.status];
2520
+ return [4 /*yield*/, response.text()];
2500
2521
  case 4:
2501
- statusMessage = _d.sent();
2522
+ throw new (_a.apply(AuthenticationError, _b.concat([_f.sent()])))();
2523
+ case 5:
2524
+ return [4 /*yield*/, response === null || response === void 0 ? void 0 : response.text()];
2525
+ case 6:
2526
+ statusMessage = _f.sent();
2502
2527
  if (!statusMessage || statusMessage === 'Load failed') throw new NetworkError(statusMessage);
2503
2528
  throw new SubmissionError({
2504
- statusCode: (_a = response === null || response === void 0 ? void 0 : response.statusText) !== null && _a !== void 0 ? _a : '???',
2529
+ statusCode: (_c = response === null || response === void 0 ? void 0 : response.statusText) !== null && _c !== void 0 ? _c : '???',
2505
2530
  statusMessage: statusMessage
2506
2531
  });
2507
- case 5:
2532
+ case 7:
2508
2533
  return [4 /*yield*/, response.json()];
2509
- case 6:
2510
- submissionResponse_2 = _d.sent();
2534
+ case 8:
2535
+ submissionResponse_2 = _f.sent();
2511
2536
  if (submissionResponse_2.status.statusCode !== '000') {
2512
2537
  throw new SubmissionError(submissionResponse_2.status);
2513
2538
  }
2514
2539
  setSubmissionRequest(payload);
2515
2540
  setSubmissionResponse(submissionResponse_2);
2516
2541
  setSubmissionStatus(SubmissionStatus.SUBMITTED);
2517
- (_b = onResponseReceived.current) === null || _b === void 0 ? void 0 : _b.call(onResponseReceived, submissionResponse_2, payload);
2542
+ (_d = onResponseReceived.current) === null || _d === void 0 ? void 0 : _d.call(onResponseReceived, submissionResponse_2, payload);
2518
2543
  return [2 /*return*/, submissionResponse_2];
2519
- case 7:
2520
- e_1 = _d.sent();
2544
+ case 9:
2545
+ e_1 = _f.sent();
2521
2546
  err = e_1;
2522
2547
  setSubmissionStatus(SubmissionStatus.FAILED);
2523
- setSubmissionError(e_1 instanceof SubmissionError || e_1 instanceof NetworkError ? e_1 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
2548
+ setSubmissionError(e_1 instanceof SubmissionError || e_1 instanceof NetworkError || e_1 instanceof AuthenticationError ? e_1 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
2524
2549
  statusCode: '',
2525
2550
  statusMessage: err.message
2526
2551
  }));
2527
2552
  setRetrySubmission(function () {
2528
- return ['VERIFY', 'IDENTIFY'].includes(action) ? function () {
2553
+ return e_1 instanceof AuthenticationError || ['VERIFY', 'IDENTIFY'].includes(action) ? function () {
2529
2554
  return null;
2530
2555
  } : defaultOnSubmit;
2531
2556
  });
2532
- (_c = onRequestFailure.current) === null || _c === void 0 ? void 0 : _c.call(onRequestFailure, err);
2557
+ (_e = onRequestFailure.current) === null || _e === void 0 ? void 0 : _e.call(onRequestFailure, err);
2533
2558
  if (throwErrorsOnFailure) throw err;
2534
- return [3 /*break*/, 8];
2535
- case 8:
2559
+ return [3 /*break*/, 10];
2560
+ case 10:
2536
2561
  return [2 /*return*/];
2537
2562
  }
2538
2563
  });
@@ -2637,15 +2662,15 @@ var SubmissionProvider = function SubmissionProvider(_a) {
2637
2662
  }, [clientRequestID, documentServiceUrl, estimateAge, geolocationResult, barcodeCaptureAttempts, barcodeDecodeSummary, idBackCaptureAttempts, idCardForFaceMatch, idFrontCaptureAttempts, jobId, predictGender, selfieCaptureAttempts, uploadDocument, useDocumentServiceForLivenessChecks, webhooksStripSpecialCharacters]);
2638
2663
  var checkLiveness = useCallback(function (imageDataUrl) {
2639
2664
  return __awaiter(void 0, void 0, void 0, function () {
2640
- var request, host, endpoint, response, statusMessage, submissionResponse_3, e_2, err;
2641
- var _a;
2642
- return __generator(this, function (_b) {
2643
- switch (_b.label) {
2665
+ var request, host, endpoint, response, _a, _b, statusMessage, submissionResponse_3, e_2, err;
2666
+ var _c;
2667
+ return __generator(this, function (_d) {
2668
+ switch (_d.label) {
2644
2669
  case 0:
2645
- _b.trys.push([0, 6,, 7]);
2670
+ _d.trys.push([0, 8,, 9]);
2646
2671
  return [4 /*yield*/, buildLivenessCheckPayload(imageDataUrl)];
2647
2672
  case 1:
2648
- request = _b.sent();
2673
+ request = _d.sent();
2649
2674
  host = submissionUrl || determineSubmissionHost(environment);
2650
2675
  endpoint = liveCheckEndpoint(!!idCardForFaceMatch);
2651
2676
  return [4 /*yield*/, fetch(host + endpoint, {
@@ -2656,30 +2681,37 @@ var SubmissionProvider = function SubmissionProvider(_a) {
2656
2681
  throw new NetworkError(e.message);
2657
2682
  })];
2658
2683
  case 2:
2659
- response = _b.sent();
2660
- if (!!response.ok) return [3 /*break*/, 4];
2684
+ response = _d.sent();
2685
+ if (!!response.ok) return [3 /*break*/, 6];
2686
+ if (!(response.status === 401 || response.status === 403)) return [3 /*break*/, 4];
2687
+ _a = AuthenticationError.bind;
2688
+ _b = [void 0, response.status];
2661
2689
  return [4 /*yield*/, response.text()];
2662
2690
  case 3:
2663
- statusMessage = _b.sent();
2691
+ throw new (_a.apply(AuthenticationError, _b.concat([_d.sent()])))();
2692
+ case 4:
2693
+ return [4 /*yield*/, response.text()];
2694
+ case 5:
2695
+ statusMessage = _d.sent();
2664
2696
  if (!statusMessage || statusMessage === 'Load failed') throw new NetworkError(statusMessage);
2665
2697
  throw new SubmissionError({
2666
2698
  statusCode: response.statusText,
2667
2699
  statusMessage: statusMessage
2668
2700
  });
2669
- case 4:
2701
+ case 6:
2670
2702
  return [4 /*yield*/, response.json()];
2671
- case 5:
2672
- submissionResponse_3 = _b.sent();
2703
+ case 7:
2704
+ submissionResponse_3 = _d.sent();
2673
2705
  if (submissionResponse_3.status.statusCode !== '000') {
2674
2706
  throw new SubmissionError(submissionResponse_3.status);
2675
2707
  }
2676
2708
  setSubmissionResponse(submissionResponse_3);
2677
2709
  return [2 /*return*/, submissionResponse_3];
2678
- case 6:
2679
- e_2 = _b.sent();
2710
+ case 8:
2711
+ e_2 = _d.sent();
2680
2712
  err = e_2;
2681
2713
  setSubmissionStatus(SubmissionStatus.FAILED);
2682
- setSubmissionError(e_2 instanceof SubmissionError || e_2 instanceof NetworkError ? e_2 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
2714
+ setSubmissionError(e_2 instanceof SubmissionError || e_2 instanceof NetworkError || e_2 instanceof AuthenticationError ? e_2 : err.message === 'Load failed' ? new NetworkError() : new SubmissionError({
2683
2715
  statusCode: '',
2684
2716
  statusMessage: err.message
2685
2717
  }));
@@ -2689,10 +2721,10 @@ var SubmissionProvider = function SubmissionProvider(_a) {
2689
2721
  return null;
2690
2722
  };
2691
2723
  });
2692
- (_a = onRequestFailure.current) === null || _a === void 0 ? void 0 : _a.call(onRequestFailure, err);
2724
+ (_c = onRequestFailure.current) === null || _c === void 0 ? void 0 : _c.call(onRequestFailure, err);
2693
2725
  if (throwErrorsOnFailure) throw err;
2694
- return [3 /*break*/, 7];
2695
- case 7:
2726
+ return [3 /*break*/, 9];
2727
+ case 9:
2696
2728
  return [2 /*return*/];
2697
2729
  }
2698
2730
  });
@@ -4495,6 +4527,8 @@ var es = {
4495
4527
  'Video signature has been successfully captured!': 'La video firma se ha capturado correctamente.',
4496
4528
  'Network unreachable': 'No hay conexión a internet.',
4497
4529
  "We're having trouble reaching our services please check your connection and try again.": '`Estamos teniendo problemas para alcanzar nuestros servicios, por favor hay que verificar la conexión a internet e intentar de nuevo.`',
4530
+ 'Authentication failed': 'Fallo de autenticación',
4531
+ 'Your session could not be authenticated. Please start a new session and try again.': 'No se pudo autenticar la sesión. Por favor, inicie una nueva sesión e inténtelo de nuevo.',
4498
4532
  "We're sorry an unexpected error has occurred.": '`Lo sentimos, se ha producido un error inesperado.`',
4499
4533
  'Document Capture': 'Captura de documento',
4500
4534
  Capture: 'Capturar',
@@ -4628,6 +4662,8 @@ var de = {
4628
4662
  'Video signature has been successfully captured!': 'Videosignatur wurde erfolgreich erfasst!',
4629
4663
  'Network unreachable': 'Netzwerk nicht erreichbar',
4630
4664
  "We're having trouble reaching our services please check your connection and try again.": 'Wir haben Probleme, unsere Dienste zu erreichen. Bitte prüfen Sie Ihre Verbindung und versuchen Sie es erneut.',
4665
+ 'Authentication failed': 'Authentifizierung fehlgeschlagen',
4666
+ 'Your session could not be authenticated. Please start a new session and try again.': 'Ihre Sitzung konnte nicht authentifiziert werden. Bitte starten Sie eine neue Sitzung und versuchen Sie es erneut.',
4631
4667
  "We're sorry an unexpected error has occurred.": 'Leider ist ein unerwarteter Fehler aufgetreten.',
4632
4668
  'Document Capture': 'Dokument erfassen',
4633
4669
  Capture: 'Erfassen',
@@ -4761,6 +4797,8 @@ var fr = {
4761
4797
  'Video signature has been successfully captured!': 'La signature vidéo a été capturée avec succès!',
4762
4798
  'Network unreachable': 'Réseau inaccessible',
4763
4799
  "We're having trouble reaching our services please check your connection and try again.": 'Nous rencontrons des difficultés pour accéder à nos services, veuillez vérifier votre connexion et réessayer.',
4800
+ 'Authentication failed': 'Échec de l’authentification',
4801
+ 'Your session could not be authenticated. Please start a new session and try again.': 'Votre session n’a pas pu être authentifiée. Veuillez démarrer une nouvelle session et réessayer.',
4764
4802
  "We're sorry an unexpected error has occurred.": 'Nous sommes désolés, une erreur inattendue est survenue.',
4765
4803
  'Document Capture': 'Capture de document',
4766
4804
  Capture: 'Capturer',
@@ -4894,6 +4932,8 @@ var it = {
4894
4932
  'Video signature has been successfully captured!': 'La firma video è stata acquisita correttamente!',
4895
4933
  'Network unreachable': 'Rete non raggiungibile',
4896
4934
  "We're having trouble reaching our services please check your connection and try again.": 'Si è verificato un problema nel raggiungere i nostri servizi, verificare la connessione e riprovare.',
4935
+ 'Authentication failed': 'Autenticazione fallita',
4936
+ 'Your session could not be authenticated. Please start a new session and try again.': 'Non è stato possibile autenticare la sessione. Avviare una nuova sessione e riprovare.',
4897
4937
  "We're sorry an unexpected error has occurred.": 'Spiacenti, si è verificato un errore inatteso.',
4898
4938
  'Document Capture': 'Acquisizione documento',
4899
4939
  Capture: 'Acquisisci',
@@ -5027,6 +5067,8 @@ var ja = {
5027
5067
  'Video signature has been successfully captured!': 'ビデオ署名を撮影しました',
5028
5068
  'Network unreachable': 'ネットワークに接続できません',
5029
5069
  "We're having trouble reaching our services please check your connection and try again.": 'サービス接続時に問題が発生しています。接続を確認して再度お試しください。',
5070
+ 'Authentication failed': '認証に失敗しました',
5071
+ 'Your session could not be authenticated. Please start a new session and try again.': 'セッションを認証できませんでした。新しいセッションを開始してもう一度お試しください。',
5030
5072
  "We're sorry an unexpected error has occurred.": '不慮のエラーが発生しました。申し訳ありません。',
5031
5073
  'Document Capture': 'ドキュメントの撮影',
5032
5074
  Capture: '撮影',
@@ -5160,6 +5202,8 @@ var pt = {
5160
5202
  'Video signature has been successfully captured!': 'A assinatura de vídeo foi capturada com sucesso!',
5161
5203
  'Network unreachable': 'Rede inacessível',
5162
5204
  "We're having trouble reaching our services please check your connection and try again.": 'Estamos com dificuldades para acessar nossos serviços, verifique sua conexão e tente novamente.',
5205
+ 'Authentication failed': 'Falha na autenticação',
5206
+ 'Your session could not be authenticated. Please start a new session and try again.': 'Não foi possível autenticar a sua sessão. Inicie uma nova sessão e tente novamente.',
5163
5207
  "We're sorry an unexpected error has occurred.": 'Lamentamos, mas ocorreu um erro inesperado.',
5164
5208
  'Document Capture': 'Captura de Documento',
5165
5209
  Capture: 'Capturar',
@@ -5293,6 +5337,8 @@ var ru = {
5293
5337
  'Video signature has been successfully captured!': 'Видеоподпись успешно записана!',
5294
5338
  'Network unreachable': 'Сеть недоступна',
5295
5339
  "We're having trouble reaching our services please check your connection and try again.": 'У нас возникли проблемы с доступом к нашим службам, проверьте подключение и повторите попытку.',
5340
+ 'Authentication failed': 'Ошибка аутентификации',
5341
+ 'Your session could not be authenticated. Please start a new session and try again.': 'Не удалось пройти аутентификацию сессии. Пожалуйста, начните новую сессию и повторите попытку.',
5296
5342
  "We're sorry an unexpected error has occurred.": 'К сожалению, произошла непредвиденная ошибка.',
5297
5343
  'Document Capture': 'Съемка документа',
5298
5344
  Capture: 'Съемка',
@@ -5426,6 +5472,8 @@ var zh = {
5426
5472
  'Video signature has been successfully captured!': '已成功拍攝影片簽名!',
5427
5473
  'Network unreachable': '網路無法連線',
5428
5474
  "We're having trouble reaching our services please check your connection and try again.": '無法與服務連線,請檢查連線並再試一次。',
5475
+ 'Authentication failed': '驗證失敗',
5476
+ 'Your session could not be authenticated. Please start a new session and try again.': '無法驗證您的工作階段。請開始新的工作階段後再試一次。',
5429
5477
  "We're sorry an unexpected error has occurred.": '很抱歉,發生非預期錯誤。',
5430
5478
  'Document Capture': '文件拍攝',
5431
5479
  Capture: '拍攝',