메인 콘텐츠로 건너뛰기

Silent Verification

Silent Verification을 사용하면 이전에 검증된 재방문 사용자가 화면에 노출되는 캡처 단계 없이 비대면 카드 검증 거래를 완료할 수 있습니다. 사용자에게 새로운 셀피를 요청하는 대신, Unico의 기술이 백그라운드에서 신호와 반복성을 평가하여 거래를 무음으로 승인할 수 있는지 판단합니다.

Silent Verification은 별도의 제품이 아니라, 결제 거래신용카드 Onboarding에서 설명한 것과 동일한 거래 생성 흐름 위에 추가되는 단계입니다. SDK로 컨텍스트 신호를 수집하고 거래를 생성할 때 동일한 외부 키를 전송하는 것이 무음 승인의 가능성을 열어줍니다.

적용 조건
  • Silent Verification은 Unico의 기술이 신호를 통해 신원을 평가할 수 있을 만큼 충분한 이력이 있을 때 적용됩니다.
  • 이력 부족 등의 이유로 이러한 평가가 불가능한 경우, 거래는 대신 표준 시각적 흐름으로 대체됩니다. 예를 들어 특정 신원이 네트워크에서 처음 확인되는 경우 이런 일이 발생할 수 있습니다.
1. SDK로 디바이스 메타데이터 수집

평소와 같이 플랫폼용 Capture SDK를 설치하고 초기화하세요 — Silent Verification은 이 설정을 변경하지 않습니다. externalUserId를 전송하려면 플랫폼의 모니터링 데이터 수집 가이드를 따르세요:

정보

Flutter는 아직 Silent Verification을 지원하지 않습니다.

이것은 단순한 옵저버빌리티 메타데이터가 아닙니다

모니터링 데이터 수집 가이드에서는 externalUserId를 "SDK의 캡처 동작이나 API 응답을 변경하지 않는" 선택적 텔레메트리로 설명합니다. 이는 SDK 자체만 놓고 보면 사실입니다. 비대면 카드 검증에서는 이 동일한 필드를 백엔드가 거래를 무음으로 승인할 수 있는지 판단하는 데 사용합니다. 이 값을 전송하는 것이 바로 해당 거래에 대해 Silent Verification을 활성화하는 요인입니다 — 여기서는 이 값이 무의미하지 않습니다.

흐름을 무음으로 유지하려면 표준 캡처 설정에 두 가지 조정이 필요합니다:

  • 모바일(Android/iOS): externalUserId가 포함된 PrepareInfo 객체를 받는 prepareCamera/prepareSelfieCamera 오버로드를 사용하고, 해당 세션에서 실제로 전체 시각적 흐름을 원하는 경우가 아니라면 성공 콜백 내부에서 카메라 열기 메서드를 호출하지 마세요.
unicoCheckCamera.prepareCamera(unicoConfig, object : CameraListener {
override fun onCameraReady(cameraOpener: UnicoCheckCameraOpener.Camera?) {
// 여기서 cameraOpener?.open()을 호출할 필요는 없습니다 — 백그라운드 수집이 이미 시작되었습니다.
}
override fun onCameraFailed(message: String?) { /* handle error */ }
}, PrepareInfo("YOUR_EXTERNAL_USER_ID"))
  • Web: prepareCamera/prepareSelfieCamera를 호출하기 전에 UnicoCheckBuilder 인스턴스에서 setSilentInfo(externalUserId, useCase)를 호출하고, 마찬가지로 성공 콜백에서 카메라 열기를 건너뛰세요.
unicoCamera.setSilentInfo("YOUR_EXTERNAL_USER_ID");
await unicoCamera.prepareSelfieCamera(config, SelfieCameraTypes.SMART);
// 여기서 카메라를 열 필요는 없습니다 — 백그라운드 수집이 이미 시작되었습니다.
타이밍 윈도우

SDK는 백그라운드에서 데이터를 수집하므로, 거래를 생성하기 전에 최소한의 간격이 있어야 합니다:

  • 거래 API를 호출하기 최소 4초 전에 SDK 준비를 시작하세요 — 너무 이르면 수집이 완료되지 않았을 수 있습니다.
  • 수집된 데이터는 최대 5분간 유효합니다 — 너무 늦으면 거래가 생성될 때쯤에는 이미 만료되어 있을 것입니다.
2. 동일한 externalUserID로 거래 생성

externalUserID는 선택 사항이지만, 이것이 없으면 해당 거래에 대해 Silent Verification이 발생할 수 없습니다. 결제 거래 또는 신용카드 Onboarding을 통해 거래를 생성할 때, SDK에서 사용한 것과 정확히 동일한 externalUserIDadditionalInfo 내부에 담아 전송하세요:

{
"additionalInfo": {
"externalUserID": "YOUR_EXTERNAL_USER_ID"
}
}

생략해도 오류는 발생하지 않습니다 — 거래는 여전히 정상적으로 생성되며, 다만 항상 시각적 마찰(visual friction)이 있는 표준 흐름을 따르게 됩니다.

3. 응답 처리

거래가 조건을 충족하여 백그라운드에서 자동으로 승인된 경우, 추가 작업이 필요하지 않습니다:

{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "approved"
}

그렇지 않으면, 응답에는 Silent Verification 없이 생성된 거래와 마찬가지로 표준 시각적 흐름을 완료하기 위한 link가 포함됩니다:

{
"id": "6ab1771e-dfab-4e47-8316-2452268e5481",
"status": "waiting",
"link": "https://aces.so/example",
"token": "eyJhbGciOiJIUzI1NiIsInR5cC[...]Ok6yJV_adQssw5c"
}

다른 상태의 경우 반환된 link를 사용하여 표준 흐름을 따르세요 — 전체 상태 목록은 경험 제어열거형을 참조하세요.