개발자 문서/소득 통합 조회

소득 통합 조회

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

본인 간편인증 후 국세청의 소득 통합 조회 자료를 확인합니다. 조회연도: 실제로 조회한 전체 귀속연도 목록(4자리 문자열). 금융소득이 없는 연도도 포함한다. 연도별: 귀속연도별 소득 집계. 합계 건수가 0인 연도는 담기지 않아 조회연도보다 적을 수 있다.

POST/rest/req_income_bundle전체 2개 경로
요청 예제로 이동 ↓

기능·제공 범위

  1. 1 인증 요청transactionId 저장
  2. 2 사용자 승인인증 앱에서 진행
  3. 3 자료 수집서버 내부 처리
  4. 4 결과 조회같은 transactionId 사용

실제 API 호출은 인증 요청·결과 조회 두 종류입니다. 사용자 승인과 자료 수집은 중간 상태이며 별도 호출이 아닙니다.

인증
Bearer 키
요청
form-data
응답
JSON
요금·이용 조건
기본 단가 · 인증 20P / 결과 168P
이용 전 결제 필요

빠른 시작

서버의 APICK_API_KEY를 준비하고 입력값을 바꾸세요. 아래에서 경로별 입력·응답·실행 환경을 함께 확인할 수 있습니다.

요청과 응답

1. 인증 요청
POST/rest/req_income_bundle

Bearer 인증 · multipart/form-data · JSON 응답

입력 항목
폼 항목·타입
필수
설명·예제
namestring
필수
이름예: 홍길동
birthDatestring
필수
생년월일 8자리(YYYYMMDD)예: 19900101
phonestring
필수
휴대전화 번호 (본인 명의, 숫자만)예: 01011112222
authProviderstring
필수
간편인증 방식 (아래 지원 목록 참고)예: kakao
incomeYearsinteger
선택
소득 조회 연수(1~5). 기본 1예: 3
응답과 성공 판정

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

정적 연동 예시입니다. 실제 계정·개인정보를 조회하지 않습니다.

2. 결과 조회
POST/rest/get_income_bundle

Bearer 인증 · multipart/form-data · JSON 응답

입력 항목
폼 항목·타입
필수
설명·예제
transactionIdstring
필수
/rest/req_income_bundle 가 반환한 트랜잭션 ID예: 9f2c4a7b1d8e35c60a4f7b2d1e9c803a
응답과 성공 판정

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

정적 연동 예시입니다. 실제 계정·개인정보를 조회하지 않습니다.

추가 입력 조건·전송 규칙

1단계 · 조회 인증 요청

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

응답 상세

서비스 고유 응답·필드 상세 설명
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
처리 상태(status)
의미
과금
AUTH_REQUESTED
조회 인증 요청 (/rest/req_income_bundle 응답)
인증요청 시 과금
AUTH_WAITING
사용자 인증 대기중
무과금
AUTH_COMPLETED
승인 완료, 조회 시작 전
무과금
COLLECTING
조회 결과를 준비하는 중
무과금
SUCCESS
모든 항목 조회 완료
최초 1회만
PARTIAL_SUCCESS
일부 항목만 조회 완료 (sources 참고)
최초 1회만
AUTH_REJECTED
사용자가 인증을 거부
무과금
AUTH_EXPIRED
제한 시간 안에 승인하지 않음
무과금
FAILED
조회 실패
무과금
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
조회된 결과 묶음. 실제 데이터가 있을 때만 포함됩니다.
personalIncome
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
cashReceiptDeduction
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
incomeByPayer
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
incomeDataCheck
Object
이 조회 항목의 결과입니다. 항목은 결과 규격을 참고하세요.
message
String
상태 메시지
success
Integer
과금 여부
0: 결과 없음 또는 재조회(무과금)
1: 최초 결과 반환(과금)
api
Object
API 호출 공통 데이터
success
Boolean
API 서버 정상 응답 여부
cost
Integer
API 호출 요금
ms
Integer
API 응답 시간
pl_id
Integer
API 결제 로그 ID

결과 규격

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

result.personalIncome — 금융소득(이자·배당) 조회 (국세청)
경로
타입
값 존재
설명
예시
조회연도
Array<String>
O
실제로 조회한 전체 귀속연도 목록(4자리 문자열). 금융소득이 없는 연도도 포함한다.
["2025"]
연도별
Array<Object>
O
귀속연도별 소득 집계. 합계 건수가 0인 연도는 담기지 않아 조회연도보다 적을 수 있다.
귀속연도
String
O
귀속연도 4자리
2025
소득종류별
Object
O
확인된 이자소득·배당소득별 집계. 근로·사업소득은 포함하지 않는다. 확인되지 않은 종류의 키는 생략된다.
이자소득
Object
조건부
이자소득이 확인된 경우의 집계(금액 단위 원). 없으면 키 생략.
건수
Integer
O
소득 건수
12
소득금액
Integer
O
소득금액 합계(원)
1280000
소득세
Integer
O
소득세 합계(원)
154000
지방소득세
Integer
O
지방소득세 합계(원)
15400
농어촌특별세
Integer
O
농어촌특별세 합계(원)
0
세액합계
Integer
O
소득세 + 지방소득세 + 농어촌특별세(원)
169400
배당소득
Object
조건부
배당소득이 확인된 경우의 집계(금액 단위 원). 없으면 키 생략.
건수
Integer
O
소득 건수
12
소득금액
Integer
O
소득금액 합계(원)
1280000
소득세
Integer
O
소득세 합계(원)
154000
지방소득세
Integer
O
지방소득세 합계(원)
15400
농어촌특별세
Integer
O
농어촌특별세 합계(원)
0
세액합계
Integer
O
소득세 + 지방소득세 + 농어촌특별세(원)
169400
합계
Object
O
그 연도의 전체 합계
건수
Integer
O
소득 건수
12
소득금액
Integer
O
소득금액 합계(원)
1280000
소득세
Integer
O
소득세 합계(원)
154000
지방소득세
Integer
O
지방소득세 합계(원)
15400
농어촌특별세
Integer
O
농어촌특별세 합계(원)
0
세액합계
Integer
O
소득세 + 지방소득세 + 농어촌특별세(원)
169400
result.cashReceiptDeduction — 현금영수증 소득공제 내역 (국세청)
경로
타입
값 존재
설명
예시
조회연도
Array<String>
O
실제로 조회된 귀속연도 목록(4자리 문자열).
["2025"]
전체합계
Object
O
조회한 전체 연도의 합계.
건수
Integer
O
현금영수증 사용 건수
12
사용금액
Integer
O
사용금액 합계(원)
1280000
소득공제건수
Integer
O
소득공제에 반영된 건수
10
소득공제금액
Integer
O
소득공제에 반영된 금액(원)
1080000
연도별
Array<Object>
O
귀속연도별 합계와 사용내역.
귀속연도
String
O
귀속연도 4자리
2025
합계
Object
O
그 연도의 합계
건수
Integer
O
현금영수증 사용 건수
12
사용금액
Integer
O
사용금액 합계(원)
1280000
소득공제건수
Integer
O
소득공제에 반영된 건수
10
소득공제금액
Integer
O
소득공제에 반영된 금액(원)
1080000
사용내역
Array<Object>
O
건별 사용내역. 사용이 없으면 빈 배열이다.
거래일시
String(YYYY-MM-DD HH:mm:ss)
O
승인 일시
2025-03-14 15:22:31
가맹점
String
O
가맹점명
예시가맹점
금액
Integer
O
승인 금액(원)
1280000
승인번호
String
O
현금영수증 승인번호
2025-0001234
거래구분
String
O
승인·취소 구분
승인
거래상태
String
O
거래 상태
정상
소득공제대상
Boolean
O
소득공제 대상이면 true, 아니면 false.
true
소득공제반영
Boolean
O
소득공제가 반영됐으면 true, 아니면 false.
true
result.incomeByPayer — 일용·간이·용역 소득내역 (국세청)
경로
타입
값 존재
설명
예시
조회연도
Array<String>
O
실제로 조회한 귀속연도 목록(4자리 문자열).
["2025"]
전체합계
Object
O
조회한 전체 유형·연도의 합계. 지급명세서가 하나도 없으면 건수가 0이다.
건수
Integer
O
지급명세서 건수
3
지급액
Integer
O
그 유형 기준 금액의 합계(원). 유형마다 기준 항목이 다르다(총지급액·과세소득·용역제공대가·급여 등).
1280000
소득세
Integer
O
소득세 합계(원)
154000
지방소득세
Integer
O
지방소득세 합계(원)
15400
유형별
Array<Object>
O
지급명세서 자료종류별 소득내역. 내역이 있는 유형만 담긴다.
유형
String
O
자료종류. 사업장제공자·간이기타·간이사업·간이근로·일용 중 하나다.
일용
합계
Object
O
그 유형의 합계
건수
Integer
O
지급명세서 건수
3
지급액
Integer
O
그 유형 기준 금액의 합계(원). 유형마다 기준 항목이 다르다(총지급액·과세소득·용역제공대가·급여 등).
1280000
소득세
Integer
O
소득세 합계(원)
154000
지방소득세
Integer
O
지방소득세 합계(원)
15400
내역
Array<Object>
O
지급자별 소득 한 건씩. 자료종류와 값 존재 여부에 따라 하위 필드가 생략된다.
지급명세서종류
String
조건부
지급명세서 종류 표기
간이지급명세서(근로소득)
지급자
String
조건부
지급자(징수의무자)명
예시주식회사
사업자등록번호
String
조건부
지급자 사업자등록번호 10자리(하이픈 포함)
123-45-67890
귀속연도
String
조건부
귀속연도 4자리
2026
지급연도
String
조건부
지급연도 4자리. 간이기타·간이사업에만 온다.
2026
소득구분
String
조건부
소득구분 표기. 간이기타에만 온다.
기타소득
업종구분
String
조건부
업종구분 표기. 간이사업에만 온다.
서비스업
용역구분
String
조건부
용역구분 표기. 사업장제공자에만 온다.
인적용역
총지급액
Integer
조건부
총지급액(원). 간이기타·간이사업에 온다.
1280000
과세소득
Integer
조건부
과세소득(원). 일용에 온다.
1280000
용역제공대가
Integer
조건부
용역제공대가(원). 사업장제공자에 온다.
1280000
급여 등
Integer
조건부
급여 등(원). 간이근로에 온다.
40666665
인정상여금액
Integer
조건부
인정상여금액(원). 간이근로에 온다.
0
비과세소득
Integer
조건부
비과세소득(원). 일용에 온다.
0
필요경비
Integer
조건부
필요경비(원). 간이기타에 온다.
0
소득금액
Integer
조건부
소득금액(원). 간이기타에 온다.
1280000
소득세
Integer
조건부
소득세(원)
154000
지방소득세
Integer
조건부
지방소득세(원)
15400
result.incomeDataCheck — 소득자료 확인 (국세청)
경로
타입
값 존재
설명
예시
조회연도
Array<String>
O
실제로 조회된 귀속연도 목록(4자리 문자열).
["2025"]
연도별
Array<Object>
O
귀속연도별 소득자료 합계. 자료가 없는 연도는 담기지 않으며 확인되지 않은 금액 필드는 생략될 수 있다.
귀속연도
String
O
귀속연도 4자리
2025
연간소득총액
Integer
조건부
연간 소득 총액(원)
242634500
근로소득
Integer
O
상용·일용 근로소득 합계(원)
104469506
근로소득(간이)
Integer
조건부
간이지급명세서로 제출된 근로소득(원)
0
사업소득(간이)
Integer
조건부
간이지급명세서로 제출된 사업소득(원)
0
원천징수 사업소득
Integer
조건부
원천징수된 사업소득(원)
0
사업장 사업소득
Integer
조건부
사업장에서 발생한 사업소득(원)
0
금융소득
Integer
조건부
이자·배당 등 금융소득(원)
33695488
연금소득
Integer
조건부
연금소득(원)
0
기타소득
Integer
조건부
기타소득(원)
0
종교인소득
Integer
조건부
종교인소득(원)
0
근로소득상세
Object | null
O
조회 시점의 반기 기준 근로소득 상세. 키는 항상 존재하며 조회 기간이 아니면 null이다.
귀속연도
String
O
귀속연도 4자리
2026
신청 구분
String
O
상반기분 또는 하반기분
상반기분
근로소득 합계
Integer
조건부
상용·일용 근로소득 합계(원)
40666665
상반기 근로소득
Integer
조건부
상반기 근로소득(원)
40666665
하반기 근로소득
Integer
조건부
하반기 근로소득(원)
0
상용근로소득
Integer
조건부
상용근로소득 합계(원)
40666665
상반기 상용근로소득
Integer
조건부
상반기 상용근로소득(원)
40666665
하반기 상용근로소득
Integer
조건부
하반기 상용근로소득(원)
0
일용근로소득
Integer
조건부
일용근로소득 합계(원)
0
상반기 일용근로소득
Integer
조건부
상반기 일용근로소득(원)
0
하반기 일용근로소득
Integer
조건부
하반기 일용근로소득(원)
0
지급자별
Array<Object>
O
지급자별 소득자료. 자료가 없으면 빈 배열이며 하위 필드는 값이 있을 때만 포함된다.
자료출처
String
조건부
소득자료 종류 표기
지급명세서(사업소득)
지급자 상호(법인명)
String
조건부
지급자 상호 또는 법인명
예시주식회사
지급자 사업자등록번호
String
조건부
지급자 사업자등록번호. 하이픈 없이 10자리로 온다.
1234567890
수입금액
Integer
조건부
수입금액(원)
1280000
업종
String
조건부
업종 표기
서비스업
업종코드
String
조건부
업종코드
940909
타입 읽는 법String 은 문자열, Integer 는 소수점 없는 정수(원 단위 금액 포함), Boolean 은 true/false, Object 는 이름이 있는 하위 항목 묶음, Array<Object> 는 같은 구조가 여러 건 오는 목록, Array<String> 은 문자열 목록입니다. String(YYYY-MM-DD) 처럼 괄호가 붙으면 그 형식의 문자열이라는 뜻이고 날짜 타입이 아닙니다. 값 존재O는 정상 결과에 있는 항목, 조건부는 해당 정보가 있을 때 제공하는 항목입니다. 누락·빈 문자열·빈 배열·0·null의 의미는 항목별 설명을 따릅니다. 부모 항목이 없으면 그 하위 항목도 없습니다. 예시 — 응답에 들어오는 형태 그대로의 값입니다. 실제 조회 결과가 아니며 개인을 특정할 수 없는 가상의 값입니다. 이 열이 비어 있으면 하위 항목이 있는 묶음이거나 값이 빠질 수 있는 항목입니다. 들여쓰기된 항목은 바로 위 부모 안에 들어 있는 하위 항목입니다. 경로 표기에서 . 는 하위 항목, [ ] 를 붙인 항목은 그 안에 여러 건이 오는 목록이라는 뜻입니다.

경로별 응답 예시와 필드 명세는 위 API 요청 설명에 붙어 있습니다. JSON을 파일로 저장하기 전에는 Content-Type과 오류를 확인하세요.

상태·오류·재시도

HTTP 상태 → API 처리 여부 → 업무 상태 순서로 확인하세요. 결과 유무와 과금 여부는 서로 다릅니다.

대기 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을 확인하고, 부분 성공 자료도 받는 즉시 보관하세요.

공통 폼 입력 오류

FORM_DATA_INVALID · HTTP 400: 필드 이름·타입·배열 인덱스를 확인하세요. 인덱스는 0부터 연속으로 사용합니다.

FORM_DATA_FIELD_CONFLICT · HTTP 400: 같은 값과 중첩 경로를 동시에 지정하지 마세요.

MULTIPART_LIMIT_OR_PARSE_ERROR · HTTP 400/413: boundary·파일 크기·필드 개수를 확인하세요. 서비스별 제한이 우선 적용됩니다.

요금·제한·이용 조건

인증 요청과 결과 제공에 각각 과금 조건이 있습니다. chargedapi.cost로 이번 호출의 비용을 확인하세요. 대기·무료 재조회 응답은 결과 성공 여부와 별개입니다.

동일 계정·동일 상품의 인증 요청은 기존 transactionId를 재사용할 수 있습니다. 다른 대상자의 요청을 동시에 보내지 말고 기존 요청 상태를 먼저 확인하세요.

기능·제공 범위·요금·제한 전체 보기

조회 자료 제공 기관은 국세청 입니다. 본인 인증은 한 번만 하면 되고, 담당 기관은 엔드포인트로 자동 선택됩니다.

이 묶음에 포함된 조회 4종

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

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

/rest/req_income_bundle
20P · 인증요청 5분 유효
/rest/get_income_bundle
168P × 데이터셋 4 × 기간 배수 · 결과 24시간 보관

이름·생년월일·휴대전화번호와 간편인증 방식을 입력하면 사용자에게 간편인증 요청을 보내고, 결과 조회에 사용할 transactionId 를 즉시 반환합니다.

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

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

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

연동 시 확인할 내용

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

추가 예제·서비스별 연동 안내
응답 예시

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

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

            { "source": "국세청", "type": "PERSONAL_INCOME", "status": "SUCCESS" },

            { "source": "국세청", "type": "CASH_RECEIPT_DEDUCTION", "status": "SUCCESS" },

            { "source": "국세청", "type": "INCOME_BY_PAYER", "status": "SUCCESS" },

            { "source": "국세청", "type": "INCOME_DATA_CHECK", "status": "SUCCESS" }

        ],
        "checkedAt": "2026-09-20T04:47:33+09:00",
        "resultExpiresAt": "2026-09-21T04:47:33+09:00",
        "result": {
            "personalIncome": {
                "조회연도": [
                    "2025"
                ],
                "연도별": [
                    {
                        "귀속연도": "2025",
                        "소득종류별": {
                            "이자소득": {
                                "건수": 12,
                                "소득금액": 1280000,
                                "소득세": 154000,
                                "지방소득세": 15400,
                                "농어촌특별세": 0,
                                "세액합계": 169400
                            },
                            "배당소득": {
                                "건수": 12,
                                "소득금액": 1280000,
                                "소득세": 154000,
                                "지방소득세": 15400,
                                "농어촌특별세": 0,
                                "세액합계": 169400
                            }
                        },
                        "합계": {
                            "건수": 12,
                            "소득금액": 1280000,
                            "소득세": 154000,
                            "지방소득세": 15400,
                            "농어촌특별세": 0,
                            "세액합계": 169400
                        }
                    }
                ]
            },
            "cashReceiptDeduction": {
                "조회연도": [
                    "2025"
                ],
                "전체합계": {
                    "건수": 12,
                    "사용금액": 1280000,
                    "소득공제건수": 10,
                    "소득공제금액": 1080000
                },
                "연도별": [
                    {
                        "귀속연도": "2025",
                        "합계": {
                            "건수": 12,
                            "사용금액": 1280000,
                            "소득공제건수": 10,
                            "소득공제금액": 1080000
                        },
                        "사용내역": [
                            {
                                "거래일시": "2025-03-14 15:22:31",
                                "가맹점": "예시가맹점",
                                "금액": 1280000,
                                "승인번호": "2025-0001234",
                                "거래구분": "승인",
                                "거래상태": "정상",
                                "소득공제대상": true,
                                "소득공제반영": true
                            }
                        ]
                    }
                ]
            },
            "incomeByPayer": {
                "조회연도": [
                    "2025"
                ],
                "전체합계": {
                    "건수": 3,
                    "지급액": 1280000,
                    "소득세": 154000,
                    "지방소득세": 15400
                },
                "유형별": [
                    {
                        "유형": "일용",
                        "합계": {
                            "건수": 3,
                            "지급액": 1280000,
                            "소득세": 154000,
                            "지방소득세": 15400
                        },
                        "내역": [
                            {
                                "지급명세서종류": "간이지급명세서(근로소득)",
                                "지급자": "예시주식회사",
                                "사업자등록번호": "123-45-67890",
                                "귀속연도": "2026",
                                "지급연도": "2026",
                                "소득구분": "기타소득",
                                "업종구분": "서비스업",
                                "용역구분": "인적용역",
                                "총지급액": 1280000,
                                "과세소득": 1280000,
                                "용역제공대가": 1280000,
                                "급여 등": 40666665,
                                "인정상여금액": 0,
                                "비과세소득": 0,
                                "필요경비": 0,
                                "소득금액": 1280000,
                                "소득세": 154000,
                                "지방소득세": 15400
                            }
                        ]
                    }
                ]
            },
            "incomeDataCheck": {
                "조회연도": [
                    "2025"
                ],
                "연도별": [
                    {
                        "귀속연도": "2025",
                        "연간소득총액": 242634500,
                        "근로소득": 104469506,
                        "근로소득(간이)": 0,
                        "사업소득(간이)": 0,
                        "원천징수 사업소득": 0,
                        "사업장 사업소득": 0,
                        "금융소득": 33695488,
                        "연금소득": 0,
                        "기타소득": 0,
                        "종교인소득": 0
                    }
                ],
                "근로소득상세": {
                    "귀속연도": "2026",
                    "신청 구분": "상반기분",
                    "근로소득 합계": 40666665,
                    "상반기 근로소득": 40666665,
                    "하반기 근로소득": 0,
                    "상용근로소득": 40666665,
                    "상반기 상용근로소득": 40666665,
                    "하반기 상용근로소득": 0,
                    "일용근로소득": 0,
                    "상반기 일용근로소득": 0,
                    "하반기 일용근로소득": 0
                },
                "지급자별": [
                    {
                        "자료출처": "지급명세서(사업소득)",
                        "지급자 상호(법인명)": "예시주식회사",
                        "지급자 사업자등록번호": "1234567890",
                        "수입금액": 1280000,
                        "업종": "서비스업",
                        "업종코드": "940909"
                    }
                ]
            }
        },
        "message": "인증이 완료되었습니다.",
        "success": 1
    },
    "api": {
        "success": true,
        "cost": 168,
        "ms": 318,
        "pl_id": 4903
    }
}
            
위 값은 응답 구조를 보여주기 위한 예시입니다. 값은 가상이지만 필드 구성과 타입은 실제 응답과 같습니다. 전체 항목은 결과 규격을 참고하세요. expiresAt 은 SUCCESS 응답에 없습니다. 인증 대기 기한(AUTH_WAITING)에만 있고, 결과를 받은 뒤에는 resultExpiresAt 이 그 역할을 대신합니다. 둘 중 어느 것이 오는지로 "지금이 승인 대기인지 결과 보관 기간인지"를 구분할 수 있습니다.

개발가이드 검색

필요한 API와 이용 요금을 함께 확인하세요.

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