CookiePay API 매뉴얼

결제내역 조회

결제내역 조회 API

1. 기본도메인(요청도메인)
라이브 : https://www.cookiepayments.com [POST] 
테스트 : https://sandbox.cookiepayments.com [POST] 
1-1. URL
{요청도메인}/api/paylist [POST]


2. 결제내역 조회 요청 전문 파라미터
항목명 길이 내용 구분 비고
API_ID 30 COOKIEPAY에서 발급받은 ID 필수 COOKIEPAY사에서 부여
STD_DT 10 결제내역 조회 일자 필수 ex) 2021-01-01
END_DT 10 결제내역 조회 마감일자 필수 ex) 2021-01-03 (STD_DT로 부터 최대 6개월까지 가능)
PAGE 8 목록 페이지 번호 필수 ex) 1
PERPAGE 3 페이지당 표시할 목록 개수 필수 ex) 20 ( 최대100개 )
LISTTYPE 10 결제내역 조회 종류 선택 조회 종류
• 선택하지 않을시 API_ID의 결제 내역만 조회
• "LOGINID" : API_ID를 사용하고 있는 로그인ID의 전체 결제 내역을 조회
• "LICENSENO" : API_ID를 사용하고 있는 사업자(사업자번호)의 전체 결제 내역을 조회
2-1. CURL 샘플
/* 토큰 발급 API */
curl -H "Content-Type: application/json" \
     -d '{
         "pay2_id": "cookiepayments에서 발급받은 ID",
         "pay2_key": "cookiepayments에서 발급받은 연동키"
         }' \
     -X POST "{요청도메인}/payAuth/token"

/* 발급 받은 TOKEN으로 결제내역 조회 API 통신 */
curl -H "Content-Type: application/json" \
     -H "TOKEN: TOKEN API통해 발행된 TOKEN 값" \
     -d '{
        "API_ID": "cookiepayments에서 발급받은 ID",
        "STD_DT": "결제조회 시작일자 ex)2021-01-01",
        "END_DT": "결제조회 마감일자 ex)2021-01-31",
        "PAGE": "1",
        "PERPAGE": "20",
        "LISTTYPE": ""
    }' \
     -X POST "{요청도메인}/api/paylist"
2-2. PHP 샘플
 /* 토큰 발행 API */
$tokenheaders = array(); 
array_push($tokenheaders, "content-type: application/json; charset=utf-8");

$token_url = "{요청도메인}/payAuth/token";

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

$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, "TOKEN: TOKEN API통해 발행된 TOKEN 값");

    $cookiepayments_url = "{요청도메인}/api/paylist";

    $request_data_array = array(
        'API_ID' => 'cookiepayments에서 발급받은 ID',
        'STD_DT' => '결제조회 시작일자 ex)2021-01-01',
        'END_DT' => '결제조회 마감일자 ex)2021-01-03',
        'PAGE' => '1',
        'PERPAGE' => '20',
        'LISTTYPE' => ''
    );

    $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);
}
2-3. C# 샘플
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Net;
using System.Text;
using System.IO;
using System.Text.Json;
using Newtonsoft.Json.Linq;
using System.Web.Mvc;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;

namespace pay.Controllers
{
    public class HomeController : Controller
    {

        string API_ID = "쿠키페이 결제 연동 key";
        string API_KEY = "쿠키페이 결제 연동 key";

        //결제내역 조회 전문
        public ActionResult PayList()
        {
            //토큰 발행 요청
            string TOKEN_URL = "{요청도메인}/payAuth/token";

            //전송 데이터 JSON 형식 만들기
            var token_json = new JObject();
            token_json.Add("pay2_id", API_ID);     //쿠키페이 결제 연동 ID
            token_json.Add("pay2_key", API_KEY);   //쿠키페이 연동 키

            //요청 HEADER 세팅
            HttpWebRequest token_request = (HttpWebRequest)WebRequest.Create(TOKEN_URL);
            token_request.Method = "POST";
            token_request.ContentType = "application/json";

            //데이터 전송
            byte[] token_bytes = Encoding.UTF8.GetBytes(token_json.ToString());
            token_request.ContentLength = token_bytes.Length;
            Stream token_reqStream = token_request.GetRequestStream();
            token_reqStream.Write(token_bytes, 0, token_bytes.Length);
            token_reqStream.Flush();
            token_reqStream.Close();

            //응답
            HttpWebResponse token_response = (HttpWebResponse)token_request.GetResponse();
            HttpStatusCode status = token_response.StatusCode;
            Stream token_res_stream = token_response.GetResponseStream();
            StreamReader token_read_stream = new StreamReader(token_res_stream);
            string token_resp_data = token_read_stream.ReadToEnd();
            //응답 토근 정보
            var token_result = JObject.Parse(token_resp_data);
            token_read_stream.Close();
            token_res_stream.Close();
            token_response.Close();

            //0000: 성공
            string rtn_cd = Convert.ToString(token_result["RTN_CD"]);
            if (rtn_cd == "0000")
            {
                //결제내역 조회 요청
                string LIST_URL = "{요청도메인}/api/paylist";  //요청 URL
                string TOKEN = Convert.ToString(token_result["TOKEN"]); //응답 받은 토큰 값
                //요청 HEADER 세팅
                HttpWebRequest list_request = (HttpWebRequest)WebRequest.Create(LIST_URL);
                list_request.Method = "POST";
                list_request.ContentType = "application/json";
                list_request.Headers.Add("TOKEN", TOKEN);

                //전송 데이터 JSON 형식 만들기
                var list_json = new JObject();
                list_json.Add("API_ID", API_ID);            //쿠키페이 결제 연동 ID
                list_json.Add("STD_DT", "2023-03-01");
                list_json.Add("END_DT", "2023-03-03");
                list_json.Add("PAGE", "1");
                list_json.Add("PERPAGE", "20");
                list_json.Add("LISTTYPE", "");

                //데이터 전송
                byte[] list_bytes = Encoding.UTF8.GetBytes(list_json.ToString());
                list_request.ContentLength = list_bytes.Length;
                Stream list_reqStream = list_request.GetRequestStream();
                list_reqStream.Write(list_bytes, 0, list_bytes.Length);
                list_reqStream.Flush();
                list_reqStream.Close();

                //응답
                HttpWebResponse list_response = (HttpWebResponse)list_request.GetResponse();
                HttpStatusCode list_status = list_response.StatusCode;
                Stream list_res_stream = list_response.GetResponseStream();
                StreamReader list_read_stream = new StreamReader(list_res_stream);
                string list_resp_data = list_read_stream.ReadToEnd();
                list_read_stream.Close();
                list_res_stream.Close();
                list_response.Close();

                //응답 정보
                var list_result = JArray.Parse(list_resp_data);
                foreach (var json in list_result)
                {
                    System.Diagnostics.Trace.WriteLine(json);
                }
            }

            return View();
        }
    }
}


3. 결제내역 조회 응답 전문 파라미터
항목명 길이 내용 구분 비고
RESULTCODE 4 PG 사 응답코드 필수(JSON) 정상 : 0000, 그외 에러
RESULTMSG 100 PG 사 응답메시지 필수(JSON)
STD_DT 10 결제내역 조회 시작일자 필수(JSON)
END_DT 10 결제내역 조회 마감일자 필수(JSON) 최대 6개월까지 가능
PAGE 8 현재 페이지 필수(JSON)
PERPAGE 3 페이지당 목록 수 필수(JSON)
TOTAL_CNT 10 전체 목록 갯수 필수(JSON) 조회 일자 간 전체 목록 갯수
LIST_CNT 3 현재 페이지 목록 갯수 필수(JSON)
LIST 암호호된 결제 목록 필수(JSON) 암호회된 리턴값 (성공시 존재)
3-1. 결제내역 조회 응답데이터 예
{
    "RESULTCODE": "0000",
    "RESULTMSG": "SUCCESS",
    "STD_DT": "2025-03-26",
    "END_DT": "2025-04-07",
    "PAGE": 1,
    "PERPAGE": 20,
    "TOTAL_CNT": "3",
    "LIST_CNT": "3",
    "LIST": "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"
}


4. 응답전문 파라미터 > 복호화 응답 파라미터 (암호화 전문 복호화하기 참조)
항목명 길이 내용 구분 비고
RESULTCODE 4 결과 코드 필수(JSON) 복호화 응답 코드 (성공시 "0000", 그외 에러)
RESULTMSG 100 결과 메시지 필수(JSON) 복호화 응답 메시지 ("성공" 또는 오류 메세지)
decryptData 조회된 목록 필수(JSON)
  decryptData[n]['ORDERNO'] 50 주문번호 필수(JSON) 결제한 주문번호
  decryptData[n]['AMOUNT'] 10 결제/취소 된 금액 필수(JSON) PAYSTATUS가 1일때는
승인금액, 2일때는 취소금액
  decryptData[n]['BUYERNAME'] 20 고객명 필수(JSON)
  decryptData[n]['BUYEREMAIL'] 50 고객 E-MAIL 필수(JSON)
  decryptData[n]['PRODUCTNAME'] 40 상품명 필수(JSON)
  decryptData[n]['PRODUCTCODE'] 10 상품코드 필수(JSON)
  decryptData[n]['PAYMETHOD'] 20 결제수단 필수(JSON) CARD(카드), KAKAOPAY(카카오페이),
CARD_SUGI(수기결제),CARD_BATCH(정기결제),
BANK(계좌이체), VACCT(가상계좌)
MOBILE(휴대폰)
  decryptData[n]['PAYSTATUS'] 20 결제상태 필수(JSON) 1 : 승인, 2 : 취소
  decryptData[n]['USERID'] 20 고객 ID 필수(JSON)
  decryptData[n]['TID'] 50 PG 거래 고유번호 필수(JSON) 전표출력 및 결제취소에 반드시 필요한 값
  decryptData[n]['ACCEPTNO'] 10 승인번호 필수(JSON)
  decryptData[n]['ACCEPTDATE'] 20 승인일시 필수(JSON)
  decryptData[n]['CANCEL_SUM_AMOUNT'] 20 총 취소 금액 필수(JSON) 부분취소의 경우 부분취소 한 합계금액
  decryptData[n]['CANCELDATE'] 20 취소날짜 필수(JSON)
  decryptData[n]['CANCELMSG'] 50 취소메시지 필수(JSON)
  decryptData[n]['TAXYN'] 2 과세여부 필수(JSON) Y: 과세, N: 비과세, M: 복합과세
  decryptData[n]['QUOTA'] 2 할부개월수 필수(JSON) 00:일시불
  decryptData[n]['ACCOUNTNO'] 50 가상계좌번호 (JSON) 가상계좌 이용 시 리턴 값
  decryptData[n]['RECEIVERNAME'] 50 예금주성명 (JSON) 가상계좌 이용 시 리턴 값
  decryptData[n]['DEPOSITENDDATE'] 50 계좌사용만료일 (JSON) 가상계좌 이용 시 리턴 값
  decryptData[n]['CARDNAME'] 50 은행명 (JSON) 가상계좌 이용 시 리턴 값
  decryptData[n]['CARDCODE'] 50 은행코드 (JSON) 가상계좌 이용 시 리턴 값
  decryptData[n]['BUYERHP'] 20 고객 휴대폰 번호 (JSON) 결제시 휴대폰 번호입력한 고객에 대해서만
값이 존재
  decryptData[n]['BILLKEY'] 12 빌링키 (JSON) 정기결제 빌링키, 정기결제일 경우 갑이 존재
  decryptData[n]['RESERVE_ID'] 36 반복결제 등록ID (JSON) 반복결제 일경우 값이 존재
  decryptData[n]['RESERVE_ORDERNO'] 50 반복결제
등록 주문번호
(JSON) 반복결제 일경우 값이 존재
  decryptData[n]['PAY_CNT'] 3 반복결제 결제 회차 (JSON) 반복결제 일경우 값이 존재
  decryptData[n]['TRY_CNT'] 3 반복결제 시도 횟수 (JSON) 반복결제 일경우 값이 존재
  decryptData[n]['LAST_PAY_CNT'] 3 반복결제 종료 회차 (JSON) 반복결제 일경우 값이 존재
  decryptData[n]['ETC1'] 100 사용자 추가 필드1 (JSON) 결제 요청시 입력한 값
  decryptData[n]['ETC2'] 100 사용자 추가 필드2 (JSON) 결제 요청시 입력한 값
  decryptData[n]['ETC3'] 100 사용자 추가 필드3 (JSON) 결제 요청시 입력한 값
  decryptData[n]['ETC4'] 100 사용자 추가 필드4 (JSON) 결제 요청시 입력한 값
  decryptData[n]['ETC5'] 100 사용자 추가 필드5 (JSON) 결제 요청시 입력한 값
4-1. 결제내역 조회 복호화 응답데이터 예
{
    "RESULTCODE": "0000",
    "RESULTMSG": "성공",
    "decryptData": [
        {
            "ORDERNO": "SRS20250326105052506707",
            "AMOUNT": "100",
            "BUYERNAME": "구매자이름",
            "BUYEREMAIL": "구매자이메일",
            "PRODUCTNAME": "테스트상품1",
            "PRODUCTCODE": "PROC-001",
            "PAYMETHOD": "CARD_BATCH",
            "PAYSTATUS": "1",
            "BUYERID": "guest",
            "ACCEPTNO": "00000000",
            "ACCEPTDATE": "20250326105053",
            "TID": "T2025040809264314942",
            "CANCLE_SUM_AMOUNT": "0",
            "CANCELDATE": "",
            "CANCELMSG": "",
            "TAXYN": "Y",
            "QUOTA": "00",
            "ACCOUNTNO": "",
            "RECEIVERNAME": "",
            "DEPOSITENDDATE": "",
            "CARDNAME": "카드사이름",
            "CARDCODE": "41",
            "BUYERHP": "01012342567",
            "RESERVE_ID":"",
            "RESERVE_ORDERNO":"",
            "PAY_CNT":"",
            "TRY_CNT":"",
            "LAST_PAY_CNT":"",
            "ETC1": "Retc11",
            "ETC2": "Retc21",
            "ETC3": "Retc31",
            "ETC4": "Retc41",
            "ETC5": "Retc51"
        },
        {
            "ORDERNO": "SRS20250326104858797056",
            "AMOUNT": "100",
            "BUYERNAME": "구매자이름",
            "BUYEREMAIL": "구매자이메일",
            "PRODUCTNAME": "테스트상품1",
            :
            :
            :
        }
    ]
}