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

# 신분증 인물 사진 검증 API 연동 설명

> Identity Authentication 集成指南 - XHuoAPI

본 문서에서는 신분증 인물 사진 검증 API 연동 설명을 소개합니다. 이 API는 신분증 인물 면 사진을 전달하여 신분증 사진의 정보를 인식하고, 이름, 신분증 번호, 신분증 인물 사진을 권위 있는 데이터베이스의 증명 사진과 비교하여 동일 인물인지 확인함으로써 신분증 정보의 진위를 검증합니다.

## 신청 절차

API를 사용하려면 먼저 [신분증 인물 사진 검증 API](https://api.xhuoapi.ai/documents/7a3f14f7-f1eb-41c2-816c-9f18caca6883) 해당 페이지에서 서비스를 신청해야 합니다. 페이지에 들어가면 "Acquire" 버튼을 클릭합니다. 아래 그림과 같이:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

로그인 또는 등록이 되어 있지 않으면 자동으로 로그인 페이지로 리디렉션되어 등록 및 로그인을 요청합니다. 로그인 및 등록 후에는 자동으로 현재 페이지로 돌아옵니다.

첫 신청 시 무료 사용량이 제공되어 해당 API를 무료로 사용할 수 있습니다.

## 기본 사용

먼저 기본 사용 방식을 이해해야 합니다. 신분증 이미지 링크를 입력하면 처리된 검증 결과를 얻을 수 있습니다. 먼저 간단히 `image_url` 필드를 전달해야 하며, 다음으로 화면에 해당 내용을 입력할 수 있습니다. 아래 그림과 같이:

<p>
  <img src="https://cdn.xhuoapi.ai/zjxg3k.png" width="500" className="m-auto" />
</p>

여기서 요청 헤더를 설정했습니다. 포함된 내용은 다음과 같습니다:

* `accept`: 어떤 형식의 응답 결과를 받고 싶은지, 여기서는 `application/json`으로 JSON 형식으로 입력합니다.
* `authorization`: API 호출을 위한 키, 신청 후 직접 드롭다운에서 선택할 수 있습니다.

또한 요청 본문을 설정했습니다. 포함된 내용은 다음과 같습니다:

* `image_url`: 처리할 신분증 이미지 링크.
* `config`: 선택적 구성 항목, 불리언 값 필드로 기본값은 모두 false이며, `copy_warn`, `border_check_warn`, `reshoot_warn`, `detect_ps_warn`, `temp_id_warn`, `quality`(임계값 0-100)를 지원합니다.

선택 후 오른쪽에 해당 코드가 생성된 것을 확인할 수 있습니다. 아래 그림과 같이:

<p>
  <img src="https://cdn.xhuoapi.ai/4yh23p.png" width="500" className="m-auto" />
</p>

"Try" 버튼을 클릭하면 테스트를 진행할 수 있습니다. 위 그림과 같이, 다음과 같은 결과를 얻었습니다:

```json theme={null}
{
  "sim": 99.76,
  "result": "Success",
  "description": "성공",
  "name": "신분증 이름",
  "sex": "신분증 성별",
  "nation": "신분증 민족",
  "birth": "신분증 생일",
  "address": "신분증 주소",
  "id_num": "신분증 번호",
  "portrait": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBA.....DEhE2lbPMcOtG3f/DLT/yX8if7Kxn/AD7h85wdttPifRf1e6//2Q==",
  "warnings": "",
  "quality": 0,
  "encryption": null
}
```

반환 결과는 여러 필드로 구성되어 있으며, 설명은 다음과 같습니다:

* `sim`: 유사도, 값의 범위는 \[0.00, 100.00]입니다. 유사도가 70 이상일 경우 동일 인물로 판단할 수 있으며, 구체적인 상황에 따라 임계값을 조정할 수 있습니다(임계값 70의 오탐률은 천분의 일, 임계값 80의 오탐률은 만분의 일).
* `result`: 비즈니스 오류 코드, 성공 시 "Success"를 반환하며, 오류 상황은 아래 오류 코드 목록의 "FailedOperation" 부분을 참조하십시오.
* `description`: 여기서 이름과 신분증 번호 검증 결과입니다.
* `name`: 신분증의 이름 정보, 신분증 이미지를 업로드하지 않으면 비어 있습니다.
* `sex`: 신분증의 성별 정보, 신분증 이미지를 업로드하지 않으면 비어 있습니다.
* `nation`: 신분증의 민족 정보, 신분증 이미지를 업로드하지 않으면 비어 있습니다.
* `birth`: 신분증의 생일 정보, 신분증 이미지를 업로드하지 않으면 비어 있습니다.
* `address`: 신분증의 주소 정보, 신분증 이미지를 업로드하지 않으면 비어 있습니다.
* `id_num`: 신분증의 번호 정보, 신분증 이미지를 업로드하지 않으면 비어 있습니다.
* `portrait`: 신분증 사진의 base64 인코딩, 이미지 추출에 실패하면 전체 신분증으로 비교하여 비어 있는 값을 반환합니다.
* `warnings`: 경고 정보, Config에서 경고 정보를 설정하면 인물 비교가 중단되고 Result는 오류(FailedOperation.OcrWarningOccurred)를 반환하며 이 경고 정보가 포함됩니다.
* `quality`: 이미지 품질 점수, 요청 Config에서 이미지 흐림 경고가 설정된 경우에만 의미가 있으며, 값의 범위는 (0～100)입니다. 현재 기본 임계값은 50점이며, 50점 미만일 경우 흐림 경고가 발생합니다.
* `encryption`: 민감 데이터 암호화 정보입니다.

신분증 정보가 매우 높은 진위를 가지고 있음을 알 수 있습니다.

또한 해당 연동 코드를 생성하고 싶다면 직접 복사하여 생성할 수 있습니다. 예를 들어 CURL의 코드는 다음과 같습니다:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/identity/idcard/check-1e' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
  "image_url": {image_url}
}'
```

Python의 연동 코드는 다음과 같습니다:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/identity/idcard/check-1e"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "image_url": {image_url}
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

## 오류 처리

API를 호출할 때 오류가 발생하면 API는 해당 오류 코드와 정보를 반환합니다. 예를 들어:

* `400 token_mismatched`: 잘못된 요청, 누락되거나 잘못된 매개변수 때문일 수 있습니다.
* `400 api_not_implemented`: 잘못된 요청, 누락되거나 잘못된 매개변수 때문일 수 있습니다.
* `401 invalid_token`: 권한 없음, 잘못되었거나 누락된 인증 토큰입니다.
* `429 too_many_requests`: 너무 많은 요청, 비율 제한을 초과했습니다.
* `500 api_error`: 내부 서버 오류, 서버에서 문제가 발생했습니다.

### 오류 응답 예시

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## 결론

본 문서를 통해 신분증 인물 사진 검증 API를 사용하여 신분증 인물 면 사진을 전달하고, 신분증 사진의 정보를 인식하며, 이름, 신분증 번호, 신분증 인물 사진을 권위 있는 데이터베이스의 증명 사진과 비교하여 동일 인물인지 확인함으로써 신분증 정보의 진위를 검증하는 방법을 이해하셨습니다. 본 문서가 API를 더 잘 연동하고 사용하는 데 도움이 되기를 바랍니다. 질문이 있으시면 언제든지 기술 지원 팀에 문의해 주십시오.
