CookiePay API 매뉴얼

현금영수증 API

주의사항

  1. 현금영수증 API는 먼저 TOKEN 발행 API를 통해 TOKEN을 발급 받은 후, 발행된 TOKEN을 가지고 API와 통신하게 되어 있습니다.
    • TOKEN 요청 전문 파라미터에 사용하는 pay2_id, pay2_key 값은 인증결제의 '연동ID', '연동 시크릿키' 값을 사용하시기 바랍니다.
  2. 쿠키페이는 현금영수증을 발급을 위한 "사업자번호 연동키값"(현금영수증 연동키값)을 채번합니다.(최초 1회에 한함)
    • 1개의 사업자번호을 사용하실 경우에는 1개의 사업자번호 키값(현금영수증 발급 연동키값)을 채번합니다.
    • 단 만약 여러사업자를 사용하실 경우에는 각각의 사업자번호별로 연동키값을 채번해야 합니다.(사업자별 각각 최초 1회에 한함)

필독

  • 쿠키페이의 현금영수증 발급 연동 제휴사는 (주)링크허브/팝빌입니다.
  • 쿠키페이는 팝빌과의 현금영수증 발급연동을 위해, 현금영수증 이용 사업자의 기본정보를 팝빌에 제공합니다.(사업자별 최초 1회에 한함)
  • 그러므로 현금영수증 연동고객사는 팝빌,쿠키페이에 사업자번호 및 기본정보를 제공한다는 고객 약관동의 절차를 밝아주시기 바랍니다.

현금영수증 발행

기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
URL
{요청도메인}/Cashbill/regist_issue [POST] 
TOKEN 발행 URL
{요청도메인}/payAuth/token [POST] 
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여

샘플예제

PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{TOKEN 발행 URL}";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "{요청도메인}/Cashbill/regist_issue";

$cashbill_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'MGTKEY' => '문서번호',
    'CONFIRMNUM' => '국세청 승인번호',
    'ORGCONFIRMNUM' => '원본 현금영수증 국세청 승인번호',
    'ORGTRADEDATE' => '원본 현금영수증 거래일자',
    'TRADEDATE' => '거래일자',
    'TRADEDT' => '거래일시',
    'TRADETYPE' => '문서형태',
    'TRADEUSAGE' => '거래구분',
    'TRADEOPT' => '거래유형',
    'TAXATIONTYPE' => '과세여부',
    'TOTALAMOUNT' => '거래금액',
    'SUPPLYCOST' => '공급가액',
    'TAX' => '부가세',
    'SERVICEFEE' => '봉사료',
    'FRANCHISECORPNUM' => '가맹점 사업자번호',
    'FRANCHISETAXREGID' => '가맹점 종사업장 식별번호',
    'FRANCHISECORPNAME' => '가맹점 상호',
    'FRANCHISECEONAME' => '가맹점 대표자 성명',
    'FRANCHISEADDR' => '가맹점 주소',
    'FRANCHISETEL' => '가맹점 전화번호',
    'IDENTITYNUM' => '식별번호',
    'CUSTOMERNAME' => '구매자(고객) 성명',
    'ITEMNAME' => '주문 상품명',
    'ORDERNUMBER' => '주문번호',
    'EMAIL' => '구매자(고객) 이메일',
    'HP' => '구매자(고객) 휴대폰',
    'SMSSENDYN' => 'SMS 전송여부',
    'FAXSENDYN' => 'FAX 전송여부',
    'CANCELTYPE' => '취소사유',
);
$request_data_array = array(
    'CORPNUM' => '사업자번호',
    'CASHBILL' => $cashbill_data_array,
    'MEMO' => '현금영수증 상태 이력을 관리하기 위한 메모',
    'EMAILSUBJECT' => '현금영수증 발행 안내메일 제목',
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
CORPNUM 10 사업자번호 필수 사업자번호 (하이픈 '-' 제외 10자리)
CASHBILL - 객체정보 필수 현금영수증 객체정보 (아래의 표를 참고하세요)
MEMO 200 메모 선택 현금영수증 상태 이력을 관리하기 위한 메모
EMAILSUBJECT 300 안내메일 제목 선택 현금영수증 발행 안내메일 제목
※ 미입력시 팝빌에서 설정한 기본값 사용
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다
현금영수증 객체정보
항목명 길이 내용 구분 비고
MGTKEY 24 문서번호 필수 문서번호
└ 현금영수증 관리를 위해 파트너가 할당하는 식별번호
└ 영문 대소문자, 숫자, 특수문자('-','_')만 이용 가능
CONFIRMNUM 9 국세청 승인번호 X 국세청 승인번호
└ 현금영수증 발행 시점에 자동으로 부여
ORGCONFIRMNUM 9 원본 현금영수증 국세청 승인번호 조건부 원본 현금영수증 국세청 승인번호
└ 취소 현금영수증 작성시 필수
ORGTRADEDATE 9 원본 현금영수증 거래일자 조건부 원본 현금영수증 거래일자
└ 취소 현금영수증 작성시 필수
TRADEDATE 8 거래일자 X 현금영수증 발행 시점에 자동으로 부여
└ {tradeDT}의 yyyyMMdd
※ 거래일자는 입력 할 수 없음
TRADEDT 14 거래일시 선택 거래일시 (형식 : yyyyMMddHHmmss)
└ 전날부터 당일까지 입력가능
※ 미입력시 기본값 발행일시 처리
TRADETYPE 4 문서형태 필수 문서형태 : "승인거래" / "취소거래" 중 입력
└ "승인거래" 현금영수증은 [regist_issue - 즉시 발행]함수 사용하여 발행
└ "취소거래" 현금영수증은 [revoke_regist_issue - 취소 현금영수증 즉시 발행]함수 사용하여 발행
TRADEUSAGE 5 거래구분 필수 거래구분 : "소득공제용" / "지출증빙용" 중 택 1
TRADEOPT 4 거래유형 선택 거래유형 : "일반" / "도서공연" / "대중교통" 중 택 1
└ 미입력시 기본값 "일반" 처리
TAXATIONTYPE 3 과세여부 필수 "과세" / "비과세" 중 택 1
TOTALAMOUNT 9 거래금액 필수 거래금액
└ 양수만 입력
SUPPLYCOST 9 공급가액 필수 공급가액
└ 양수만 입력
TAX 9 부가세 필수 부가세
└양수만 입력
SERVICEFEE 9 봉사료 필수 봉사료
└ 양수만 입력
FRANCHISECORPNUM 10 가맹점 사업자번호 필수 가맹점 사업자번호 (하이픈 '-' 제외 10자리)
FRANCHISETAXREGID 4 가맹점 종사업장 식별번호 필수 가맹점 종사업장 식별번호
└4자리 숫자값
FRANCHISECORPNAME 200 가맹점 상호 필수 가맹점 상호
FRANCHISECEONAME 100 가맹점 대표자 성명 필수 가맹점 대표자 성명
FRANCHISEADDR 400 가맹점 주소 필수 가맹점 주소
FRANCHISETEL 20 가맹점 전화번호 필수 가맹점 전화번호
IDENTITYNUM 19 식별번호 필수 식별번호
└ {TRADEUSAGE} 값이 "소득공제용" 인 경우
└ 주민등록/휴대폰/카드번호/자진발급용 번호(010-000-1234) 입력
{TRADEUSAGE} 값이 "지출증빙용" 인 경우
└ 사업자번호/휴대폰/카드번호 입력
※ 주민등록번호 13자리, 휴대폰번호 10~11자리, 카드번호 13~19자리, 사업자번호 10자리 입력 가능
CUSTOMERNAME 70 구매자(고객) 성명 선택 구매자(고객) 성명
ITEMNAME 70 주문 상품명 선택 주문 상품명
ORDERNUMBER 200 주문번호 선택 주문번호
EMAIL 100 구매자(고객) 이메일 선택 구매자(고객) 이메일
HP 20 구매자(고객) 휴대폰 선택 구매자(고객) 휴대폰
└ {SMSSENDYN} 값이 true 인 경우 이 값으로 안내 문자 전송
SMSSENDYN - SMS 전송여부 선택 SMS 전송여부 : true / false 중 택1
└ true : 전송
└ false : 미전송
※ 미입력시 기본값 false처리
FAXSENDYN - FAX 전송여부 선택 FAX 전송여부 : true / false 중 택1
└ true : 전송
└ false : 미전송
※ 미입력시 기본값 false처리
CANCELTYPE 1 취소사유 선택 취소사유 : null / 1 / 2 / 3 중 택 1
└ null : 일반 현금영수증
└ 1 : 거래취소
└ 2 : 오류발급취소
└ 3 : 기타
※ 취소 현금영수증 발행시 미입력하면 기본값 1 처리
응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE - 결과 코드 필수(JSON) 결과 코드 (성공시 "0000", 그외 에러)
RESULTMSG - 결과 메시지 필수(JSON) 결과 메시지 ("성공" 또는 오류 메세지)
CODE 50 응답코드 필수(JSON) API 처리에 대한 응답코드
MESSAGE 10 응답메시지 필수(JSON) API 처리에 대한 응답메시지
CONFIRMNUM 50 국세청 승인번호 필수(JSON) 국세청 승인번호
└ 현금영수증 발행 시점에 자동으로 부여
TRADEDATE 20 거래일시 필수(JSON) 거래일자 (형식 : yyyyMMdd)
└ 현금영수증 발행 시점에 자동으로 부여
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택

현금영수증 전체 취소

기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
URL
{요청도메인}/Cashbill/revoke_regist_issue [POST] 
TOKEN 발행 URL
{요청도메인}/payAuth/token [POST] 
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여

샘플예제

PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{TOKEN 발행 URL}";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "{요청도메인}/Cashbill/revoke_regist_issue";

$request_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'CORPNUM' => '사업자번호',
    'MGTKEY' => '파트너가 할당한 문서번호',
    'ORGCONFIRMNUM' => '원본 현금영수증의 국세청 승인번호',
    'ORGTRADEDATE' => '원본 현금영수증의 거래일자',
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
CORPNUM 10 사업자번호 필수 사업자번호 (하이픈 '-' 제외 10자리)
MGTKEY - 파트너가 할당한 문서번호 필수 파트너가 할당한 문서번호
※ 영문, 숫자, 하이픈('-')을 이용하여 24자리 이하의 고유한 값 할당
ORGCONFIRMNUM 200 원본 현금영수증의 국세청 승인번호 필수 원본 현금영수증의 국세청 승인번호
└ CashbillInfo의 변수 'CONFIRMNUM'를 통해 내용 확인 가능
ORGTRADEDATE 50 원본 현금영수증의 거래일자 필수 원본 현금영수증의 거래일자 (형식 : yyyyMMdd)
└ CashbillInfo의 변수 'TRADEDATE'를 통해 내용 확인 가능
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다
응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE - 결과 코드 필수(JSON) 결과 코드 (성공시 "0000", 그외 에러)
RESULTMSG - 결과 메시지 필수(JSON) 결과 메시지 ("성공" 또는 오류 메세지)
CODE 50 응답코드 필수(JSON) API 처리에 대한 응답코드
MESSAGE 10 응답메시지 필수(JSON) API 처리에 대한 응답메시지
CONFIRMNUM 50 국세청 승인번호 필수(JSON) 국세청 승인번호
└ 현금영수증 발행 시점에 자동으로 부여
TRADEDATE 20 거래일자 필수(JSON) 거래일자 (형식 : yyyyMMdd)
└ 현금영수증 발행 시점에 자동으로 부여
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택

현금영수증 부분 취소

기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
URL
{요청도메인}/Cashbill/revoke_regist_issue_part [POST] 
TOKEN 발행 URL
{요청도메인}/payAuth/token [POST] 
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여

샘플예제

PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{TOKEN 발행 URL}";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "{요청도메인}/Cashbill/revoke_regist_issue_part";

$request_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'CORPNUM' => '사업자번호',
    'MGTKEY' => '파트너가 할당한 문서번호',
    'ORGCONFIRMNUM' => '원본 현금영수증의 국세청 승인번호',
    'ORGTRADEDATE' => '원본 현금영수증의 거래일자',
    'SMSSENDYN' => '알림문자 전송여부',
    'MEMO' => '메모',
    'ISPARTCANCEL' => '현금영수증 취소유형',
    'CANCELTYPE' => '현금영수증 취소사유',
    'SUPPLYCOST' => '공급가액',
    'TAX' => '부가세',
    'SERVICEFEE' => '봉사료',
    'TOTALAMOUNT' => '거래금액',
    'EMAILSUBJECT' => '현금영수증 발행 안내메일 제목',
    'TRADEDT' => '거래일시',
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
CORPNUM 10 사업자번호 필수 사업자번호 (하이픈 '-' 제외 10자리)
MGTKEY - 파트너가 할당한 문서번호 필수 파트너가 할당한 문서번호
※ 영문, 숫자, 하이픈('-')을 이용하여 24자리 이하의 고유한 값 할당
ORGCONFIRMNUM 200 원본 현금영수증의 국세청 승인번호 필수 원본 현금영수증의 국세청 승인번호
└ CashbillInfo의 변수 'CONFIRMNUM'를 통해 내용 확인 가능
ORGTRADEDATE 50 원본 현금영수증의 거래일자 필수 원본 현금영수증의 거래일자 (형식 : yyyyMMdd)
└ CashbillInfo의 변수 'TRADEDATE'를 통해 내용 확인 가능
SMSSENDYN - 알림문자 전송여부 선택 현금영수증 발행시 알림문자 전송여부 : true / false 중 택 1
└ true : 전송
└ false : 미전송
└ 원본 현금영수증의 구매자(고객)의 휴대폰번호 문자 전송
MEMO 200 메모 선택 현금영수증 상태 이력을 관리하기 위한 메모
CANCELTYPE 1 현금영수증 취소사유 선택 현금영수증 취소사유 : 1 / 2 / 3 중 택 1
└ 1 : 거래취소
└ 2 : 오류발급취소
└ 3 : 기타
※ 미입력시 기본값 1 처리
SUPPLYCOST 9 공급가액 필수 취소할 공급가액
TAX 9 부가세 필수 취소할 부가세
SERVICEFEE 9 봉사료 필수 취소할 봉사료
TOTALAMOUNT 9 거래금액 필수 취소할 거래금액
EMAILSUBJECT 300 현금영수증 발행 안내메일 제목 선택 현금영수증 발행 안내메일 제목
※ 미입력시 팝빌에서 설정한 기본값 사용
TRADEDT 14 거래일시 선택 거래일시 (형식 : yyyyMMddHHmmss)
└ 전날부터 당일까지 입력가능
※ 미입력시 기본값 발행일시 처리
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다
응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE - 결과 코드 필수(JSON) 결과 코드 (성공시 "0000", 그외 에러)
RESULTMSG - 결과 메시지 필수(JSON) 결과 메시지 ("성공" 또는 오류 메세지)
CODE 50 응답코드 필수(JSON) API 처리에 대한 응답코드
MESSAGE 10 응답메시지 필수(JSON) API 처리에 대한 응답메시지
CONFIRMNUM 50 국세청 승인번호 필수(JSON) 국세청 승인번호
└ 현금영수증 발행 시점에 자동으로 부여
TRADEDATE 20 거래일자 필수(JSON) 거래일자 (형식 : yyyyMMdd)
└ 현금영수증 발행 시점에 자동으로 부여
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택

현금영수증 정보확인

기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
URL
{요청도메인}/Cashbill/get_info [POST] 
TOKEN 발행 URL
{요청도메인}/payAuth/token [POST] 
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여

샘플예제

PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{TOKEN 발행 URL}";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "{요청도메인}/Cashbill/get_info";

$request_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'CORPNUM' => '사업자번호 (하이픈 '-' 제외 10자리)',
    'MGTKEY' => '파트너가 할당한 문서번호',
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
CORPNUM 10 사업자번호 필수 사업자번호 (하이픈 '-' 제외 10자리)
MGTKEY 23 파트너가 할당한 문서번호 필수 파트너가 할당한 문서번호
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다
응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE - 결과 코드 필수(JSON) 결과 코드 (성공시 "0000", 그외 에러)
RESULTMSG - 결과 메시지 필수(JSON) 결과 메시지 ("성공" 또는 오류 메세지)
ITEMKEY 18 식별번호 필수(JSON) 현금영수증 관리 목적으로 할당한 식별번호
MGTKEY 24 문서번호 필수(JSON) 문서번호
└ 현금영수증 관리를 위해 파트너가 할당하는 식별번호
TRADEDATE 8 거래일자 필수(JSON) 거래일자 (형식 : yyyyMMdd)
TRADEDT 14 거래일시 필수(JSON) 거래일시 (형식 : yyyyMMddHHmmss)
TRADETYPE 4 문서형태 필수(JSON) 문서형태 : "승인거래" / "취소거래" 중 반환
TRADEUSAGE 5 거래구분 필수(JSON) 거래구분 : "소득공제용" / "지출증빙용" 중 반환
TRADEOPT 4 거래유형 필수(JSON) 거래유형 : "일반" / "도서공연" / "대중교통" 중 반환
TAXATIONTYPE 3 과세형태 필수(JSON) 과세형태 : "과세" / "비과세" 중 반환
TOTALAMOUNT 9 거래금액 필수(JSON) 거래금액
ISSUEDT 14 발행일시 필수(JSON) 발행일시 (형식 : yyyyMMddHHmmss)
REGDT 14 등록일시 필수(JSON) 등록일시 (형식 : yyyyMMddHHmmss)
STATECODE 3 상태코드 필수(JSON) 상태코드
└ [참고] 팝빌 상태코드
STATEDT 14 상태 변경일시 필수(JSON) 상태 변경일시 (형식 : yyyyMMddHHmmss)
IDENTITYNUM 19 식별번호 필수(JSON) 식별번호
└ {TRADEUSAGE} 값이 "소득공제용" 인 경우
└ 주민등록/휴대폰/카드번호/자진발급용 번호(010-000-1234) 반환
└ {TRADEUSAGE} 값이 "지출증빙용" 인 경우
└ 사업자번호/휴대폰/카드번호 반환
ITEMNAME 70 주문상품명 필수(JSON) 주문상품명
CUSTOMERNAME 70 구매자(고객) 성명 필수(JSON) 구매자(고객) 성명
CONFIRMNUM 9 국세청 승인번호 필수(JSON) 국세청 승인번호
└ 현금영수증 발행 시점에 자동으로 부여
ORGCONFIRMNUM 9 원본 현금영수증 국세청 승인번호 필수(JSON) 원본 현금영수증 국세청 승인번호
└ {TRADETYPE} 값이 "취소거래"인 경우만 존재
ORGTRADEDATE 8 원본 현금영수증 거래일자 필수(JSON) 원본 현금영수증 거래일자
└ {TRADETYPE} 값이 "취소거래"인 경우만 존재
NTSSENDDT 14 국세청 전송일시 필수(JSON) 국세청 전송일시 (형식 : yyyyMMddHHmmss)
NTSRESULTDT 14 국세청 처리결과 수신일시 필수(JSON) 국세청 처리결과 수신일시 (형식 : yyyyMMddHHmmss)
NTSRESULTCODE 4 결과코드 필수(JSON) 결과코드
└ [참고] 국세청 결과코드
NTSRESULTMESSAGE 30 국세청 처리결과 메시지 필수(JSON) 국세청 처리결과 메시지
PRINTYN - 인쇄여부 필수(JSON) 인쇄여부 : true / false 중 반환
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택

목록 조회

기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
URL
{요청도메인}/Cashbill/search [POST] 
TOKEN 발행 URL
{요청도메인}/payAuth/token [POST] 
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여

샘플예제

PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{TOKEN 발행 URL}";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "{요청도메인}/Cashbill/search";

$request_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'CORPNUM' => '사업자번호',
    'DTYPE' => '조회 기준일자 유형',
    'SDATE' => '조회 기간의 시작일자',
    'EDATE' => '조회 기간의 종료일자',
    'STATE' => '현금영수증 상태코드',
    'TRADETYPE' => '현금영수증 문서형태',
    'TRADEUSAGE' => '거래구분',
    'TRADEOPT' => '거래유형',
    'TAXATIONTYPE' => '과세형태',
    'PAGE' => '목록 페이지번호',
    'PERPAGE' => '페이지당 표시할 목록 개수',
    'ORDER' => '목록 정렬 방향',
    'QSTRING' => '현금영수증 식별번호 조회',
    'FRANCHISETAXREGID' => '가맹점 종사업장번호',
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
CORPNUM 10 사업자번호 필수 사업자번호 (하이픈 '-' 제외 10자리)
DTYPE 1 조회 기준일자 유형 필수 조회 기준일자 유형 : "R" / "T" / "I" 중 택 1
└ "R" : 등록일자
└ "T" : 거래일자
└ "I" : 발행일시
SDATE 8 조회 기간의 시작일자 필수 조회 기간의 시작일자 (형식 : yyyyMMdd)
EDATE 8 조회 기간의 종료일자 필수 조회 기간의 종료일자 (형식 : yyyyMMdd)
STATE Array 현금영수증 상태코드 선택 현금영수증 상태코드
└ 상태코드 2,3번째 자리에 와일드카드(*) 사용가능, 예) "3**"
※ 미입력시 전체조회
TRADETYPE Array 현금영수증 문서형태 선택 현금영수증 문서형태 : "N" / "C" 중 선택 (다중 선택 가능)
└ "N" : 일반 현금영수증
└ "C" : 취소 현금영수증
※ 미입력시 전체조회
TRADEUSAGE Array 거래구분 선택 거래구분 : "P" / "C" 중 선택 (다중 선택 가능)
└ "P" : 소득공제용
└ "C" : 지출증빙용
※ 미입력시 전체조회
TAXATIONTYPE Array 과세형태 선택 과세형태 : "T" / "N" 중 선택 (다중 선택 가능)
└ "T" : 과세
└ "N" : 비과세
※ 미입력시 전체조회
PAGE - 목록 페이지번호 선택 목록 페이지번호 (기본값 1)
PERPAGE - 페이지당 표시할 목록 개수 선택 페이지당 표시할 목록 개수 (기본값 500, 최대 1,000)
ORDER 1 목록 정렬 방향 선택 {DTYPE} 값을 기준으로 하는 목록 정렬 방향 : "D" / "A" 중 택 1
└ "D" : 내림차순(기본값)
└ "A" : 오름차순
QSTRING - 현금영수증 식별번호 조회 선택 현금영수증 식별번호 조회
※ 미입력시 전체조회
TRADEOPT Array 거래유형 선택 거래유형 : "N" / "B" / "T" 중 선택 (다중 선택 가능)
└ "N" : 일반
└ "B" : 도서공연
└ "T" : 대중교통
※ 미입력시 전체조회
FRANCHISETAXREGID - 가맹점 종사업장번호 선택 가맹점 종사업장번호
└ 다수건 검색시 콤마(",")로 구분. 예) 1234,1000
※ 미입력시 전체조회
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다
응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE - 결과 코드 필수(JSON) 결과 코드 (성공시 "0000", 그외 에러)
RESULTMSG - 결과 메시지 필수(JSON) 결과 메시지 ("성공" 또는 오류 메세지)
CODE - 응답코드 필수(JSON) API 처리에 대한 응답코드
MESSAGE - 응답메시지 필수(JSON) API 처리에 대한 응답메시지
TOTAL - 총 검색결과 건수 필수(JSON) 총 검색결과 건수
PERPAGE - 페이지당 검색개수 필수(JSON) 페이지당 검색개수
PAGENUM - 페이지 번호 필수(JSON) 페이지 번호
PAGECOUNT - 페이지 개수 필수(JSON) 페이지 개수
LIST - 목록 필수(JSON) 현금영수증 상태/요약정보 (최대 1,000건)
└ 함수 [get_info - 상태 확인]의 리턴값 구성과 동일
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택

현금영수증 상세 정보 팝업 URL

기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
URL
{요청도메인}/Cashbill/get_popup_url [POST] 
TOKEN 발행 URL
{요청도메인}/payAuth/token [POST] 
TOKEN 요청 전문 파라미터
항목명 길이 내용 구분 비고
pay2_id 30 cookiepayments에서 발급받은 ID 필수 cookiepayments사에서 부여
pay2_key 50 cookiepayments에서 발급받은 연동키 필수 cookiepayments사에서 부여

샘플예제

PHP
/* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{TOKEN 발행 URL}";

$token_request_data = array(
    'pay2_id' => 'cookiepayments에서 발급받은 ID',
    'pay2_key'=> 'cookiepayments에서 발급받은 연동키',
);

$req_json = json_encode($token_request_data, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $token_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $req_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $tokenheaders);
$RES_STR = curl_exec($ch);
curl_close($ch);
$RES_STR = json_decode($RES_STR,TRUE);
/* 여기 까지 */
if($RES_STR['RTN_CD'] == '0000'){

$headers = array(); 
array_push($headers, "content-type: application/json; charset=utf-8");
array_push($headers, "ApiKey: COOKIEPAY에서 발급받은 연동키");
array_push($headers, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

$cookiepayments_url = "{요청도메인}/Cashbill/get_popup_url";

$request_data_array = array(
    'API_ID' => 'COOKIEPAY에서 발급받은 가맹점연동 ID',
    'CORPNUM' => '사업자번호',
    'MGTKEY' => '파트너가 할당한 문서번호',
    'ETC1'=> '추가필드 1',
    'ETC2'=> '추가필드 2',
    'ETC3'=> '추가필드 3',
    'ETC4'=> '추가필드 4',
    'ETC5'=> '추가필드 5',
);

$cookiepayments_json = json_encode($request_data_array, TRUE);

$ch = curl_init(); // curl 초기화

curl_setopt($ch,CURLOPT_URL, $cookiepayments_url);
curl_setopt($ch,CURLOPT_POST, false);
curl_setopt($ch,CURLOPT_POSTFIELDS, $cookiepayments_json);
curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT ,3);
curl_setopt($ch,CURLOPT_TIMEOUT, 20);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($ch);
curl_close($ch);

var_dump($response);
요청 전문 파라미터
항목명 길이 내용 구분 비고
ApiKey 제한없음 쿠키페이 결제 연동 key 필수(헤더) 쿠키페이에서 발급받은 결제 연동 key
TOKEN 제한없음 인증 TOKEN 필수(헤더) TOKEN 발급 API통해 발급 TOKEN 값
API_ID 20 쿠키페이 결제 연동 id 필수 쿠키페이에서 발급받은 결제 연동 id
CORPNUM 10 사업자번호 필수 사업자번호 (하이픈 '-' 제외 10자리)
MGTKEY 24 파트너가 할당한 문서번호 필수 파트너가 할당한 문서번호
ETC1 100 사용자 추가 필드1 선택 입력시 응답파라미터에 값을 전달합니다
ETC2 100 사용자 추가 필드2 선택 입력시 응답파라미터에 값을 전달합니다
ETC3 100 사용자 추가 필드3 선택 입력시 응답파라미터에 값을 전달합니다
ETC4 100 사용자 추가 필드4 선택 입력시 응답파라미터에 값을 전달합니다
ETC5 100 사용자 추가 필드5 선택 입력시 응답파라미터에 값을 전달합니다
응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE - 결과 코드 필수(JSON) 결과 코드 (성공시 "0000", 그외 에러)
RESULTMSG - 결과 메시지 필수(JSON) 결과 메시지 ("성공" 또는 오류 메세지)
URL - URL 필수(JSON) String - 요청에 대한 응답 URL
ETC1 100 사용자 추가 필드1 선택
ETC2 100 사용자 추가 필드2 선택
ETC3 100 사용자 추가 필드3 선택
ETC4 100 사용자 추가 필드4 선택
ETC5 100 사용자 추가 필드5 선택