---
title: "주민등록증"
slug: "ai-application-service-ocr-ocrdocumentocr-identitycard"
updated: 2026-04-23T08:55:37Z
published: 2026-04-23T09:02:17Z
---

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

# 주민등록증

Classic/VPC 환경에서 이용 가능합니다.

특화 모델 엔진을 사용하여 주민등록증의 입력 정보(key-value)를 인식하고 추출합니다.

## 요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

| 메서드 | URI |
| --- | --- |
| POST | /id-card |

### 요청 헤더

CLOVA OCR API에서 공통으로 사용하는 헤더에 대한 정보는 [CLOVA OCR 요청 헤더](/docs/ai-application-service-ocr#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오.

### 요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

#### `Content-Type: application/json`인 경우

요청 헤더 `Content-Type`이 `application/json`인 경우의 요청 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `version` | String | Required | 버전 정보 - `V2`만 사용 |
| `requestId` | String | Required | 임의의 API 호출 UUID |
| `timestamp` | Integer | Required | 임의의 API 호출 시각(밀리초) - Unix Timestamp 형식 |
| `images` | Array | Required | images 세부 정보: [images](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#images1) |

#### `Content-Type: multipart/form-data`인 경우

요청 헤더 `Content-Type`이 `multipart/form-data`인 경우의 요청 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `message` | Object | Required | 요청 데이터 정보 |
| `message.version` | String | Required | 버전 정보 - `V2`만 사용 |
| `message.requestId` | String | Required | 임의의 API 호출 UUID |
| `message.timestamp` | Integer | Required | 임의의 API 호출 시각(밀리초) - Unix Timestamp 형식 |
| `message.images` | Array | Required | images 세부 정보: [images](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#images1) |
| `file` | File | Required | OCR 인식 이미지 파일 |

#### `images`

`images`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `format` | String | Required | 이미지 형식 - `jpg` \| `jpeg` \| `png` \| `pdf` \| `tif` \| `tiff` - 이미지: `jpg`, `jpeg`, `png` - 단일 페이지: `pdf`, `tif`, `tiff` - 이미지 형식 중 하나를 선택하여 입력 |
| `name` | String | Required | 임의의 이미지 이름 - 이미지 식별 및 응답 결과 확인 시 사용 |
| `data` | String | Required | Base64 인코딩된 이미지 데이터 - `Content-Type: application/json`일 때 입력 가능 |

### 요청 예시

요청 예시는 다음과 같습니다.

#### `Content-Type: application/json`인 경우

요청 헤더 `Content-Type`이 `application/json`인 경우의 요청 예시는 다음과 같습니다.

```
curl --location --request POST 'https://cbgrx5natw.apigw.ntruss.com/custom/v1/{DomainId}/{InvokeKey}/document/id-card' \
--header 'Content-Type: application/json' \
--header 'X-OCR-SECRET: {앱 등록 시 발급받은 Secret Key}' \
--data '{
    "version": "V2",
    "requestId": "string",
    "timestamp": 0,
    "images": [
        { 
            "format": "png", 
            "name": "idcard_test", 
            "data":"{Base64 인코딩된 이미지 데이터}"
        }
    ]
 }'
```

#### `Content-Type: multipart/form-data`인 경우

요청 헤더 `Content-Type`이 `multipart/form-data`인 경우의 요청 예시는 다음과 같습니다.

```
curl --location --request POST 'https://cbgrx5natw.apigw.ntruss.com/custom/v1/{DomainId}/{InvokeKey}/document/id-card' \
--header 'X-OCR-SECRET: {앱 등록 시 발급받은 Secret Key}' \
--header 'Content-Type: multipart/form-data' \
--form 'message="{\"version\": \"V2\", \"requestId\": \"1234\", \"timestamp\": 1724832750462, \"images\": [{\"format\": \"png\", \"name\": \"idcard_test\"}]}"' \
--form 'file=@"{file}"'
```

## 응답

응답 형식을 설명합니다.

### 응답 바디

응답 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `version` | String | - | 버전 정보 - `V2`만 사용 |
| `requestId` | String | - | API 호출 UUID |
| `timestamp` | Integer | - | API 호출 시각(밀리초) - Unix Timestamp 형식 |
| `images` | Array | - | images 세부 정보: [images](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#images2) |

#### `images`

`images`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `uid` | String | - | 주민등록증 이미지 UID - APi 유효성 검사 시 사용 |
| `name` | String | - | 주민등록증 이미지 이름 - 이미지 식별 및 응답 결과 확인 시 사용 |
| `inferResult` | String | - | 주민등록증 이미지 인식 결과 - `SUCCESS` \| `FAILURE` \| `ERROR` - `SUCCESS`: 인식 성공 - `FAILURE`: 인식 실패 - `ERROR`: 인식 처리 예외 |
| `message` | String | - | 결과 메시지 |
| `validationResult` | Object | - | 유효성 검사 결과 정보 |
| `validationResult.result` | String | - | 유효성 검사 결과 코드 - `NO_REQUESTED` \| `UNCHECKED` \| `ERROR` \| `VALID` \| `INVALID` - `NO_REQUESTED`: 검증 작업 미요청(유효성 검사 실패) - `UNCHECKED`: 검증 여부 확인 불가 - `ERROR`: 검증 시 에러 발생(유효성 검사 실패) - `VALID`: 검증 결과 유효(유효성 검사 성공) - `INVALID`: 검증 통과 실패 |
| `validationResult.message` | String | - | 유효성 검사 결과 세부 메시지 - 항상 응답되는 값은 아님 |
| `convertedImageInfo` | Object | - | 변환 이미지 정보 - `format`이 `pdf` 또는 `tiff`일 때 - 좌표 값은 호출 이미지 파일을 기준으로 설정 |
| `convertedImageInfo.width` | Integer | - | 변환 이미지 가로 길이 |
| `convertedImageInfo.height` | Integer | - | 변환 이미지 세로 길이 |
| `convertedImageInfo.pageIndex` | Integer | - | 변환 이미지 페이지 인덱스 |
| `idCard` | Object | - | 신분증 세부 정보 |
| `idCard.meta` | Object | - | 메타 정보 |
| `idCard.meta.estimatedLanguage` | String | - | OCR 추정 언어 - `ko` \| `en` \| `ja` - `ko`:한국어 - `en`: 영어 - `ja`: 일본어 |
| `idCard.result` | Object | - | 신분증 OCR 인식 결과: [result](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#result) |

#### `result`

`result`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `isConfident` | Boolean | - | 각 유형 세부 정보 보유 여부 - `true` \| `false` - `true`: 보유 - `false`: 미보유 |
| `ic` | Object | - | 주민등록증 정보 |
| `ic.name` | Array | - | 이름 상세 정보: [name](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#name) |
| `ic.personalNum` | Array | - | 주민등록번호 상세 정보: [personalNum](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#personalNum) |
| `ic.address` | Array | - | 주소 상세 정보: [address](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#address) |
| `ic.issueDate` | Array | - | 발급 일자 상세 정보: [issueDate](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#issueDate) |
| `ic.authority` | Array | - | 발급 기관 상세 정보: [authority](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#authority) |
| `rois` | Array | - | 객체 테두리 위치 정보: [rois](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#rois) |
| `idType` | String | - | 신분증 유형 - `ID Card` |

#### name

`name`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `text` | String | - | 인식된 이름 텍스트 |
| `formatted` | Object | - | 인식된 이름 텍스트 정보 |
| `formatted.value` | String | - | 인식된 이름 텍스트 값 |
| `keyText` | String | - | 인식된 이름 텍스트의 키 값 |
| `confidenceScore` | Float | - | 인식된 이름 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 |
| `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#boundingpolys) |
| `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#maskingpolys) |

#### personalNum

`personalNum`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `text` | String | - | 인식된 주민등록번호 텍스트 |
| `formatted` | Object | - | 인식된 주민등록번호 텍스트 정보 |
| `formatted.value` | String | - | 인식된 주민등록번호 텍스트 값 |
| `keyText` | String | - | 인식된 주민등록번호 텍스트의 키 값 |
| `confidenceScore` | Float | - | 인식된 주민등록번호 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 |
| `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#boundingpolys) |
| `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#maskingpolys) |

#### address

`address`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `text` | String | - | 인식된 주소 텍스트 |
| `formatted` | Object | - | 인식된 주소 텍스트 정보 |
| `formatted.value` | String | - | 인식된 주소 텍스트 값 |
| `keyText` | String | - | 인식된 주소 텍스트의 키 값 |
| `confidenceScore` | Float | - | 인식된 주소 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 |
| `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#boundingpolys) |
| `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#maskingpolys) |

#### issueDate

`issueDate`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `text` | String | - | 인식된 발급 일자 텍스트 |
| `formatted` | Object | - | 인식된 발급 일자 텍스트 정보 |
| `formatted.year` | String | - | 인식된 발급 일자의 연도(yyyy) |
| `formatted.month` | String | - | 인식된 발급 일자의 월(MM) |
| `formatted.day` | String | - | 인식된 발급 일자의 일(dd) |
| `keyText` | String | - | 인식된 발급 일자 텍스트의 키 값 |
| `confidenceScore` | Float | - | 인식된 발급 일자 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 |
| `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#boundingpolys) |
| `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#maskingpolys) |

#### authority

`authority`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `text` | String | - | 인식된 발급 기관 텍스트 |
| `formatted` | Object | - | 인식된 발급 기관 텍스트 정보 |
| `formatted.value` | String | - | 인식된 발급 기관 텍스트 값 |
| `keyText` | String | - | 인식된 발급 기관 텍스트의 키 값 |
| `confidenceScore` | Float | - | 인식된 발급 기관 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 |
| `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#boundingpolys) |
| `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#maskingpolys) |

#### rois

`rois`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `x` | Float | - | 객체 테두리 위치 X축 좌표 값 |
| `y` | Float | - | 객체 테두리 위치 Y축 좌표 값 |

#### `boundingPolys`

`boundingPolys`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `vertices` | Array | - | vertices 세부 정보: [vertices](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#vertices) |

#### `maskingPolys`

`maskingPolys`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `vertices` | Array | - | vertices 세부 정보: [vertices](/docs/ai-application-service-ocr-ocrdocumentocr-identitycard#vertices) |

#### `vertices`

`vertices`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `x` | Float | - | X축 좌표 값 |
| `y` | Float | - | Y축 좌표 값 |

### 응답 상태 코드

CLOVA OCR API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [CLOVA OCR 공통 응답 상태 코드](/docs/ai-application-service-ocr#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오.

### 응답 예시

응답 예시는 다음과 같습니다.

#### 성공

호출이 성공한 경우의 응답 예시는 다음과 같습니다.

```
{
    "version": "V2",
    "requestId": "1234",
    "timestamp": 1725406864631,
    "images": [
        {
            "uid": "{uid}",
            "name": "idcard_test",
            "inferResult": "SUCCESS",
            "message": "SUCCESS",
            "validationResult": {
                "result": "NO_REQUESTED"
            },
            "idCard": {
                "meta": {
                    "estimatedLanguage": "ko"
                },
                "result": {
                    "isConfident": true,
                    "ic": {
                        "name": [
                            {
                                "text": "홍**",
                                "formatted": {
                                    "value": "홍**"
                                },
                                "keyText": "",
                                "confidenceScore": 0.0,
                                "boundingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 72.2125,
                                                "y": 116.6
                                            },
                                            {
                                                "x": 367.6875,
                                                "y": 116.6
                                            },
                                            {
                                                "x": 367.6875,
                                                "y": 165.625
                                            },
                                            {
                                                "x": 72.2125,
                                                "y": 165.625
                                            }
                                        ]
                                    }
                                ],
                                "maskingPolys": []
                            }
                        ],
                        "personalNum": [
                            {
                                "text": "800***-234****",
                                "formatted": {
                                    "value": "800***-234****"
                                },
                                "keyText": "",
                                "confidenceScore": 0.0,
                                "boundingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 65.5875,
                                                "y": 181.52498
                                            },
                                            {
                                                "x": 363.71246,
                                                "y": 181.52498
                                            },
                                            {
                                                "x": 363.71246,
                                                "y": 216.63748
                                            },
                                            {
                                                "x": 65.5875,
                                                "y": 216.63748
                                            }
                                        ]
                                    }
                                ],
                                "maskingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 211.13873,
                                                "y": 178.01373
                                            },
                                            {
                                                "x": 367.22372,
                                                "y": 178.01373
                                            },
                                            {
                                                "x": 367.22372,
                                                "y": 220.14873
                                            },
                                            {
                                                "x": 211.13873,
                                                "y": 220.14873
                                            }
                                        ]
                                    }
                                ]
                            }
                        ],
                        "address": [
                            {
                                "text": "서울특별시 ***",
                                "formatted": {
                                    "value": "서울특별시 ***"
                                },
                                "keyText": "",
                                "confidenceScore": 0.0,
                                "boundingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 51.675,
                                                "y": 235.1875
                                            },
                                            {
                                                "x": 192.7875,
                                                "y": 235.1875
                                            },
                                            {
                                                "x": 192.7875,
                                                "y": 272.2875
                                            },
                                            {
                                                "x": 51.675,
                                                "y": 272.2875
                                            }
                                        ]
                                    }
                                ],
                                "maskingPolys": []
                            }
                        ],
                        "issueDate": [
                            {
                                "text": "2020.08.16",
                                "formatted": {
                                    "year": "2020",
                                    "month": "08",
                                    "day": "16"
                                },
                                "keyText": "",
                                "confidenceScore": 0.0,
                                "boundingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 242.475,
                                                "y": 351.7875
                                            },
                                            {
                                                "x": 374.3125,
                                                "y": 351.7875
                                            },
                                            {
                                                "x": 374.3125,
                                                "y": 381.6
                                            },
                                            {
                                                "x": 242.475,
                                                "y": 381.6
                                            }
                                        ]
                                    },
                                ],
                                "maskingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 239.52966,
                                                "y": 349.0218
                                            },
                                            {
                                                "x": 424.9578,
                                                "y": 349.0217
                                            },
                                            {
                                                "x": 424.9578,
                                                "y": 384.3657
                                            },
                                            {
                                                "x": 239.52968,
                                                "y": 384.36578
                                            }
                                        ]
                                    }
                                ]
                            }
                        ],
                        "authority": [
                            {
                                "text": "서울특별시 **구청장 **",
                                "formatted": {
                                    "value": "서울특별시 **구청장"
                                },
                                "keyText": "",
                                "confidenceScore": 0.0,
                                "boundingPolys": [
                                    {
                                        "vertices": [
                                            {
                                                "x": 146.53316,
                                                "y": 381.33884
                                            },
                                            {
                                                "x": 326.93195,
                                                "y": 383.12497
                                            },
                                            {
                                                "x": 326.47778,
                                                "y": 428.99695
                                            },
                                            {
                                                "x": 146.07898,
                                                "y": 427.21082
                                            }
                                        ]
                                    }
                                ],
                                "maskingPolys": []
                            }
                        ]
                    },
                    "rois": [
                        {
                            "vertices": [
                                {
                                    "x": 3.1388545,
                                    "y": 3.9956706
                                },
                                {
                                    "x": 754.52325,
                                    "y": -5.092327
                                },
                                {
                                    "x": 747.84045,
                                    "y": 473.14856
                                },
                                {
                                    "x": 2.264223,
                                    "y": 474.4076
                                }
                            ]
                        }
                    ],
                    "idtype": "ID Card"
                }
            }
        }
    ]
}
```

#### 실패

호출이 실패한 경우의 응답 예시는 다음과 같습니다.

```
{
    "version": "V2",
    "requestId": "1234",
    "timestamp": 1725235840459,
    "images": [
        {
            "uid": "{uid}",
            "name": "idcard_sample",
            "inferResult": "ERROR",
            "message": "Read page:0 error.",
            "validationResult": {
                "result": "NO_REQUESTED"
            }
        }
    ]
}
```
