브랜드 컨셉에 맞는 다양한 혜택 및 커스텀이 가능한 결제 서비스
| API 구분 | API 리소스 경로 |
|---|---|
| 결제 요청 | POSTv1.0/payments/request |
| 결제 승인 | POSTv1.0/payments/confirm |
| 결제 취소 | POSTv1.0/payments/cancel |
| 부분 취소 | POSTv1.0/payments/cancel/partial |
전용페이 관리화면 요청
|
v1.0/payments/o2opay/manage
|
| 전용페이 결제 비밀번호 사용 여부 조회 | GETv1.0/payments/o2opay/pwd-use |
| 전용페이 결제수단 삭제 | POSTv1.0/payments/o2opay/payment-method |
| 전용페이 사용자 삭제 | POSTv1.0/payments/o2opay/user/secession |
| 전용페이 결제수단 목록 조회 | GETv1.0/payments/info/payment-method-list |
| 환불용 전용페이 계좌 조회 | GETv1.0/payments/o2opay/pybk-acct |
| 현금영수증 발행(발급취소) | POSTv1.0/cashreceipt/issue/{tid} |
| 현금영수증 발행 확인 | GETv1.0/cashreceipt/issue-info |
| 거래 확인서 | GETv1.0/receipt/info/{tid} |
| 결제 거래정보 조회 | GETv1.0/payments/confirm-info |
| 카드사 목록 조회 | GETv1.0/payments/info/card-list |
| 간편결제 앱카드 목록 조회(핏콜라보용) | GETv1.0/payments/info/payment-card-list |
| PG약관 조회 | GETv1.0/payments/info/terms-info-list |
*고객사 API의 미디어 타입은 “content-type application/json” 입니다.
고객사 결제 요청 용 API 입니다. 최소 승인 금액은 일반카드, 전용페이카드 100원, 계좌이체 1원, 제로페이 1원이며, 해당 금액 미만의 결제 요청은 처리되지 않습니다. 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) 결제 진행 중단 시 이동할 고객사 앱 스키마 정보 *모바일 앱의 일반 신용카드 결제 요청 시 필수 값 입니다. |
| 전용페이전용 | ||||
| bill_key | 선택적 필수 | string | 50 | 빌 키 (전용페이 결제수단 등록 시 발급되는 고유 식별 정보) *전용페이 결제 요청 시 필수 값 입니다. (단 결제수단이 shpay일때는 필수 아님) *"전용페이 결제수단 목록 조회 API"의 응답 중 "빌 키" 항목입니다. 예로, 2개의 신용카드, 1개의 은행계좌를 전용페이로 등록한 사용자는 총 3개의 빌 키를 응답 받습니다. |
| 현금영수증전용 | ||||
| cash_rcpt_pub_type | number | 현금 영수증 발행 유형 (1: 소득공제용, 2: 지출증빙용) *해당 요청 파라미터와 현금 영수증 발행 번호 유형, 현금 영수증 발행 번호 파라미터들의 값이 있으면 전용페이 계좌/가상계좌 결제 승인 이후 해당 정보들로 현금영수증을 발행 처리합니다. 만약 해당 요청 값들이 없으면 자진 발급번호로 발행 처리합니다. |
||
| cash_rcpt_pub_no_type | number | 현금 영수증 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급 등 기타) *해당 요청 파라미터와 현금 영수증 발행 유형, 현금 영수증 발행 번호 파라미터들의 값이 있으면 전용페이 계좌/가상계좌 결제 승인 이후 해당 정보들로 현금영수증을 발행 처리합니다. 만약 해당 요청 값들이 없으면 자진 발급번호로 발행 처리합니다. |
||
| cash_rcpt_pub_no | string | 20 | 현금 영수증 발행 번호 (*발행 유형 "소득공제"는 휴대폰번호, “지출증빙"은 사업자 번호, 발행 유형 “자진 발급”은 국세청 지정 코드 "010-000-1234”을 발행 번호로 자체 발급 처리) *해당 요청 파라미터와 현금 영수증 발행 유형, 현금 영수증 발행 번호 유형 파라미터들의 값이 있으면 전용페이 계좌/가상계좌 결제 승인 이후 해당 정보들로 현금영수증을 발행 처리합니다. 만약 해당 요청 값들이 없으면 자진 발급번호로 발행 처리합니다. |
|
◎ 전용페이 카드 단일 결제를 요청하는 경우
{
"pgcode": "shpaycard",
"client_id": "o2o",
"user_id": "test_01",
"user_name": "테스터01",
"order_no": "202108311259590001",
"pay_type”: 1, // 단일 결제
"device_type": 1,
"amount": 11000,
"taxfree_amount": 0,
"tax_amount": 90,
"product_name": "테스트 상품",
“param_ispt_hash”:”821b7bf742abfb49c8e535ee9a0801c4e6cefe4d49c9c8209b8c54d5077082f8"
"email_flag": "Y",
"email_addr": "bae1222@payletter.com",
"pay_hash": "dfhuoi892ashiozxui123…”,
"custom_parameter": "asdfoxuoy12uyisadouydfouayiouf…",
"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",
"card_purpost_type": 1, // 신용카드는 필수 설정
"bill_key": "hoiu123yox134yauyxf", // 전용페이 결제수단 등록 시 발급되는 고유 식별 정보
“cup_return_deposit”: “100” , // 컵반환 보증금
“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원이며, 해당 금액 미만의 결제 요청은 처리되지 않습니다.
| 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 |
| 현금영수증(개인)전용 | ||||
| cash_rcpt_pub_type | number | 현금 영수증 발행 유형 (1: 소득공제용, 2: 지출증빙용) *해당 요청 파라미터와 현금 영수증 발행 번호 유형, 현금 영수증 발행 번호 파라미터들의 값이 있으면 전용페이 계좌/가상계좌 결제 승인 이후 해당 정보들로 현금영수증을 발행 처리합니다. 만약 해당 요청 값들이 없으면 자진 발급번호로 발행 처리합니다. |
||
| cash_rcpt_pub_no_type | number | 현금 영수증 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급 등 기타) *해당 요청 파라미터와 현금 영수증 발행 유형, 현금 영수증 발행 번호 파라미터들의 값이 있으면 전용페이 계좌/가상계좌 결제 승인 이후 해당 정보들로 현금영수증을 발행 처리합니다. 만약 해당 요청 값들이 없으면 자진 발급번호로 발행 처리합니다. |
||
| cash_rcpt_pub_no | string | 20 | 현금 영수증 발행 번호 (*발행 유형 "소득공제"는 휴대폰번호, “지출증빙"은 사업자 번호, 발행 유형 “자진 발급”은 국세청 지정 코드 "010-000-1234”을 발행 번호로 자체 발급 처리) *해당 요청 파라미터와 현금 영수증 발행 유형, 현금 영수증 발행 번호 유형 파라미터들의 값이 있으면 전용페이 계좌/가상계좌 결제 승인 이후 해당 정보들로 현금영수증을 발행 처리합니다. 만약 해당 요청 값들이 없으면 자진 발급번호로 발행 처리합니다. |
|
◎ 개인용 통합결제창 결제를 요청하는 경우
{
"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 통합결제 결제하기(인증) 완료 이후, 고객사의 return_url POST 데이터로 주문 및 승인 토큰 정보가 전달됩니다. return_url은 결제 요청 API에 전달한 파라미터 값을 의미합니다.
| Redirect URL | HTTP 메서드 |
|---|---|
| return_url | 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 | (가상계좌) 상품명 |
| 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분(토큰 만료) 안에 요청하여야 합니다.
전용페이 계좌이체는 전용페이 사용자 휴대폰 번호(본인인증 결과정보)로 현금영수증을 자동 발행합니다.
| 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 | 할부 개월 수 | |
| card_pay_amt | number |
카드 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| zeropay_pay_amt | number |
제로페이 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| zeropay_tid | string | 50 |
제로페이 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| seoulpay_pay_amt | number |
서울페이 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| seoulpay_tid | string | 50 |
서울페이 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| locpay_pay_amt | number |
지역화폐 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| locpay_tid | string | 50 |
지역화폐 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| list | JSON Array |
- *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| gfct_cd | string | 20 |
상품권 코드 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| gfct_name | string | 50 |
상품권 명 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| gfct_amt | number |
상품권 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| 계좌이체(pay_info) | ||||
| bank_cd | string | 3 | 은행 코드 | |
| bank_name | string | 20 | 은행 명 | |
| bank_acct_no | string | 14 | 은행 계좌 번호 (*전용페이 계좌이체 시 전달되는 앞 3자리, 맨 뒤 3자리 외 마스킹 계좌번호) | |
| bank_acct_pay_amt | number | 은행 계좌 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| zeropay_pay_amt | number | 제로페이 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| zeropay_tid | string | 50 | 제로페이 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| seoulpay_pay_amt | number | 서울페이 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| seoulpay_tid | string | 50 | 서울페이 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| locpay_pay_amt | number | 지역화폐 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| locpay_tid | string | 50 | 지역화폐 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| list | JSON Array | - *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| gfct_cd | string | 20 | 상품권 코드 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| gfct_name | string | 50 | 상품권 명 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| gfct_amt | number | 상품권 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| cash_rcpt_ret_code | number | 현금 영수증 응답 코드 | ||
| cash_rcpt_ret_msg | string | 100 | 현금 영수증 응답 메시지 | |
| cash_rcpt_pub_tid | string | 50 | (PG 발행취소 · 재발행 요청용)현금 영수증 발행 거래번호 | |
| cash_rcpt_aprv_no | string | 50 | 현금 영수증 승인 번호 | |
| cash_rcpt_pub_type | number | 현금 영수증 발행 유형 (1: 소득공제용, 2: 지출증빙용) | ||
| cash_rcpt_pub_clf_type | number | 현금 영수증 발행 구분 유형(1: 구매자발급, 2: 자진발급) | ||
| cash_rcpt_pub_no_type | number | 현금 영수증 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급) | ||
| cash_rcpt_pub_no | string | 20 | 현금 영수증 발행 번호 (소득공제용 휴대폰번호 또는 지출증빙용 사업자 번호 또는 자진 발급용 국세청 지정 코드 010-000-1234 등) | |
| cash_rcpt_amt | number | 현금 영수증 발행 금액 | ||
| 선물쏨 금액이 있는 경우(pay_info) | ||||
| cash_rcpt_ret_code | number | 현금 영수증 응답 코드 | ||
| cash_rcpt_ret_msg | string | 100 | 현금 영수증 응답 메시지 | |
| cash_rcpt_pub_tid | string | 50 | (PG 발행취소 · 재발행 요청용)현금 영수증 발행 거래번호 | |
| cash_rcpt_aprv_no | string | 50 | 현금 영수증 승인 번호 | |
| cash_rcpt_pub_type | number | 현금 영수증 발행 유형 (1: 소득공제용, 2: 지출증빙용) | ||
| cash_rcpt_pub_clf_type | number | 현금 영수증 발행 구분 유형(1: 구매자발급, 2: 자진발급) | ||
| cash_rcpt_pub_no_type | number | 현금 영수증 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급) | ||
| cash_rcpt_pub_no | string | 20 | 현금 영수증 발행 번호 (소득공제용 휴대폰번호 또는 지출증빙용 사업자 번호 또는 자진 발급용 국세청 지정 코드 010-000-1234 등) | |
| cash_rcpt_amt | number | 현금 영수증 발행 금액 | ||
| 지역화폐(서울페이) (pay_info) | ||||
| list | JSON Array | - | ||
| gfct_cd | string | 20 | 상품권 코드 | |
| gfct_name | string | 50 | 상품권 명 | |
| gfct_amt | number | 상품권 금액 | ||
| 간편결제 (pay_info) | ||||
| primary_pymt_cd | string | 10 | CARD : 카드, BANK : 계좌, MONEY : 머니 | |
| crcd_cpny_cd | string | 4 | 카드사 코드 *카드 결제인 경우 |
|
| card_name | string | 20 | 카드 종류 *카드 결제인 경우 |
|
| card_no | string | 18 카드 | 번호 (*마스킹 처리) *카드 결제인 경우 |
|
| card_aprv_no | string | 50 | 카드 승인 번호 *카드 결제인 경우 |
|
| install_month | string | 2 | 할부 개월 수 *카드 결제인 경우 |
|
| bank_cd | string | 3 | 은행 코드 *계좌 결제인 경우 |
|
| bank_name | string | 20 | 은행 명 *계좌 결제인 경우 |
|
| bank_acct_no | string | 14 | 은행 계좌 번호 (*마스킹 처리) *계좌 결제인 경우 |
|
| total_pay_amount | number | 간편결제 총 결제금액 구매자 결제금액+할인금액(discount_amount) |
||
| apply_pay_amount | number | 구매자 결제 금액 주 결제 수단 결제금액+포인트/머니 결제금액+기프트 카드 결제금액 |
||
| primary_pay_amount | number | 주 결제 수단 결제금액 | ||
| point_pay_amount | number | 포인트/머니 결제금액 | ||
| gift_card_amount | number | 기프트 카드 결제금액 | ||
| smp_discount_amount | number | 간편결제 할인금액 | ||
| zeropay_pay_amt | number | 제로페이 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| zeropay_tid | string | 50 | 제로페이 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| seoulpay_pay_amt | number | 서울페이 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| seoulpay_tid | string | 50 | 서울페이 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| locpay_pay_amt | number | 지역화폐 결제 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| locpay_tid | string | 50 | 지역화폐 거래번호 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| list | JSON Array | - *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| gfct_cd | string | 20 | 상품권 코드 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| gfct_name | string | 50 | 상품권 명 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
|
| gfct_amt | number | 상품권 금액 *복합 결제용 응답 입니다. 단일 결제 응답 데이터에는 포함되지 않습니다. |
||
| cash_rcpt_ret_code | number | 현금 영수증 응답 코드 | ||
| cash_rcpt_ret_msg | string | 100 | 현금 영수증 응답 메시지 | |
| cash_rcpt_pub_tid | string | 50 | (PG 발행취소 · 재발행 요청용)현금 영수증 발행 거래번호 | |
| cash_rcpt_aprv_no | string | 50 | 현금 영수증 승인 번호 | |
| cash_rcpt_pub_type | number | 현금 영수증 발행 유형 (1: 소득공제용, 2: 지출증빙용) | ||
| cash_rcpt_pub_clf_type | number | 현금 영수증 발행 구분 유형(1: 구매자발급, 2: 자진발급) | ||
| cash_rcpt_pub_no_type | number | 현금 영수증 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급) | ||
| cash_rcpt_pub_no | string | 20 | 현금 영수증 발행 번호 (소득공제용 휴대폰번호 또는 지출증빙용 사업자 번호 또는 자진 발급용 국세청 지정 코드 010-000-1234 등) | |
| cash_rcpt_amt | number | 현금 영수증 발행 금액 | ||
| npoint_cash_amount | number | 포인트/머니 결제 금액중 현금 영수증 발행 금액 *네이버 페이인 경우. |
||
| gift_card_cash_amount | number | 기프트카드 결제 금액중 현금 영수증 발행 금액 *네이버 페이인 경우. |
||
| primary_cash_amount | number | 현금성 주 결제 수단 결제 금액중 현금 영수증 발행 금액 *네이버 페이인 경우. |
||
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| 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 입니다.
| 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) 포함된 결제인 경우에는 부분 취소 불가)
| 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."
}
고객사 사용자의 전용페이 관리화면(전용페이 결제수단 등록, 전용페이 결제 비밀번호 수정 · 생략 · 사용, 전용페이 결제수단 삭제, 머니 사용 전용페이 비밀번호 인증 등) 요청 용 API 입니다. HTTP POST 메서드는 전용페이 결제수단 등록, 머니 사용 전용페이 비밀번호 인증 화면을, PUT 메서드는 전용페이 결제 비밀번호 수정, 비밀번호 생략 화면을, DELETE 메서드는 전용페이 결제수단 삭제 화면을 redirect_url 로 응답합니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/payments/o2opay/manage | POST결제수단 등록 | Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/modify | POST비밀번호 수정 | Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/pwd-skip | POST비밀번호 생략 | Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/pwd-use | POST비밀번호 사용 | Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/delete | POST결제수단 삭제 | Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/pwd-auth | POST머니 사용 POST전용 페이 POST비밀번호 인증 |
Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/control | POST결제수단 관리 | Authorization: SPGKEY {API Key} | payment |
| v1.0/payments/o2opay/manage/delete-user | POST사용자 삭제 | Authorization: SPGKEY {API Key} | payment |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| user_id | 필수 | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| user_name | 필수 | string | 20 | 고객사 사용자(회원) 명 |
| user_ci | 필수 | string | 88 | 고객사 사용자 CI(Connecting information) *전용페이 최초 사용자를 위한 본인인증 시, 고객사에서 전달한 user_ci와 휴대폰 본인인증 결과가 다를 경우, 전용페이 회원 등록이 불가합니다. |
| device_type | 필수 | number | (결제 요청)기기 유형 (1: 모바일, 2: PC) | |
| main_color | string | 6 | PG 결제 화면 메인 색상 코드 *기본값은 FFFFFF |
|
| point_color | string | 6 | PG 결제 화면 포인트 색상 코드 *기본값은 5379FF |
|
| chnl_code | string | 10 | 땡겨요앱을 호출하는 채널에 따른 코드 정의 | |
| param_ispt_hash | 필수 | string | 1000 | 파라메터 검증 해시 *고객사 요청 파라미터 검증을 위한 sha256 hash 값을 의미하며, "sha256(client_id + user_id + user_ci + payment API Key)" 조합으로 생성된다. |
| return_url | 필수 | string | 100 | 전용페이 결제수단 등록 이후 이동하는 고객사 URL |
| cancel_url | 필수 | string | 100 | 전용페이 결제수단 등록 취소 시 이동하는 고객사 URL |
| fail_url | 필수 | string | 100 | 전용페이 결제수단 등록 실패 시 이동하는 고객사 URL |
전용페이 결제 비밀번호 수정, 결제 비밀번호 생략, 머니 사용 전용페이 비밀번호 인증 화면용 요청 데이터 정의 입니다.
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용페이 사용자 번호(4.12.2. 등록 결과 POST 데이터의 전용 페이 사용자 번호) | |
| device_type | 필수 | number | (결제 요청)기기 유형 (1: 모바일, 2: PC) | |
| main_color | string | 6 | PG 결제 화면 메인 색상 코드 *기본값은 FFFFFF |
|
| point_color | string | 6 | PG 결제 화면 포인트 색상 코드 *기본값은 5379FF |
|
| return_url | 필수 | string | 100 | 요청 처리 이후 이동하는 고객사 URL |
| cancel_url | 필수 | string | 100 | 요청 처리 취소 시 이동하는 고객사 URL |
| fail_url | 필수 | string | 100 | 요청 처리 실패 시 이동하는 고객사 URL |
비밀번호 사용은 웹 화면이 필요 없는 API 이므로, return_url, cancel_url, fail_url 파라미터가 생략됩니다.
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용페이 사용자 번호(4.12.2. 등록 결과 POST 데이터의 전용 페이 사용자 번호) |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용페이 사용자 번호(4.12.2. 등록 결과 POST 데이터의 전용 페이 사용자 번호) | |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| bill_key | 필수 | string | 50 | 빌 키 (전용페이 결제수단 등록 시 발급되는 고유 식별 정보) *"전용페이 결제수단 목록 조회 API"의 응답 중 "빌 키" 항목입니다. 예로, 2개의 신용카드, 1개의 은행계좌를 전용페이로 등록한 사용자는 총 3개의 빌 키를 응답 받습니다. |
| device_type | 필수 | number | (결제 요청)기기 유형 (1: 모바일, 2: PC) | |
| main_color | string | 6 | PG 결제 화면 메인 색상 코드 *기본값은 FFFFFF |
|
| point_color | string | 6 | PG 결제 화면 포인트 색상 코드 *기본값은 5379FF |
|
| return_url | 필수 | string | 100 | 전용페이 결제수단 삭제 이후 이동하는 고객사 URL |
| cancel_url | 필수 | string | 100 | 전용페이 결제수단 삭제 취소 시 이동하는 고객사 URL |
| fail_url | 필수 | string | 100 | 전용페이 결제수단 삭제 실패 시 이동하는 고객사 URL |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| user_ci | 필수 | string | 88 | 고객사 사용자 CI(Connecting information) *전용페이 최초 사용자를 위한 본인인증 시, 고객사에서 전달한 user_ci와 휴대폰 본인인증 결과가 다를 경우, 전용페이 회원 등록이 불가합니다. |
| user_id | 필수 | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| user_name | 필수 | string | 20 | 고객사 사용자(회원) 명 |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) (전용페이 결제수단 : shpay) |
| device_type | 필수 | number | (결제 요청)기기 유형 (1: 모바일, 2: PC) | |
| main_color | string | 6 | PG 결제 화면 메인 색상 코드 *기본값은 FFFFFF |
|
| point_color | string | 6 | PG 결제 화면 포인트 색상 코드 *기본값은 5379FF |
|
| return_url | 필수 | string | 100 | 전용페이 결제수단 관리 이후 이동하는 고객사 URL |
| cancel_url | 필수 | string | 100 | 전용페이 결제수단 관리 취소 시 이동하는 고객사 URL |
| fail_url | 필수 | string | 100 | 전용페이 결제수단 관리 실패 시 이동하는 고객사 URL |
고객사 회원탈퇴 등의 경우, PG의 전용페이 사용자 삭제를 요청할 수 있는 API 입니다.
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용페이 사용자 번호 | |
| device_type | 필수 | number | (결제 요청)기기 유형 (1: 모바일, 2: PC) | |
| main_color | string | 6 | PG 결제 화면 메인 색상 코드 *기본값은 FFFFFF |
|
| point_color | string | 6 | PG 결제 화면 포인트 색상 코드 *기본값은 5379FF |
|
| return_url | 필수 | string | 100 | 전용페이 결제수단 관리 이후 이동하는 고객사 URL |
| cancel_url | 필수 | string | 100 | 전용페이 결제수단 관리 취소 시 이동하는 고객사 URL |
| fail_url | 필수 | string | 100 | 전용페이 결제수단 관리 실패 시 이동하는 고객사 URL |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| 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/o2opay...?token=202100235959.." // (전용페이 관리용)웹 화면
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
전용페이 관리화면 요청 API의 redirect_url 을 이용하여, 고객사 사용자에게 PG 웹 화면을 출력합니다.
| Redirect URL | HTTP 메서드 |
|---|---|
| redirect_url | GET |
고객사 사용자의 전용페이 관리화면 처리 이후, 고객사의 return_url POST 데이터로 결과 정보가 전달됩니다. return_url은 전용페이 관리화면 요청 API에 전달한 파라미터 값을 의미합니다.
| Redirect URL | HTTP 메서드 |
|---|---|
| return_url | POST |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| pgcode | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| bill_key | string | 50 | 빌 키 (전용페이 결제수단 등록 시 발급되는 고유 식별 정보) |
| xclv_pay_user_no | number | 전용 페이 사용자 번호 |
{
"ret_code": 0,
"ret_msg": "OK",
"pgcode": "shpaycard",
"bill_key": "auoh1238u123uy...",
“xclv_pay_user_no”: 1
}
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| ispt_hash | string | 1000 | 인증 해시 *PG의 전용페이 비밀번호 인증 응답 파라미터 검증을 위한 sha256 hash 값을 의미하며, "sha256(client_id + xclv_pay_user_no + ret_code)" 조합으로 생성된다. |
{
"ret_code": 0,
"ret_msg": "OK",
"ispt_hash": "auoh1238u123uy..."
}
전용페이 결제 비밀번호 수정, 비밀번호 생략, 결제수단 삭제, 머니 사용 전용페이 비밀번호 인증 결과에 대한 POST 데이터를 전달합니다. 비밀번호 사용은 웹 화면이 필요 없는 API 이므로, 별도 POST 데이터가 전달되지 않습니다.
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
{
"ret_code": 0,
"ret_msg": "OK"
}
{
"ret_code": 999,
"ret_msg": "user ci is missing or incorrect."
}
PG 전용페이 사용자의 결제 비밀번호 사용 여부 조회를 요청할 수 있는 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/payments/o2opay/pwd-use | GET | Authorization: SPGKEY {API Key} | search |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용 페이 사용자 번호 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| pwd_use_yn | char | 1 | 비밀번호 사용 여부 (N: 사용 안 함, Y: 사용) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"pwd_use_yn": "Y"
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
PG의 전용페이 결제수단 삭제를 요청할 수 있는 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/payments/o2opay/payment-method | POST | Authorization: SPGKEY {API Key} | payment |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용 페이 사용자 번호 | |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| bill_key | 필수 | string | 50 | 빌 키 (전용페이 결제수단 등록 시 발급되는 고유 식별 정보) *"전용페이 결제수단 목록 조회 API"의 응답 중 "빌 키" 항목입니다. 예로, 2개의 신용카드, 1개의 은행계좌를 전용페이로 등록한 사용자는 총 3개의 빌 키를 응답 받습니다. |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK"
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
고객사 회원탈퇴 등의 경우, PG의 전용페이 사용자 삭제를 요청할 수 있는 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/payments/o2opay/user/secession | POST | Authorization: SPGKEY {API Key} | payment |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용 페이 사용자 번호 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK"
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
고객사 사용자의 전용페이 결제수단 목록 조회 용 API 입니다. 고객사 사용자의 최근 등록 순 전용페이 신용카드, 계좌 목록을 응답합니다. 즐겨찾기 결제수단은 등록 순과 관계없이 가장 먼저 조회됩니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/payments/info/payment-method-list | GET | Authorization: SPGKEY {API Key} | search |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용 페이 사용자 번호 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| client_id | string | 10 | 고객사 아이디 |
| user_id | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| pwd_use_yn | char | 1 | 비밀번호 사용 여부 (N: 사용 안 함, Y: 사용) |
| new_member_yn | char | 1 | 신규 회원 여부(N:기존회원, Y:신규 회원) |
| total_count | number | (조회)총 수 | |
| list | JSON Array | - | |
| pgcode | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| bill_key | string | 50 | 전용페이 인증 · 등록 후 발급되는 PG의 고유 식별 정보 |
| instt_name | string | 50 | 기관 명 *전용페이 카드사 명 또는 은행 명 입니다. |
| instt_pay_no | string | 50 | 기관 결제 번호 *마스킹 된 전용페이 카드 번호 또는 계좌 번호 입니다. |
| image_url | string | 100 | 전용페이 결제수단 별 이미지 URL |
| fav_yn | char | 1 | 즐겨찾기 여부(N:아니오, Y:예) |
| product_code | string | 6 | 상품 코드 *전용페이 신한카드 상품 코드 입니다. |
| bank_card_cd | string | 4 | 카드사 & 기관 코드 *6.1 카드사 코드, 6.2 기관 코드 참조 |
| instt_service_stat_type | number | 기관 서비스 상태 타입(1: 정상, 2: 서비스불가) * 해당 서비스 상태 코드가 정상이 아닌경우 선택불가 처리 |
|
| instt_service_noti_msg | string | 기관 서비스 메시지 | |
| reserved1 | string | 200 | 가맹점 예약 필드 1.계좌 상품코드 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"client_id": "o2o",
"user_id": "test_01",
"pwd_use_yn": "Y",
"total_count": 3,
"list": [
{
"pgcode": "shpaycard",
"bill_key": "aadhouzxx22389…”,
"instt_name”: "신한카드",
"instt_pay_no”: "123***9001",
"image_url": "https://...",
"fav_yn": “Y”,
“product_code”: “BJBBE4”,
“bank_card_cd”: “S005”,
“instt_service_stat_type”: “1”, //정상
“instt_service_noti_msg”: “”
},
{
"pgcode": "shpaybank",
"bill_key": "8jkmn23oyufoeho17…”,
"instt_name”: "신한은행",
"instt_pay_no”: "123***9001",
"image_url": "https://...",
"fav_yn": “N”,
“bank_card_cd”: “088” ,
“instt_service_stat_type”: “2”, //서비스불가
“instt_service_noti_msg”: “신한은행 서비스 장애”
}
]
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
머니 환불용 전용페이 계좌 조회 API 입니다. 고객사 사용자의 환불용 전용페이 계좌정보(단건)를 응답합니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/payments/o2opay/pybk-acct | GET | Authorization: SPGKEY {API Key} | search |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| xclv_pay_user_no | 필수 | number | 전용 페이 사용자 번호 | |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| bill_key | 필수 | string | 50 | 고객사 사용자가 선택한 환불용 계좌의 빌 키 (전용페이 인증 · 등록 후 발급되는 PG의 고유 식별 정보) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| instt_cd | string | 50 | 기관 코드 (6. 기관 코드 참조) |
| acct_no | string | 50 | 계좌 번호 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"instt_cd": "088",
"acct_no": "123456789..."
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
고객사가 현금영수증 발급을 별도 요청(전용페이 계좌이체로 충전한 머니 사용 시 등)할 수 있는 API 입니다.
{tid}는 현금영수증 발급을 요청하는 고객사의 고유한 거래번호(또는 주문번호 등)을 의미합니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/cashreceipt/issue/{tid} | POST | Authorization: SPGKEY {API Key} | payment |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| user_id | 필수 | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| pub_type | 필수 | number | 발행 유형(1: 소득공제용, 2: 지출증빙용) | |
| tx_type | 필수 | number | 거래 유형 (1: 승인, 2: 취소) | |
| pub_no_type | 필수 | number | 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급 등 기타) | |
| pub_no | string | 20 | 발행 번호 (*발행 유형 "소득공제"는 휴대폰번호, “지출증빙"은 사업자 번호, 발행 유형 “자진 발급”은 국세청 지정 코드 "010-000-1234”을 발행 번호로 자체 발급 처리) |
|
| tx_amount | 필수 | number | (현금영수증 발행 요청)거래 금액 | |
| tax_amount | number | 부가세 금액 (미 입력 시 0 원) | ||
| fee_amount | number | 수수료 금액 (미 입력 시 0 원) | ||
| org_pub_tid | string | 50 | (현금영수증 취소 또는 재 발행 요청 시)원 발행 거래번호 | |
| cncl_rsn | 선택적 필수 | string | 100 | 취소 사유 *현금영수증 발행 취소 시에만 필수 값 |
| cncl_cd | 선택적 필수 | number | 취소 사유코드 (1: 승인취소, 2: 오류취소) | |
| pub_req_date | string | 10 | 현금영수증 발행요청일자(YYYY-MM-DD) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| pub_tid | string | 50 | (PG 발행취소 · 재발행 요청용)발행 거래번호 |
| aprv_no | string | 50 | (현금영수증)승인 번호 |
| pub_type | number | 발행 유형 (1: 소득공제용, 2: 지출증빙용) | |
| pub_clf_type | number | 발행 구분 유형 (1: 구매자발급, 2: 자진발급) | |
| pub_no | string | 20 | 발행 번호 (소득공제용 휴대폰번호 또는 지출증빙용 사업자 번호 또는 자진 발급용 국세청 지정 코드 010-000-1234 등) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"pub_tid": "20210831duahuhwqyjdshlhfkljaajhflasdfuoiwueyo1uyde" // 발행 거래번호
“aprv_no”; “13341477”
“pub_type”: 1
“pub_clf_type”: 1
“pub_no”: “010-000-1234”
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
고객사 사용자의 PG 현금영수증 발행확인 용 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 키 유형 |
|---|---|---|---|
| v1.0/cashreceipt/issue-info | GET | Authorization: SPGKEY {API Key} | search |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| tid | 필수 | string | 50 | 고객사의 고유한 거래번호(또는 주문번호 등) |
| tx_type | 필수 | number | 거래 유형 (1: 승인, 2: 취소) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| pub_tid | string | 50 | (PG 발행취소 · 재발행 요청용)발행 거래번호 |
| pub_type | number | 발행 유형(1: 소득공제용, 2: 지출증빙용) | |
| pub_clf_type | number | 발행 구분 유형 (1: 구매자발급, 2: 자진발급) | |
| pub_no_type | number | 발행 번호 유형 (1: 휴대폰번호, 2: 사업자번호, 3: 자진발급 등 기타) | |
| pub_no | string | 20 | 발행 번호 (*발행 유형 "소득공제"는 휴대폰번호, “지출증빙"은 사업자 번호, 발행 유형 “자진 발급”은 국세청 지정 코드 "010-000-1234”을 발행 번호로 자체 발급 처리) |
| tx_type | number | 거래 유형 (1: 승인, 2: 취소) | |
| tx_amount | number | (현금영수증 발행 요청)거래 금액 | |
| aprv_no | string | 50 | (현금영수증)승인 번호 |
| proc_stat | number | 처리상태 (1:발행요청, 2:요청실패, 3:처리완료, 4:처리실패) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"pub_tid" : "o2o2023110914070153800023096",
"pub_type": 1 ,
"pub_clf_type": 1 ,
"pub_no_type": 1,
"pub_no": 01012345678,
"tx_type": 1,
"tx_amount": 2000,
"aprv_no": "J20000036",
"proc_stat": 1
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "there is no data."
}
고객사 사용자의 PG (결제)거래 확인서 화면 요청 용 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 입니다.
| 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 입니다.
| 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."
}
핏콜라보에 등록한 카드 목록 조회용 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 토큰 유형 |
|---|---|---|---|
| v1.0/payments/info/payment-card-list | GET | Authorization: SPGKEY {API Key} | search |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| xclv_pay_user_no | 필수 | number | 전용 페이 사용자 번호 | |
| user_ci | 필수 | string | 88 | 고객사 사용자 CI(Connecting information) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| oneclick | string | 10 | 가맹점 회원 기준 원클릭 설정 |
| ui_type | string | 10 | 결제 UI 구분 * 원클릭 설정 상태 : “Y”, 원클릭 미설정 상태 : “N” |
| list_count | number | 간편결제 계정 개수 | |
| list | JSON Array | ||
| card_name | string | 100 | 간편결제 명 |
| card_no | string | 20 | 카드번호(마스킹) |
| acnt_id | string | 30 | 간편결제 계정 ID |
| card_cpny_cd | string | 4 | 카드사 코드 |
| card_cpny_name | string | 12 | 카드사 명 |
| user_no | string | 11 | 간편결제 회원번호 |
| install_ment_yn | string | 1 | 할부가능 여부 |
| is_oneclick | string | 1 | 원클릭 결제 설정 여부 * Y: 설정, N: 해지 |
| image_url | string | 카드 이미지 URL |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
“oneclick”: "ON",
“ui_type”: “Y”,
"list_count": 1,
list": [{
"card_brand_name":"현대카드M2",
"card_num_mask":"4***********101*",
"acnt_id": "TVPAY2021011111111100000017273",
"card_code":"2077",
"card_name":"현대카드",
"user_no":"M0000000040",
"install_ment_yn":"Y",
"is_oneclick":"Y"
}]
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "there is no data."
}
PG약관 조회용 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."
}
전용페이 정기결제 신청 API입니다. 정기결제 승인요청 전에 신청이 필요 합니다.
| URL | HTTP 메서드 | HTTP 헤더 | 토큰 유형 |
|---|---|---|---|
| v1.0/rpay/xclv-pay-req | POST | Authorization: SPGKEY {API Key} | payment |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) shpaycard 고정. * bill_key 있으면 바로 신청처리. * bill_key 없으면 결제수단 선택 화면 호출 |
| client_id | 필수 | string | 10 | 고객사 아이디 |
| user_id | 필수 | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| user_name | 필수 | string | 20 | 고객사 사용자(회원) 명 |
| product_id | 필수 | string | 10 | (결제)상품 아이디 |
| product_name | 필수 | string | 50 | (결제)상품 명 |
| amount | 필수 | number | (결제 상품)금액 | |
| 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) 계산식을 적용, 소수점 이하 반올림으로 자동 계산합니다. |
||
| mphn_no | string | 15 | 휴대폰번호 | |
| email_addr | string | 50 | 메일 주소 | |
| return_url | 필수 | string | 100 | 정기결제 등록 이후 이동하는 고객사 URL |
| cancel_url | 필수 | string | 200 | 정기결제 등록 취소 시 이동하는 고객사 URL |
| fail_url | 필수 | string | 200 | 정기결제 등록 실패 시 이동하는 고객사 URL |
| param_ispt_hash | 필수 | string | 1000 | 파라메터 검증 해시 *고객사 요청 파라미터 검증을 위한 sha256 hash 값을 의미하며, "sha256(client_id + user_id + product_id + payment API Key)" 조합으로 생성된다. |
| bill_key | string | 50 | 빌 키 (전용페이 결제수단 등록 시 발급되는 고유 식별 정보) * bill_key 있으면 바로 신청처리. * bill_key 없으면 결제수단 선택 화면 호출. |
|
| user_ci | 선택적 필수 | string | 88 | 고객사 사용자 CI(Connecting information) * bill_key가 없을때 필수. |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| 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."
}
결제수단을 shpay 로 요청했을 경우 결제 요청 API의 redirect_url 을 이용하여, 고객사 사용자에게 PG 웹 화면을 출력합니다.
| Redirect URL | HTTP 메서드 |
|---|---|
| redirect_url | GET |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| user_id | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| rpay_billkey | string | 50 | 정기결제빌키 |
| card_billkey | string | 50 | 카드빌키 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 [땡겨요전용] “정기결제 카드등록에 실패하였습니다. 카드 등록 전환이 필요합니다.” 8002 에러 메시지 응답시.. 4.34 전용페이 카드등록 전환을 위한 등록카드 삭제 요청 API 처리 필요. |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"user_id": "test_01",
"rpay_billkey": "auoh1238u123uy...",
"card_billkey": "hkjf1238u123uy...",
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "token is missing or incorrect."
}
PG에서 일반결제로 사용할 수 있는 카드사 목록 조회용 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 토큰 유형 |
|---|---|---|---|
| v1.0/smpayments/info/appcard-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 | 4 | 카드사 코드 |
| smp_card_cpny_cd | string | 10 | 간편결제 카드사 코드 |
| card_cpny_name | string | 20 | 카드사 명 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| 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카드"
}
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "there is no data."
}
핏콜라보에 등록한 카드 목록 조회용 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 토큰 유형 |
|---|---|---|---|
| v1.0/smpayments/info/payment-appcard-list | GET | Authorization: SPGKEY {API Key} | search |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| user_id | 필수 | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| user_ci | 필수 | string | 88 | 고객사 사용자 CI(Connecting information) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| oneclick_on_off | string | 10 | 가맹점 회원 기준 원클릭 설정 상태(ON, OFF) |
| ui_type | string | 10 | 결제 UI 구분 * 원클릭 설정 상태 : “Y”, 원클릭 미설정 상태 : “N” |
| list_count | number | 간편결제 계정 개수 | |
| list | JSON Array | ||
| card_name | string | 100 | 간편결제 명 |
| card_no | string | 20 | 카드번호(마스킹) |
| acnt_id | string | 30 | 간편결제 계정 ID |
| card_cpny_cd | string | 4 | 카드사 코드 |
| smp_card_cpny_cd | string | 10 | 간편결제 카드사 코드 |
| card_cpny_name | string | 12 | 카드사 명 |
| user_no | string | 11 | 간편결제 회원번호 |
| install_ment_yn | string | 1 | 할부가능 여부 |
| is_oneclick | string | 1 | 원클릭 결제 설정 여부 * Y: 설정, N: 해지 |
| image_url | string | 카드 이미지 URL |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK",
"list_count": 1,
“oneclick_on_off”: "ON",
list": [{
"card_brand_name":"현대카드M2",
"card_num_mask":"4***********101*",
"acnt_id": "TVPAY2021011111111100000017273",
"card_code":"2077",
"card_name":"현대카드",
"user_no":"M0000000040",
"install_ment_yn":"Y",
"is_oneclick":"Y"
}]
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "there is no data."
}
핏콜라보에 등록한 카드 삭제용 API 입니다.
| URL | HTTP 메서드 | HTTP 헤더 | 토큰 유형 |
|---|---|---|---|
| v1.0/smpayments/o2opay/payment-appcard-del | POST | Authorization: SPGKEY {API Key} | payment |
| 파라미터 | 필수 여부 | 자료형 | 크기 | 설명 |
|---|---|---|---|---|
| client_id | 필수 | string | 10 | 고객사 아이디 |
| pgcode | 필수 | string | 10 | 결제수단 코드(5. 결제수단 & 오류코드 참조) |
| user_id | 필수 | string | 50 | 고객사 사용자(회원) 아이디(이메일, 영문 및 숫자 가능) |
| user_ci | 필수 | string | 88 | 고객사 사용자 CI(Connecting information) |
| acnt_id | 필수 | string | 30 | 간편결제 계정 ID (4.30. 간편결제 앱카드 목록 조회(핏콜라보) API 응답 값) |
| smp_card_cpny_cd | 필수 | string | 4 | 카드사 코드 (4.30. 간편결제 앱카드 목록 조회(핏콜라보) API 응답 값) |
| user_no | 필수 | string | 11 | 간편결제 회원번호 (4.30. 간편결제 앱카드 목록 조회(핏콜라보) API 응답 값) |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
| 파라미터 | 자료형 | 크기 | 설명 |
|---|---|---|---|
| ret_code | number | 응답 코드 | |
| ret_msg | string | 100 | 응답 메시지 |
HTTP 1.1 200 OK
{
"ret_code": 0,
"ret_msg": "OK"
}
HTTP 1.1 401 Unauthorized
{
"ret_code": 998,
"ret_msg": "there is no data."
}
| 결제수단 코드 | 결제수단 코드 설명 |
|---|---|
| selpay | 통합결제창(간편결제, 신용카드, 신용카드(카드번호입력), 가상계좌 선택 UI 호출) |
| bizselpay | 법인통합결제창(신용카드(카드번호입력), 가상계좌, 연계대출 선택 UI 호출) |
| shpaycard | 전용페이 신용/체크카드 |
| shpaybank | 전용페이 계좌이체 |
| shpay | 전용페이 (결제수단 선택 UI 호출) |
| kakaopay | 카카오페이 간편결제 |
| naverpay | 네이버페이 간편결제 |
| fitcollabo | 핏콜라보 앱카드 간편결제 |