# 수집 내역 확인

## 1. Search - 수집 내역 확인

| HTTP Method | 테스트(Sandbox)                                                  | 운영(Production)                                           |
| ----------- | ------------------------------------------------------------- | -------------------------------------------------------- |
| GET         | <https://popbill-test.linkhub.co.kr/HomeTax/Cashbill/{jobID}> | <https://popbill.linkhub.co.kr/HomeTax/Cashbill/{jobID}> |

- 홈택스에서 수집된 현금영수증 매입/매출 내역을 확인합니다.
- 18개 항목으로 구성된 내역 확인이 가능합니다.

> 매개변수 Page, PerPage, Order를 이용하여 페이징 기능을 구현할 수 있습니다.

### Request

**요청 헤더**

- Authorization `required: Y` `description: 인증 토큰`
  - [\[참고\] 인증 및 헤더 설정](https://developers.popbill.com/api-reference/htcashbill/getting-started/authorization)
- Accept-Language `required: N` `description: 응답 언어 설정`
  - `ko-KR`: 기본값
  - `en-US`
- Accept-Encoding `required: N` `description: 응답 압축 방식`
  - `gzip`
- X-PB-UserID `required: N` `description: 팝빌회원 아이디`

**Path 파라미터**

- jobID `type: string` `length: 18` `required: Y` `description: 팝빌에서 할당한 작업아이디`
  - [\[RequestJob - 수집 요청\]](https://developers.popbill.com/api-reference/htcashbill/api/job#RequestJob) API의 반환값

**Query 파라미터**

- TradeUsage `type: string` `length: -` `required: N` `description: 현금영수증 거래구분 (다중 선택 가능)`
  - `P`: 소득공제용
  - `C`: 지출증빙용
  - 다중 선택시 콤마(',')로 구분. 예) P,C
  - 기본값 : 전체조회
- TradeType `type: string` `length: -` `required: N` `description: 현금영수증 문서형태 (다중 선택 가능)`
  - `N`: 승인 현금영수증
  - `C`: 취소 현금영수증
  - 다중 선택시 콤마(',')로 구분. 예) N,C
  - 기본값 : 전체조회
- Page `type: number` `length: -` `required: N` `description: 목록 페이지번호`
  - 기본값 : 1
- PerPage `type: number` `length: -` `required: N` `description: 페이지당 표시할 목록 건수`
  - 최대 : 1,000건
  - 기본값 : 500건
- Order `type: string` `length: 1` `required: N` `description: 목록 정렬 방향`
  - `D`: 내림차순 : 기본값
  - `A`: 오름차순
  - API를 호출하고 반환 받은 거래일시(tradeDT) 기준

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/HomeTax/Cashbill/{jobID}?TradeUsage={TradeUsage}&TradeType={TradeType}&Page={Page}&PerPage={PerPage}&Order={Order}' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- code `type: number` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- total `type: number` `length: -` `description: 총 검색결과 건수`
- perPage `type: number` `length: -` `description: 페이지당 목록 건수`
- pageNum `type: number` `length: -` `description: 페이지 번호`
- pageCount `type: number` `length: -` `description: 페이지 개수`
- list `type: array` `length: -` `description: 현금영수증 정보`
  - 최대 : 1,000건
  - ntsconfirmNum `type: string` `length: 24` `description: 국세청승인번호`
  - tradeDate `type: string` `length: 8` `description: 거래일자`
    - 형식 : yyyyMMdd
  - tradeDT `type: string` `length: 14` `description: 거래일시`
    - 형식 : yyyyMMddHHmmss
  - tradeType `type: string` `length: 4` `description: 문서형태`
    - `승인거래`
    - `취소거래`
  - tradeUsage `type: string` `length: 5` `description: 거래구분`
    - `소득공제용`
    - `지출증빙용`
  - totalAmount `type: string` `length: 9` `description: 거래금액`
  - supplyCost `type: string` `length: 9` `description: 공급가액`
  - tax `type: string` `length: 9` `description: 부가세`
  - serviceFee `type: string` `length: 9` `description: 봉사료`
  - invoiceType `type: string` `length: -` `description: 현금영수증 유형`
    - `매출`
    - `매입`
  - franchiseCorpNum `type: string` `length: 10` `description: 가맹점(발행자) 사업자번호`
    - {invoiceType}="매입" 경우 반환
  - franchiseCorpName `type: string` `length: 200` `description: 가맹점(발행자) 상호`
    - {invoiceType}="매입" 경우 반환
  - franchiseCorpType `type: number` `length: 1` `description: 가맹점(발행자) 사업자유형`
    - `1`: 일반과세자
    - `2`: 간이과세자
    - `3`: 과세특례자
    - `4`: 면세사업자
    - `5`: 법인사업자
    - {invoiceType}="매입" 경우 반환
  - identityNum `type: string` `length: 4` `description: 식별번호`
    - 식별번호의 마지막 4자리 숫자만 반환
  - identityNumType `type: number` `length: 1` `description: 식별번호 유형`
    - `1`: 주민등록번호
    - `2`: 사업자번호
    - `3`: 휴대폰번호
    - `4`: 카드번호
  - customerName `type: string` `length: 70` `description: 구매자(고객) 성명`
  - cardOwnerName `type: string` `length: 70` `description: 카드소유자명`
  - deductionType `type: number` `length: 1` `description: 공제유형`
    - `1`: 공제
    - `3`: 불공제

**응답 예시**

```json
{
    "code": 1,
    "total": 1,
    "perPage": 500,
    "pageNum": 1,
    "pageCount": 1,
    "list": [
        {
            "invoiceType": "매출",
            "ntsconfirmNum": "Z55904818",
            "tradeDate": "20250507",
            "tradeDT": "20250507102940",
            "tradeUsage": "지출증빙용",
            "tradeType": "취소거래",
            "supplyCost": "910",
            "tax": "90",
            "serviceFee": "0",
            "totalAmount": "1000",
            "franchiseCorpNum": "6798700433",
            "franchiseCorpType": 0,
            "identityNumType": 1,
            "identityNum": "3713",
            "customerName": "정요한",
            "deductionType": 0
        }
    ],
    "message": "확인완료"
}
```

## 2. Summary - 수집 내역 합계

| HTTP Method | 테스트(Sandbox)                                                          | 운영(Production)                                                   |
| ----------- | --------------------------------------------------------------------- | ---------------------------------------------------------------- |
| GET         | <https://popbill-test.linkhub.co.kr/HomeTax/Cashbill/{jobID}/Summary> | <https://popbill.linkhub.co.kr/HomeTax/Cashbill/{jobID}/Summary> |

- 홈택스에서 수집된 현금영수증 매입/매출 내역의 합계정보를 제공합니다.\
  ※ 합계정보 - 수집 건수, 공급가액 합계, 부가세 합계, 봉사료 합계, 거래금액 합계 (공급가액 합계+부가세 합계+봉사료 합계)

### Request

**요청 헤더**

- Authorization `required: Y` `description: 인증 토큰`
  - [\[참고\] 인증 및 헤더 설정](https://developers.popbill.com/api-reference/htcashbill/getting-started/authorization)
- Accept-Language `required: N` `description: 응답 언어 설정`
  - `ko-KR`: 기본값
  - `en-US`
- Accept-Encoding `required: N` `description: 응답 압축 방식`
  - `gzip`
- X-PB-UserID `required: N` `description: 팝빌회원 아이디`

**Path 파라미터**

- jobID `type: string` `length: 18` `required: Y` `description: 팝빌에서 할당한 작업아이디`
  - [\[RequestJob - 수집 요청\]](https://developers.popbill.com/api-reference/htcashbill/api/job#RequestJob) API의 반환값

**Query 파라미터**

- TradeUsage `type: string` `length: -` `required: N` `description: 현금영수증 거래구분 (다중 선택 가능)`
  - `P`: 소득공제용
  - `C`: 지출증빙용
  - 다중 선택시 콤마(',')로 구분. 예) P,C
  - 기본값 : 전체조회
- TradeType `type: string` `length: -` `required: N` `description: 현금영수증 문서형태 (다중 선택 가능)`
  - `N`: 승인 현금영수증
  - `C`: 취소 현금영수증
  - 다중 선택시 콤마(',')로 구분. 예) N,C
  - 기본값 : 전체조회

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/HomeTax/Cashbill/{jobID}/Summary?TradeUsage={TradeUsage}&TradeType={TradeType}' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- count `type: number` `length: -` `description: 수집 건수`
- supplyCostTotal `type: number` `length: 18` `description: 공급가액 합계`
- taxTotal `type: number` `length: 18` `description: 세액 합계`
- serviceFeeTotal `type: number` `length: 18` `description: 봉사료 합계`
- amountTotal `type: number` `length: 18` `description: 거래금액 합계 (공급가액 합계+부가세 합계+봉사료 합계)`

**응답 예시**

```json
{
    "count": 2,
    "supplyCostTotal": 1820,
    "taxTotal": 180,
    "serviceFeeTotal": 0,
    "amountTotal": 2000
}
```
