현금영수증 조회 API
현금영수증 조회 API는 발급된 현금영수증의 등록 상태와 발급·취소 이력을 조회하는 API입니다.
현금영수증 발급 응답으로 받은 cash_no를 tno에 설정하고,
가맹점 개인키로 생성한 kcp_sign_data와 서비스 인증서를 함께 전송합니다.
조회 결과는 res_cash_info 배열로 리턴되며, 발급 후 취소된 거래는 발급과 취소 정보가 각각 포함될 수 있습니다.
요약
HTTP Method
POST 방식으로 요청합니다.
Content-Type
application/json; charset=utf-8 형식으로 요청합니다.
통신 보안
TLS 1.2 이상 환경에서 통신합니다.
테스트 URL
https://stg-spl.kcp.co.kr/std/inquery
운영 URL
https://spl.kcp.co.kr/std/inquery
정상 응답 기준
res_cd 값이 0000이면 정상 처리입니다.
요청 정보
현금영수증 조회는 현금영수증 거래번호로 요청합니다. 발급 응답으로 받은 cash_no 값을 tno에 설정하세요.
조회 요청에는 서명데이터가 필요하며, 가맹점 개인키로 생성한 kcp_sign_data를 함께 전송합니다.
Request Body 예시
{
"site_cd": "T0000",
"kcp_cert_info": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----",
"kcp_sign_data": "OehQsMb7S8KTCrp6Bi6fEVft...Y7ZX1BI3A==",
"pay_type": "CASH",
"tno": "25834156556924"
} 요청 파라미터
파트너관리자 인증센터에서 다운로드한 PEM 파일 내용을 직렬화하여 사용합니다.ex) kcp_cert_info: -----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----
site_cd + "^" + tno + "^" + pay_type 규칙으로 문자열을 생성한 뒤, 개인키를 사용하여 SHA256withRSA 방식으로 서명합니다.ex) kcp_sign_data: OehQsMb7S8KTCrp6Bi6fEVft...Y7ZX1BI3A==
응답 정보
현금영수증의 발급·취소 상태가 res_cash_info 배열로 리턴됩니다.
발급 후 취소된 거래는 발급 건과 취소 건이 각각 배열 항목으로 포함될 수 있으므로, 각 항목의 tx_type과 reg_stat을 기준으로 처리하세요.
조회 실패 시 res_cd와 res_msg 외의 조회 응답 데이터는 리턴되지 않습니다.
Response Body 예시
{
"res_cd": "0000",
"res_msg": "정상처리",
"res_en_msg": "processing completed",
"res_cash_info": [
{
"cash_no": "25834156556924",
"receipt_no": "591482610",
"trade_time": "20251231115951",
"proc_time": "20251231143944",
"reg_stat": "NTRW",
"reg_desc": "KCP 등록 완료",
"tx_type": "A"
},
{
"cash_no": "25834156556924",
"receipt_no": "591320760",
"trade_time": "20251231115951",
"proc_time": "20251231144001",
"reg_stat": "NTRW",
"reg_desc": "KCP 등록 완료",
"tx_type": "P"
}
]
} 응답 파라미터
구현 참고사항
조회 요청 구현 포인트 보기
현금영수증 조회 서명 대상 문자열은 site_cd + "^" + tno + "^" + pay_type 순서로 구성합니다.
// 현금영수증 조회 서명데이터 생성 String targetData = siteCd + "^" + tno + "^" + payType; Signature signature = Signature.getInstance("SHA256WithRSA"); signature.initSign(privateKey); signature.update(targetData.getBytes(StandardCharsets.UTF_8)); String kcpSignData = Base64.getEncoder().encodeToString(signature.sign());
kcp_cert_info와 개인키는 웹이나 클라이언트에 노출하지 말고 가맹점 서버의 안전한 저장소에서 관리하세요.
res_cash_info는 배열이므로 단일 객체로 가정하지 말고 전체 항목을 순회하여 발급·취소·부분취소 상태를 처리하세요.
현금영수증 등록 상태 코드
| 상태 코드 | 설명 |
|---|---|
| NTRW | KCP 등록 완료 |
| NTNW | 국세청 등록 대기 |
| NTNC | 국세청 등록 완료 |
| NTNE | 국세청 등록 오류 |
| NTNF | 국세청 거절 |