전담지원 신청
API Reference > 현금영수증 > 발급

현금영수증 발급 API

현금영수증 발급 API는 계좌이체, 가상계좌 등의 현금 거래 정보를 NHN KCP에 등록하여
소득공제용 또는 지출증빙용 현금영수증을 발급하는 API입니다.
현금영수증은 원 거래일로부터 6일 이내에 발급해야 하며, 파트너관리자에서 현금영수증 설정을 발급 상태로 적용할 경우,
API로 중복 발급하지 않도록 주의하세요.

요약

HTTP Method

POST 방식으로 요청합니다.

Content-Type

application/json; charset=utf-8 형식으로 요청합니다.

통신 보안

TLS 1.2 이상 환경에서 통신합니다.

테스트 URL

https://stg-spl.kcp.co.kr/gw/hub/v1/payment

운영 URL

https://spl.kcp.co.kr/gw/hub/v1/payment

정상 응답 기준

res_cd 값이 0000이면 정상 처리입니다.

요청 정보

가맹점의 사이트에서 하위업체(입점몰)의 현금결제가 일어나는 경우에도 현금영수증 등록이 가능합니다.
사업자 구분(corp_type) 값이 1인 경우 입점몰 판매로 구분되므로, 입점몰 정보 파라미터를 설정해 등록해야 합니다.
전달한 입점몰 정보는 현금영수증 전표에도 표시되어 고객이 해당 정보를 확인할 수 있습니다.

직접 판매 Request Body 예시

{
	"site_cd": "T0000",
	"kcp_cert_info": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----",
	"pay_method": "CASH",
	"user_type": "PGNW",
	"trad_time": "20251231101030",
	"tr_code": "0",
	"id_info": "01012345678",
	"amt_tot": "1000",
	"amt_sup": "909",
	"amt_tax": "91",
	"ordr_idxx": "TEST123456789",
	"good_name": "상품명",
	"buyr_name": "홍길동",
	"buyr_mail": "test@your-shop.example.com",
	"corp_type": "0"
}

입점몰 판매 Request Body 예시

{
	"site_cd": "T0000",
	"kcp_cert_info": "-----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----",
	"pay_method": "CASH",
	"user_type": "PGNW",
	"trad_time": "20251231101030",
	"tr_code": "0",
	"id_info": "01012345678",
	"amt_tot": "1000",
	"amt_sup": "909",
	"amt_tax": "91",
	"ordr_idxx": "TEST123456789",
	"good_name": "상품명",
	"buyr_name": "홍길동",
	"buyr_mail": "test@your-shop.example.com",
	"corp_type": "1",
	"corp_tax_type": "TG01",
	"corp_tax_no": "1234567890",
	"corp_sell_tax_no": "1234567890",
	"corp_nm": "NHN KCP",
	"corp_owner_nm": "홍길동",
	"corp_addr": "서울시 구로구 디지털로26길 72",
	"corp_telno": "02-0000-0000",
	"corp_site_url": "www.kcp.co.kr"
}

요청 파라미터

site_cd필수 string5
길이 5자리로 영문대문자 또는 영문대문자+숫자로 구성됩니다. 모든 서비스에 사용합니다.ex) site_cd: T0000
kcp_cert_info필수 string가변
NHN KCP에서 발급하는 서비스 인증서입니다. 파트너관리자 인증센터에서 다운로드한 PEM 파일 내용을 직렬화하여 사용합니다.ex) kcp_cert_info: -----BEGIN CERTIFICATE-----...-----END CERTIFICATE-----
pay_method필수 string4
결제수단 코드입니다. 현금영수증 발급에서는 CASH 고정값을 사용합니다.ex) pay_method: CASH
user_type필수 string4
가맹점 유형입니다. PGNW 고정값을 사용합니다.ex) user_type: PGNW
trad_time필수 string14
현금영수증의 원 거래 일시입니다. YYYYMMDDHHMMSS 형식으로 입력하며, 거래일로부터 6일 이내에 발급을 요청해야 합니다.ex) trad_time: 20251231101030
tr_code필수 string1
현금영수증 발행 용도입니다.
소득공제용(개인)은 0, 지출증빙용(기업)은 1을 사용합니다.ex) tr_code: 0
id_info필수 string19
현금영수증 식별번호입니다. 소득공제용은 휴대폰번호, 지출증빙용은 사업자번호를 입력합니다. 두 용도 모두 현금영수증 카드번호를 입력할 수 있습니다.ex) id_info: 01012345678
amt_tot필수 number12
총 거래금액입니다. 공급가액과 부가가치세의 합계와 일치해야 합니다.ex) amt_tot: 1000
amt_sup필수 number12
공급가액입니다. 일반 과세 거래에서는 총 거래금액을 1.1로 나눈 금액을 기준으로 산정합니다.ex) amt_sup: 909
amt_tax필수 number12
부가가치세입니다. 총 거래금액에서 공급가액을 제외한 금액을 입력합니다.ex) amt_tax: 91
ordr_idxx필수 string50
가맹점에서 관리하는 주문번호입니다. 중복되지 않는 유니크한 값으로 사용하고, 가맹점에서 반드시 저장합니다.ex) ordr_idxx: TEST123456789
good_name string100
상품명입니다.ex) good_name: 상품명
buyr_name string40
주문자 이름입니다. 현금영수증 전표 확인 시 사용될 수 있으므로 정확한 값을 입력합니다.ex) buyr_name: 홍길동
buyr_mail string100
주문자 이메일 주소입니다.ex) buyr_mail: test@your-shop.example.com
corp_type필수 string1
사업장 구분입니다. 직접 판매는 0, 입점몰 판매는 1을 사용합니다.
입점몰 판매 시 아래 입점몰 정보 파라미터를 함께 전송합니다.ex) corp_type: 0
corp_tax_type string4
입점몰 판매 상품의 과세·면세 구분입니다. 과세는 TG01, 면세는 TG02를 사용합니다.ex) corp_tax_type: TG01
corp_tax_no string10
NHN KCP와 계약한 가맹점의 사업자번호입니다.ex) corp_tax_no: 1234567890
corp_sell_tax_no string10
입점몰의 사업자번호입니다.ex) corp_sell_tax_no: 1234567890
corp_nm string40
입점몰의 상호입니다.ex) corp_nm: NHN KCP
corp_owner_nm string40
입점몰의 대표자 이름입니다.ex) corp_owner_nm: 홍길동
corp_addr string200
입점몰 사업장의 주소입니다.ex) corp_addr: 서울시 구로구 디지털로26길 72
corp_telno string20
입점몰 사업장의 연락처입니다.ex) corp_telno: 02-0000-0000
corp_site_url string가변
입점몰 사이트의 주소입니다.ex) corp_site_url: www.kcp.co.kr

응답 정보

발급 응답의 cash_no와 receipt_no는 현금영수증 조회·취소 및 가맹점 거래 관리에 사용하므로 저장하세요.
발급 실패 시 res_cd와 res_msg 외의 응답 데이터는 리턴되지 않습니다.

Response Body 예시

{
	"res_cd": "0000",
	"res_msg": "정상처리",
	"cash_no": "24834156556924",
	"receipt_no": "591007373",
	"app_time": "20251231114501",
	"reg_stat": "NTRW",
	"reg_desc": "KCP 등록 완료"
}

응답 파라미터

res_cd string4
응답 코드입니다. 정상 처리 시 0000을 리턴합니다.ex) res_cd: 0000
res_msg string100
결과 메시지입니다. 현금영수증 발급이 정상 처리되면 정상처리가 리턴됩니다.ex) res_msg: 정상처리
cash_no string14
발급된 현금영수증 거래번호입니다. 조회와 취소 등 후속 처리에 사용하므로 반드시 저장합니다.ex) cash_no: 24834156556924
receipt_no string9
발급된 현금영수증 승인번호입니다.ex) receipt_no: 591007373
app_time string14
현금영수증 발급 요청이 처리된 시각입니다. YYYYMMDDHHMMSS 형식으로 리턴됩니다.ex) app_time: 20251231114501
reg_stat string4
현금영수증 등록 상태 코드입니다. 등록 상태 코드 표를 참고합니다.ex) reg_stat: NTRW
reg_desc string20
현금영수증 등록 상태에 대한 설명입니다.ex) reg_desc: KCP 등록 완료

구현 참고사항

발급 요청 구현 포인트 보기

서비스 인증서는 파트너관리자 인증센터에서 내려받은 PEM 파일의 내용을 줄바꿈 없이 직렬화하여 kcp_cert_info에 입력합니다.

// 서비스 인증서 직렬화 예시
String kcpCertInfo = Files.readAllLines(certPath)
    .stream()
    .map(String::trim)
    .collect(Collectors.joining());

JSONObject body = new JSONObject();
body.put("site_cd", "T0000");
body.put("kcp_cert_info", kcpCertInfo);
body.put("pay_method", "CASH");
body.put("user_type", "PGNW");
body.put("trad_time", "20251231101030");
body.put("tr_code", "0");
body.put("id_info", "01012345678");
body.put("amt_tot", "1000");
body.put("amt_sup", "909");
body.put("amt_tax", "91");

총 거래금액은 공급가액과 부가가치세의 합계와 일치해야 합니다. 반올림 기준과 면세 거래 처리는 가맹점의 세무 기준을 확인해 적용하세요.

서비스 인증서가 포함된 요청 데이터와 서버 통신 로그는 웹이나 클라이언트에 노출하지 말고 가맹점 서버 내부에서만 관리하세요.

현금영수증 등록 상태 코드

상태 코드설명
NTRWKCP 등록 완료
NTNW국세청 등록 대기
NTNC국세청 등록 완료
NTNE국세청 등록 오류
NTNF국세청 거절