신용카드

개발 전 확인이 필요한 공통적인 가이드

고객사 결제 소개

고객사 API 목록

고객사 API 목록
API 구분 API 리소스 경로
결제 요청 POST v1.0/payments/request
결제 승인 POST v1.0/payments/confirm
결제 취소 POST v1.0/payments/cancel
부분 취소 POST v1.0/payments/cancel/partial
거래 확인서 GET v1.0/receipt/info/{tid}
결제 거래정보 조회 GET v1.0/payments/confirm-info
카드사 목록 조회 GET v1.0/payments/info/card-list
PG약관 조회 GET v1.0/payments/info/terms-info-list

*고객사 API의 미디어 타입은 “content-type application/json” 입니다.

고객사 결제 통신 규칙

표준 RESTful-API 통신 방식을 따르며, HTTP 1.1 Specification을 준수합니다.
HTTP Method, Resource URL을 요청하면, JSON 데이터를 응답합니다.

결제 흐름

단일 결제 흐름

  1. 고객사 결제 요청 API를 호출합니다.
  2. 고객사 API에서 전달한 결제 화면을 호출합니다.
  3. 사용자 결제가 완료되면, 고객사 return_url로 PG 결제 승인 용 필수 정보가 전달됩니다.
  4. 고객사 결제 승인 API를 호출합니다.
  5. 결제 (승인)결과를 전달받으면, pay_hash 값을 검증 후 고객사 주문 처리를 완료합니다.
단일결제흐름

고객사 결제 API 정의

결제 요청

고객사 결제 요청 용 API 입니다. 최소 승인 금액은 일반카드, 전용페이카드 100원, 계좌이체 1원, 제로페이 1원이며, 해당 금액 미만의 결제 요청은 처리되지 않습니다. API 요청

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 키 유형
v1.0/payments/request POST Authorization: SPGKEY {API Key} payment

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
공통필수영역
pgcode 필수 string 10 결제수단 코드(5. 결제수단 & 오류코드 참조)
client_id 필수 string 10 고객사 아이디
user_id 필수 string 50 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능)
user_name 필수 string 20 고객사 사용자(회원) 명
order_no 필수 string 50 고객사 주문번호
pay_type 필수 number   결제 유형 (1: 단일 결제, 2: 복합 일반, 3: 복합 전용)
device_type 필수 number   (결제 요청)기기 유형 (1: 모바일, 2: PC)
amount 필수 number   (결제 상품)금액
*(결제 요청) 컵반환 보증금이 있는 경우 상품금액에 더하여 호출합니다.
예) 총금액 10,000원, 컵반환 보증금 300원
-> amount : 10,300원으로 설정
*(결제 요청) 선불전자결제수단 금액이 있는 경우 상품금액에서 제외하여 호출합니다.
예) 총금액 10,000원, 선불전자결제 : 2,000원
-> amount : 8,000원으로 설정
product_name 필수 string 50 (결제)상품 명
return_url 필수 string 255 결제 인증 결과 수신 및 결제 승인 API를 호출하는 고객사 URL
cancel_url 필수 string 255 결제 취소 시 이동하는 고객사 URL
fail_url 필수 string 255 결제 실패 시 이동하는 고객사 URL
param_ispt_hash 필수 string 1000 파라메터 검증 해시
*고객사 요청 파라미터 검증을 위한 sha256 hash 값을 의미하며, "sha256(client_id + user_id + order_no + pay_type + amount + payment API Key)" 조합으로 생성된다.
공통부가영역
user_ci 선택적 필수 string 88 고객사 사용자 CI(Connecting information)
*제로페이 최초 사용자를 위한 본인인증 시, 고객사에서 전달한 user_ci, mobile_no와 휴대폰 본인인증 결과가 다를 경우, 제로페이 회원 등록이 불가합니다.
*지역화폐 단일 결제 요청 시 필수 값 입니다.
*결제수단이 shpay일 때 필수 값 입니다.
*핏콜라보 결제 요청 시 필수 값 입니다.
taxfree_amount   number   비과세 금액
*(결제 요청)금액이 모두 비과세액인 경우, amount, taxfree_amount 모두 동일한 값을 설정하여야 합니다.
예) (결제 요청)금액 1,000원 모두 비과세 금액인 경우
→ amount, taxfree_amount 모두 1,000원 설정
*(결제 요청)금액 중 일부가 비과세 금액인 경우, 해당 금액만 taxfree_amount에 설정하여야 합니다.
예) (결제 요청)금액 1,000원중 비과세 금액이 100원인 경우
→ amount 1,000원, taxfree_amount 100원 설정
tax_amount   number   부가세 금액
*요청 파라미터 값이 없으면,
((amount - taxfree_amount - cup_return_deposit) / 11) 계산식을 적용, 소수점 이하 반올림으로 자동 계산합니다.
cup_return_deposit   number   컵반환보증금
card_cpny_cd 선택적 필수 string   카드사 코드
* 6.1 카드사 코드 참조
* 일반 신용카드 결제 시 고객사 화면에서 카드사를 선택하여 결제 요청시 필수 값 입니다.
install_month   string 2 할부 개월수(00~12)
* 다이렉트 결제 요청시 필수 값 입니다.
*핏콜라보 결제 요청 시 필수 값 입니다.
inst_type 선택적 필수 number   할부 타입
1: 일반,
2: 무이자,
3: 청구할인5%일반
4: 청구할인5%무이자
5: 청구할인7%일반
6: 청구할인7%무이자
7: 청구할인10%일반
8: 청구할인 10%무이자
*핏콜라보 결제 요청 시 필수 값 입니다.
email_flag   string 1 (결제)메일 수신 여부 (Y: 사용, N: 미사용)
*기본 값은 "N: 미사용" 입니다.
email_addr   string 50 (결제)메일 수신 주소
*email_flag 'Y'인 경우에만 사용합니다.
main_color   string 6 PG 결제 화면 메인 색상 코드
*기본값은 FFFFFF
point_color   string 6 PG 결제 화면 포인트 색상 코드
*기본값은 5379FF
custom_parameter   string 1000 고객사 전용 값을 의미하며, 암호화를 권장합니다.
*결제 요청 시 고객사에서 필요한 고객, 주문, 기타 등 정보를 전달하면, 그 값 그대로 고객사 return_url로 반환합니다.
mobile_no 선택적 필수 string 11 사용자 휴대폰 번호
*지역화폐 단일 결제 요청 시 필수 값 입니다.
*가상계좌일 때 선택 값 입니다.
card_purpost_type 선택적 필수 number   카드 용도 유형 (1: 일반 신용카드, 2: 프로모션 일반 신용카드, 3: 비인증 신용카드, 4: 환금성 신용카드)
*기본값은 1
app_return_url 선택적 필수 string 100 일반 신용카드(ISP) 결제 이후 이동할 고객사 앱 스키마 정보
*모바일 앱의 일반 신용카드 결제 요청 시 필수 값 입니다.
app_cancel_url 선택적 필수 string 100 일반 신용카드(ISP) 결제 진행 중단 시 이동할 고객사 앱 스키마 정보
*모바일 앱의 일반 신용카드 결제 요청 시 필수 값 입니다.
◎ 일반 신용카드 단일 결제를 요청하는 경우
{
    "pgcode": "card",
    "client_id": "o2o",
    "user_id": "test_01",
    "user_name": "테스터01",
    "order_no": "202108311259590001",
    "pay_type”: 1,    // 단일 결제
    "device_type": 1,
    "amount": 11000,
    "product_name": "테스트 상품",
    "return_url": "https://o2odev.shinhan.com/partner/pay/approval",
    "cancel_url": "https://o2odev.shinhan.com/partner/pay/cancel",
    "fail_url": "https://o2odev.shinhan.com/partner/pay/fail",
    “param_ispt_hash”:”821b7bf742abfb49c8e535ee9a0801c4e6cefe4d49c9c8209b8c54d5077082f8"
    "taxfree_amount": 0,
    "tax_amount": 90,
    "email_flag": "Y",
    "email_addr": "bae1222@payletter.com",
    "pay_hash": "dfhuoi892ashiozxui123…”,
    "custom_parameter": "asdfoxuoy12uyisadouydfouayiouf…",
    "card_purpost_type": 1,                  // 일반 신용카드는 필수 설정
    "app_return_url": "scheme://path",    // 모바일 앱 환경의 일반 신용카드는 필수 설정
    "app_cancel_url": "scheme://path",    // 모바일 앱 환경의 일반 신용카드는 필수 설정
    “cup_return_deposit”: “100”,         // 컵반환 보증금
    “card_cpny_cd”: “S005”,             // 고객사 화면에서 카드사를 선택하여 결제요청하는 경우 필수 설정
    “prepay_amount”: 2000            // 선불전자지급수단을 사용할 경우 필수 설정
}

                                

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
redirect_url string 1000 (결제용)웹 화면
*PG 웹 화면 접근 후 redirect_url token은 다시 사용할 수 없습니다.

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    "redirect_url": "https://devpayapispg.shinhan.com/pgsvc/pay?token=2021083110239001duf.." // (결제 인증용)웹 화면
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "token is missing or incorrect."
}
                                

통합결제창용 결제 요청

개인/법인용 통합결제창 결제 호출 용 API 입니다. 최소 승인 금액은 일반카드, 전용페이카드 100원, 계좌이체 1원이며, 해당 금액 미만의 결제 요청은 처리되지 않습니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 키 유형
v1.0/payments/request POST Authorization: SPGKEY {API Key} payment

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
공통(개인/법인)필수영역
pgcode 필수 string 10 결제수단 코드(개인: selpay / 법인: bizselpay)
client_id 필수 string 10 고객사 아이디
user_id 필수 string 50 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능)
user_name 필수 string 20 고객사 사용자(회원) 명
order_no 필수 string 50 고객사 주문번호
pay_type 필수 number   결제 유형 (1: 단일 결제)
device_type 필수 number   기기 유형.
1: 모바일(개인),
2: PC(개인/법인)
amount 필수 number   금액
*컵반환 보증금이 있는 경우 상품금액에 더하여 호출합니다. 예) 총금액 10,000원, 컵반환 보증금 300원 -> amount : 10,300원으로 설정 법인대출연계에 사용될 때는 일시지급일때는 총구매금액(100%), 잔금지급일때는 지원신청금액(70%)
product_name 필수 string 50 (결제)상품 명
param_ispt_hash 필수 string 1000 파라메터 검증 해시
*고객사 요청 파라미터 검증을 위한 sha256 hash 값을 의미하며, "sha256(client_id + user_id + order_no + pay_type + amount + payment API Key)" 조합으로 생성된다.
법인대출연계요청영역 (법인대출연계시 필수)
buyr_bizr_no 선택적 필수 string 10 구매자 사업자 번호
dpst_req_no 선택적 필수 string 8 입금요청번호
clnt_pay_clf_cd 선택적 필수 string 6 결제 구분
SGLPAY: 일시지급(선수금없음)
RMDPAY: 잔금지급(선수금대상)
req_amt 선택적 필수 number 13 지원신청금액(원)
대출금액으로 기본 70% 신한 은행 여신 기준에 맞춰 천원 단위로 절사 처리 필요
(로직 제공, 금액이 안 맞는 경우 처리결과 ‘F’ 리턴, 고객부담금에 나머지 금액 추가)
chrg_amt 선택적 필수 number 13 고객부담금액(원)
tot_tx_amt 선택적 필수 number 13 총구매금액(원)
pay_amt 선택적 필수 number 13 결제요청금액(원)
일시지급일때는 총구매금액(100%), 잔금지급일때는 지원신청금액(70%)
clnt_tx_clf_cd 선택적 필수 string 6 거래 구분 (고객사거래구분코드)
고객사결제구분코드 (GNR: 일반거래 / IMPL: 전용거래)
cncl_yn 선택적 필수 string 1 취소 여부
주문취소 건인 경우 취소 여부(‘Y’)와 PK정보(사업자 번호, 입금요청번호)만 전송
clnt_tx_ymd 선택적 필수 string 8 낙찰일 (고객사 거래일자)
seller_name 선택적 필수 string 20 판매사명
플랫폼이 판매사인 경우 플랫폼명
오픈마켓 : 판매자
email_addr   string 50 고객이메일
고객의 이메일 주소입니다. 결제 결과를 알려줄 때 사용합니다
mobile_no   string 13 고객휴대폰번호
고객의 휴대폰 번호입니다. 가상계좌 입금 안내가 전송되는 번호 입니다.
개인부가영역
taxfree_amount   number   비과세 금액
*금액이 모두 비과세액인 경우, amount, taxfree_amount 모두 동일한 값을 설정하여야 합니다.
예) 금액 1,000원 모두 비과세 금액인 경우
→ amount, taxfree_amount 모두 1,000원 설정
*금액 중 일부가 비과세 금액인 경우, 해당 금액만 taxfree_amount에 설정하여야 합니다.
예) (결제 요청)금액 1,000원중 비과세 금액이 100원인 경우
→ amount 1,000원, taxfree_amount 100원 설정
tax_amount   number   부가세 금액
*요청 파라미터 값이 없으면,
((amount - taxfree_amount - cup_return_deposit) / 11) 계산식을 적용, 소수점 이하 반올림으로 자동 계산합니다.
cup_return_deposit   number   컵반환보증금
email_flag   string 1 (결제)메일 수신 여부 (Y: 사용, N: 미사용)
*기본 값은 "N: 미사용" 입니다.
email_addr   string 50 (결제)메일 수신 주소
*email_flag 'Y'인 경우에만 사용합니다.
custom_parameter   string 1000 고객사 전용 값을 의미하며, 암호화를 권장합니다.
*결제 요청 시 고객사에서 필요한 고객, 주문, 기타 등 정보를 전달하면, 그 값 그대로 고객사 return_url로 반환합니다.
mobile_no   string 11 사용자 휴대폰 번호
card_purpost_type 선택적 필수 number   카드 용도 유형 (1: 일반 신용카드, 2: 프로모션 일반 신용카드, 3: 비인증 신용카드, 4: 환금성 신용카드)
*기본값은 1
통합결제창(개인)전용
user_ci 필수 string 88 고객사 사용자 CI(Connecting information)
main_color   string 6 PG 결제 화면 메인 색상 코드
*기본값은 FFFFFF
point_color   string 6 PG 결제 화면 포인트 색상 코드
*기본값은 5379FF
app_return_url 선택적 필수 string 100 일반 신용카드(ISP) 결제 이후 이동할 고객사 앱 스키마 정보
*모바일 앱의 일반 신용카드 결제 요청 시 필수 값 입니다.
app_cancel_url 선택적 필수 string 100 일반 신용카드(ISP) 결제 진행 중단 시 이동할 고객사 앱 스키마 정보
*모바일 앱의 일반 신용카드 결제 요청 시 필수 값 입니다.
return_url 필수 string 255 결제 인증 결과 수신 및 결제 승인 API를 호출하는 고객사 URL
cancel_url 필수 string 255 결제 취소 시 이동하는 고객사 URL
fail_url 필수 string 255 결제 실패 시 이동하는 고객사 URL
◎ 개인용 통합결제창 결제를 요청하는 경우
{
    "pgcode": "selpay",
    "client_id": "o2o",
    "user_id": "test_01",
    "user_name": "테스터01",
    "order_no": "202108311259590001",
    "pay_type”: 1,    // 단일 결제
    "device_type": 1,
    "amount": 11000,
    "product_name": "테스트 상품",
    "return_url": "https://o2odev.shinhan.com/partner/pay/approval",
    "cancel_url": "https://o2odev.shinhan.com/partner/pay/cancel",
    "fail_url": "https://o2odev.shinhan.com/partner/pay/fail",
    “param_ispt_hash”:”821b7bf742abfb49c8e535ee9a0801c4e6cefe4d49c9c8209b8c54d5077082f8"
    "taxfree_amount": 0,
    "tax_amount": 90,
    "email_flag": "Y",
    "email_addr": "bae1222@payletter.com",
    "pay_hash": "dfhuoi892ashiozxui123…”,
    "custom_parameter": "asdfoxuoy12uyisadouydfouayiouf…",
    "card_purpost_type": 1,                  // 일반 신용카드는 필수 설정
    "app_return_url": "scheme://path",    // 모바일 앱 환경의 일반 신용카드는 필수 설정
    "app_cancel_url": "scheme://path",    // 모바일 앱 환경의 일반 신용카드는 필수 설정
    “cup_return_deposit”: “100”,         // 컵반환 보증금
    “card_cpny_cd”: “S005”,               // 고객사 화면에서 카드사를 선택하여 결제요청하는 경우 필수 설정
}
                                
◎ 법인용 통합결제창 결제를 요청하는 경우
{
    "pgcode": "bizselpay",
    "client_id": "o2o",
    "user_id": "test_01",
    "user_name": "테스터01",
    "order_no": "202108311259590001",
    "pay_type”: 1,             // 단일 결제
    "device_type": 2,         // 법인은 PC전용
    "amount": 11000,
    "taxfree_amount": 0,
    "tax_amount": 1000,
    "product_name": "테스트 상품",
    “param_ispt_hash”:”821b7bf742abfb49c8e535ee9a0801c4e6cefe4d49c9c8209b8c54d5077082f8"
    "email_flag": "Y",
    "email_addr": "bae1222@payletter.com",
    "pay_hash": "dfhuoi892ashiozxui123…”,
    "custom_parameter": "asdfoxuoy12uyisadouydfouayiouf…",
    “cup_return_deposit”: “100” ,            // 컵반환 보증금,
    “buyr_bizr_no”:”1234567890”,
    “clnt_pay_clf_cd”:”20240208”,
    “req_amt”: 700000000,
    “chrg_amt”: 300000000,
    “tot_tx_amt”: 1000000000,
    “pay_amt”: 1000000000,
    “clnt_tx_clf_cd”:”IMPL”,
    “cncl_yn”:”N”,
    “clnt_tx_ymd”:”20240601”,
    “seller_name”:”테스트판매사”
}
                                

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
redirect_url string 1000 (결제용)웹 화면
*PG 웹 화면 접근 후 redirect_url token은 다시 사용할 수 없습니다.

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    "redirect_url": "https://devpayapispg.shinhan.com/pgsvc/pay?token=2021083110239001duf.." // (결제 인증용)웹 화면
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "token is missing or incorrect."
}
                                

기업통합결제 결제창 호출

1.Html 내 script tag 추가
<script src="https://payspg.shinhan.com/businessPayment/unifiedPay/script"></script>

2.통합결제창 결제요청 응답값 (redirect_url) 으로 팝업 호출
ShinhanBizPay.openPopup(result.redirect_url, function(retCode, retMessage) {
    if(retCode == ShinhanBizPay.RES_SUCCESS) {
        console.log(“성공”);
    } else {
        console.log("실패”, retMessage);
    }
});
                                

결제 화면 출력 (고객사 호출)

결제 요청 API의 redirect_url 을 이용하여, 고객사 사용자에게 PG 웹 화면을 출력합니다.
일반결제/비인증결제/전용페이 일 경우와 가상계좌일 경우 응답 파라미터가 달라집니다.

화면 요청

Redirect URL HTTP 메서드
redirect_url GET

결제 인증 결과 (PG 호출)

고객사 사용자의 PG 통합결제 결제하기(인증) 완료 이후, 고객사의 return_url POST 데이터로 주문 및 승인 토큰 정보가 전달됩니다. return_url은 결제 요청 API에 전달한 파라미터 값을 의미합니다.

화면 이동

Redirect URL HTTP 메서드
return_url POST

POST 데이터

파라미터 자료형 크기 설명
order_no string 50 (일반결제) 고객사 주문번호
custom_parameter string 1000 (일반결제) 고객사 전용 값
confirm_token string 50 (일반결제) 승인 토큰
escr_yn Char 1 (일반결제/가상계좌) 에스크로여부
* 고객사가 에스크로 사용 가능하고 PG에서 에스크로여부를 선택 한 경우
tid String 50 (가상계좌) 거래번호
bank_nm String 100 (가상계좌) 입금은행
user_nm string 20 (가상계좌) 예금주명
vald_dt string 8 (가상계좌) 입금기한(YYYYMMDD)
gods_nm string 100 (가상계좌) 상품명
email string 20 (가상계좌) 이메일
user_tel_no string 20 (가상계좌) 사용자 전화번호
pay_amt number   (가상계좌) 결제금액
ret_code number   (가상계좌) 응답 코드
ret_msg string 100 (가상계좌) 응답 메시지
HTTP 1.1 200 OK
{
    "order_no": "202108310937510001",
    "custom_parameter": "auoh1238u123uy...",
    "confinm_token": "aaaaaa.bbbbbb.ccccc"
    “escr_yn”:”N”
    “tid”:”거래번호”
    "bank_nm": "입금은행",
    "user_nm": "예금주명",
    "vald_dt": "20240909"
    "gods_nm": "상품명"
    "email": "aaaaaa@ccc.com"
    "user_tel_no": "01012345678"
    "pay_amt": "46000"
    "ret_code": 0,
    "ret_msg": "OK"
}
                                

결제 승인

고객사 결제 승인 용 API 입니다. "결제 인증 결과 (UI)"로 이동 후 30분(토큰 만료) 안에 요청하여야 합니다.
전용페이 계좌이체는 전용페이 사용자 휴대폰 번호(본인인증 결과정보)로 현금영수증을 자동 발행합니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 토큰 유형
v1.0/payments/confirm POST Authorization: SPGKEY {API Key} payment

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
order_no 필수 string 50 고객사 주문번호
confirm_token 필수 string 50 (결제) 승인 토큰
ip_addr 필수 string 50 아이피 주소
(*사용자 아이피 주소 수집 시 결제 요청 이력 확인이 용이함)

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
pay_type number   결제 유형 (1: 단일 결제, 2: 복합 일반, 3: 복합 전용)
order_no string 50 고객사 주문번호
product_name string 50 (결제)상품 명
user_id string 50 고객사 사용자(회원) 아이디
user_name string 20 고객사 사용자(회원) 명
amount number   (결제 요청)금액
discount_amount number   할인 금액(신용카드사 프로모션 할인 금액)
*신용카드, 계좌이체, 간편결제 해당
taxfree_amount number   비과세 금액
*신용카드, 계좌이체, 간편결제 해당
tax_amount number   부가세 금액
*신용카드, 계좌이체, 간편결제 해당
tid string 50 (결제)거래 번호
pay_ispt_hash string 1000 결제 인증 해시
*PG의 결제 승인 응답 파라미터 검증을 위한 sha256 hash 값을 의미하며, "sha256(user_id + amount + tid + payment API Key)" 조합으로 생성된다.
tx_date string 19 거래 일시(YYYY-MM-DD HH:MM:SS)
reserved1 string 200 가맹점 예약 필드
1.계좌 상품코드
신용카드(pay_info)
card_cpny_cd string 4 카드사 코드
card_name string 20 카드 종류
card_no string 18 카드 번호
(*전용페이 카드결제 시 전달되는 중간 6자리 마스킹 카드번호)
card_aprv_no string 50 카드 승인 번호
install_month string 2 할부 개월 수

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    “pay_type": 2,     // 결제 유형 (2: 복합 일반)
    "order_no": "202108311259590001",
    "product_name": "테스트 상품",
    "user_id": "test01",
    "user_name": "test01",
    "amount": "1000",
    "discount_amount": "100",
    "taxfree_amount": "0",
    "tax_amount": "90",
    "tid": "202108311259590006",
    "install_month": "00",
    "pay_ispt_hash": "941365C04218FF129B790AB1244F8A012BA64E872C3CB8E0C9978A2F76C202F0",
    "tx_date": "2021-08-31 12:59:59",
    "pay_info": [
        {
            … …
    }]
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "token is missing or incorrect."
}
                                

결제 취소

고객사 결제 취소 용 API 입니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 키 유형
v1.0/payments/cancel POST Authorization: SPGKEY {API Key} payment

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
user_id 필수 string 50 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능)
tid 필수 string 50 (결제)거래 번호
amount 필수 number   (취소)금액
cncl_rsn 필수 string 100 취소 사유
ip_addr 필수 string 50 (고객사 사용자)아이피 주소
bank_cd 선택 String 3 (가상계좌용)은행코드(가상계좌)
bank_acct_no 선택 String 14 (가상계좌용)은행 계좌 번호 (환불받을 계좌번호)
bank_name 선택 String 20 (가상계좌용)계좌주명

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
tid string 50 (결제)거래 번호
cid string 50 (취소)승인 번호
amount number   (취소)금액
tx_date string 19 (취소)거래 일시(YYYY-MM-DD HH:MM:SS)

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    "tid" :"tpay_test202108311259590002",
    "cid":"123456",
    "amount":1000,
    "tx_date":"2021-08-31 15:01:07"
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "token is missing or incorrect."
}
                                

부분 취소

고객사 결제 부분 취소 용 API 입니다. PG사 프로모션 결제 건의 경우, 프로모션 기준 금액(예: 5천원 이상일 때 1천원 할인)보다 부분 취소 금액이 작으면 취소 가능 잔액이 전체 처리됩니다. 예로, 1천원 프로모션 할인 금액이 적용된 1만원 결제 건을, 5천원씩 2회 부분 취소 요청하면, 첫번째 부분 취소는 5천원 처리, 두번째 부분 취소는 4천원이 처리됩니다. (단, 컵반환보증금(cup_return_deposit) 포함된 결제인 경우에는 부분 취소 불가)

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 키 유형
v1.0/payments/cancel/partial POST Authorization: SPGKEY {API Key} payment

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
user_id 필수 string 50 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능)
tid 필수 string 50 (결제)거래 번호
amount 필수 number   (부분 취소)금액
taxfree_amount   number   비과세 금액
tax_amount   number   부가세 금액
*요청 파라미터 값이 없으면, ((amount - taxfree_amount) / 11) 계산식을 적용, 소수점 이하 반올림으로 자동 계산한다.
cncl_rsn 필수 string 100 취소 사유
ip_addr 필수 string 50 (고객사 사용자)아이피 주소

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
tid string 50 (결제)거래 번호
cid string 50 (취소)승인 번호
amount number   (취소)금액
tx_date string 19 (취소)거래 일시(YYYY-MM-DD HH:MM:SS)

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    "tid" :"tpay_test202108311259590002",
    "cid":"123456",
    "amount":1000,
    "tx_date":"2021-08-31 15:01:07"
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "token is missing or incorrect."
}
                                

거래 확인서 요청

고객사 사용자의 PG (결제)거래 확인서 화면 요청 용 API 입니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 키 유형
v1.0/receipt/info/{tid} GET Authorization: SPGKEY {API Key} search

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
amunt 필수 number   (결제)금액
tx_ymd 필수 string 10 거래 일자(YYYY-MM-DD)

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
redirect_url string 1000 (거래 내역 확인용)웹 화면

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    "redirect_url": "https://devpayapispg.shinhan.com/pgsvc/receipt/receipt_all.asp?id=..." //(거래내역확인용) PG 웹 화면
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "token is missing or incorrect."
}
                                

결제 거래정보 조회

고객사 결제 거래 정보 조회용 API 입니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 토큰 유형
v1.0/payments/confirm-info GET Authorization: SPGKEY {API Key} search

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
order_no 필수 string 50 고객사 주문번호

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
user_id string 50 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능)
tid string 50 (결제)거래 번호
tx_amount number   (결제)거래 금액
tx_stat number   (결제)거래 상태 (1: 승인, 2: 취소, 3: 부분취소)
tx_date string 19 거래 일시(YYYY-MM-DD HH:MM:SS)
cncl_date string 19 취소 일시(YYYY-MM-DD HH:MM:SS)
*거래 상태 "2:취소"의 경우에만 응답하는 정보입니다.
cncl_rsn string 100 취소 사유
*거래 상태 "2:취소"의 경우에만 응답하는 정보입니다.

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    "user_id": "test_01",
    "tid": "202108311259590006",
    "tax_amount": "10,00",
    "tx_stat": 2,
    "tx_date": "2021-12-22 12:59:59",
    "cncl_date": "2021-12-22 13:05:59",
    "cncl_rsn”: “고객 요청”
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "there is no data."
}
                                

카드사 목록 조회

PG에서 일반결제로 사용할 수 있는 카드사 목록 조회용 API 입니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 토큰 유형
v1.0/payments/info/card-list GET Authorization: SPGKEY {API Key} search

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
pgcode 필수 string 10 결제수단 코드(5. 결제수단 & 오류코드 참조)

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
list JSON Array    
card_cpny_cd string 10 카드사 코드
* 6.1 카드사 코드 참조
card_cpny_name string 20 카드사 명
* 6.1 카드사 코드 참조
image_url string 100 카드사 이미지 URL
sort_no number   순서
istl_psbl_amt number   할부 가능 금액
istl_start_mnts string 2 할부 시작월
istl_finish_mnts string 2 할부 종료월
nintr_istl_start_mnts string 2 무이자 시작월
*무이자 가능인 경우
nintr_istl_finish_mnts string 2 무이자 종료월
*무이자 가능인 경우
mult_part_nintr_istl_mnts number   복수 부분 무이자 할부 개월(,구분자로 복수개 등록)
0 : 사용안함
*무이자 가능인 경우
nintr_yn string 1 무이자 가능여부(Y, N)
point_use_yn string 1 카드사 포인트 사용가능여부(Y, N)
notice_list JSON Array   공지 리스트
notice_type number   공지 유형 코드(1:공지, 2:장애, 3:작업)
notice_msg string   공지 메시지
prmt_list JSON Array   프로모션 리스트
prmt_name string 30 프로모션 명
prmt_ctnt string   프로모션 내용
prmt_cndi_amt number   프로모션 조건 기준 금액
prmt_amt number   프로모션 금액
id_max_aply_yn string 1 ID별 최대 적용 여부(Y, N)
max_cnt_aply_type number   최대 횟수 적용 기간 유형 코드
1:일, 2:주, 3:월, 4:총
max_cnt number   최대 횟수

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    “list”: {
        "card_cpny_cd": "S001",
        "card_cpny_name": "BC카드",
        "image_url": "/srs/htdocs/publish/images/icon_card_bc.png"
    }
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "there is no data."
}
                                

PG약관 조회

PG약관 조회용 API 입니다.

API 요청

API 요청
URL HTTP 메서드 HTTP 헤더 토큰 유형
v1.0/payments/info/terms-info-list GET Authorization: SPGKEY {API Key} search

요청 데이터

요청 데이터
파라미터 필수 여부 자료형 크기 설명
client_id 필수 string 10 고객사 아이디
pgcode 필수 string 10 결제수단 코드(5. 결제수단 & 오류코드 참조)

응답 데이터

처리 성공

처리 성공
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
list JSON Array    
terms_no number   약관번호
terms_nm string 100 약관명
terms_ctnt string   약관내용(HTML)

처리 실패

처리 실패
파라미터 자료형 크기 설명
ret_code number   응답 코드
ret_msg string 100 응답 메시지
HTTP 1.1 200 OK
{
    "ret_code": 0,
    "ret_msg": "OK",
    list": [{
    "terms_no": 1,
    "terms_nm":"전자금융거래 이용약관",
    "terms_ctnt": “<header class=”pgHeader”><h3 class=”title”>약관 및 동의</h3>….</div>"
    }]
}
                                
HTTP 1.1 401 Unauthorized
{
    "ret_code": 998,
    "ret_msg": "there is no data."
}
                                

결제수단

결제수단

결제수단 코드 결제수단 코드 설명
selpay 통합결제창(간편결제, 신용카드, 신용카드(카드번호입력), 가상계좌 선택 UI 호출)
bizselpay 법인통합결제창(신용카드(카드번호입력), 가상계좌, 연계대출 선택 UI 호출)
card 일반 신용/체크카드
nauthcard 비인증 신용/체크카드 (개인/법인)
1