결제

01결제흐름

[온라인] 간편결제

① 회원이 가맹점 앱(또는 Web)에 로그인하여 구매상품을 선택한다.

② 가맹점에서 등록된 회원의 결제수단을 조회하고, 회원은 결제수단을 선택한다.

③ 선택된 결제수단으로 가맹점은 인증을 위해 거래인증 등록(온라인) 절차를 진행한다

④ 가맹점은 거래인증 등록이 완료되면 응답으로 받은 거래인증 페이지를 호출한다.

⑤ 회원은 결제 PIN번호를 입력하면, 이지페이 간편결제는 대외기관으로 인증한다.

⑥ 인증이 완료되면 가맹점 returnURL로 redirect 한다.

⑦ 가맹점은 해당 거래로 이지페이 간편결제로 승인요청 한다.

⑧ 가맹점은 승인이 완료되면 결과를 처리하고, 회원에게 결제완료 페이지를 제공한다.

02결제수단 조회 API

등록된 고객의 결제수단을 조회할 수 있습니다.
HTTP POST 방식으로 호출 바랍니다.

요청

URL 정보

테스트 https://testapi.easypay.co.kr/easypay/user/paymentMethodInfo.do
운영 https://api.easypay.co.kr/easypay/user/paymentMethodInfo.do

파라미터

필드명 타입 최대크기 필수여부 설명
mallId String 8 Byte 필수 KICC에서 부여한 상점ID
customerKey String 60 Byte 필수 간편결제 고객 고유식별번호
payMethodTypeCodeList String 60 Byte 결제수단 코드코드
전체조회 : 빈값
신용카드 : 11, 계좌 : 21
결제수단 코드표 참조
payMethodDetailCodeList String 100 Byte 결제수단 세부 코드
전체조회 : 빈값
카드 코드표 참조

요청 예

//1. 사용자가 보유한 결제수단 중 카드만 노출할 경우

{

   "mallId": "T0001004",

   "customerKey": "BB2BDC6A1B519C7EE31EE6FAB5D83D0FC2E80B86"

   "payMethodTypeCodeList": "11", // 신용카드만 노출

   "payMethodDetailCodeList": null, // null 전달이므로 특정카드 제약 없음

}


//2. 사용자가 보유간 결제수단 중 비씨/신한 카드만 노출할 경우

{

   "mallId": "T0001004",

   "customerKey": "BB2BDC6A1B519C7EE31EE6FAB5D83D0FC2E80B86"

   "payMethodTypeCodeList": "11", // 신용카드만 노출

   "payMethodDetailCodeList": "026:029", // 비씨카드와 신한카드만 노출

}

응답

Body

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 필수 결과코드(정상 : "0000")
resMsg String 1000 Byte 필수 결과 메시지
payMethodInfoList Array(Object) 결제수단 상세정보
[PayMethodList] 참조

PayMethodList(결제수단 상세정보)

필드명 타입 최대크기 필수여부 설명
payMethodTypeCode String 2 Byte 필수 결제수단 코드표 참조
payMethodDetailCode String 3 Byte 필수 결제수단 세부내역 코드
카드 코드표 참조
displayName String 30 Byte 결제수간 세부내역 명
nickname String 30 Byte 회원이 설정한 결제수단 별칭
easypayVirtualNo String 60 Byte 필수 결제수단 가상번호
maskingNo String 30 Byte 필수 마스킹(*)된 결제수단 번호
imageUrl String 256 Byte 필수 결제수단 이미지 URL
sortOrder Number 필수 결제수단 노출 순서
checkCardFlag String 1 Byte 체크카드 여부(Y/N)
결제수단이 카드일 경우 노출
cardUserType String 1 Byte 개인/법인 구분
개인 : "P", 법인 : "C"
installmentInfoList Array(Object) 결제수단 할부정보
결제수단이 카드일 경우 노출
[Installment] 참조
cardPointInfo Object 카드사 포인트 정보
결제수단이 카드일 경우 노출
{CardPoint} 참조
isUsableOff Boolean 1 Byte 오프라인 지원여부
true: 오프라인 사용 가능
false: 온라인만 사용 가능

Installment(결제수단 할부정보)

필드명 타입 최대크기 필수여부 설명
basicAmount Number 필수 할부가능 최소 기준금액
freeInstallmentMonthList Array 무이자 할부 가능한 개월 수
예) [2,3,4,5,6]
installmentMonthList Array 유이자 할부 가능한 개월 수
예) [2,3,4,5,6,7,8,9,10,11,12]

CardPoint(카드사 포인트 정보)

필드명 타입 최대크기 필수여부 설명
isPointEnabled Boolean 필수 카드사 포인트 사용가능여부
true : 포인트 사용가능(checkbox 노출)

응답 예

{

   "resCd" : "0000",

   "resMsg" : "정상",

   "payMethodInfoList": [{

      "payMethodTypeCode": "11",

      "payMethodDetailCode": "026",

      "displayName": "비씨카드",

      "nickName": "나의쇼핑카드",

      "easypayVirtualNo": "BF27D26918529C78E71FE1FBB4D83303058A94F3",

      "maskingNo": "440002******1234",

      "imageUrl": "https://api.easypay.co.kr/easypay/paymethod/card-img/026.png",

      "sortOrder": 1,

      "checkCardFlag" :"N",

      "cardUserType" : "P",

      "isUsableOff": false,

      "installmentInfoList": [{

         "basisAmount": 50000,

         "freeInstallmenMonthtList": [2,3],

         "installmentMonthList": [7,8,9,10,11,12],

      },

      {

         "basisAmount": 100000,

         "freeInstallmenMonthtList": [2,3,4,5,6],

         "installmentMonthList": [7,8,9,10,11,12,13,14,15,16],

      }],

      "cardPointInfo": {"isPointEnabled": true},

      "couponInfo":[{

         "groupId":"CP20200312",

         "standardAmount":100000,

         "discountAmount":1000

      }]

   },

   {

      "payMethodTypeCode": "11",

      "payMethodDetailCode": "029",

      "displayName": "신한카드",

      "nickName": "생활비카드",

      "easypayVirtualNo": "BF27D26918529C78E71FE1FBB4D83303058A94F3",

      "maskingNo": "440002******1234",

      "imageUrl": "https://api.easypay.co.kr/easypay/paymethod/card-img/029.png",

      "sortOrder": 1,

      "checkCardFlag" :"N",

      "cardUserType" : "P",

      "isUsableOff": false,

      "installmentInfoList": [{

         "basisAmount": 50000,

         "freeInstallmenMonthtList": [2,3,4,5,6],

         "installmentMonthList": [7,8,9,10,11,12],

      },

      {

         "basisAmount": 100000,

         "freeInstallmenMonthtList": [2,3,4,5,6],

         "installmentMonthList": [7,8,9,10,11,12,13,14,15,16],

      }],

      {

         "basisAmount": 500000,

         "freeInstallmenMonthtList": [2,3,4,5,6],

         "installmentMonthList": [7,8,9,10,11,12,13,14,15,16,17,18,19,20],

      }]

      "cardPointInfo": {"isPointEnabled": true},

   }]

}

03거래인증 등록 API(온라인)

주문정보를 등록하고, 인증 페이지 URL을 획득할 수 있습니다.
HTTP POST 방식으로 호출 바랍니다.

요청

URL 정보

테스트 https://testapi.easypay.co.kr/easypay/auth/paymentAuthReg.do
운영 https://api.easypay.co.kr/easypay/auth/paymentAuthReg.do

파라미터

필드명 타입 최대크기 필수여부 설명
mallId String 8 Byte 필수 KICC에서 부여한 상점ID
customerKey String 60 Byte 필수 간편결제 고객 고유식별번호
easypayVirtualNo String 60 Byte 필수 고객이 선택한 결제수단 가상번호
payMethodTypeCode String 2 Byte 필수 고객이 선택한 결제수단 코드
결제수단 코드표 참조
payMethodDetailCode String 3 Byte 필수 고객이 선택한 결제수단 상세코드
카드 코드표 참조
shopTransactionId String 60 Byte 필수 상점 거래고유번호
매 요청마다 Unique 보장
shopOrderNo String 60 Byte 필수 상점 주문번호
currency String 2 Byte 필수 통화코드
원화 : "00"
amount Number 필수 결제요청 금액
comTaxAmt Number 과세금액
comFreeAmt Number 비과세금액
comVatAmt Number 부가세
goodsName String 100 Byte 필수 상품명
UTF-8 사용 가맹점은 URL Encoding
installmentMonth Number 고객이 선택한 할부개월(카드 Only)
isFreeInstallment Boolean 무이자 여부(카드Only)
isCardPointUsageCheck Boolean 카드사 포인트 선택 유무(카드 Only)
joinCd String 4 Byte 제휴서비스 코드
사용 가맹점만 세팅가능
userEmail String 50 Byte 고객 이메일
승인/취소 시 결제내역 전송
returnUrl String 256 Byte 필수 거래인증 후 되돌아갈 상점 URL
해당URL로 Redirect됨(HTTPS만 허용)
msgAuthValue String 200 Byte 필수 참고1)메시지 인증값
거래 무결성 검증
cashReceiptInfo Object 현금영수증 발행정보
[CashReceipt] 참조
depositList Array(Object) 자원순환 보증금 정보
[Deposit] 참조

참고 1)

거래인증 등록 시 메시지 인증값 구성은 고객 고유식별번호, 상점 거래고유번호, 결제수단 상세코드, 결제수단 가상번호, 결제금액을 아래와 같이 조합하고 해당값을 HmacSHA256으로 해시한다.
customerKey +"|"+ shopTransactionId +"|"+ payMethodDetailCode +"|"+ easypayVirtualNo +"|"+ amount

CashReceipt(즉시할인 정보)

필드명 타입 최대크기 필수여부 설명
usage String 2 Byte 필수 현금영수증 발행용도
소득공제용 : "01"
지출증빙용 : "02"
issuingMethod String 1 Byte 필수 현금영수증 발행을 위한 수단
현금영수증 카드 : "1"
휴대폰번호 : "3"
사업자번호 : "4"
issuingValue String 256 Byte 필수 현금영수증 발행 수단의 값
SEED 암호화하여 전송

Deposit(자원순환 보증금 정보)

필드명 타입 최대크기 필수여부 설명
dpsType String 1 Byte 필수 보증금 종류
1회용 컵보증금: "C"
dpsAmount Number 필수 보증금 금액
결제 총 금액에 포함되는 금액(비과세 항목)

요청 예

{

   "mallId": "T0001004",

   "customerKey": "BB2BDC6A1B519C7EE31EE6FAB5D83D0FC2E80B86",

   "easypayVirtualNo": "BF27D26918529C78E71FE1FBB4D83303058A94F3",

   "payMethodTypeCode": "11",

   "payMethodDetailCode": "029",

   "shopTransactionId": "2020061800000019999",

   "shopOrderNo": "31231231231231231389899898891818",

   "currency": "00",

   "amount": 1004,

   "goodsName": "팽수 안경",

   "installmentMonth": 0,

   "isFreeInstallment": false,

   "isCardPointUsageCheck": true,

   "userEmail" : "test@test.co.kr",

   "couponInfo":{

      "groupId":"CP20200312",

      "discountAmount":1000,

   },

   "returnUrl": "https://www.pangsu.com/pangpay/authAction.do",

   "msgAuthValue":"8c78b3996950575c9c8d6845ce6932a31f7a16be8fbf0bda98997a449a6551",

   "depositList":[{

      "dspType":"C",

      "dspAmount":300

   }]

}

응답

Body

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 필수 결과코드(정상 : "0000")
resMsg String 1000 Byte 필수 결과 메시지
shopTransactionId String 60 Byte 필수 상점 거래고유번호
요청 시 전달된 값
authPageUrl String 256 Byte 거래인증 페이지 URL
URL Encoding 됨
shopParameter String 4000 Byte 가맹점 예비필드
개인정보에 해당하는 데이터는 제외하여 전달하여야 합니다

요청 예

{

   "resCd" : "0000",

   "resMsg" : "정상",

   "shopTransactionId": "2020061800000019999"

   "authPageUrl": "{인증페이지 URI}"

}

04거래 인증페이지 호출(온라인)

간편결제 거래인증을 처리하기 위한 페이지 입니다.
인증 완료 수 거래인증 등록 시 전달받은 returnUrl로 POST로 전송됩니다.
HTTP GET 방식으로 호출 바랍니다.

요청

URL 정보

결제등록 응답 authPageUrl

응답

Body

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 필수 결과코드(정상: "0000")
resMsg String 1000 Byte 필수 결과 메시지
URL Encoding 됨
shopTransactionId String 60 Byte 상점 거래고유번호
shopOrderNo String 60 Byte 상점 주문번호
authorizationId String 60 Byte 거래인증 거래번호
승인요청 시 필수
shopParameter String 4000 Byte 가맹점 예비필드

05승인 API(온라인)

거래인증 페이지를 통해 전달받은 결과값을 이용하여 승인요청을 합니다.
HTTP POST 방식으로 호출 바랍니다.

주의사항

응답대기 시간은 최대 30초를 권고합니다. 응답대기 시간 초과 및 네트워크 오류로 응답을 받지 못할 경우 반드시 거래상태 조회를 해야 합니다.

요청

URL 정보

테스트 https://testapi.easypay.co.kr/easypay/payment/settle.do
운영 https://api.easypay.co.kr/easypay/payment/settle.do

파라미터

필드명 타입 최대크기 필수여부 설명
mallId String 8 Byte 필수 KICC에서 부여한 상점ID
shopTransactionId String 60 Byte 필수 상점 거래고유번호
매 요청마다 Unique 보장
shopOrderNo String 60 Byte 필수 상점 주문번호
거래인증등록 시 사용했던 주문번호
authorizationId String 60 Byte 필수 거래인증 거래번호
approvalReqDate String 8 Byte 필수 승인요청 일자(yyyyMMdd)

요청 예

{

   "mallId": "T0001004",

   "shopTransactionId": "2020061800000019999",

   "authorizationId" : "BA20D76918529F75E81FE1FBB4DB3E0C300F4C4B",

   "shopOrderNo": "31231231231231231389899898891818",

   "approvalReqDate": "20240401"

}

응답

Body

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 필수 결과코드(정상 : "0000")
resMsg String 100 Byte 필수 결과 메시지
mallId String 8 Byte KICC에서 부여한 상점ID
shopTransactionId String 60 Byte 필수 상점 거래고유번호
요청 시 전달된 값
shopOrderNo String 60 Byte 상점 주문번호
요청 시 전달된 값
pgCno String 20 Byte PG승인거래번호
취소요청 시 필수
amount Number 총 결제금액
transactionDate String 14 Byte 거래일시(yyyyMMddHHmmss)
statusCode String 4 Byte 거래상태 코드표 참조
statusMessage String 50 Byte 거래상태 메시지
msgAuthValue String 200 Byte 참고2) 메시지 인증값
거래 무결성 검증
paymentInfo Array(Object) 승인처리 세부내역
[PaymentInfo] 참조

참고 2)

메시지 인증값은 ‘PG승인거래번호’, ‘결제금액’, ‘거래일시’를 아래와 같이 조합하여 발급받은 Secret Key로 HmacSHA256으로 해시 한다.
pgCno +"|"+ amount +"|"+ transactionDate

PaymentInfo(승인처리 세부내역)

필드명 타입 최대크기 필수여부 설명
payMethodTypeCode String 2 Byte 필수 결제수단 코드표 참조
amount Number 필수 승인금액
approvalNo String 50 Byte 필수 결제수단 승인번호
approvalDate String 14 Byte 필수 거래일시(yyyyMMddHHmmss)
maskingNo String 20 Byte 필수 마스킹(*)된 결제수단 번호
payMethodDetailCode String 3 Byte 필수 결제수단 세부코드
발급사 코드 or 은행 코드
코드표 참조
payMethodDetailCodeName String 50 Byte 필수 결제수단 세부 명
cardInfo Object 카드 승인정보
{Card} 참조
cashReceiptInfo Object 현금영수증 발행 정보
{CashReceipt} 참조

Card(카드 승인정보)

필드명 타입 최대크기 필수여부 설명
acquirerCode String 3 Byte 필수 매입사 코드
(카드사 코드표 참조)
acquirerName String 50 Byte 필수 매입사 명
installmentMonth Number 필수 할부개월
isFreeInstallment Boolean 필수 무이자 여부
cardGubun String 1 Byte 필수 신용카드 종류
신용("N"), 체크("Y"), 기프트("G")
couponAmount Number 즉시할인금액

CashReceipt(현금영수증 발행 정보)

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 결과코드
resMsg String 1000 Byte 결과 메시지
approvalNo String 50 Byte 승인번호
approvalDate Boolean String 14 Byte 거래일시(yyyyMMddHHmmss)

응답 예

{

   "resCd" : "0000",

   "resMsg" : "정상",

   "mallId": "T0001004",

   "pgCno" : "20200618164613111111",

   "shopTransactionId": "2020061800000019999",

   "shopOrderNo": "31231231231231231389899898891818",

   "amount": 1004,

   "transactionDate": "20200618181818",

   "statusCode": "TS01",

   "statusMessage": "승인",

   "msgAuthValue": "04a9175e958a72247e3665aafe7cd8b2d13660bc9931e68757287b369cb1d5b4",

   "paymentInfo": [{

      "payMethodTypeCode": "11",

      "amount": 1004,

      "approvalNo": "5012301101",

      "approvalDate": "20200618181817",

      "maskingNo": "420002******1234",

      "payMethodDetailCode": "029",

      "payMethodDetailCodeName": "신한카드",

      "couponAmount": "0",

      "cardInfo": {

         "acquirerCode": "029",

         "acquirerName": "신한카드",

         "installmentMonth": 0,

         "isFreeInstallment": false,

         "cardGubun": "N"

      }

   }]

}

06취소 API(온라인)

거래 승인완료 후 (전체 또는 부분)취소를 제공합니다.
상점 거래고유번호와 주문번호가 동일하게 요청할 경우 거래의 상태를 조회해서 응답처리 합니다.
HTTP POST 방식으로 호출 바랍니다.

주의사항

응답대기 시간은 최대 30초를 권고합니다. 응답대기 시간 초과 및 네트워크 오류로 응답을 받지 못할 경우 반드시 거래상태 조회를 해야 합니다..

요청

URL 정보

테스트 https://testapi.easypay.co.kr/easypay/payment/cancel.do
운영 https://api.easypay.co.kr/easypay/payment/cancel.do

파라미터

필드명 타입 최대크기 필수여부 설명
mallId String 8 Byte 필수 KICC에서 부여한 상점ID
shopTransactionId String 60 Byte 필수 상점 거래고유번호
매 요청마다 Unique 보장
shopOrderNo String 60 Byte 상점 주문번호
거래인증등록 시 사용했던 주문번호
pgCno String 20 Byte 필수 PG 승인 거래번호. 원거래 거래번호
cancelTxtype String 2 Byte 취소구분
전체취소 : "40", 부분취소 : "32"
amount Number 취소요청금액
remainAmount Number 취소가능금액
취소가능 잔액검증
comTaxAmt Number 취소금액 중 과세금액
복합과세 부분취소 시 사용
comFreeAmt Number 취소금액 중 비과세 금액
복합과세 부분취소 시 사용
comVatAmt Number 취소금액 중 부가세 금액
복합과세 부분취소 시 사용
msgAuthValue String 200 Byte 참고 3) 메시지 인증값. 거래 무결성 검증
cancelReqDate String 8 Byte 취소요청일자(yyyyMMdd)

참고 3)

취소요청 시 메시지 인증값 구성은 PG승인거래번호, 상점 거래고유번호로 아래와 같이 조합하고 해당값을 HmacSHA256으로 해시한다.
pgCno(PG승인거래번호) + "|" + shopTransactionId(상점 거래고유번호)

요청 예

{

   "mallId": "T0001004",

   "shopTransactionId": "2020061800000018888",

   "shopOrderNo": "31231231231231231389899898891818",

   "pgCno" : "20200618164613111111",

   "cancelTxType": "40",

   "amount": 1004,

   "msgAuthValue" : "3063928f932b264a27185f710730d6fdd80bc028c892f4cd64f92b8fa9e5ce70"

}

응답

Body

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 필수 결과코드(정상 : "0000")
resMsg String 1000 Byte 필수 결과 메시지
mallId String 8 Byte KICC에서 부여한 상점ID
shopTransactionId String 60 Byte 필수 상점 거래고유번호
요청 시 전달된 값
shopOrderNo String 60 Byte 상점 주문번호
oriPgCno String 20 Byte 원거래 PG 승인 거래번호
cancelPgCno String 20 Byte PG 취소 거래번호
cancelAmount Number 취소 금액
remainAmount Number 취소 후 잔액
statusCode String 4 Byte 거래상태 코드표 참조
statusMessage String 50 Byte 거래상태 메시지
paymentInfo Array(Object) 취소처리 상세내역
[PaymentInfo] 참조

PaymentInfo(취소처리 상세내역)

필드명 타입 최대크기 필수여부 설명
payMethodTypeCode String 2 Byte 필수 결제수단 코드표 참조
approvalNo String 50 Byte 필수 결제수단 취소 승인번호
approvalDate String 14 Byte 필수 거래일시(yyyyMMddHHmmss)
cancelAmount Number 취소금액
remainAmount Number 취소 후 잔액
요청 시 remainAmount 항목이 있을 시 응답
couponAmount Number 즉시할인 취소 금액
cashReceiptInfo Object 현금영수증 취소 상세내역
{CashReceipt} 참조

CashReceipt(현금영수증 취소 상세내역)

필드명 타입 최대크기 필수여부 설명
resCd String 4 Byte 결과코드
resMsg String 1000 Byte 결과 메시지
approvalNo String 50 Byte 취소 승인번호
approvalDate String 14 Byte 취소일시(yyyyMMddHHmmss)

응답 예

{

   "resCd": "0000",

   "resMsg": "정상",

   "mallId": "T0001004",

   "shopTransactionId": "2020061800000019999",

   "shopOrderNo": "31231231231231231389899898891818",

   "oriPgCno" : "20200618164613111111",

   "cancelPgCno" : "20200618164613111112",

   "transactionDate": "20200618181820",

   "cancelAmount": 1004,

   "remainAmount": 0

   "statusCode": "TS02",

   "statusMessage": "승인취소",

   "paymentInfo": [{

      "payMethodTypeCode": "11",

      "amount": 1004,

      "approvalNo": "5012301199",

      "approvalDate": "20200618181820",

      "cancelAmount": 1004,

      "remainAmount": 0,

      "couponAmount": 0

   }]

}

07거래상태 조회 API(온라인)

승인 또는 취소 요청응답을 받지 못해 거래의 상태를 확인하는 API 입니다.
HTTP POST 방식으로 호출 바랍니다.

요청

URL 정보

테스트 https://testapi.easypay.co.kr/easypay/payment/tradeStatus.do
운영 https://api.easypay.co.kr/easypay/payment/tradeStatus.do

파라미터

필드명 타입 최대크기 필수여부 설명
mallId String 8 Byte 필수 KICC에서 부여한 상점ID
shopTransactionId String 60 Byte 필수 상점 거래고유번호
매 요청마다 Unique 보장
transactionDate String 8 Byte 필수 원거래 요청일자(yyyyMMdd)
승인/취소 요청일자

요청 예

{

   "mallId": "T0001997",

   "shopTransactionId": "20201211150339",

   "transactionDate" : "20201211"

}

응답