---
title: "명함"
slug: "ai-application-service-ocr-ocrdocumentocr-namecard"
tags: ["CLOVA OCR"]
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.

# 명함

<p class="platform-info type-classic-vpc">Classic/VPC 환경에서 이용 가능합니다.</p>

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

## 요청 <a name="요청"></a>
요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

| 메서드 | URI |
| :--- | :--- |
| POST | /name-card |


### 요청 헤더 <a name="요청헤더"></a>
CLOVA OCR API에서 공통으로 사용하는 헤더에 대한 정보는 [CLOVA OCR 요청 헤더](/docs/ai-application-service-ocr#요청헤더)를 참조해 주십시오. 


### 요청 바디 <a name="요청바디"></a>
요청 바디에 대한 설명은 다음과 같습니다.

#### `Content-Type: application/json`인 경우<a name="ContentTypeapplicationjson인경우1"></a>

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

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


#### `Content-Type: multipart/form-data`인 경우<a name="ContentTypemultipartformdata인경우1"></a>

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

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `message` | Object | Required | 요청 데이터 정보 |
| `message.version` | String | Required | 버전 정보<ul><li>`V2`만 사용</li></ul> |
| `message.requestId` | String | Required | 임의의 API 호출 UUID |
| `message.timestamp` | Integer | Required | 임의의 API 호출 시각(Timestamp) |
| `message.images` | Array | Required | images 세부 정보: [images](#images1) |
| `file` | File | Required | OCR 인식 이미지 파일 |


#### `images` <a name="images1"></a>
`images`에 대한 설명은 다음과 같습니다.

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


### 요청 예시 <a name="요청예시"></a>
요청 예시는 다음과 같습니다.

#### `Content-Type: application/json`인 경우<a name="ContentTypeapplicationjson인경우2"></a>

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

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

#### `Content-Type: multipart/form-data`인 경우<a name="ContentTypemultipartformdata인경우2"></a>

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

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


## 응답 <a name="응답"></a>
응답 형식을 설명합니다.

### 응답 바디 <a name="응답바디"></a>
응답 바디에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `version` | String | - | 버전 정보<ul><li>`V2`만 사용</li></ul> |
| `requestId` | String | - | API 호출 UUID |
| `timestamp` | Integer | - | API 호출 시각(Timestamp) |
| `images` | Array | - | images 세부 정보: [images](#images2) |

#### `images` <a name="images2"></a>
`images`에 대한 설명은 다음과 같습니다.

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


#### `result` <a name="result"></a>
`result`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `name` | Array | - | 이름 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `nameFurigana` | Array | - | 후리가나 이름 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li><li>후리가나 이름 정보(`nameCard.meta.estimatedLanguage`)가 일본어(`ja`)일 경우만 응답</li></ul> |
| `company` | Array | - | 회사 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `address` | Array | - | 주소 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `position` | Array | - | 직급 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `department` | Array | - | 부서 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `mobile` | Array | - | 휴대폰 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `tel` | Array | - | 전화 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `fax` | Array | - | 팩스 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `email` | Array | - | 이메일 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |
| `homepage` | Array | - | 홈페이지 정보<ul><li>[공통 객체 정보](#공통객체정보) 참조</li></ul> |

#### 공통 객체 정보 <a name="공통객체정보"></a>
공통 객체에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `text` | String | - | 인식된 텍스트 |
| `keyText` | String | - | 인식된 텍스트의 키 값 |
| `confidenceScore` | Float | - | 인식된 텍스트 신뢰도<ul><li>0~1</li><li>신뢰도 값이 클수록 텍스트의 정확도가 높음</li></ul> |
| `boundingPoly` | Object | - | Bounding Poly 정보 | 
| `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](#boundingpolys) | 
| `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](#maskingpolys) | 


#### `boundingPolys` <a name="boundingpolys"></a>
`boundingPolys`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `vertices` | Array | - | vertices 세부 정보: [vertices](#vertices) |

#### `maskingPolys` <a name="maskingpolys"></a>
`maskingPolys`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `vertices` | Array | - | vertices 세부 정보: [vertices](#vertices) |

#### `vertices` <a name="vertices"></a>
`vertices`에 대한 설명은 다음과 같습니다.

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


### 응답 상태 코드 <a name="응답상태코드"></a>
CLOVA OCR API에서 공통으로 사용하는 응답 상태 코드에 대한 정보는 [CLOVA OCR 공통 응답 상태 코드](/docs/ai-application-service-ocr#응답상태코드)를 참조해 주십시오.


### 응답 예시 <a name="응답예시"></a>
응답 예시는 다음과 같습니다.

#### 성공<a name="성공"></a>

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

```json
{
    "version": "V2",
    "requestId": "1234",
    "timestamp": 1725235494383,
    "images": [
        {
            "uid": "{uid}",
            "name": "namecard_test",
            "inferResult": "SUCCESS",
            "message": "SUCCESS",
            "validationResult": {
                "result": "NO_REQUESTED"
            },
            "nameCard": {
                "meta": {
                    "estimatedLanguage": "ko"
                },
                "result": {
                    "name": [
                        {
                            "text": "김**",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 92.0,
                                            "y": 103.0
                                        },
                                        {
                                            "x": 218.0,
                                            "y": 103.0
                                        },
                                        {
                                            "x": 218.0,
                                            "y": 141.0
                                        },
                                        {
                                            "x": 92.0,
                                            "y": 141.0
                                        }
                                    ]
                                }
                            ],
                            "maskingPolys": []
                        }
                    ],
                    "company": [
                        {
                            "text": "** **대리점",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 90.0,
                                            "y": 255.0
                                        },
                                        {
                                            "x": 237.0,
                                            "y": 255.0
                                        },
                                        {
                                            "x": 237.0,
                                            "y": 284.0
                                        },
                                        {
                                            "x": 90.0,
                                            "y": 284.0
                                        }
                                    ]
                                }
                            ],
                            "maskingPolys": []
                        }
                    ],
                    "address": [
                        {
                            "text": "서울특별시 ***",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 91.0,
                                            "y": 287.0
                                        },
                                        {
                                            "x": 376.0,
                                            "y": 287.0
                                        },
                                        {
                                            "x": 376.0,
                                            "y": 312.0
                                        },
                                        {
                                            "x": 91.0,
                                            "y": 312.0
                                        }
                                    ]
                                }
                            ],
                            "maskingPolys": []
                        }
                    ],
                    "position": [
                        {
                            "text": "****",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 226.0,
                                            "y": 114.0
                                        },
                                        {
                                            "x": 300.0,
                                            "y": 114.0
                                        },
                                        {
                                            "x": 300.0,
                                            "y": 138.0
                                        },
                                        {
                                            "x": 226.0,
                                            "y": 138.0
                                        }
                                    ]
                                }
                            ],
                            "maskingPolys": []
                        }
                    ],
                    "mobile": [
                        {
                            "text": "010********",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 88.0,
                                            "y": 145.0
                                        },
                                        {
                                            "x": 300.0,
                                            "y": 145.0
                                        },
                                        {
                                            "x": 300.0,
                                            "y": 175.0
                                        },
                                        {
                                            "x": 88.0,
                                            "y": 175.0
                                        }
                                    ]
                                }
                            ]
                        }
                    ],
                    "tel": [
                        {
                            "text": "02-****-****",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 89.0,
                                            "y": 311.0
                                        },
                                        {
                                            "x": 264.0,
                                            "y": 311.0
                                        },
                                        {
                                            "x": 264.0,
                                            "y": 333.0
                                        },
                                        {
                                            "x": 89.0,
                                            "y": 333.0
                                        }
                                    ]
                                }
                            ]
                        }
                    ],
                    "fax": [
                        {
                            "text": "02-****-****",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 89.0,
                                            "y": 334.0
                                        },
                                        {
                                            "x": 264.0,
                                            "y": 334.0
                                        },
                                        {
                                            "x": 264.0,
                                            "y": 358.0
                                        },
                                        {
                                            "x": 89.0,
                                            "y": 358.0
                                        }
                                    ]
                                }
                            ]
                        }
                    ],
                    "email": [
                        {
                            "text": "****@****.net",
                            "keyText": "",
                            "confidenceScore": 0.0,
                            "boundingPolys": [
                                {
                                    "vertices": [
                                        {
                                            "x": 137.0,
                                            "y": 359.0
                                        },
                                        {
                                            "x": 312.0,
                                            "y": 359.0
                                        },
                                        {
                                            "x": 312.0,
                                            "y": 382.0
                                        },
                                        {
                                            "x": 137.0,
                                            "y": 382.0
                                        }
                                    ]
                                }
                            ],
                            "maskingPolys": []
                        }
                    ]
                }
            }
        }
    ]
}
```

#### 실패<a name="실패"></a>

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

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