> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# 시각 인증 세션 생성

> Volc 호환 형식으로 실제 인물 시각 인증 세션을 생성합니다.

재사용 가능한 `liveness_face` 자료를 업로드하기 전에 실제 인물 시각 인증 세션을 생성합니다. TokenLab은 Volc Action API 형식과 TokenLab Bearer 인증을 사용합니다.

## 엔드포인트 및 인증

```text theme={null}
POST https://api.tokenlab.sh/api/v3?Action=CreateVisualValidateSession&Version=2024-01-01
Authorization: Bearer <TOKENLAB_API_KEY>
Content-Type: application/json
```

Volc AK/SK 서명은 허용되지 않습니다. `CallbackURL`은 필수이며 공개 HTTPS URL이어야 합니다. `ProjectName`은 선택 사항이며 기본값은 `default`입니다.

## 흐름

1. `Result.BytedToken`을 저장하고 인증 대상자가 `Result.H5Link`를 열도록 합니다.
2. H5 언어를 지정하려면 `H5Link`에 `lng`를 추가합니다(예: `&lng=en`). 언어는 요청 본문 필드가 아닙니다.
3. H5 흐름이 완료되면 브라우저가 `Result.CallbackURL`을 엽니다. 콜백 쿼리에는 `bytedToken`, `resultCode`, `algorithmBaseRespCode`, `reqMeasureInfoValue`, `verify_type`가 포함될 수 있습니다.
4. 저장한 `BytedToken`으로 [시각 인증 결과 조회](/ko/api-reference/video/get-visual-validation-result)를 폴링하여 `Result.GroupId`가 반환될 때까지 기다립니다.

`BytedToken`은 30분 동안 유효하며 인증된 조직 및 `ProjectName`에 귀속됩니다. H5 링크에서는 한 번의 인증만 완료할 수 있으며 사용 후에는 무효화됩니다.

`Result.H5Link`는 불투명한 브라우저 URL로 취급하여 최상위 페이지로 여세요. URL을 파싱, 디코딩, 재작성하거나 임베드하지 마세요. 브라우저 핸드오프와 callback 브리지는 TokenLab이 관리합니다.

## 요청 예시

```bash theme={null}
curl 'https://api.tokenlab.sh/api/v3?Action=CreateVisualValidateSession&Version=2024-01-01' \
  -H "Authorization: Bearer $TOKENLAB_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"CallbackURL":"https://yourapp.example.com/seedance/callback","ProjectName":"default"}'
```

## 응답 예시

```json theme={null}
{
  "ResponseMetadata": {
    "RequestId": "req_abc123",
    "Action": "CreateVisualValidateSession",
    "Version": "2024-01-01",
    "Service": "ark",
    "Region": "cn-beijing"
  },
  "Result": {
    "BytedToken": "ZXhhbXBsZS10b2tlbg",
    "H5Link": "https://api.tokenlab.sh/api/v3/visual-validation/sessions/svv_example/h5?Version=2024-01-01",
    "CallbackURL": "https://yourapp.example.com/seedance/callback"
  }
}
```

오류도 동일한 최상위 형식을 사용합니다. TokenLab의 다른 `/v1` API 필드 대신 `ResponseMetadata.Error.Code`와 `ResponseMetadata.Error.Message`를 확인하십시오.
