# 포인트 관리

## 1. GetUnitCost - 조회 단가 확인

| HTTP Method | 테스트(Sandbox)                                                       | 운영(Production)                                                |
| ----------- | ------------------------------------------------------------------ | ------------------------------------------------------------- |
| GET         | <https://popbill-test.linkhub.co.kr/EasyFin/AccountCheck/UnitCost> | <https://popbill.linkhub.co.kr/EasyFin/AccountCheck/UnitCost> |

- 예금주 조회시 과금되는 포인트 단가를 확인합니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- serviceType `type: string` `length: 2` `required: N` `description: 서비스 유형 (택 1)`
  - `성명`
  - `실명`

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/EasyFin/AccountCheck/UnitCost?serviceType={serviceType}' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- unitCost `type: string` `length: -` `description: 조회 단가`

**응답 예시**

```json
{
    "unitCost": "10"
}
```

## 2. GetChargeInfo - 과금정보 확인

| HTTP Method | 테스트(Sandbox)                                                         | 운영(Production)                                                  |
| ----------- | -------------------------------------------------------------------- | --------------------------------------------------------------- |
| GET         | <https://popbill-test.linkhub.co.kr/EasyFin/AccountCheck/ChargeInfo> | <https://popbill.linkhub.co.kr/EasyFin/AccountCheck/ChargeInfo> |

- 팝빌 예금주조회 API 서비스 과금정보를 확인합니다.

### Request

**요청 헤더**

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

**Query 파라티터**

- serviceType `type: string` `length: 2` `required: N` `description: 서비스 유형 (택 1)`
  - `성명`
  - `실명`

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/EasyFin/AccountCheck/ChargeInfo?serviceType={serviceType}' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- unitCost `type: string` `length: 12` `description: 조회단가`
- chargeMethod `type: string` `length: 3` `description: 과금유형`
  - `연동`
  - `파트너`
- rateSystem `type: string` `length: 3` `description: 과금제도`
  - `종량제`

**응답 예시**

```json
{
    "chargeMethod": "연동",
    "rateSystem": "종량제",
    "unitCost": "10"
}
```

## 3. GetBalance - 연동회원 잔여포인트 확인

| HTTP Method | 테스트(Sandbox)                                    | 운영(Production)                             |
| ----------- | ----------------------------------------------- | ------------------------------------------ |
| GET         | <https://auth.linkhub.co.kr/POPBILL_TEST/Point> | <https://auth.linkhub.co.kr/POPBILL/Point> |

- 연동회원의 잔여포인트를 확인합니다.

### Request

**요청 헤더**

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

**요청 예시**

```bash
curl --request GET \
  --url 'https://auth.linkhub.co.kr/{serviceID}/Point' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- remainPoint `type: string` `length: -` `description: 연동회원 잔여포인트`
- defUsedPoint `type: string` `length: -` `description: 후불사용 포인트`

**응답 예시**

```json
{
    "remainPoint": "84923",
    "defUsedPoint": "0"
}
```

## 4. GetChargeURL - 연동회원 포인트 충전 팝업 URL

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

![연동회원 포인트 충전 팝업 URL 미리보기](https://developers.popbill.com/images/reference/point/getChargeURL.png)

**연동회원 포인트를 충전하는 팝업 URL을 반환합니다.**

- 권장 사이즈 : width = 800px / height = 700px
- 반환되는 URL은 30초 동안만 사용이 가능합니다.
- 반환되는 URL에서만 유효한 세션을 포함하고 있습니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- TG `type: string` `length: -` `required: Y` `description: 고정값 : CHRG`

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/Member?TG=CHRG' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- url `type: string` `length: -` `description: 연동회원 포인트 충전 팝업 URL`

**응답 예시**

```json
{
    "url": "https://test.popbill.com/App/API?T=G6IMAVA7FZXLUKPKVFXDJRYU5LSPRSGIWF...Q3RQDO6P6KLW6==="
}
```

## 5. PaymentRequest - 연동회원 무통장 입금신청

| HTTP Method | 테스트(Sandbox)                                 | 운영(Production)                          |
| ----------- | -------------------------------------------- | --------------------------------------- |
| POST        | <https://popbill-test.linkhub.co.kr/Payment> | <https://popbill.linkhub.co.kr/Payment> |

- 연동회원 포인트 충전을 위해 무통장입금을 신청합니다.

### Request

**요청 헤더**

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

**요청 본문**

- settlerName `type: string` `length: 100` `required: N` `description: 담당자명`
- settlerEmail `type: string` `length: 100` `required: N` `description: 담당자 메일`
- notifyHP `type: string` `length: 20` `required: N` `description: 담당자 휴대폰`
  - 무통장 입금 승인 알림톡이 전송될 번호
- paymentName `type: string` `length: 70` `required: Y` `description: 입금자명`
- settleCost `type: string` `length: 18` `required: Y` `description: 결제금액`

**요청 예시**

```bash
curl --request POST \
  --url 'https://{domain}/Payment' \
  --header 'Authorization: Bearer {token}' \
  --header 'Content-Type: application/json' \
  --data '{
    "settlerName": "담당자명",
    "settlerEmail": "test@test.com",
    "notifyHP": "01012345678",
    "paymentName": "입금자명",
    "settleCost": "110000"
  }'
```

### Response

**응답 본문**

- code `type: number` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: string` `length: -` `description: API 처리에 대한 응답메시지`
- settleCode `type: string` `length: 18` `description: 정산코드`

**응답 예시**

```json
{
    "code": 1,
    "message": "접수완료",
    "settleCode": "202608140000000001"
}
```

## 6. GetSettleResult - 연동회원 무통장 입금신청 정보확인

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

- 연동회원 포인트 무통장 입금신청내역 1건을 확인합니다.

### Request

**요청 헤더**

- Authorization `required: Y` `description: 인증 토큰`
  - [\[참고\] 인증 및 헤더 설정](https://developers.popbill.com/api-reference/accountcheck/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 파라미터**

- settleCode `type: string` `length: 18` `required: Y` `description: 정산코드`
  - 팝빌에서 임의 할당하는 값으로 [\[PaymentRequest - 연동회원 무통장 입금신청\]](https://developers.popbill.com/api-reference/taxinvoice/common-api/point#PaymentRequest) 호출시 반환되는 값

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/Payment/{settleCode}' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- productType `type: string` `length: 3` `description: 결제 내용`
  - `포인트`
  - `정액제`
  - `미수금`
- productName `type: string` `length: 30` `description: 결제 상품명`
- settleType `type: string` `length: 7` `description: 결제유형`
  - `무통장`
  - `신용카드`
  - `실시간계좌이체`
- settlerName `type: string` `length: 100` `description: 담당자명`
- settlerEmail `type: string` `length: 100` `description: 담당자 메일`
- settleCost `type: string` `length: 18` `description: 결제금액`
- settlePoint `type: string` `length: 18` `description: 충전포인트`
- settleState `type: number` `length: 1` `description: 결제상태`
  - `1`: 대기
  - `2`: 승인
  - `3`: 실패
  - `4`: 취소
  - `5`: 취소
- regDT `type: string` `length: 14` `description: 등록일시`
  - 형식 : yyyyMMddHHmmss
- stateDT `type: string` `length: 14` `description: 상태일시`
  - 형식 : yyyyMMddHHmmss

**응답 예시**

```json
{
    "productType": "포인트",
    "productName": "팝빌 포인트 충전",
    "settleType": "무통장",
    "settlerName": "담당자명",
    "settlerEmail": "test@test.com",
    "settleCost": "11000",
    "settlePoint": "10000",
    "settleState": 1,
    "regDT": "20251020092932",
    "stateDT": "20251020092932"
}
```

## 7. GetPaymentHistory - 연동회원 포인트 결제내역 확인

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

- 연동회원의 포인트 결제내역을 확인합니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- SDate `type: string` `length: 8` `required: Y` `description: 검색 시작일자`
  - 형식 : yyyyMMdd
- EDate `type: string` `length: 8` `required: Y` `description: 검색 종료일자`
  - 형식 : yyyyMMdd
- Page `type: number` `length: -` `required: N` `description: 목록 페이지번호`
  - 기본값 : 1
- PerPage `type: number` `length: -` `required: N` `description: 페이지당 표시할 목록 건수`
  - 최대 : 1,000건
  - 기본값 : 500건

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/PaymentHistory?SDate={SDate}&EDate={EDate}' \
  --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: 결제내역`
  - productType `type: string` `length: 3` `description: 결제 내용`
    - `포인트`
    - `정액제`
    - `미수금`
  - productName `type: string` `length: 30` `description: 결제 상품명`
  - settleType `type: string` `length: 7` `description: 결제유형`
    - `무통장`
    - `신용카드`
    - `실시간계좌이체`
  - settlerName `type: string` `length: 100` `description: 담당자명`
  - settlerEmail `type: string` `length: 100` `description: 담당자 메일`
  - settleCost `type: string` `length: 18` `description: 결제금액`
  - settlePoint `type: string` `length: 18` `description: 충전포인트`
  - settleState `type: number` `length: 1` `description: 결제상태`
    - `1`: 대기
    - `2`: 승인
    - `3`: 실패
    - `4`: 취소
    - `5`: 취소
  - regDT `type: string` `length: 14` `description: 등록일시`
    - 형식 : yyyyMMddHHmmss
  - stateDT `type: string` `length: 14` `description: 상태일시`
    - 형식 : yyyyMMddHHmmss

**응답 예시**

```json
{
    "code": 1,
    "total": 1,
    "perPage": 100,
    "pageNum": 1,
    "pageCount": 1,
    "list": [
        {
            "productType": "포인트",
            "productName": "팝빌 포인트 충전",
            "settleType": "무통장",
            "settlerName": "담당자명",
            "settlerEmail": "test@test.com",
            "settleCost": "11000",
            "settlePoint": "10000",
            "settleState": 1,
            "regDT": "20251020092932",
            "stateDT": "20251020092932"
        }
    ],
    "message": "검색 완료"
}
```

## 8. GetPaymentURL - 연동회원 포인트 결제내역 팝업 URL

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

![연동회원 포인트 결제내역 팝업 URL 미리보기](https://developers.popbill.com/images/reference/point/getPaymentURL.png)

**연동회원 포인트 결제내역 팝업 URL을 반환합니다.**

- 권장 사이즈 : width = 1,200px (최소 800px) / height = 600px
- 반환되는 URL은 30초 동안만 사용이 가능합니다.
- 반환되는 URL에서만 유효한 세션을 포함하고 있습니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- TG `type: string` `length: -` `required: Y` `description: 고정값 : PAYMENT`

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/Member?TG=PAYMENT' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- url `type: string` `length: -` `description: 연동회원 포인트 결제내역 팝업 URL`

**응답 예시**

```json
{
    "url": "https://test.popbill.com/App/API?T=HUC5ZZQK4XZMN7KQFPJC7NMPHGKABA...47XLSGM2S7U6UORIQ="
}
```

## 9. GetUseHistory - 연동회원 포인트 사용내역 확인

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

- 연동회원의 포인트 사용내역을 확인합니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- SDate `type: string` `length: 8` `required: Y` `description: 검색 시작일자`
  - 형식 : yyyyMMdd
- EDate `type: string` `length: 8` `required: Y` `description: 검색 종료일자`
  - 형식 : yyyyMMdd
- 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`: 오름차순

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/UseHistory?SDate={SDate}&EDate={EDate}' \
  --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: 사용내역`
  - itemCode `type: number` `length: 3` `description: 서비스 코드`
    - `110`: 세금계산서
    - `111`: 홈택스수집(세금)
    - `121`: 거래명세서
    - `122`: 청구서
    - `123`: 견적서
    - `124`: 발주서
    - `125`: 입금표
    - `126`: 영수증
    - `140`: 현금영수증
    - `141`: 홈택스수집(현금)
    - `150`: 문자(SMS)
    - `151`: 문자(LMS)
    - `152`: 문자(MMS)
    - `153`: 알림톡
    - `156`: 브랜드 메시지(I)
    - `157`: 브랜드 메시지(N)
    - `158`: 브랜드 메시지(M)
    - `160`: 팩스(일반망)
    - `161`: 팩스(지능망)
    - `170`: 사업자등록상태조회
    - `171`: 기업정보조회
    - `180`: 계좌조회
    - `182`: 성명조회
    - `183`: 실명조회
  - txType `type: number` `length: 2` `description: 포인트 증감 유형`
    - `11`: (포인트 증가) 포인트 충전
    - `12`: (포인트 증가) 조정
    - `13`: (포인트 증가) 조정
    - `19`: (포인트 증가) 분배
    - `31`: (포인트 증가) 환불
    - `32`: (포인트 증가) 정액제 해지
    - `21`: (포인트 감소) 서비스 사용
    - `22`: (포인트 감소) 조정
    - `23`: (포인트 감소) 조정
    - `24`: (포인트 감소) 포인트 결제
    - `25`: (포인트 감소) 미수금 결제
    - `26`: (포인트 감소) 포인트 환불
    - `29`: (포인트 감소) 회수
    - `41`: (포인트 감소) 후불누적조정
  - txPoint `type: string` `length: 18` `description: 증감 포인트`
  - balance `type: string` `length: 18` `description: 잔여 포인트`
  - txDT `type: string` `length: 14` `description: 포인트 증감 일시`
    - 형식 : yyyyMMddHHmmss
  - userID `type: string` `length: 50` `description: 담당자 아이디`
  - userName `type: string` `length: 100` `description: 담당자명`

**응답 예시**

```json
{
    "code": 1,
    "total": 11,
    "perPage": 100,
    "pageNum": 1,
    "pageCount": 1,
    "list": [
        {
            "itemCode": 110,
            "txType": 21,
            "txPoint": "200",
            "balance": "84923",
            "txDT": "20251016151124",
            "serviceUserID": "025070000083",
            "userID": "testkorea",
            "userName": "담당자명"
        }
    ],
    "message": "검색 완료"
}
```

## 10. GetUseHistoryURL - 연동회원 포인트 사용내역 팝업 URL

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

![연동회원 포인트 사용내역 팝업 URL 미리보기](https://developers.popbill.com/images/reference/point/getUseHistoryURL.png)

**연동회원 포인트 사용내역 팝업 URL을 반환합니다.**

- 권장 사이즈 : width = 1,200px (최소 800px) / height = 600px
- 반환되는 URL은 30초 동안만 사용이 가능합니다.
- 반환되는 URL에서만 유효한 세션을 포함하고 있습니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- TG `type: string` `length: -` `required: Y` `description: 고정값 : USEHISTORY`

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/Member?TG=USEHISTORY' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- url `type: string` `length: -` `description: 연동회원 포인트 사용내역 팝업 URL`

**응답 예시**

```json
{
    "url": "https://test.popbill.com/App/API?T=HUC5ZZQK4XZMN7KQFPJC7NMPHGKABA...47XLSGM2S7U6UORIQ="
}
```

## 11. Refund - 연동회원 포인트 환불신청

| HTTP Method | 테스트(Sandbox)                                | 운영(Production)                         |
| ----------- | ------------------------------------------- | -------------------------------------- |
| POST        | <https://popbill-test.linkhub.co.kr/Refund> | <https://popbill.linkhub.co.kr/Refund> |

- 연동회원 포인트를 환불 신청합니다.

### Request

**요청 헤더**

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

**요청 본문**

- contactname `type: string` `length: 100` `required: Y` `description: 담당자명`
- tel `type: string` `length: 20` `required: Y` `description: 담당자 연락처`
- requestpoint `type: string` `length: 18` `required: Y` `description: 환불 신청 포인트`
- accountbank `type: string` `length: 10` `required: Y` `description: 은행명`
- accountnum `type: string` `length: 50` `required: Y` `description: 계좌번호`
- accountname `type: string` `length: 70` `required: Y` `description: 예금주명`
- reason `type: string` `length: 200` `required: N` `description: 환불사유`

**요청 예시**

```bash
curl --request POST \
  --url 'https://{domain}/Refund' \
  --header 'Authorization: Bearer {token}' \
  --header 'Content-Type: application/json' \
  --data '{
    "contactname": "담당자명",
    "tel": "01012345678",
    "requestpoint": "1",
    "accountbank": "은행명",
    "accountnum": "계좌번호",
    "accountname": "예금주명",
    "reason": "환불사유"
  }'
```

### Response

**응답 본문**

- code `type: number` `length: -` `description: API 처리에 대한 응답코드`
  - `1`: 성공
- message `type: string` `length: -` `description: API 처리에 대한 응답메시지`
- refundCode `type: string` `length: 18` `description: 환불코드`

**응답 예시**

```json
{
    "code": 1,
    "message": "환불 신청완료",
    "refundCode": "025100000001"
}
```

## 12. GetRefundHistory - 연동회원 포인트 환불내역 확인

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

- 연동회원의 포인트 환불신청내역을 확인합니다.

### Request

**요청 헤더**

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

**Query 파라미터**

- Page `type: number` `length: -` `required: N` `description: 목록 페이지번호`
  - 기본값 : 1
- PerPage `type: number` `length: -` `required: N` `description: 페이지당 표시할 목록 건수`
  - 최대 : 1,000건
  - 기본값 : 500건

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/RefundHistory' \
  --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: 결제내역`
  - reqDT `type: string` `length: 14` `description: 신청일시`
    - 형식 : yyyyMMddHHmmss
  - requestPoint `type: string` `length: 18` `description: 환불 신청포인트`
  - accountBank `type: string` `length: 10` `description: 환불계좌 은행명`
  - accountNum `type: string` `length: 50` `description: 환불계좌번호`
  - accountName `type: string` `length: 70` `description: 환불계좌 예금주명`
  - state `type: number` `length: 1` `description: 상태`
    - `1`: 접수대기
    - `2`: 심사중
    - `3`: 입금대기
    - `4`: 환불완료
    - `5`: 취소
  - reason `type: string` `length: 200` `description: 환불사유`

**응답 예시**

```json
{
    "code": 1,
    "total": 2,
    "perPage": 100,
    "pageNum": 1,
    "pageCount": 1,
    "list": [
        {
            "reqDT": "20251020102118",
            "requestPoint": "1",
            "accountBank": "국민",
            "accountNum": "123123123-123",
            "accountName": "예금주명",
            "state": 1,
            "reason": "환불사유"
        }
    ],
    "message": "검색 완료"
}
```

## 13. GetPartnerBalance - 파트너 잔여포인트 확인

| HTTP Method | 테스트(Sandbox)                                           | 운영(Production)                                    |
| ----------- | ------------------------------------------------------ | ------------------------------------------------- |
| GET         | <https://auth.linkhub.co.kr/POPBILL_TEST/PartnerPoint> | <https://auth.linkhub.co.kr/POPBILL/PartnerPoint> |

- 파트너의 잔여포인트를 확인합니다.

### Request

**요청 헤더**

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

**요청 예시**

```bash
curl --request GET \
  --url 'https://auth.linkhub.co.kr/{serviceID}/PartnerPoint' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- remainPoint `type: string` `length: -` `description: 파트너 잔여포인트`
- defUsedPoint `type: string` `length: -` `description: 후불사용 포인트`

**응답 예시**

```json
{
    "remainPoint": "32382",
    "defUsedPoint": "0"
}
```

## 14. GetPartnerURL - 파트너 포인트 충전 팝업 URL

| HTTP Method | 테스트(Sandbox)                                  | 운영(Production)                           |
| ----------- | --------------------------------------------- | ---------------------------------------- |
| GET         | <https://auth.linkhub.co.kr/POPBILL_TEST/URL> | <https://auth.linkhub.co.kr/POPBILL/URL> |

![파트너 포인트 충전 팝업 URL 미리보기](https://developers.popbill.com/images/reference/point/getPartnerURL.png)

**파트너 포인트를 충전하는 팝업 URL을 반환합니다.**

- 권장 사이즈 : width = 800px / height = 700px
- 반환되는 URL은 30초 동안만 사용이 가능합니다.
- 반환되는 URL에서만 유효한 세션을 포함하고 있습니다.

### Request

**요청 헤더**

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

**요청 예시**

```bash
curl --request GET \
  --url 'https://auth.linkhub.co.kr/{serviceID}/URL?TG=CHRG' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- url `type: string` `length: -` `description: 연동회원 포인트 충전 팝업 URL`

**응답 예시**

```json
{
    "url": "https://test.popbill.com/App/API?T=G6IMAVA7FZXLUKPKVFXDJRYU5LSPRSGIWF...Q3RQDO6P6KLW6==="
}
```

## 15. GetRefundInfo - 환불 신청 상태 조회

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

- 포인트 환불에 대한 상세정보 1건을 확인합니다.

### Request

**요청 헤더**

- Authorization `required: Y` `description: 인증 토큰`
  - [\[참고\] 인증 및 헤더 설정](https://developers.popbill.com/api-reference/accountcheck/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 파라미터**

- refundCode `type: string` `length: 18` `required: Y` `description: 환불코드`

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/Refund/{refundCode}' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- reqDT `type: string` `length: 14` `description: 신청일시`
  - 형식 : yyyyMMddHHmmss
- requestPoint `type: string` `length: 18` `description: 환불 신청포인트`
- accountBank `type: string` `length: 10` `description: 환불계좌 은행명`
- accountNum `type: string` `length: 50` `description: 환불계좌번호`
- accountName `type: string` `length: 70` `description: 환불계좌 예금주명`
- state `type: number` `length: 1` `description: 상태`
  - `1`: 접수대기
  - `2`: 심사중
  - `3`: 입금대기
  - `4`: 환불완료
  - `5`: 취소
- reason `type: string` `length: 200` `description: 환불사유`

**응답 예시**

```json
{
    "reqDT": "20251020103731",
    "requestPoint": "1",
    "accountBank": "국민",
    "accountNum": "123123123-123",
    "accountName": "예금주명",
    "state": 1,
    "reason": "환불사유"
}
```

## 16. GetRefundableBalance - 환불 가능 포인트 조회

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

- 환불 가능한 포인트를 확인합니다. (보너스 포인트는 환불 가능 포인트에서 제외됩니다.)

### Request

**요청 헤더**

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

**요청 예시**

```bash
curl --request GET \
  --url 'https://{domain}/RefundPoint' \
  --header 'Authorization: Bearer {token}'
```

### Response

**응답 본문**

- refundableBalance `type: string` `length: -` `description: 환불 가능 포인트`

**응답 예시**

```json
{
    "refundableBalance": "11751"
}
```
