개발가이드국세사업자 증빙서류 통합 조회

사업자 증빙서류 통합발급 API

명세 내보내기
OpenAPI 3.0.3Postman 컬렉션Markdown

본인 간편인증 후 사업자 증빙서류 통합 조회 자료를 확인합니다. 문서확인번호: 발급된 사업자등록증명의 문서확인번호 상호: 사업자 상호 사업자등록번호: 대상 사업자등록번호 10자리 개업일자: 개업일자

POSThttps://apick.app/rest/req_business_cert_bundle전체 2개 경로
인증
Bearer 키
요청 형식
form-data
응답
JSON
경로
2개

알아둘 점

  1. 인증 요청transactionId 저장
  2. 사용자 승인인증 앱에서 진행
  3. 결과 준비COLLECTING이면 잠시 후 다시 조회
  4. 결과 조회같은 transactionId 사용

실제 API 호출은 인증 요청·결과 조회 두 종류입니다. 사용자 승인과 결과 준비는 중간 상태이며 별도 호출이 아닙니다. 공통 인증 흐름과 오류 처리도 함께 확인하세요.

사용자는 간편인증을 한 번만 승인하면 됩니다. 인증 요청과 결과 조회 두 번의 호출로 끝납니다.

이 묶음에 포함된 조회 3종

아래 조회를 따로 호출하면 합계 180P, 묶음으로 한 번에 받으면 126P입니다. 인증은 어느 쪽이든 1회이고, 묶음은 결과를 한 응답에 모아 줍니다.

인증요청 → 사용자 승인 → 정보조회 → 정보제공 4단계이며, 과금은 인증요청 발송 성공과 결과 최초 제공 두 번만 발생합니다. 그 사이 반복 조회는 무과금입니다.

/rest/req_business_cert_bundle
20P · 인증요청 5분 유효
/rest/get_business_cert_bundle
126P × 데이터셋 3 × 기간 배수 · 결과 24시간 보관

사업자 증빙서류 통합 자료를 조회하기 위한 인증 요청입니다. 사용자에게 간편인증을 요청하고, 결과 조회에 쓸 transactionId 를 바로 돌려줍니다.

인증요청과 결과조회는 완전히 분리되어 있습니다. 이 호출은 인증요청만 보내고 transactionId 를 즉시 반환합니다. 결과는 사용자가 승인한 뒤 /rest/get_business_cert_bundle 에 transactionId 를 넣어 확인합니다. 조회 항목은 엔드포인트로 정해지므로 별도로 지정하는 파라미터가 없습니다. 이 응답의 expiresAt 까지만 승인할 수 있습니다. 남은 시간을 화면에 표시하고, 만료되면 사용자가 다시 요청할 수 있게 해 주세요.

2단계 · 결과조회 엔드포인트

이 API 는 polling 용도입니다. 호출 자체는 언제든 무료이며, 실제 결과가 최초로 반환되는 1회에만 과금됩니다. 같은 transactionId 로 다시 조회하면 charged=false 로 추가 과금이 없습니다. 인증 대기(AUTH_WAITING)·조회 중(COLLECTING)·실패(FAILED)·만료(AUTH_EXPIRED) 응답은 과금되지 않습니다. 결과를 받을 때까지 안심하고 반복 조회하세요. 결과가 준비된 뒤에는 조회 시각 기준 24시간 동안 재조회할 수 있습니다. 이 기간의 재조회는 무과금입니다. 응답에는 실제 정보를 확인한 시각이 checkedAt 으로 포함됩니다. 저장해 둔 값을 돌려주는 것이 아니라 그 시점에 확인한 값입니다. 폴링은 resultAvailable=true 를 받는 순간 멈추세요. 최대 시간은 expiresAt(인증 대기)까지이고, 그 뒤로는 결과가 나올 때까지입니다. 자세한 값은 호출 제한과 재시도를 참고하세요. 조회 항목이 여러 개인 상품은 일부만 성공하면 PARTIAL_SUCCESS 로 반환하며, 이때도 실제 조회된 데이터가 있으면 최초 1회 과금됩니다. 어느 항목이 성공·실패했는지는 sources 에 표시됩니다.
결과 단가는 60P × 데이터셋 수(3)입니다 (기간 옵션 없음 → 1년). 이 상품은 조회 기간을 바꾸어도 기간 배수가 적용되지 않습니다.

요청과 응답

1인증 요청
POST/rest/req_business_cert_bundle
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 18개 · 필수 9
파라미터
설명
namestring필수
조회 대상의 이름입니다. 간편인증·개인 조회에서는 성명, 기업 조회에서는 법인명·상호를 뜻합니다. 생년월일·전화번호 같은 보조 식별자와 함께 확인하세요.
예시
홍길동
birthDatestring필수
대상자의 생년월일 8자리입니다. 예: 19900101. 주민등록상 생년월일과 같아야 하며, 하이픈·공백은 넣지 않습니다.
예시
19900101
phonestring필수
본인 명의 휴대전화 번호입니다. 하이픈 없이 숫자만 입력하며(예: 01012341234), 인증 문자를 받을 수 있는 번호여야 합니다.
예시
01011112222
authProviderstring필수
사용할 간편인증 수단의 식별자입니다. 예: kakao, naver, toss, pass. 지원 값과 표시 이름은 이 문서의 간편인증 목록을 확인하세요.
예시
kakao
business_nostring필수
사업자등록번호 10자리 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
1234567890
engl_ynstring선택
영문 증명 여부 Y/N(기본 N) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
N
use_purposestring필수
사용용도 코드(10097) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
99
submit_tostring필수
제출처 코드(10150) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
99
deliverystring필수
교부방법(06 프린터·10 화면·04 팩스·12 전자문서지갑) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
06
quantitystring선택
발급희망수량 1~5 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
1
emailstring선택
검증·발송할 이메일 주소입니다. @와 도메인을 포함한 전체 주소를 보내며, 형식이 맞지 않으면 조회 전에 거부됩니다.
fax_nostring선택
팩스번호(팩스 발송 시 필수) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
wallet_addressstring선택
전자문서지갑 주소(지갑 발급 시 필수) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
formatstring선택
응답 형식(pdf=PDF만·json=PDF를 JSON으로 파싱·both=둘 다, 기본 both)
예시
both
yearstring필수
조회할 연도(4자리)입니다. 서비스별 지원 범위를 확인하세요.
예시
2025
periodstring선택
과세기간(1=1기, 2=2기, all=연간) 문자열로 보내며, 생략하면 서버 기본값이 적용되거나 해당 조건이 해제됩니다.
예시
all
agreedboolean선택
대표자 본인 확인 동의. bind_id 가 없으면 true 로 보내야 접수됩니다. 빠지면 인증을 보내지 않고 무과금으로 거절합니다. 결과에 대표자명이 있으면 응답의 bind_id 로 다음 조회에 다시 쓸 수 있습니다. true = 이 필드가 나타내는 조건이 성립한 경우, false = 성립하지 않은 경우입니다. 두 값 모두 정상 응답에 올 수 있으며, 값이 없으면 필드가 생략되거나 null일 수 있습니다.
예시
true
bind_idstring선택
이전 사업자 조회 결과에서 받은 bind_id. 같은 계정·같은 사업자등록번호이고 유효기간(90일) 안이면 agreed 없이 접수합니다.
응답 필드 17개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.schemaVersionstring
응답 스키마의 버전입니다. 현재 "1.0"으로 고정되어 있으며, 필드 구조가 바뀌면 값이 올라갑니다. 클라이언트는 이 값을 저장해 두고 파싱 로직을 분기할 수 있습니다.
data.transactionIdstring
간편인증 요청에서 발급된 거래 ID입니다. 인증요청 응답의 transactionId와 같으며, 같은 거래의 결과를 조회하거나 문의할 때 사용합니다. 인증이 만료되면 새 거래를 만들어야 합니다.
data.productstring
조회한 상품 코드입니다. 인증요청 때 보낸 product와 같은 값이며, 응답의 result 구조를 해석할 때 기준이 됩니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 가능한 값은 9가지입니다. AUTH_REQUESTED = 인증 요청만 접수되어 사용자 승인을 기다리는 상태, AUTH_WAITING = 승인 전 대기, AUTH_COMPLETED = 승인은 끝났고 결과 준비 전, COLLECTING = 결과 준비 중, SUCCESS = 정상 완료되어 결과 사용 가능, PARTIAL_SUCCESS = 일부 자료만 준비되어 sources의 항목별 status 확인 필요, FAILED = 서버 처리 실패, AUTH_REJECTED = 사용자가 인증 거부, AUTH_EXPIRED = 승인 유효시간(300초) 만료입니다.
data.resultAvailableboolean
결과 데이터 포함 여부. 인증 요청 응답은 항상 false 입니다. true/false로 오며, 값이 없으면 필드가 생략되거나 null일 수 있습니다. true = 결과를 지금 사용할 수 있는 경우, false = 아직 처리 중이거나 실패·만료되어 결과가 없는 경우입니다. false면 data.status를 확인하세요.
data.chargedboolean
이번 호출의 과금 발생 여부. 실제 발송에 성공하면 true 입니다. true/false로 오며, 값이 없으면 필드가 생략되거나 null일 수 있습니다. true = 이번 조회에서 포인트가 실제로 차감된 경우(유료 결과를 처음 받은 때), false = 이미 차감된 결과를 다시 조회했거나 무료 응답인 경우입니다. api.cost가 0이면 false입니다.
data.sourcesarray
자료 항목별 처리 결과 목록입니다. 항목별 성공·실패를 구분하므로 일부만 성공한 응답을 판단할 때 사용합니다.
data.messagestring
상태 메시지 (고정값: "인증 대기중입니다."). 안내 문구입니다. 오류 원인과 다음 행동을 설명합니다.
data.expiresAtstring
이 응답이나 인증 요청의 유효 만료 시각입니다. 한국시간(UTC+09:00) ISO 8601 형식이며, 이 시각을 넘기면 같은 요청을 다시 접수해야 합니다.
data.successinteger
업무 처리 결과 코드입니다. 1은 정상 결과, 0은 실패 또는 무료 응답입니다. 서비스에 따라 2·3처럼 추가 코드를 쓰므로 같은 응답의 status·msg·error 필드도 함께 확인하세요.
data.approvalsinteger
필요한 간편인증 승인 횟수. 조회 항목 하나당 1회입니다. 숫자로 오며, 단위·범위는 같은 응답의 다른 필드나 이 문서의 설명을 확인하세요.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costinteger
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.msinteger
서버가 요청을 받아 응답 본문을 만들기까지 걸린 처리 시간(밀리초)입니다. 네트워크 왕복 시간과 클라이언트 대기 시간은 포함되지 않습니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 0개 더 보기

이 경로의 응답 형식은 오른쪽 응답 예시를 확인하세요.

성공 판정 접수되면 transactionId를 저장하고 사용자에게 인증 앱 승인을 안내하세요. 이 응답은 자료 조회 완료를 뜻하지 않습니다.

2결과 조회
POST/rest/get_business_cert_bundle
  • Bearer 인증
  • multipart/form-data
  • JSON 응답
요청 파라미터 1개 · 필수 1
파라미터
설명
transactionIdstring필수
/rest/req_business_cert_bundle 가 반환한 트랜잭션 ID
예시
9f2c4a7b1d8e35c60a4f7b2d1e9c803a
응답 필드 51개
응답 필드
설명
dataobject
요청 처리 결과 묶음입니다. 조회한 값·작업 상태·오류 설명이 이 안에 들어 있으며, 실제 하위 필드 구성은 서비스마다 다릅니다. 값이 없으면 null·빈 배열·필드 생략 중 해당 서비스의 규칙을 따릅니다.
data.schemaVersionstring
응답 스키마의 버전입니다. 현재 "1.0"으로 고정되어 있으며, 필드 구조가 바뀌면 값이 올라갑니다. 클라이언트는 이 값을 저장해 두고 파싱 로직을 분기할 수 있습니다.
data.transactionIdstring
간편인증 요청에서 발급된 거래 ID입니다. 인증요청 응답의 transactionId와 같으며, 같은 거래의 결과를 조회하거나 문의할 때 사용합니다. 인증이 만료되면 새 거래를 만들어야 합니다.
data.productstring
조회한 상품 코드입니다. 인증요청 때 보낸 product와 같은 값이며, 응답의 result 구조를 해석할 때 기준이 됩니다.
data.statusstring
현재 처리 상태 코드입니다. 괄호 안 설명은 이 서비스에서의 상태 의미이며, 값별 다음 행동은 이 문서의 상태 표를 확인하세요. 상태가 바뀌면 같은 경로를 다시 조회합니다. 가능한 값은 9가지입니다. AUTH_REQUESTED = 인증 요청만 접수되어 사용자 승인을 기다리는 상태, AUTH_WAITING = 승인 전 대기, AUTH_COMPLETED = 승인은 끝났고 결과 준비 전, COLLECTING = 결과 준비 중, SUCCESS = 정상 완료되어 결과 사용 가능, PARTIAL_SUCCESS = 일부 자료만 준비되어 sources의 항목별 status 확인 필요, FAILED = 서버 처리 실패, AUTH_REJECTED = 사용자가 인증 거부, AUTH_EXPIRED = 승인 유효시간(300초) 만료입니다.
data.resultAvailableboolean
실제 결과 포함 여부. 과금 여부도 이 값으로 결정됩니다. true/false로 오며, 값이 없으면 필드가 생략되거나 null일 수 있습니다. true = 결과를 지금 사용할 수 있는 경우, false = 아직 처리 중이거나 실패·만료되어 결과가 없는 경우입니다. false면 data.status를 확인하세요.
data.chargedboolean
이번 호출의 과금 발생 여부. 최초 결과 반환에서만 true 입니다. true/false로 오며, 값이 없으면 필드가 생략되거나 null일 수 있습니다. true = 이번 조회에서 포인트가 실제로 차감된 경우(유료 결과를 처음 받은 때), false = 이미 차감된 결과를 다시 조회했거나 무료 응답인 경우입니다. api.cost가 0이면 false입니다.
data.sourcesarray
자료 항목별 처리 결과 목록입니다. 항목별 성공·실패를 구분하므로 일부만 성공한 응답을 판단할 때 사용합니다.
data.messagestring
안내 문구입니다. 오류 원인과 다음 행동을 설명합니다. 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.expiresAtstring
이 응답이나 인증 요청의 유효 만료 시각입니다. 한국시간(UTC+09:00) ISO 8601 형식이며, 이 시각을 넘기면 같은 요청을 다시 접수해야 합니다.
data.successinteger
업무 처리 결과 코드입니다. 1은 정상 결과, 0은 실패 또는 무료 응답입니다. 서비스에 따라 2·3처럼 추가 코드를 쓰므로 같은 응답의 status·msg·error 필드도 함께 확인하세요.
data.progressobject
결과 준비 진행 상태 묶음입니다. 전체 자료 수와 완료된 자료 수를 담습니다.
data.checkedAtstring
실제 정보를 확인한 시각. 한국시간(UTC+09:00) ISO 8601 이며 재조회 유효기간의 기준입니다.
data.resultExpiresAtstring
결과 재조회 만료 시각. 한국시간(UTC+09:00) ISO 8601 입니다.
data.resultobject
조회 결과 본문입니다. 서비스가 찾은 실제 데이터가 들어 있으며, 자료가 없거나 조회에 실패하면 null이거나 필드가 생략됩니다.
data.errorCodestring
오류 구분. RESULT_EXPIRED(재조회 기간 만료) / AUTH_EXPIRED / AUTH_REJECTED / COLLECT_FAILED 가능한 값은 4가지입니다. RESULT_EXPIRED = 결과 재조회 기간이 지난 경우(새로 인증해야 함), AUTH_EXPIRED = 승인 유효시간이 지난 경우, AUTH_REJECTED = 사용자가 인증을 거부한 경우, COLLECT_FAILED = 승인 뒤 결과 준비가 실패한 경우입니다. 오류가 없으면 null입니다.
apiobject
API 호출 메타데이터입니다. 이번 요청의 서버 처리 성공 여부(api.success), 실제 차감 포인트(api.cost), 결제 기록 ID(api.pl_id)를 담습니다. 처리 시간(api.ms)은 응답에 포함된 경우에만 제공됩니다. 업무 결과는 data에서 확인합니다.
api.successboolean
API 서버가 이번 요청을 정상 처리했는지 여부입니다. true여도 업무 결과가 실패일 수 있으므로 data.success·data.status와 함께 판단합니다. 인증 실패·잘못된 입력·서버 오류 응답에서는 false입니다.
api.costinteger
이번 호출에서 실제로 차감된 포인트입니다. 유료 성공 응답에서만 단가만큼 차감되며, 실패·무료 조회·같은 요청의 멱등 재전송은 0입니다. 화면의 표시 단가와 실제 차감액이 다를 수 있으므로 정산은 이 값을 기준으로 합니다.
api.msinteger
서버가 요청을 받아 응답 본문을 만들기까지 걸린 처리 시간(밀리초)입니다. 네트워크 왕복 시간과 클라이언트 대기 시간은 포함되지 않습니다.
api.pl_idinteger
포인트 차감 기록 ID입니다. 차감이 발생한 호출에만 값이 있으며, 과금 내역을 문의할 때 이 번호를 사용합니다. 무과금 응답은 -1·null이거나 필드가 생략됩니다.
하위 필드 30개 더 보기
응답 필드
설명
data.sources[].sourcestring
자료 항목의 표시 이름입니다. type과 함께 어떤 자료인지 구분할 때 사용합니다.
data.sources[].typestring
자료 유형 구분자입니다. 같은 상품 안에서 여러 종류의 자료를 묶어 받을 때 종류를 구분합니다.
data.sources[].statusstring
해당 자료 항목의 처리 상태입니다. SUCCESS는 정상, 그 외 값은 그 항목만 실패했거나 자료가 없음을 뜻합니다. 가능한 값은 2가지입니다. SUCCESS = 해당 자료 항목을 정상적으로 받은 경우, FAILED = 그 항목만 실패해 result에 그 자료가 빠진 경우입니다. 전체 status가 SUCCESS여도 항목별 FAILED가 있을 수 있습니다.
data.progress.totalinteger
이번 조회에서 준비할 전체 자료 항목 수입니다. 여러 자료를 묶은 상품에서 진행률 계산의 분모로 사용합니다.
data.progress.completedinteger
현재까지 준비를 마친 자료 항목 수입니다. total과 같아지면 모든 항목의 처리가 끝난 것입니다.
data.result.businessRegistrationCertobject
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.result.businessRegistrationCert.문서확인번호string
발급된 사업자등록증명의 문서확인번호 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.businessRegistrationCert.상호string
사업자 상호 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.businessRegistrationCert.사업자등록번호string
대상 사업자등록번호 10자리 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.businessRegistrationCert.개업일자string
개업일자 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.businessRegistrationCert.업태string
사업자가 신고한 업태입니다. 업종보다 구체적인 사업 형태를 문장으로 보여 줍니다.
data.result.businessRegistrationCert.종목string
사업자가 신고한 종목입니다. 실제 취급 품목·서비스를 적으며, 없으면 빈 문자열입니다.
data.result.businessRegistrationCert.PDF데이터object
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조) 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.result.vatTaxBaseCertobject
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.result.vatTaxBaseCert.문서확인번호string
발급된 증명의 문서확인번호 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.vatTaxBaseCert.귀속연도string
해당 금액이 귀속되는 연도(4자리)입니다. 연도별 합계를 비교하거나 같은 연도의 다른 소득 자료와 맞출 때 기준 키로 사용합니다.
data.result.vatTaxBaseCert.과세기간string
과세 대상 기간입니다. 신고서·고지서에 표시된 기간을 그대로 반영합니다.
data.result.vatTaxBaseCert.과세표준string
과세표준 금액(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.vatTaxBaseCert.매출세액string
매출세액(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.vatTaxBaseCert.PDF데이터object
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조) 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.result.financialStatementCertobject
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요. 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.
data.result.financialStatementCert.문서확인번호string
발급된 증명의 문서확인번호 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.귀속연도string
해당 금액이 귀속되는 연도(4자리)입니다. 연도별 합계를 비교하거나 같은 연도의 다른 소득 자료와 맞출 때 기준 키로 사용합니다.
data.result.financialStatementCert.자산총계string
자산총계(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.부채총계string
부채총계(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.자본총계string
자본총계(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.매출액string
매출액(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.영업이익string
영업이익(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.당기순이익string
당기순이익(원 단위 숫자) 문자열로 오며, 값이 없으면 빈 문자열이거나 필드가 생략됩니다. 같은 응답의 다른 필드와 함께 해석하세요.
data.result.financialStatementCert.PDF데이터object
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조) 하위 필드에 코드·이름·상태 같은 세부 값이 들어 있으며, 자료가 없으면 빈 객체이거나 생략됩니다.

성공 판정 resultAvailable이 true이면 결과를 사용하고 폴링을 멈춥니다. SUCCESS와 PARTIAL_SUCCESS를 구분하고, charged와 api.cost는 이번 요청의 과금 판단에만 사용하세요.

입력 조건·전송 규칙

1단계 · 조회 인증 요청

모든 입력은 하위 객체 없이 최상위 이름 그대로 보냅니다. user·requestData·options 같은 묶음은 쓰지 않습니다. 형식별 예시는 요청 본문 형식을 참고하세요. 조회 항목마다 필요한 추가 입력 이 다릅니다. 값이 비어 있으면 인증을 보내지 않고 무과금으로 거절하며, 이때는 결과 단가도 발생하지 않습니다.
간편인증 방식(authProvider)
값
인증 방식
kakao
카카오톡
naver
네이버
toss
토스
pass
통신사 PASS
samsung
삼성패스
kb
KB국민은행
shinhan
신한은행
hana
하나은행
woori
우리은행
ibk
IBK기업은행
nh
NH농협은행
kakaobank
카카오뱅크
banksalad
뱅크샐러드
본문은 transactionId 하나입니다. 결과조회 엔드포인트는 인증요청과 짝이 되는 /rest/get_business_cert_bundle 이며, 다른 항목의 엔드포인트로 조회하면 실패합니다. 조회 시각 기준 24시간이 지나면 RESULT_EXPIRED 가 반환됩니다. 이때는 인증요청부터 다시 시작해야 하며, 인증요청 단가(20P)가 다시 발생합니다.

응답 처리

HTTP 성공과 업무 결과를 구분하세요. 경로별 응답 필드와 예시는 위 요청과 응답에 함께 있습니다.

처리 상태(status)
값
의미
과금
AUTH_REQUESTED
조회 인증 요청 (/rest/req_business_cert_bundle 응답)
인증요청 시 과금
AUTH_WAITING
사용자 인증 대기중
무과금
AUTH_COMPLETED
승인 완료, 조회 시작 전
무과금
COLLECTING
조회 결과를 준비하는 중
무과금
SUCCESS
모든 항목 조회 완료
최초 1회만
PARTIAL_SUCCESS
일부 항목만 조회 완료 (sources 참고)
최초 1회만
AUTH_REJECTED
사용자가 인증을 거부
무과금
AUTH_EXPIRED
제한 시간 안에 승인하지 않음
무과금
FAILED
조회 실패
무과금

결과 규격

이 묶음은 한 번 인증으로 3개 조회를 받으므로 result 안에 아래 3개 항목이 함께 옵니다. 항목마다 표를 따로 두었습니다.

result.businessRegistrationCert — 사업자등록증명 발급
경로
타입
값 존재
설명
예시
문서확인번호
String
O
발급된 사업자등록증명의 문서확인번호
0000-0000-0000-0000
상호
String
조건부
사업자 상호
예시상사
사업자등록번호
String
조건부
대상 사업자등록번호 10자리
1234567890
개업일자
String
조건부
개업일자
2020-03-02
업태
String
조건부
업태
정보통신업
종목
String
조건부
종목
소프트웨어 개발
PDF데이터
Object
조건부
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조)
result.vatTaxBaseCert — 부가가치세 과세표준증명 발급
경로
타입
값 존재
설명
예시
문서확인번호
String
O
발급된 증명의 문서확인번호
0000-0000-0000-0000
귀속연도
String
O
귀속연도 4자리
2025
과세기간
String
조건부
과세기간 표기
2025-01 ~ 2025-12
과세표준
String
조건부
과세표준 금액(원 단위 숫자)
120000000
매출세액
String
조건부
매출세액(원 단위 숫자)
12000000
PDF데이터
Object
조건부
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조)
result.financialStatementCert — 표준재무제표증명 발급
경로
타입
값 존재
설명
예시
문서확인번호
String
O
발급된 증명의 문서확인번호
0000-0000-0000-0000
귀속연도
String
O
사업연도 4자리
2025
자산총계
String
조건부
자산총계(원 단위 숫자)
350000000
부채총계
String
조건부
부채총계(원 단위 숫자)
120000000
자본총계
String
조건부
자본총계(원 단위 숫자)
230000000
매출액
String
조건부
매출액(원 단위 숫자)
480000000
영업이익
String
조건부
영업이익(원 단위 숫자)
52000000
당기순이익
String
조건부
당기순이익(원 단위 숫자)
41000000
PDF데이터
Object
조건부
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조)
타입 읽는 법 — String 은 문자열, Integer 는 소수점 없는 정수(원 단위 금액 포함), Boolean 은 true/false, Object 는 이름이 있는 하위 항목 묶음, Array<Object> 는 같은 구조가 여러 건 오는 목록, Array<String> 은 문자열 목록입니다. String(YYYY-MM-DD) 처럼 괄호가 붙으면 그 형식의 문자열이라는 뜻이고 날짜 타입이 아닙니다. 값 존재 — O는 정상 결과에 있는 항목, 조건부는 해당 정보가 있을 때 제공하는 항목입니다. 누락·빈 문자열·빈 배열·0·null의 의미는 항목별 설명을 따릅니다. 부모 항목이 없으면 그 하위 항목도 없습니다. 예시 — 응답에 들어오는 형태 그대로의 값입니다. 실제 조회 결과가 아니며 개인을 특정할 수 없는 가상의 값입니다. 이 열이 비어 있으면 하위 항목이 있는 묶음이거나 값이 빠질 수 있는 항목입니다. 들여쓰기된 항목은 바로 위 부모 안에 들어 있는 하위 항목입니다. 경로 표기에서 . 는 하위 항목, [ ] 를 붙인 항목은 그 안에 여러 건이 오는 목록이라는 뜻입니다.
원문 응답 필드 표 보기
Body
이름
타입
설명
data
Object
인증 요청 결과
schemaVersion
String
결과 스키마 버전 (고정값: "1.0")
transactionId
String
결과 조회에 사용하는 트랜잭션 ID
product
String
조회 항목 코드. 결과조회에도 같은 값이 오므로 어느 항목의 결과인지 대조할 수 있습니다.
status
String
처리 상태 (AUTH_REQUESTED: 인증 요청 완료)
message
String
상태 메시지 (고정값: "인증 대기중입니다.")
approvals
Integer
필요한 간편인증 승인 횟수. 조회 항목 하나당 1회입니다.
resultAvailable
Boolean
결과 데이터 포함 여부. 인증 요청 응답은 항상 false 입니다.
charged
Boolean
이번 호출의 과금 발생 여부. 실제 발송에 성공하면 true 입니다.
expiresAt
String
인증 유효 기한(ISO 8601). 이 시각까지 승인하지 못하면 인증 실패 처리됩니다.
success
Integer
과금 여부
0: 실패 또는 재사용(무과금)
1: 발송 성공(과금)
api
Object
API 호출 공통 데이터
success
Boolean
API 서버 정상 응답 여부
cost
Integer
API 호출 요금
ms
Integer
API 응답 시간
pl_id
Integer
API 결제 로그 ID
Body
이름
타입
설명
data
Object
상태·결과
schemaVersion
String
결과 스키마 버전 (고정값: "1.0")
transactionId
String
트랜잭션 ID
product
String
조회 항목 코드. 인증요청 응답과 같은 값입니다.
status
String
처리 상태 (위 표 참고)
resultAvailable
Boolean
실제 결과 포함 여부. 과금 여부도 이 값으로 결정됩니다.
charged
Boolean
이번 호출의 과금 발생 여부. 최초 결과 반환에서만 true 입니다.
sources
Array
항상 포함됩니다. 값이 없으면 빈 배열 [] 입니다. 항목이 여러 개인 상품에서 어느 것이 성공·실패했는지 알려줍니다. 각 항목은 source(자료 이름), type(데이터 종류), status(SUCCESS/FAILED). 결과 준비가 끝나기 전에는 아직 확정되지 않은 항목이 FAILED 로 보일 수 있습니다.
progress
Object
진행률(COLLECTING 일 때). total(전체 항목), completed(완료 항목)
checkedAt
String
실제 정보를 확인한 시각. 한국시간(UTC+09:00) ISO 8601 이며 재조회 유효기간의 기준입니다.
resultExpiresAt
String
결과 재조회 만료 시각. 한국시간(UTC+09:00) ISO 8601 입니다.
errorCode
String
오류 구분. RESULT_EXPIRED(재조회 기간 만료) / AUTH_EXPIRED / AUTH_REJECTED / COLLECT_FAILED
result
Object
조회된 결과 묶음. 실제 데이터가 있을 때만 포함됩니다.
businessRegistrationCert
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
vatTaxBaseCert
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
financialStatementCert
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
message
String
상태 메시지
success
Integer
과금 여부
0: 결과 없음 또는 재조회(무과금)
1: 최초 결과 반환(과금)
api
Object
API 호출 공통 데이터
success
Boolean
API 서버 정상 응답 여부
cost
Integer
API 호출 요금
ms
Integer
API 응답 시간
pl_id
Integer
API 결제 로그 ID

오류 코드

응답을 아래 순서로 확인하세요. 결과 유무와 과금 여부는 서로 다릅니다.

  1. HTTP 상태전송·인증·입력 오류
  2. api.successAPI 처리 여부
  3. data · result업무 결과와 오류 문구
  4. api.cost이번 요청의 과금
대기

AUTH_REQUESTED · AUTH_WAITING · AUTH_COMPLETED · COLLECTING — 결과가 없으면 간격을 두고 같은 transactionId로 조회합니다.

완료

SUCCESS · PARTIAL_SUCCESS — resultAvailable=true이면 결과를 저장하고 중단합니다. 부분 성공은 sources의 항목별 결과도 확인하세요.

종료

FAILED · AUTH_REJECTED · AUTH_EXPIRED — 자동 반복을 멈추고 사용자에게 상태를 안내하세요. RESULT_EXPIRED는 status가 아닌 errorCode입니다.

HTTP 424

요청 처리·잠금·결제 기록 등 여러 원인이 있을 수 있습니다. 응답 본문의 오류를 함께 확인하고 인증 요청을 자동 반복하지 마세요.

간편인증 승인 유효시간은 300초입니다. 결과 준비 시간·클라이언트 대기시간·결과 보관시간과 구분하세요. 결과의 resultExpiresAt을 확인하고, 부분 성공 자료도 받는 즉시 보관하세요.

인증·포인트 오류 result.error 문구
코드
HTTP
의미·조치
유효하지 않은 API키 입니다.
401
Authorization: Bearer 헤더의 인증키를 확인하세요.
허용되지 않은 IP주소 입니다.
401
마이페이지의 허용 IP 설정과 요청 서버 IP를 확인하세요.
비활성화된 계정입니다.
401
계정 이용 상태를 고객지원으로 문의하세요.
사용 가능한 포인트이 부족합니다.
200
HTTP 200이어도 result.error가 있으면 실패입니다. 포인트를 충전한 뒤 다시 요청하세요. 이 응답은 과금되지 않습니다.
무료 포인트로 사용할 수 없는 서비스입니다.
200
최소 1회 결제 후 이용할 수 있습니다. result.error 전체 문구를 그대로 표시하세요.
인증 정보를 확인할 수 없습니다.
424
일시적인 확인 실패입니다. 잠시 후 다시 시도하세요.
폼 입력 오류 error.code
코드
HTTP
의미·조치
FORM_DATA_INVALID
400
필드 이름·값의 타입·배열 인덱스를 확인하세요. 인덱스는 0부터 연속으로 사용합니다.
FORM_DATA_FIELD_CONFLICT
400
같은 값과 중첩 경로를 동시에 지정하지 마세요.
MULTIPART_LIMIT_OR_PARSE_ERROR
400·413
boundary·파일 크기·필드 개수를 확인하세요. 서비스별 제한이 우선 적용됩니다.

요금·이용 조건

기본 요금기본 단가 · 인증 20P / 결과 126P무료 포인트로는 이용할 수 없으며 최소 1회 결제 후 이용할 수 있습니다.
  • 인증 요청과 결과 제공에 각각 과금 조건이 있습니다. charged와 api.cost로 이번 호출의 비용을 확인하세요. 대기·무료 재조회 응답은 결과 성공 여부와 별개입니다.
  • 동일 계정·동일 상품의 인증 요청은 기존 transactionId를 재사용할 수 있습니다. 다른 대상자의 요청을 동시에 보내지 말고 기존 요청 상태를 먼저 확인하세요.

연동 팁

  • 결과 조회는 한 번씩 순서대로 기다리며 호출하세요. 권장 대기 간격은 5 → 10 → 20 → 30초이며 이후 30초를 유지합니다. 서버 제한이 아닌 클라이언트 권장값입니다.
  • 최대 대기시간과 요청별 시간 제한을 정하고, 결과·종료 상태·사용자 취소 시 멈추세요. 폴링 루프에서 인증 요청을 다시 보내지 마세요.
추가 예제·서비스별 연동 안내
응답 예시

{
    "data": {
        "schemaVersion": "1.0",
        "transactionId": "9f2c4a7b1d8e35c60a4f7b2d1e9c803a",
        "product": "business_cert_bundle",
        "status": "AUTH_REQUESTED",
        "resultAvailable": false,
        "charged": true,
        "sources": [],
        "message": "인증 대기중입니다.",
        "expiresAt": "2026-09-20T05:24:07+09:00",
        "success": 1
    },
    "api": {
        "success": true,
        "cost": 20,
        "ms": 1284,
        "pl_id": 4902
    }
}
            
인증 대기중 (무과금)

{
    "data": {
        "schemaVersion": "1.0",
        "transactionId": "9f2c4a7b1d8e35c60a4f7b2d1e9c803a",
        "product": "business_cert_bundle",
        "status": "AUTH_WAITING",
        "resultAvailable": false,
        "charged": false,
        "sources": [],
        "message": "인증 대기중입니다.",
        "expiresAt": "2026-09-20T05:24:07+09:00",
        "success": 0
    },
    "api": {
        "success": true,
        "cost": 0,
        "ms": 42,
        "pl_id": -1
    }
}
            
조회 중 (무과금)

{
    "data": {
        "schemaVersion": "1.0",
        "transactionId": "9f2c4a7b1d8e35c60a4f7b2d1e9c803a",
        "product": "business_cert_bundle",
        "status": "COLLECTING",
        "resultAvailable": false,
        "charged": false,
        "sources": [],
        "progress": { "total": 3, "completed": 0 },
        "message": "정보를 조회하고 있습니다.",
        "success": 0
    },
    "api": {
        "success": true,
        "cost": 0,
        "ms": 38,
        "pl_id": -1
    }
}
            
조회 완료 (과금)

{
    "data": {
        "schemaVersion": "1.0",
        "transactionId": "9f2c4a7b1d8e35c60a4f7b2d1e9c803a",
        "product": "business_cert_bundle",
        "status": "SUCCESS",
        "resultAvailable": true,
        "charged": true,
        "sources": [

            { "source": "사업자등록증명 발급","type": "HOMETAX_CERT", "status": "SUCCESS" },

            { "source": "부가가치세 과세표준증명 발급","type": "HOMETAX_CERT", "status": "SUCCESS" },

            { "source": "표준재무제표증명 발급","type": "HOMETAX_CERT", "status": "SUCCESS" }

        ],
        "checkedAt": "2026-09-20T04:47:33+09:00",
        "resultExpiresAt": "2026-09-21T04:47:33+09:00",
        "result": {
            "businessRegistrationCert": {
                "문서확인번호": "0000-0000-0000-0000"
            },
            "vatTaxBaseCert": {
                "문서확인번호": "0000-0000-0000-0000",
                "귀속연도": "2025"
            },
            "financialStatementCert": {
                "문서확인번호": "0000-0000-0000-0000",
                "귀속연도": "2025"
            }
        },
        "message": "인증이 완료되었습니다.",
        "success": 1
    },
    "api": {
        "success": true,
        "cost": 126,
        "ms": 318,
        "pl_id": 4903
    }
}
            
위 값은 응답 구조를 보여주기 위한 예시입니다. 값은 가상이지만 필드 구성과 타입은 실제 응답과 같습니다. 전체 항목은 결과 규격을 참고하세요. expiresAt 은 SUCCESS 응답에 없습니다. 인증 대기 기한(AUTH_WAITING)에만 있고, 결과를 받은 뒤에는 resultExpiresAt 이 그 역할을 대신합니다. 둘 중 어느 것이 오는지로 "지금이 승인 대기인지 결과 보관 기간인지"를 구분할 수 있습니다.

이 API로 조회되는 데이터

응답 필드
설명
사업자등록증명 발급 · 문서확인번호String
발급된 사업자등록증명의 문서확인번호
사업자등록증명 발급 · 상호String
사업자 상호
사업자등록증명 발급 · 사업자등록번호String
대상 사업자등록번호 10자리
사업자등록증명 발급 · 개업일자String
개업일자
사업자등록증명 발급 · 업태String
업태
사업자등록증명 발급 · 종목String
종목
사업자등록증명 발급 · PDF데이터Object
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조)
부가가치세 과세표준증명 발급 · 문서확인번호String
발급된 증명의 문서확인번호
부가가치세 과세표준증명 발급 · 귀속연도String
귀속연도 4자리
부가가치세 과세표준증명 발급 · 과세기간String
과세기간 표기
부가가치세 과세표준증명 발급 · 과세표준String
과세표준 금액(원 단위 숫자)
부가가치세 과세표준증명 발급 · 매출세액String
매출세액(원 단위 숫자)
부가가치세 과세표준증명 발급 · PDF데이터Object
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조)
표준재무제표증명 발급 · 문서확인번호String
발급된 증명의 문서확인번호
표준재무제표증명 발급 · 귀속연도String
사업연도 4자리
표준재무제표증명 발급 · 자산총계String
자산총계(원 단위 숫자)
표준재무제표증명 발급 · 부채총계String
부채총계(원 단위 숫자)
표준재무제표증명 발급 · 자본총계String
자본총계(원 단위 숫자)
표준재무제표증명 발급 · 매출액String
매출액(원 단위 숫자)
표준재무제표증명 발급 · 영업이익String
영업이익(원 단위 숫자)
표준재무제표증명 발급 · 당기순이익String
당기순이익(원 단위 숫자)
표준재무제표증명 발급 · PDF데이터Object
PDF를 JSON으로 파싱한 값(PDF데이터 공통 구조)

활용 사례

  • 거래처 등록·보증 심사용 사업자 증빙 3종을 인증 한 번으로 받기
  • 사업자 정보와 과세표준·재무 항목을 같은 귀속연도로 대조하기
  • 받은 bind_id로 다음 사업자 증빙을 동의 없이 다시 접수하기

조회 가능한 본인 자료와 응답 범위 안에서 활용하세요. 조회 결과는 심사·진단·거래 안전을 보장하지 않습니다.

자주 묻는 질문

사업자 증빙서류 통합발급에서 어떤 자료를 받나요?

사업자등록증명 발급 · 문서확인번호, 사업자등록증명 발급 · 상호, 사업자등록증명 발급 · 사업자등록번호, 사업자등록증명 발급 · 개업일자, 사업자등록증명 발급 · 업태, 사업자등록증명 발급 · 종목 등을 제공합니다. 전체 항목과 빈 값·선택 항목의 조건은 아래 응답 명세를 확인하세요.

사업자 증빙서류 통합발급의 조회 비용은 어떻게 확인하나요?

현재 기본 단가는 인증 요청 20P, 결과 조회 126P입니다. 조회 기간·구성에 따른 조건과 실제 charged·api.cost는 요금 안내 및 응답에서 확인하세요.

사업자 증빙서류 통합발급 자료가 비어 있으면 어떻게 처리하나요?

응답 상태와 각 필드의 빈 배열·null·선택 항목 조건을 확인하세요. 자료 없음만으로 사업자 증빙서류 통합발급 대상의 상태를 단정하지 말고 오류 응답과 구분해 표시하세요.

개발가이드 검색

API 이름·경로·파라미터·오류 코드로 찾을 수 있습니다.

표시 가격은 기본 단가입니다. 상세 과금 조건은 각 가이드에서 확인하세요.