--- title: "영수증" slug: "ai-application-service-ocr-ocrdocumentocr-receipt" updated: 2026-09-17T09:10:00Z published: 2026-09-17T09:10:00Z canonical: "api-fin.ncloud-docs.com/ai-application-service-ocr-ocrdocumentocr-receipt" --- > ## Documentation Index > Fetch the complete documentation index at: https://api-fin.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # 영수증 특화 모델 엔진을 사용하여 영수증의 입력 정보(key-value)를 인식하고 추출합니다. ## 요청 요청 형식을 설명합니다. 요청 형식은 다음과 같습니다. | 메서드 | URI | | --- | --- | | POST | /receipt | ### 요청 헤더 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-receipt#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-receipt#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.fin-ntruss.com/custom/v1/{DomainId}/{InvokeKey}/document/receipt' \ --header 'Content-Type: application/json' \ --header 'X-OCR-SECRET: {앱 등록 시 발급받은 Secret Key}' \ --data '{ "version": "V2", "requestId": "4567", "timestamp": "0", "images": [ { "format": "png", "data": "{Base64 인코딩된 이미지 데이터}", "name": "receipt_test2" }] }' ``` #### `Content-Type: multipart/form-data`인 경우 요청 헤더 `Content-Type`이 `multipart/form-data`인 경우의 요청 예시는 다음과 같습니다. ``` curl --location --request POST ''https://cbgrx5natw.apigw.fin-ntruss.com/custom/v1/{DomainId}/{InvokeKey}/document/receipt' \ --header 'X-OCR-SECRET: {앱 등록 시 발급받은 Secret Key}' \ --header 'Content-Type: multipart/form-data' \ --form 'message="{\"version\": \"V2\", \"requestId\": \"1234\", \"timestamp\": 1724832750462, \"images\": [{\"format\": \"jpg\", \"name\": \"receipt_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-receipt#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 | - | 변환 이미지 페이지 인덱스 | | `receipt` | Object | - | 영수증 세부 정보 | | `receipt.meta` | Object | - | 메타 정보 | | `receipt.meta.estimatedLanguage` | String | - | OCR 추정 언어 - `ko` \| `en` \| `ja` - `ko`:한국어 - `en`: 영어 - `ja`: 일본어 | | `receipt.result` | Object | - | 영수증 OCR 인식 결과: [result](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#result) | #### `result` `result`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `storeInfo` | Object | - | 점포 정보 | | `storeInfo.name` | Object | - | 점포 이름 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `storeInfo.subName` | Object | - | 지점 이름 상세 정보 - [Base 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#base%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `storeInfo.bizNum` | Object | - | 점포 사업자등록번호 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `storeInfo.movieName` | Object | - | 영화표 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `storeInfo.addresses` | Array | - | 점포 주소 상세 정보: [addresses](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#addresses) | | `storeInfo.tel` | Array | - | 점포 전화번호 상세 정보: [tel](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#tel) | | `paymentInfo` | Object | - | 결제 정보 | | `paymentInfo.date` | Object | - | [결제 일자 상세 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EC%9D%BC%EC%9E%90%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) | | `paymentInfo.time` | Object | - | [결제 시간 상세 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EC%8B%9C%EA%B0%84%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) | | `paymentInfo.cardInfo` | Object | - | 결제 카드 정보 | | `paymentInfo.cardInfo.company` | Object | - | 카드사 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `paymentInfo.cardInfo.number` | Object | - | 카드 번호 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `paymentInfo.confirmNum` | Object | - | 승인 번호 상세 정보 - [Base 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#base%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `subResults` | Array | - | 상품 그룹 정보: [subResults](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#subresults) | | `totalPrice` | Object | - | 총 금액 정보 | | `totalPrice.price` | Object | - | 총 금액 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `totalPrice.creditCardPrice` | Object | - | 신용카드 결제 금액 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `subTotal` | Array | - | 총 합계 상세 정보: [subTotal](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#subtotal) | #### `addresses` `addresses`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### `tel` `tel`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### `subResults` `subResults`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `items` | Array | - | 인식된 상품 상세 정보: [items](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#items) | #### `items` `items`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `name` | Object | - | 항목 이름 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `code` | Object | - | 항목 코드 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `count` | Object | - | 항목 수량 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `price` | Object | - | 항목 가격 정보 | | `price.price` | Object | - | 항목 가격 상세 정보 - [공통 객체 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EA%B3%B5%ED%86%B5%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) 참조 | | `price.unitPrice` | Object | - | [항목 단가 상세 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#%EB%8B%A8%EA%B0%80%EA%B0%9D%EC%B2%B4%EC%A0%95%EB%B3%B4) | #### `subTotal` `subTotal`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `taxPrice` | Array | - | 부과세 상세 정보: [부과세 상세 정보](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#taxPrice) | | `discountPrice` | Array | - | 할인 금액 상세 정보: [discountPrice](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#discountprice) | | `subTotalPrice` | Array | - | 공급가액(과세 물품가액) 상세 정보: [subTotalPrice](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#subTotalPrice) | #### `taxPrice` `taxPrice`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### `discountPrice` `discountPrice`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### `subTotalPrice` `subTotalPrice`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### 공통 객체 정보 공통 객체에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### Base 객체 정보 `Base 객체 정보`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### 일자 객체 정보 일자 객체에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `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-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### 시간 객체 정보 시간 객체에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.hour` | String | - | 인식된 시간의 시(HH) | | `formatted.minute` | String | - | 인식된 시간의 분(MM) | | `formatted.second` | String | - | 인식된 시간의 초(ss) | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | | `maskingPolys` | Array | - | maskingPoly 세부 정보: [maskingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#maskingpolys) | #### 단가 객체 정보 단가 객체에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `text` | String | - | 인식된 텍스트 | | `formatted` | Object | - | 인식된 텍스트 정보 | | `formatted.value` | String | - | 인식된 텍스트 값 | | `keyText` | String | - | 인식된 텍스트의 키 값 | | `confidenceScore` | Float | - | 인식된 텍스트 신뢰도 - 0~1 - 신뢰도 값이 클수록 텍스트의 정확도가 높음 | | `boundingPolys` | Array | - | boundingPoly 세부 정보: [boundingPolys](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#boundingpolys) | #### `boundingPolys` `boundingPolys`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `vertices` | Array | - | vertices 세부 정보: [vertices](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#vertices) | #### `maskingPolys` `maskingPolys`에 대한 설명은 다음과 같습니다. | 필드 | 타입 | 필수 여부 | 설명 | | --- | --- | --- | --- | | `vertices` | Array | - | vertices 세부 정보: [vertices](/docs/ai-application-service-ocr-ocrdocumentocr-receipt#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": 1724976333747, "images": [ { "uid": "{uid}", "name": "receipt_test", "inferResult": "SUCCESS", "message": "SUCCESS", "validationResult": { "result": "NO_REQUESTED" }, "receipt": { "meta": { "estimatedLanguage": "ko" }, "result": { "storeInfo": { "name": { "text": "**마트", "formatted": { "value": "**마트" }, "keyText": "", "confidenceScore": 0.95703, "boundingPolys": [ { "vertices": [ { "x": 32.0, "y": 196.0 }, { "x": 164.0, "y": 196.0 }, { "x": 164.0, "y": 232.0 }, { "x": 32.0, "y": 232.0 } ] } ], "maskingPolys": [] }, "subName": { "text": "**점", "keyText": "", "confidenceScore": 0.85623, "boundingPolys": [ { "vertices": [ { "x": 164.0, "y": 196.0 }, { "x": 263.0, "y": 196.0 }, { "x": 263.0, "y": 232.0 }, { "x": 164.0, "y": 232.0 } ] } ], "maskingPolys": [] }, "bizNum": { "text": "***-**-*****", "formatted": { "value": "***-**-*****" }, "keyText": "", "confidenceScore": 0.93726, "boundingPolys": [ { "vertices": [ { "x": 30.0, "y": 237.0 }, { "x": 233.0, "y": 237.0 }, { "x": 233.0, "y": 270.0 }, { "x": 30.0, "y": 270.0 } ] } ], "maskingPolys": [] }, "addresses": [ { "text": "서울특별시 ***", "formatted": { "value": "경상북도 ***" }, "keyText": "", "confidenceScore": 0.94554, "boundingPolys": [ { "vertices": [ { "x": 33.0, "y": 272.0 }, { "x": 168.0, "y": 274.0 }, { "x": 167.0, "y": 311.0 }, { "x": 33.0, "y": 309.0 } ] }, ], "maskingPolys": [] } ], "tel": [ { "text": "***)***-****", "formatted": { "value": "**********" }, "keyText": "TEL:", "confidenceScore": 0.90208, "boundingPolys": [ { "vertices": [ { "x": 320.0, "y": 238.0 }, { "x": 525.0, "y": 238.0 }, { "x": 525.0, "y": 271.0 }, { "x": 320.0, "y": 271.0 } ] } ] } ] }, "paymentInfo": { "date": { "text": "2014-01-21 (화)", "formatted": { "year": "2014", "month": "01", "day": "21" }, "keyText": "", "confidenceScore": 0.46487, "boundingPolys": [ { "vertices": [ { "x": 30.0, "y": 394.0 }, { "x": 200.0, "y": 394.0 }, { "x": 200.0, "y": 428.0 }, { "x": 30.0, "y": 428.0 } ] }, { "vertices": [ { "x": 304.0, "y": 394.0 }, { "x": 360.0, "y": 394.0 }, { "x": 360.0, "y": 429.0 }, { "x": 304.0, "y": 429.0 } ] } ], "maskingPolys": [] }, "time": { "text": "16:53", "formatted": { "hour": "16", "minute": "53", "second": "00" }, "keyText": "", "confidenceScore": 0.92913, "boundingPolys": [ { "vertices": [ { "x": 210.0, "y": 394.0 }, { "x": 304.0, "y": 394.0 }, { "x": 304.0, "y": 429.0 }, { "x": 210.0, "y": 429.0 } ] } ] }, "cardInfo": { "company": { "text": "**카드", "formatted": { "value": "**카드" }, "keyText": "[카드사명]", "confidenceScore": 0.92768, "boundingPolys": [ { "vertices": [ { "x": 252.0, "y": 1104.0 }, { "x": 391.0, "y": 1104.0 }, { "x": 391.0, "y": 1141.0 }, { "x": 252.0, "y": 1141.0 } ] } ], "maskingPolys": [] }, "number": { "text": "37L 80-****-", "formatted": { "value": "37L 80-****-" }, "keyText": "[카드번호]", "confidenceScore": 0.35504, "boundingPolys": [ { "vertices": [ { "x": 227.0, "y": 1025.0 }, { "x": 311.0, "y": 1025.0 }, { "x": 311.0, "y": 1063.0 }, { "x": 227.0, "y": 1063.0 } ] }, { "vertices": [ { "x": 368.0, "y": 1030.0 }, { "x": 491.0, "y": 1030.0 }, { "x": 491.0, "y": 1057.0 }, { "x": 368.0, "y": 1057.0 } ] } ], "maskingPolys": [] } }, "confirmNum": { "text": "2881****", "keyText": "[승인번호]", "confidenceScore": 0.97677, "boundingPolys": [ { "vertices": [ { "x": 254.0, "y": 1224.0 }, { "x": 394.0, "y": 1224.0 }, { "x": 394.0, "y": 1257.0 }, { "x": 254.0, "y": 1257.0 } ] } ] } }, "subResults": [ { "items": [ { "name": { "text": "***)*라면(순한맛", "formatted": { "value": "***)*라면(순한맛" }, "keyText": "", "confidenceScore": 0.84299, "boundingPolys": [ { "vertices": [ { "x": 32.0, "y": 470.0 }, { "x": 360.0, "y": 470.0 }, { "x": 360.0, "y": 508.0 }, { "x": 32.0, "y": 508.0 } ] } ], "maskingPolys": [] }, "count": { "text": "2개", "formatted": { "value": "2" }, "keyText": "", "confidenceScore": 0.94584, "boundingPolys": [ { "vertices": [ { "x": 268.0, "y": 511.0 }, { "x": 328.0, "y": 511.0 }, { "x": 328.0, "y": 547.0 }, { "x": 268.0, "y": 547.0 } ] } ] }, "price": { "price": { "text": "1,600", "formatted": { "value": "1600" }, "keyText": "", "confidenceScore": 0.95924, "boundingPolys": [ { "vertices": [ { "x": 596.0, "y": 514.0 }, { "x": 685.0, "y": 514.0 }, { "x": 685.0, "y": 549.0 }, { "x": 596.0, "y": 549.0 } ] } ] }, "unitPrice": { "text": "800", "formatted": { "value": "800" }, "keyText": "", "confidenceScore": 0.78166, "boundingPolys": [ { "vertices": [ { "x": 27.0, "y": 513.0 }, { "x": 90.0, "y": 513.0 }, { "x": 90.0, "y": 547.0 }, { "x": 27.0, "y": 547.0 } ] } ] } } } ] } ], "totalPrice": { "price": { "text": "1,600", "formatted": { "value": "1600" }, "keyText": "받을금액:", "confidenceScore": 0.89884, "boundingPolys": [ { "vertices": [ { "x": 521.0, "y": 751.0 }, { "x": 678.0, "y": 751.0 }, { "x": 678.0, "y": 786.0 }, { "x": 521.0, "y": 786.0 } ] } ] } }, "creditCardPrice": { "text": "1,600", "formatted": { "value": "1600" }, "keyText": "승인금액", "confidenceScore": 0.88052, "boundingPolys": [ { "vertices": [ { "x": 521.0, "y": 801.0 }, { "x": 678.0, "y": 801.0 }, { "x": 678.0, "y": 836.0 }, { "x": 521.0, "y": 836.0 } ] } ] } }, "subTotal": [ { "taxPrice": [ { "text": "145", "formatted": { "value": "145" }, "keyText": "부 가 세:", "confidenceScore": 0.93311, "boundingPolys": [ { "vertices": [ { "x": 626.0, "y": 631.0 }, { "x": 683.0, "y": 631.0 }, { "x": 683.0, "y": 667.0 }, { "x": 626.0, "y": 667.0 } ] } ] } ], "subTotalPrice": [ { "text": "1,145", "formatted": { "value": "1445" }, "keyText": "공급가:", "confidenceScore": 0.93947, "boundingPolys": [ { "vertices": [ { "x": 626.0, "y": 591.0 }, { "x": 683.0, "y": 591.0 }, { "x": 683.0, "y": 627.0 }, { "x": 626.0, "y": 627.0 } ] } ] } ] } ] } } } ] } ``` #### 실패 호출이 실패한 경우의 응답 예시는 다음과 같습니다. ``` { "version": "V2", "requestId": "4567", "timestamp": 1725003278037, "images": [ { "uid": "{uid}", "name": "receipt_test2", "inferResult": "ERROR", "message": "Read page:0 error.", "validationResult": { "result": "NO_REQUESTED" } } ] } ```