{
"swagger": "2.0",
"info": {
"title": "포트원 REST API",
"description": "* 결제완료된 정보, 결제취소, 상태별 결제목록 조회 등의 기능을 하는 REST API를 제공합니다.
비인증결제, 정기 자동결제 등 부가기능을 위한 REST API를 제공합니다.",
"contact": {
"name": "(주)코리아포트원",
"url": "https://admin.iamport.kr",
"email": "cs@portone.io"
},
"version": "1.0"
},
"host": "api.iamport.kr",
"basePath": "/",
"schemes": [
"https"
],
"paths": {
"/users/getToken": {
"post": {
"tags": [
"authenticate"
],
"summary": "access_token 발급 API",
"description": "API키 & API secret으로 access_token을 발급받습니다.
access_token의 만료기한은 발행 시간 부터 30분입니다. 만료된 토큰으로 API 요청을 하면 401 Unauthorized 응답을 받습니다.
REST API 키로 포트원 관리자 페이지의 상점 ・ 계정 관리
-> 내 식별코드 ・ API Keys
에서 확인하실 수 있습니다 : https://admin.portone.io
REST API Secret으로 포트원 관리자 페이지의 상점 ・ 계정 관리
-> 내 식별코드 ・ API Keys
에서 확인하실 수 있습니다 : https://admin.portone.io
베네피아 계정 아이디
\n" }, { "name": "benepia_password", "in": "formData", "description": "베네피아 계정 비밀번호", "required": true, "type": "string", "x-portone-name": "계정 비밀번호", "x-portone-description": "베네피아 계정 비밀번호
\n" }, { "name": "pg", "in": "formData", "description": "KCP PG설정이 2개 이상인 경우, 조회가 진행되길 원하는 KCP사이트코드를 지정하실 수 있습니다.\n pg 파라메터는 kcp.{KCP사이트코드} 형식의 문자열입니다. pg 파라메터가 누락되는 경우 PG설정 내 KCP설정을 자동 탐색하여 처리하게 됩니다.", "required": false, "type": "string", "x-portone-name": "PG 구분코드", "x-portone-description": "사용하고자 하는 PG사 구분코드
\n" } ], "responses": { "200": { "description": "베네피아 포인트 조회 완료", "schema": { "$ref": "#/definitions/BenepiaPointResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "베네피아 포인트 조회 실패" } }, "x-portone-supported-pgs": [ "kcp" ], "x-portone-category": "etc.benepia" } }, "/benepia/payment": { "post": { "tags": [ "benepia" ], "summary": "포인트 결제 요청 API", "description": "API를 통해 베네피아 포인트(복지포인트)사용 결제요청합니다.베네피아 계정 아이디
\n" }, { "name": "benepia_password", "in": "formData", "description": "베네피아 계정 비밀번호", "required": true, "type": "string", "x-portone-name": "계정 비밀번호", "x-portone-description": "베네피아 계정 비밀번호
\n" }, { "name": "merchant_uid", "in": "formData", "description": "가맹점 거래 고유번호. 이미 결제가 이뤄진 적이 있는 merchant_uid로는 결제요청이 불가능합니다.", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-summary": "가맹점 거래 고유번호
\n", "x-portone-description": "이미 결제가 이뤄진 적이 있는 merchant_uid로는 결제요청이 불가능합니다.
\n" }, { "name": "amount", "in": "formData", "description": "결제요청금액", "required": true, "type": "number", "x-portone-name": "결제요청금액", "x-portone-description": "결제 요청하고자 하는 금액
\n" }, { "name": "name", "in": "formData", "description": "주문명", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "주문명
\n" }, { "name": "buyer_name", "in": "formData", "description": "주문자명", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "주문자명
\n" }, { "name": "buyer_email", "in": "formData", "description": "주문자 Email주소", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email 주소", "x-portone-description": "주문자 Email주소
\n" }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "주문자 전화번호
\n" }, { "name": "buyer_addr", "in": "formData", "description": "주문자 주소", "required": false, "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "주문자 주소
\n" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "주문자 우편번호
\n" }, { "name": "pg", "in": "formData", "description": "PG 구분코드사용하고자 하는 PG사 구분코드
\n" }, { "name": "notice_url", "in": "formData", "description": "선언되지 않으면 포트원 관리자 페이지에 정의된 Notification URL값을 사용", "required": false, "type": "array", "x-portone-name": "Notification URL(Webhook URL)", "x-portone-description": "웹훅을 수신하고자 하는 URL
\n" }, { "name": "custom_data", "in": "formData", "description": "결제정보와 함께 저장할 custom_data. 객체로 전달되는 경우 JSON 문자열로 저장", "required": false, "type": "string", "x-portone-name": "추가정보", "x-portone-summary": "결제정보와 함께 저장할 custom_data
\n", "x-portone-description": "객체로 전달되는 경우 JSON 문자열로 저장
\n" } ], "responses": { "200": { "description": "베네피아 포인트 결제 완료", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "베네피아 포인트 결제 실패" } }, "x-portone-supported-pgs": [ "kcp" ], "x-portone-category": "etc.benepia" } }, "/certifications/{imp_uid}": { "get": { "tags": [ "certifications" ], "summary": "본인인증 결과조회 API", "description": "본인인증된 결과를 imp_uid를 이용하여 조회합니다.", "operationId": "getCertification", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 인증 고유번호", "required": true, "type": "string", "x-portone-name": "포트원 인증 고유번호", "x-portone-description": "본인인증 결과로 리턴 받은 포트원 인증 고유번호
\n" } ], "responses": { "200": { "description": "본인인증결과 조회 성공", "schema": { "$ref": "#/definitions/CertificationResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "본인인증결과를 찾을 수 없음" } }, "x-portone-supported-pgs": [ "danal", "inicis_unified", "inicis" ], "x-portone-category": "certification" }, "delete": { "tags": [ "certifications" ], "summary": "본인인증 정보삭제 API", "description": "본인인증 결과를 삭제합니다.본인인증 결과로 리턴받은 포트원 인증 고유번호
\n" } ], "responses": { "200": { "description": "본인인증결과 삭제 완료", "schema": { "$ref": "#/definitions/CertificationResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "본인인증결과를 찾을 수 없음" }, "500": { "description": "DB삭제도중 서버 장애 발생" } }, "x-portone-supported-pgs": [ "danal", "inicis_unified", "inicis" ], "x-portone-category": "certification" } }, "/certifications/otp/request": { "post": { "tags": [ "certifications" ], "summary": "본인인증 요청 API", "description": "사용자 개인정보를 API로 전달하여, 통신사로부터 확인되는 경우 OTP(6자리 인증번호)를 사용자에게 SMS로 전달합니다.\n본인인증 대상자 성명
\n" }, { "name": "phone", "in": "formData", "description": "본인인증 대상자 전화번호본인인증 대상자 전화번호
\n", "x-portone-description": "본인인증 대상자 생년월일
\n", "x-portone-description": "YYMMDD
6자리(연/월/일 사이에 - 또는 . 과 같은 기호가 포함되어도 무방 - 포트원 내에서 숫자 외에는 정규식으로 모두 제거처리함)
본인인증 대상자 주민등록번호 뒷부분 첫자리
\n", "x-portone-description": "주민등록번호 13자리 중 7번째 자리
\n2000년 이전 출생자는 1 또는 2, 2000년 이후 출생자는 3 또는 4
\n" }, { "name": "carrier", "in": "formData", "description": "본인인증 대상자 통신사 코드 (알뜰폰 사용자의 경우, carrier파라메터 SKT, KT, LGT 중 하나를 지정한 후 is_mvno : true 로 설정)\n본인인증 대상자 통신자 코드
\n", "x-portone-description": "알뜰폰 사용자의 경우, carrier파라메터 SKT, KT, LGT 중 하나를 지정한 후 is_mvno : true 로 설정
\n본인인증 대상자 알뜰폰 사용 여부
\n" }, { "name": "company", "in": "formData", "description": "가맹점 서비스명칭 또는 domain URL.가맹점 서비스명칭 또는 domain URL
\n", "x-portone-description": "KISA에서 대상자에게 발송하는 SMS에 안내될 서비스 명칭
\n" }, { "name": "merchant_uid", "in": "formData", "description": "본인인증 요청건을 식별하기 위한 가맹점 주문번호", "required": false, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "본인인증 요청건을 식별하기 위한 가맹점 주문번호
\n" }, { "name": "pg", "in": "formData", "description": "PG사 구분자본인인증을 요청하고자 하는 PG사 구분자
\n", "x-portone-description": "다날 상점아이디를 2개 이상 동시에 사용하시려는 경우 설정하시면 됩니다. danal.{상점아이디} 형태로 지정
\n" } ], "responses": { "200": { "description": "본인인증을 위한 대상자 정보 검증 완료(인증번호 SMS전송요청 중)", "schema": { "$ref": "#/definitions/CertificationOTPResponse" } }, "400": { "description": "대상자 개인정보 중 일부가 누락되었거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "처리 중 다날서버 응답오류 등 오류가 발생한 경우" } }, "x-portone-supported-pgs": [ "danal" ], "x-portone-category": "certification" } }, "/certifications/otp/confirm/{imp_uid}": { "post": { "tags": [ "certifications" ], "summary": "본인인증 완료 API", "description": "본인인증 요청 API를 통해 SMS로 전송된 인증번호를 전달하여 본인인증을 완료합니다.본인인증 요청 API 요청 후 응답된 인증 고유번호
\n" }, { "name": "otp", "in": "formData", "description": "SMS로 전송된 본인인증 번호", "required": true, "type": "string", "x-portone-name": "본인인증 번호", "x-portone-description": "SMS로 전송된 본인인증 번호
\n" } ], "responses": { "200": { "description": "본인인증완료", "schema": { "$ref": "#/definitions/CertificationResponse" } }, "400": { "description": "인증번호를 누락하였거나 이미 인증처리가 완료된 건에 대해 재요청하는 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid 에 해당되는 요청건이 없는 경우" }, "500": { "description": "처리 중 다날서버 응답오류 등 오류가 발생한 경우" } }, "x-portone-supported-pgs": [ "danal" ], "x-portone-category": "certification" } }, "/subscribe/customers": { "get": { "tags": [ "subscribe.customer" ], "summary": "빌링키 정보 복수조회 API", "description": "여러 개의 빌링키를 한 번에 조회하는 API입니다.빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" } ], "responses": { "200": { "description": "요청된 모든 customer_uid 에 대한 빌키정보 응답완료", "schema": { "$ref": "#/definitions/MultipleCustomersResponse" } }, "207": { "description": "요청된 customer_uid 중 일부 빌키정보 조회 실패(ex. 접근권한없음 또는 존재하지 않는 customer_uid)", "schema": { "$ref": "#/definitions/MultipleCustomersResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 customer_uid" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "payco", "paymentwall", "settle", "settle_acc", "settle_firm", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "billingkey", "x-portone-per-pg": { "paypal_v2": { "description": "연동 유의사항
\n빌링키 발급 수단 및 정보를 알 수 없음
\n페이팔을 통해 다양한 수단으로 빌링키 발급이 가능하지만, 페이팔이 승인 된 빌링키 발급 수단 및 정보를 알려주지 않습니다.\n따라서 페이팔 빌링키 발급 건의 결제 수단(pay_method)은 모두 paypal로 일괄 저장되며 발급 된 빌링키 정보 조회시 카드 정보는 모두 null로 내려갑니다.
\n\\\\ GET /subscribe/customers/{customer_uid}\n{\n ...중략\n pg_provider: 'paypal_v2',\n customer_uid: '{customer_uid}'\n card_name: null,\n card_code: null,\n card_number: null,\n card_type: null,\n}
"
}
}
}
},
"/subscribe/customers/{customer_uid}": {
"get": {
"tags": [
"subscribe.customer"
],
"summary": "빌링키 정보 단건조회 API",
"description": "구매자의 빌링키 정보 조회",
"operationId": "customer_view",
"consumes": [
"application/json",
"application/x-www-form-urlencoded"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "customer_uid",
"in": "path",
"description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호",
"required": true,
"type": "string",
"default": "customer_1234",
"x-portone-name": "구매자의 결제 수단 식별 고유번호",
"x-portone-description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/CustomerResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 customer_uid" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "payco", "paymentwall", "settle", "settle_acc", "settle_firm", "smartro_v2", "tosspayments", "paypal_v2", "nice_v2", "welcome", "tosspay_v2" ], "x-portone-category": "billingkey", "x-portone-per-pg": { "paypal_v2": { "description": "연동 유의사항
\n빌링키 발급 수단 및 정보를 알 수 없음
\n페이팔을 통해 다양한 수단으로 빌링키 발급이 가능하지만, 페이팔이 승인 된 빌링키 발급 수단 및 정보를 알려주지 않습니다.\n따라서 페이팔 빌링키 발급 건의 결제 수단(pay_method)은 모두 paypal로 일괄 저장되며 발급 된 빌링키 정보 조회시 카드 정보는 모두 null로 내려갑니다.
\n\\\\ GET /subscribe/customers/{customer_uid}\n{\n ...중략\n pg_provider: 'paypal_v2',\n customer_uid: '{customer_uid}'\n card_name: null,\n card_code: null,\n card_number: null,\n card_type: null,\n}
"
}
}
},
"post": {
"tags": [
"subscribe.customer"
],
"summary": "빌링키 발급 API",
"description": "구매자에 대해 빌링키 발급 및 저장 빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "pg", "in": "formData", "description": "API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.빌링키 발급을 받고자 하는 PG사 구분코드
\n" }, { "name": "customer_id", "in": "formData", "description": "구매자 식별 고유 번호 (필수 : 토스페이먼츠)", "required": false, "type": "string", "x-portone-name": "구매자 ID", "x-portone-description": "구매자 식별 고유 번호
\n", "x-portone-per-pg": { "tosspayments": { "required": true, "description": "customer_id는 optional이기 때문에 보내지 않아도 동작은 하지만 보내지 않으면\n (포트원이 빌링키 발급 요청시마다 customer_id에 uuid값을 채번하기 때문에)\n 구매자와 결제수단은 매칭되지 않으니 유념하시기 바랍니다.
\n" } } }, { "name": "card_number", "in": "formData", "description": "카드번호(dddd-dddd-dddd-dddd)", "required": true, "type": "string", "x-portone-name": "카드번호", "x-portone-description": "빌링키 발급 하고자 하는 카드의 번호(dddd-dddd-dddd-dddd
)
빌링키 발급 하고자 하는 카드 유효기간(YYYY-MM
)
생년월일6자리
\n", "x-portone-description": "법인카드의 경우 사업자등록번호10자리
\nPG사별로 혹은 계약상황에따라 필수값 여부가 상이합니다.
\n", "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "pwd_2digit", "in": "formData", "description": "카드비밀번호 앞 2자리로 PG사별로 혹은 계약상황에 따라 필수값 여부가 상이합니다.", "required": false, "type": "string", "x-portone-name": "카드비밀번호 앞 2자리", "x-portone-summary": "빌링키 발급 하고자 하는 카드비밀번호 앞 2자리
\n", "x-portone-description": "PG사별 혹은 계약상황에 따라 필수값 여부가 상이합니다.
\n", "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "cvc", "in": "formData", "description": "카드 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리). Paymentwall에서만 사용", "required": false, "type": "string", "x-portone-name": "카드 인증번호", "x-portone-description": "빌링키 발급 받고자 하는 카드 카드 뒷면 3자리, AMEX의 경우 4자리
\n", "x-portone-supported-pgs": [ "paymentwall" ], "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "customer_name", "in": "formData", "description": "고객(카드소지자) 관리용 성함", "required": false, "type": "string", "maxLength": 20, "x-portone-name": "카드소유자명", "x-portone-description": "고객(카드소지자) 관리용 성함
\n", "x-portone-per-pg": { "welcome": { "required": true } } }, { "name": "customer_tel", "in": "formData", "description": "고객(카드소지자) 전화번호", "required": false, "type": "string", "maxLength": 20, "x-portone-name": "카드소유자 연락처", "x-portone-description": "고객(카드소지자) 전화번호
\n" }, { "name": "customer_email", "in": "formData", "description": "고객(카드소지자) Email", "required": false, "type": "string", "maxLength": 200, "x-portone-name": "카드소유자 이메일주소", "x-portone-description": "고객(카드소지자) Email
\n" }, { "name": "customer_addr", "in": "formData", "description": "고객(카드소지자) 주소", "required": false, "type": "string", "maxLength": 200, "x-portone-name": "카드소유자 주소", "x-portone-description": "고객(카드소지자) 주소
\n" }, { "name": "customer_postcode", "in": "formData", "description": "고객(카드소지자) 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "카드소유자 우편번호", "x-portone-description": "고객(카드소지자) 우편번호
\n" } ], "responses": { "200": { "description": "정상 등록", "schema": { "$ref": "#/definitions/CustomerResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "nice", "jtnet", "kcp", "daou", "html5_inicis", "tosspayments", "ksnet", "nice_v2", "welcome" ], "x-portone-category": "billingkey" }, "delete": { "tags": [ "subscribe.customer" ], "summary": "빌링키 삭제 API", "description": "구매자의 빌링키 정보 삭제빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "reason", "in": "query", "description": "삭제사유", "required": false, "type": "string", "x-portone-name": "삭제 사유", "x-portone-description": "빌링키를 삭제하려는 사유
\n" }, { "name": "extra[requester]", "in": "query", "description": "삭제 요청자(네이버페이에서만 사용)", "required": false, "type": "string", "default": "admin", "x-portone-name": "삭제 요청자", "x-portone-description": "빌링키 삭제 요청자
\n", "x-portone-supported-pgs": [ "naverpay" ] } ], "responses": { "200": { "description": "정상 삭제", "schema": { "$ref": "#/definitions/CustomerResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 customer_uid" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "payco", "paymentwall", "settle", "settle_acc", "settle_firm", "smartro_v2", "tosspayments", "paypal_v2", "nice_v2", "welcome", "tosspay_v2" ], "x-portone-category": "billingkey" } }, "/subscribe/customers/{customer_uid}/payments": { "get": { "tags": [ "subscribe.customer" ], "summary": "빌링키 결제 복수조회 API (빌링키 결제 내역 확인)", "description": "구매자의 빌링키로 결제된 결제목록을 조회합니다.", "operationId": "customer_payments", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid", "in": "path", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호", "required": true, "type": "string", "default": "customer_1234", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "page", "in": "query", "description": "조회목록 페이징. 1부터 시작", "required": false, "type": "integer", "default": "1", "x-portone-name": "조회목록 페이징", "x-portone-description": "조회목록 페이징으로 기본값은 1입니다.
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentListResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 customer_uid" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "payco", "paymentwall", "settle", "settle_acc", "settle_firm", "smartro_v2", "tosspayments", "paypal_v2", "nice_v2", "welcome", "tosspay_v2" ], "x-portone-category": "billingkey" } }, "/subscribe/customers/{customer_uid}/schedules": { "get": { "tags": [ "subscribe.customer" ], "summary": "빌링키 결제예약 조회 API", "description": "결제예약 복수조회(빌키) API와 동일한 동작을 하는 API입니다.결제예약에 사용된 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "page", "in": "query", "description": "조회목록 페이징.조회목록 페이징으로 기본값은 1입니다.
\n" }, { "name": "from", "in": "query", "description": "조회 시작시각unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')
\n" }, { "name": "to", "in": "query", "description": "조회 종료시각unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)
\n" }, { "name": "schedule-status", "in": "query", "description": "예약상태. 누락되면 모든 상태의 예약내역 조회\n조회 하고자 하는 예약 상태
\n" } ], "responses": { "200": { "description": "결제예약목록 조회완료", "schema": { "$ref": "#/definitions/ScheduleResponse" } }, "400": { "description": "검색 파라메터가 유효하지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "payco", "paymentwall", "settle", "settle_acc", "settle_firm", "smartro_v2", "tosspayments", "paypal_v2", "nice_v2", "welcome", "tosspay_v2" ], "x-portone-category": "billingkey" } }, "/cvs": { "post": { "tags": [ "cvs" ], "summary": "수납번호 발급 API", "description": "편의점결제를 위한 수납번호(barcode)를 사전 발급 또는 등록합니다. 고객은 발급 또는 등록된 수납번호(barcode)에 해당되는 바코드 이미지 또는 수납번호를 편의점 방문시 제시함으로써 현장 결제가 이뤄지게 됩니다.", "operationId": "issueCvsPayment", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "formData", "description": "가맹점 주문번호가맹점 거래 고유번호
\n", "x-portone-description": "이미 결제가 이뤄진 적이 있는 merchant_uid로는 추가적인 편의점결제 수납번호(barcode) 발급 또는 등록이 불가능합니다.
\n" }, { "name": "amount", "in": "formData", "description": "결제금액", "required": true, "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제하고자 하는 금액
\n" }, { "name": "barcode", "in": "formData", "description": "가맹점에서 직접 생성, 관리하는 바코드(barcode)번호가 있는 경우, 갤럭시아컴즈로부터 신규 수납번호(barcode)를 발급요청하지 않고 가맹점에서 관리하는 바코드(barcode)번호를 등록하여 수납번호로 활용할 수 있습니다.", "required": false, "type": "string", "x-portone-name": "바코드", "x-portone-description": "가맹점에서 직접 생성, 관리하는 바코드(barcode)번호가 있는 경우, 갤럭시아컴즈로부터 신규 수납번호(barcode)를 발급요청하지 않고 가맹점에서 관리하는 바코드(barcode)번호를 등록하여 수납번호로 활용할 수 있습니다.
\n" }, { "name": "expired_at", "in": "formData", "description": "편의점 수납가능한 결제기한(Unix Timestamp). 정의하지 않으면 갤럭시아컴즈와 계약시 협의한 기본값이 적용됩니다.", "required": false, "type": "integer", "x-portone-name": "편의점 수납가능한 결제기한", "x-portone-description": "편의점 수납가능한 결제기한(Unix Timestamp). 정의하지 않으면 갤럭시아컴즈와 계약시 협의한 기본값이 적용됩니다.
\n" }, { "name": "name", "in": "formData", "description": "주문명", "required": false, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "주문명
\n" }, { "name": "buyer_name", "in": "formData", "description": "주문자명", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "주문자의 이름
\n" }, { "name": "buyer_email", "in": "formData", "description": "주문자 Email주소", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email 주소", "x-portone-description": "주문자 Email 주소
\n" }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "주문자 전화번호
\n" }, { "name": "buyer_addr", "in": "formData", "description": "주문자 주소", "required": false, "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "주문자의 주소
\n" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "주문자의 우편번호
\n" }, { "name": "pg", "in": "formData", "description": "PG 구분코드. 갤럭시아컴즈 상점아이디를 2개 이상 동시에 사용하시려는 경우 설정하시면 됩니다. galaxia.{상점아이디} 형태로 지정", "required": false, "type": "string", "x-portone-name": "PG 구분코드", "x-portone-description": "결제 하고자 하는 PG사 구분코드
\n" }, { "name": "confirm_url", "in": "formData", "description": "고객이 편의점결제 수납시도 시 수납가능여부를 체크하기 위한 URL{\n event : 'Galaxia.Cvs.Confirm',\n imp_uid : 'imp_123412341234',\n merchant_uid : 'asdfasdfasdf',\n status : 'ready',\n extra : {\n barcode : '11222222',\n payType : 'card' //card or cash\n }\n}", "required": false, "type": "string", "x-portone-name": "수납가능여부 체크 URL", "x-portone-description": "
고객이 편의점결제 수납시도 시 수납가능여부를 체크하기 위한 URL
\n" }, { "name": "notice_url", "in": "formData", "description": "편의점결제 수납성공 시 통지받을 URL편의점결제 수납성공 시 통지받을 URL
\n" }, { "name": "custom_data", "in": "formData", "description": "결제정보와 함께 저장할 custom_data. 객체로 전달되는 경우 JSON 문자열로 저장", "required": false, "type": "string", "x-portone-name": "추가정보", "x-portone-description": "결제정보와 함께 저장할 custom_data. 객체로 전달되는 경우 JSON 문자열로 저장
\n" } ], "responses": { "200": { "description": "편의점결제 수납번호(barcode) 생성 완료", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "galaxia" ], "x-portone-category": "etc.cvs" } }, "/cvs/{imp_uid}": { "delete": { "tags": [ "cvs" ], "summary": "수납취소 API", "description": "고객에게 이미 발급/등록된 편의점결제 수납번호(barcode)가 아직 수납 전일 때, 재고소진 등에 상황에 따라 해당 수납번호(barcode)로 결제가 이뤄지지 않도록 말소처리하는 API입니다.", "operationId": "revokeCvsPayment", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "편의점결제 수납번호(barcode) 발급/등록된 포트원 거래고유번호", "required": true, "type": "string", "x-portone-description": "편의점결제 수납번호(barcode) 발급/등록된 포트원 거래고유번호
\n", "x-portone-name": "포트원 거래고유번호" } ], "responses": { "200": { "description": "편의점결제 수납번호(barcode) 말소 완료", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "galaxia" ], "x-portone-category": "etc.cvs" } }, "/escrows/logis/{imp_uid}": { "get": { "tags": [ "escrow.logis" ], "summary": "배송정보 단건조회 API", "description": "에스크로 결제 건에 대한 배송정보 조회배송정보를 조회하고자 하는 에스크로 결제건의 포트원 거래고유번호
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/EscrowLogisResponse" } }, "400": { "description": "필수 파라메터가 누락되거나 (PG사별로 필수 여부가 다를 수 있음), 지원하는 않는 PG사인 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "배송정보를 조회할 거래건이 존재하지 않음" }, "409": { "description": "등록된 배송정보가 존재하지 않습니다." }, "500": { "description": "배송정보 조회 도중 오류 발생" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "daou", "ksnet", "smartro_v2", "nice_v2", "welcome" ], "x-portone-category": "escrow" }, "put": { "tags": [ "escrow.logis" ], "summary": "배송정보 단건수정 API", "description": "에스크로 결제 건에 대해서 PUT /escrows/logis/{imp_uid} 로 등록된 배송정보를 수정하는 API 입니다.(2-depth의 json으로 Request Body가 구성되어야 합니다)배송정보를 수정하고자 하는 에스크로 결제건의 포트원 거래고유번호
\n" }, { "name": "sender", "in": "formData", "description": "발신자 정보", "required": true, "schema": { "$ref": "#/definitions/EscrowLogisSenderAnnotation" }, "type": "string", "x-portone-name": "발신자 정보", "x-portone-description": "배송을 보내는 발신자의 정보(이름, 연락처, 주소, 우편번호, 수신자와의 관계)
\n" }, { "name": "receiver", "in": "formData", "description": "수신자 정보", "required": true, "schema": { "$ref": "#/definitions/EscrowLogisReceiverAnnotation" }, "type": "string", "x-portone-name": "수신자 정보", "x-portone-description": "배송을 받는 수신자의 정보(이름, 연락처, 주소, 우편번호)
\n" }, { "name": "logis", "in": "formData", "description": "배송정보택배사코드표는 메뉴얼 참조
\n" }, { "name": "products", "in": "formData", "description": "배송 상품 정보 (필수 : 웰컴페이먼츠)", "required": false, "type": "array", "items": { "$ref": "#/definitions/EscrowLogisProductsAnnotation" }, "collectionFormat": "multi", "x-portone-name": "배송 상품 정보", "x-portone-description": "배송 보내는 상품의 정보 (고유 아이디, 이름, 고유 코드, 통화코드, 수량, 카테고리)
\n", "x-portone-supported-pgs": [ "welcome" ], "x-portone-per-pg": { "welcome": { "required": true } } } ], "responses": { "200": { "description": "수정 완료", "schema": { "$ref": "#/definitions/EscrowLogisResponse" } }, "400": { "description": "필수 파라메터가 누락되거나 (PG사별로 필수 여부가 다를 수 있음), 지원하는 않는 PG사인 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "배송정보를 수정할 거래건이 존재하지 않음" }, "405": { "description": "POST요청이 아닌 경우" }, "409": { "description": "해당거래건은 배송정보를 수정할 수 없는 경우" }, "500": { "description": "배송정보 수정 도중 오류 발생" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "daou", "ksnet", "smartro_v2", "welcome" ], "x-portone-category": "escrow" }, "post": { "tags": [ "escrow.logis" ], "summary": "배송정보 단건등록 API", "description": "에스크로 결제 건에 대한 배송정보 등록(2-depth의 json으로 Request Body가 구성되어야 합니다)배송정보를 등록하고자 하는 에스크로 결제건의 포트원 거래고유번호
\n" }, { "name": "sender", "in": "formData", "description": "발신자 정보", "required": true, "schema": { "$ref": "#/definitions/EscrowLogisSenderAnnotation" }, "type": "string", "x-portone-name": "발신자 정보", "x-portone-description": "배송을 보내는 발신자의 정보(이름, 연락처, 주소, 우편번호, 발신자와의 관계)
\n" }, { "name": "receiver", "in": "formData", "description": "수신자 정보", "required": true, "schema": { "$ref": "#/definitions/EscrowLogisReceiverAnnotation" }, "type": "string", "x-portone-name": "수신자 정보", "x-portone-description": "배송을 받는 수신자의 정보(이름, 연락처, 주소, 우편번호)
\n" }, { "name": "logis", "in": "formData", "description": "배송정보택배사코드표는 매뉴얼 참조
\n" }, { "name": "products", "in": "formData", "description": "배송 상품 정보 (필수 : 웰컴페이먼츠)", "required": false, "type": "array", "items": { "$ref": "#/definitions/EscrowLogisProductsAnnotation" }, "collectionFormat": "multi", "x-portone-name": "배송 상품 정보", "x-portone-description": "배송 보내는 상품의 정보(고유 아이디, 이름, 고유 코드, 통화코드, 수량, 카테고리)
\n", "x-portone-supported-pgs": [ "welcome" ], "x-portone-per-pg": { "welcome": { "required": true } } }, { "name": "send_email", "in": "formData", "description": "에스크로 구매 확정시 결제 창에 입력했던 이메일로 해당 사실을 전송할지 여부(기본값: true)", "required": false, "type": "boolean", "default": true, "x-portone-name": "구매확정 시 Email 전송여부", "x-portone-description": "에스크로 구매 확정시 결제 창에 입력했던 이메일로 해당 사실을 전송할지 여부 (기본값 : true)
\n", "x-portone-supported-pgs": [ "nice_v2" ], "x-portone-per-pg": { "nice_v2": { "description": "에스크로 결제건에 대해 배송 정보 등록 API 호출 시 send_email
파라미터를 이용하여\n 구매 확정됐을 때 결제창에 입력한 이메일로 구매 확정 내용을 전송할지 여부를 제어할 수 있습니다. 기본 값은 true(구매 확정 여부 이메일 전송)이며 false로 입력 시 구매가 확정되어도 이메일로 안내되지 않습니다.
KSNET에서 일반 에스크로, 배송 에스크로 두 가지 유형의 에스크로를 제공합니다. 포트원을 통해 KSNET 에스크로를 사용하려는 경우 반드시 배송 에스크로 설정이 되어 있어야 합니다.
\n또한 에스크로 거래는 30분 ~ 1시간 뒤 ksta.ksnet.co.kr -> PG 거래내역 -> 배송 에스크로 거래조회에서 확인이 가능합니다. 에스크로 정보 수정의 경우도 등록이 완료된 이후부터 가능합니다.
\n" }, "nice_V2": { "description": "API로 에스크로 배송 정보 등록은 가능하지만 PUT 배송정보 단건수정 API로 수정은 불가능합니다.
\n" } } } }, "/kakao/payment/orders": { "get": { "tags": [ "kakao" ], "summary": "(카카오페이) 주문내역조회 API", "description": " 해당 API는 카카오페이 정책이슈로 인해 2022년 하반기에 지원이 종료될 예정입니다.\n삭제 하고자 하는 구매자 고유 아이디(memberID)
\n" }, { "name": "site_code", "in": "query", "description": "KCP 퀵페이 등록 시 사용한 사이트 코드(SITE CD).", "required": true, "type": "string", "default": "IX0XX", "maxLength": 80, "x-portone-name": "사이트 코드", "x-portone-description": "KCP 퀵페이 등록 시 사용한 사이트 코드(SITE CD)
\n" }, { "name": "partner_type", "in": "query", "description": "KCP 퀵페이 등록 시 사용한 파트너 타입.", "required": true, "type": "string", "default": "IX99", "maxLength": 80, "x-portone-name": "파트너 타입", "x-portone-description": "KCP 퀵페이 등록 시 사용한 파트너 타입
\n" }, { "name": "partner_subtype", "in": "query", "description": "KCP 퀵페이 등록 시 사용한 파트너 서브타입.", "required": true, "type": "string", "default": "99IX", "maxLength": 80, "x-portone-name": "파트너 서브타입", "x-portone-description": "KCP 퀵페이 등록 시 사용한 파트너 서브타입
\n" } ], "responses": { "200": { "description": "정상 삭제", "schema": { "$ref": "#/definitions/KcpQuickMemberResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 member_id" } }, "x-portone-supported-pgs": [ "kcp_quick" ], "x-portone-category": "pg.kcpquick" } }, "/payments/{imp_uid}/naver/cancel": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 네이버페이 주문환불 API", "description": "(주문형-네이버페이) 네이버페이 상품주문들을 환불처리합니다.네이버페이 환불할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "네이버페이 환불할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 환불합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "환불할 거래건의 네이버페이 상품주문번호", "x-portone-description": "네이버페이 환불할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 환불합니다.
\n" }, { "name": "reason", "in": "formData", "description": "취소 사유 코드. 올바르지 않은 코드인 경우 기본값(PRODUCT_UNSATISFIED)을 적용합니다.\n취소 사유 코드로 올바르지 않은 코드인 경우 기본값(PRODUCT_UNSATISFIED
)을 적용합니다.
네이버페이 환불승인할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "환불승인할 거래건의 네이버페이 상품주문번호.환불승인할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 환불승인합니다.
\n" } ], "responses": { "200": { "description": "주문환불승인성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부주문 환불승인성공 & 일부주문 환불승인실패네이버페이 발송처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "발송처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 발송처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "발송처리할 거래건의 네이버페이 상품주문번호", "x-portone-description": "발송처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 발송처리합니다.
\n" }, { "name": "delivery_method", "in": "formData", "description": "배송방법 코드\n배송방법을 나타내는 코드
\n" }, { "name": "dispatched_at", "in": "formData", "description": "발송일 unix timestamp", "required": true, "type": "integer", "x-portone-name": "발송일", "x-portone-description": "발송일 (unix timestamp)
\n" }, { "name": "delivery_company", "in": "formData", "description": "택배사 코드(delivery_method == 'DELIVERY' 인 경우 필수 파라메터)\n택배사 코드(delivery_method == DELIVERY
인 경우 필수로 입력해야하는 파라메터)
송장번호(delivery_method == DELIVERY
인 경우 필수 파라미터)
네이버페이 재발송처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "재발송처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 재발송처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "재발송처리할 거래건의 네이버페이 상품주문번호", "x-portone-description": "재발송처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 재발송처리합니다.
\n" }, { "name": "delivery_method", "in": "formData", "description": "배송방법 코드\n배송방법을 나타내는 코드
\n" }, { "name": "delivery_company", "in": "formData", "description": "택배사 코드(delivery_method == 'DELIVERY' 인 경우 필수 파라메터)\n택배사 코드(delivery_method == DELIVERY
인 경우 필수로 입력해야하는 파라메터)
송장번호(delivery_method == DELIVERY
인 경우 필수로 입력해야하는 파라메터)
네이버페이 수거완료처리 할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "수거완료처리 할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 수거완료처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "수거완료처리 할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 수거완료처리합니다.
\n" } ], "responses": { "200": { "description": "모든 상품주문 수거완료처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 수거완료처리성공 & 일부주문 수거완료처리실패네이버페이 발주처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "네이버페이 발주처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 발주처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "네이버페이 발주처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 발주처리합니다.
\n" } ], "responses": { "200": { "description": "모든 상품주문 발주처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 발주처리성공 & 일부주문 발주처리실패네이버페이 반품요청할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "반품요청할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품요청합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "반품요청할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품요청합니다.
\n" }, { "name": "reason", "in": "formData", "description": "반품사유코드. 올바르지 않은 사유코드인 경우 기본값(INTENT_CHANGED)을 적용합니다.\n반품사유코드로 올바르지 않은 사유코드인 경우 기본값(INTENT_CHANGED
)을 적용합니다.
반품 배송방법 코드
\n" }, { "name": "delivery_company", "in": "formData", "description": "택배사 코드(delivery_method == 'RETURN_DELIVERY' 인 경우 필수 파라메터)\n택배사 코드(delivery_method == RETURN_DELIVERY
인 경우 필수로 입력해야하는 파라메터)
송장번호(delivery_method == RETURN_DELIVERY
인 경우 필수로 입력해야하는 파라메터)
네이버페이 반품승인 처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "반품승인 처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품승인 처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "반품승인 처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품승인 처리합니다.
\n" }, { "name": "memo", "in": "formData", "description": "반품승인 후 구매자에게 전달하는 메모", "required": false, "type": "string", "x-portone-name": "메모", "x-portone-description": "반품승인 후 구매자에게 전달하는 메모
\n" } ], "responses": { "200": { "description": "모든 상품주문 반품승인 처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 반품승인 처리성공 & 일부주문 반품승인 처리실패네이버페이 반품거절 처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "네이버페이 반품거절 처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품거절 처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "네이버페이 반품거절 처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품거절 처리합니다.
\n" }, { "name": "memo", "in": "formData", "description": "반품거절 후 구매자에게 전달하는 메모", "required": true, "type": "string", "x-portone-name": "메모", "x-portone-description": "반품거절 후 구매자에게 전달하는 메모
\n" } ], "responses": { "200": { "description": "모든 상품주문 반품거절 처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 반품거절 처리성공 & 일부주문 반품거절 처리실패네이버페이 반품보류 처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "반품보류 처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품보류 처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "반품보류 처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품보류 처리합니다.
\n" }, { "name": "reason", "in": "formData", "description": "반품보류사유 코드. 올바르지 않은 보류사유코드인 경우 기본값(ETC)를 적용합니다.\n반품보류사유 코드로 올바르지 않은 보류사유코드인 경우 기본값(ETC
)를 적용합니다.
반품보류에 대하여 구매자에게 전달하는 메모
\n" }, { "name": "extra_charge", "in": "formData", "description": "기타 비용 청구액(기본값 : 0원)", "required": false, "type": "integer", "x-portone-name": "기타 비용 청구액", "x-portone-description": "기타 비용 청구액으로 기본값은 0원입니다.
\n" } ], "responses": { "200": { "description": "모든 상품주문 반품보류 처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 반품보류 처리성공 & 일부주문 반품보류 처리실패네이버페이 반품보류해제 처리할 거래건의 포트원 거래고유번호
\n" }, { "name": "product_order_id", "in": "formData", "description": "반품보류해제 처리할 거래건의 네이버페이 상품주문번호. 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품보류해제 처리합니다.", "required": false, "type": "array", "items": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-description": "반품보류해제 처리할 거래건의 네이버페이 상품주문번호로 생략되면 imp_uid 에 해당되는 모든 상품주문을 반품보류해제 처리합니다.
\n" } ], "responses": { "200": { "description": "모든 상품주문 반품보류해제 처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 반품보류해제 처리성공 & 일부주문 반품보류해제 처리실패네이버페이 포인트 적립할 거래건의 포트원 거래고유번호
\n" } ], "responses": { "200": { "description": "네이버페이 포인트 적립 성공", "schema": { "$ref": "#/definitions/ResponseAnnotation" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "네이버페이 포인트 적립 실패. 응답 BODY의 message 확인 필요" } }, "x-portone-supported-pgs": [ "naverpay" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/confirm": { "post": { "tags": [ "naver" ], "summary": "(결제형-네이버페이) 에스크로 주문 확정 API", "description": "(결제형-네이버페이) 에스크로 주문 확정", "operationId": "naverConfirmPayment", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "네이버페이 구매확정할 거래건의 포트원 거래고유번호", "required": true, "type": "string", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "네이버페이 구매확정할 거래건의 포트원 거래고유번호
\n" }, { "name": "requester", "in": "formData", "description": "구매확정 요청자 (admin : 가맹점 관리자 (기본값), customer : 구매자)", "required": false, "type": "string", "x-portone-name": "구매확정 요청자", "x-portone-description": "구매확정 요청자 (admin : 가맹점 관리자 (기본값), customer : 구매자)
\n" } ], "responses": { "200": { "description": "네이버페이 구매확정 성공", "schema": { "$ref": "#/definitions/ResponseAnnotation" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "네이버페이 구매확정 실패. 응답 BODY의 message 확인 필요" } }, "x-portone-supported-pgs": [ "naverpay" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/product-orders": { "get": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 포트원 거래고유번호 기준 네이버페이 상품주문 조회 API", "description": "(주문형-네이버페이) 포트원 거래번호 기준으로 네이버페이 상품주문 목록을 조회합니다. (배열 반환)네이버페이 상품주문 조회를 위한 포트원 거래 고유번호
\n" } ], "responses": { "200": { "description": "네이버페이 상품주문 조회 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/naver/product-orders/{product_order_id}": { "get": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 네이버페이 상품주문번호로 상품주문 상세 조회 API", "description": "(주문형-네이버페이) 네이버페이 상품주문번호 기준 네이버페이 상품주문을 조회합니다. (단건 반환)상세 조회할 네이버페이 상품주문번호
\n" } ], "responses": { "200": { "description": "네이버페이 상품주문 조회 성공", "schema": { "$ref": "#/definitions/NaverProductOrderResponse" } }, "400": { "description": "요청 파라메터에 product_order_id 가 누락된 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "product_order_id에 해당되는 네이버 상품주문을 찾을 수 없거나 접근 권한이 없는 계정인 경우" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/naver/reviews": { "get": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 네이버페이 구매평 조회 API", "description": "(주문형-네이버페이) 네이버페이 구매평 조회 API", "operationId": "getReviews", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "from", "in": "query", "description": "조회기간 시작 unix timestamp", "required": true, "type": "integer", "x-portone-name": "조회기간 시작", "x-portone-description": "조회기간 시작 unix timestamp
\n" }, { "name": "to", "in": "query", "description": "조회기간 종료 unix timestamp", "required": true, "type": "integer", "x-portone-name": "조회기간 종료", "x-portone-description": "조회기간 종료 unix timestamp
\n" }, { "name": "review_type", "in": "query", "description": "구매평 유형.\n조회할 구매평의 유형
\n" } ], "responses": { "200": { "description": "네이버페이 상품주문 조회 성공", "schema": { "$ref": "#/definitions/NaverReviewsResponse" } }, "400": { "description": "요청 파라메터에 from, to, review_type 가 누락되거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "네이버페이 구매평 조회시 네이버응답이 올바르지 않은 경우" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/cash-amount": { "get": { "tags": [ "naver" ], "summary": "(결제형-네이버페이) 현금영수증 발급 가용액 조회 API", "description": "(결제형-네이버페이) 현금영수증 발급 가용액 조회 API", "operationId": "queryCashAmount", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "네이버페이 현금영수증 발급가능 금액 조회를 위한 포트원 거래 고유번호", "required": true, "type": "string", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "네이버페이 현금영수증 발급가능 금액 조회를 위한 포트원 거래 고유번호
\n" } ], "responses": { "200": { "description": "네이버페이 현금영수증 발급가능 금액 조회 성공", "schema": { "$ref": "#/definitions/NaverCashAmountResponse" } }, "400": { "description": "네이버페이 결제형 거래가 아닌 건에 대해 요청하는 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "네이버페이 현금영수증 발급가능 금액 조회시 네이버응답이 올바르지 않은 경우" } }, "x-portone-supported-pgs": [ "naverpay" ], "x-portone-category": "pg.naverpay" } }, "/partners/receipts/{imp_uid}": { "post": { "tags": [ "partners" ], "summary": "영수증 내 하위 상점 거래 등록 API", "description": "결제 내역 매출전표에 하위 상점의 거래를 등록할 수 있는 API입니다.\n하위 상점 거래를 등록할 결제건의 포트원 거래고유번호
\n" }, { "name": "data", "in": "formData", "description": "등록할 하위 상점 및 하위 상점 별 거래 금액 정보 배열imp_uid에 매핑되는 거래 하위를 구성하는 하위 상점 및 하위 상점 별 거래 금액 정보의 배열
\n" } ], "responses": { "200": { "description": "정상적으로 하위 상점 거래 등록이 완료되었습니다.", "schema": { "$ref": "#/definitions/PartnerReceiptResponse" } }, "400": { "description": "필수 파라미터 누락, 결제 미승인, PG사로부터 요청 실패 응답을 받은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "결제내역 검색 실패, 결제건에 등록되어있는 결제연동 내역이 확인 불가한 경우" }, "500": { "description": "포트원 내부 이슈로 인한 API 호출 실패" }, "501": { "description": "지원하지 않는 PG사" } }, "x-portone-supported-pgs": [ "html5_inicis" ], "x-portone-category": "partner" } }, "/payco/orders/status/{imp_uid}": { "post": { "tags": [ "payco" ], "summary": "(페이코) 주문상태 단건 수정 API", "description": "페이코 주문상품의 상태를 변경합니다", "operationId": "changeOrderStatus", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 거래고유번호", "required": true, "type": "string", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "주문상태를 변경할 결제건의 포트원 거래고유번호
\n" }, { "name": "status", "in": "formData", "description": "주문상품 변경될 상태\n변경될 주문상태
\n" } ], "responses": { "200": { "description": "주문상품 상태 변경 완료", "schema": { "$ref": "#/definitions/PaycoStatusResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "payco" ], "x-portone-category": "pg.payco" } }, "/payments/{imp_uid}/balance": { "get": { "tags": [ "payments" ], "summary": "결제 상세내역 조회 API", "description": "포트원 거래고유번호로 결제수단별 금액 상세정보를 확인합니다.(현재, PAYCO결제수단에 한해 제공되고 있습니다. 타 PG사의 경우 파라메터 검증 등 검토/협의 단계에 있습니다.", "operationId": "balanceByImpUid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 거래고유번호", "required": true, "type": "string", "default": "imp_448280090638", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "상세정보를 조회할 결제건의 포트원 거래고유번호
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentBalanceResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 imp_uid" }, "405": { "description": "허용되지 않는 HTTP METHOD" } }, "x-portone-supported-pgs": [ "payco" ], "x-portone-category": "payment" } }, "/payments/{imp_uid}": { "get": { "tags": [ "payments" ], "summary": "결제내역 단건조회 API", "description": "포트원 거래고유번호로 결제내역을 확인합니다", "operationId": "getPaymentByImpUid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 거래고유번호", "required": true, "type": "string", "default": "imp_448280090638", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "결제내역을 확인할 결제건의 포트원 거래고유번호
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 imp_uid" } }, "x-portone-category": "payment", "x-portone-per-pg": { "daou": { "description": "키움페이(구 다우, 페이조아)는 (발급된) 가상계좌에 입금 완료시, 송금자의 정보(은행명, 계좌번호, 송금인) 중 송금자 이름만 알려줍니다.\n 따라서 송금자의 은행코드(bank_code
)과 은행명(bank_name
)은 모두 NULL로 내려가며, 송금자 이름을 확인하기 위해서는 아래 예시와 같이 별도의 쿼리 파라미터(extension
)를 true로 설정해주셔야 합니다.
GET http://api.iamport.kr/payments/{포트원 거래고유번호}?**extension=true**
{\n // ... 중략\n \"bank_code\": null, // 송금자 은행 코드 알 수 없음\n \"bank_name\": null, // 송금자 은행 이름 알 수 없음\n \"extension\": {\n // ... 중략\n \"REMITTER\": \"홍길동\" // 송금자 이름\n }\n}
"
},
"paypal_v2": {
"description": "페이팔 결제 건은 승인 요청 시 바로 승인 되지 않고 일정 시간 후 처리되는 승인 대기(pending
) 상태가 존재합니다.\n 따라서 가맹점은 트랜잭션 종료시 결제 내역을 조회(GET /payments/{imp_uid})한 후 응답 되는 status를 보고 각 상황에 맞는 후 처리 로직을 작성해야 합니다.\n 승인 대기 상태에서는 최종적으로 승인(paid
)이 될 수도 있고 승인이 되지 않을 수도(failed
) 있기 때문에 가맹점은 반드시\n (가상계좌나 정기결제와 같이 결제가 비동기로 승인되는 경우 포트원 → 가맹점으로 결제 결과를 통보해주는) 웹훅 기능을 연동해야 합니다.
조회할 결제건의 포트원 거래고유번호 리스트
\n" }, { "name": "merchant_uid[]", "in": "query", "description": "결제요청 시 가맹점에서 요청한 merchant_uid", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "default": "merchant_143434085216", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제요청 시 가맹점에서 요청한 가맹점 주문번호
\n" } ], "responses": { "200": { "description": "요청된 모든 imp_uid 에 대한 결제정보 응답완료", "schema": { "$ref": "#/definitions/MultiplePaymentsResponse" } }, "207": { "description": "요청된 imp_uid 중 일부 거래 조회 실패(ex. 접근권한없음 또는 존재하지 않는 imp_uid)", "schema": { "$ref": "#/definitions/MultiplePaymentsResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "해당되는 결제건을 찾지 못하였습니다." } }, "x-portone-category": "payment" } }, "/payments/find/{merchant_uid}/{payment_status}": { "get": { "tags": [ "payments" ], "summary": "결제 단건조회(고유 가맹점 주문번호 조회) API", "description": "가맹점지정 고유번호로 결제내역을 확인합니다결제요청 시 가맹점에서 요청한 가맹점 주문번호
\n" }, { "name": "payment_status", "in": "path", "description": "특정 status상태의 값만 필터링하고 싶은 경우에 사용.특정 status상태의 값만 필터링하고 싶은 경우에 사용하는 파라미터로 지정하지 않으면 모든 상태를 대상으로 조회합니다
\n" }, { "name": "sorting", "in": "query", "description": "기본값은 -started정렬 기준을 설정하는 파라미터로 기본값은 -started
입니다.
결제요청 시 가맹점에서 요청한 가맹점 주문번호
\n" }, { "name": "payment_status", "in": "path", "description": "특정 status상태의 값만 필터링하고 싶은 경우에 사용.특정 status상태의 값만 필터링하고 싶은 경우에 사용하는 파라미터로 지정하지 않으면 모든 상태를 조회합니다.
\n" }, { "name": "page", "in": "query", "description": "1부터 시작. 기본값 1", "required": false, "type": "integer", "x-portone-name": "페이지번호", "x-portone-description": "1부터 시작하며 기본값은 1입니다.
\n" }, { "name": "limit", "in": "query", "description": "한 번에 조회할 결제건수.(최대 1000건, 기본값 20건)", "required": false, "type": "integer", "default": "20", "maximum": "1000", "minimum": "1", "x-portone-name": "페이지당 조회건수", "x-portone-description": "한 번에 조회할 결제건수.(최대 1000건, 기본값 20건)
\n" }, { "name": "sorting", "in": "query", "description": "기본값은 -started정렬기준을 나타내는 파라미터로 기본값은 -started
입니다.
조회할 결제건의 결제상태 코드
\n" }, { "name": "page", "in": "query", "description": "1부터 시작. 기본값 1", "required": false, "type": "integer", "x-portone-name": "페이지번호", "x-portone-description": "1부터 시작하며 기본값 1입니다.
\n" }, { "name": "limit", "in": "query", "description": "한 번에 조회할 결제건수.(최대 1000건, 기본값 20건)", "required": false, "type": "integer", "default": "20", "maximum": "1000", "minimum": "1", "x-portone-name": "페이지 당 조회건수", "x-portone-description": "한 번에 조회할 결제건수.(최대 1000건, 기본값 20건)
\n" }, { "name": "from", "in": "query", "description": "기본값 : to 파라메터 기준으로 90일 전 unix timestamp.기본값은 to 파라메터 기준으로 90일 전 unix timestamp입니다. (시간별 검색 시작 시각(>=) UNIX TIMESTAMP)
\n" }, { "name": "to", "in": "query", "description": "기본값 : 현재 unix timestamp기본값은 현재 unix timestamp입니다. (시간별 검색 종료 시각(<=) UNIX TIMESTAMP)
\n" }, { "name": "sorting", "in": "query", "description": "기본값은 -started정렬기준을 나타내는 파라미터로 기본값은 -started
입니다.
취소할 거래의 포트원 거래고유번호
\n" }, { "name": "merchant_uid", "in": "formData", "description": "가맹점에서 전달한 거래 고유번호.가맹점에서 전달한 거래 고유번호로 imp_uid, merchant_uid 중 하나는 필수이어야 합니다. (두 값이 모두 넘어오면 imp_uid를 우선 적용합니다.)
\n" }, { "name": "amount", "in": "formData", "description": "(부분)취소요청 금액(부분)취소요청금액으로 누락하거나 0을 입력 시 전액취소를 요청합니다.
\n", "x-portone-description": "(부분)취소요청 금액으로 (누락하거나 0을 입력하는 경우 전액 취소 요청합니다.)
\n" }, { "name": "tax_free", "in": "formData", "description": "(부분)취소요청금액 중 면세금액(누락되면 0원처리)(부분)취소요청금액 중 면세금액으로 누락되면 0원처리합니다.
\n", "x-portone-description": "단, 아래 PG사의 경우 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n", "x-portone-per-pg": { "kakao": { "description": "누락시 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n" }, "kcp": { "description": "누락시 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n" }, "kcp_quick": { "description": "누락시 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n" }, "kicc": { "description": "누락시 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n" }, "nice": { "description": "누락시 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n" }, "payco": { "description": "누락시 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
\n" }, "smartro_v2": { "description": "부분취소시 면세 금액이 포함된 경우 반드시 취소 면세금액(tax_free)을 필수 입력 바랍니다
\n" }, "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 결제 시 면세금액을 지정했던 경우 필수 입력 바라며, 입력한 면세금액이 그대로 취소 승인되기 때문에 정확한 금액을 입력해 주시길 바랍니다.
(부분)취소요청금액 중 부가세 금액으로 기본값은 null
입니다.
단, 결제 시 부가세를 지정했던 경우 필수 입력 바랍니다.
\n", "x-portone-supported-pgs": [ "nice", "html5_inicis", "welcome", "nice_v2" ], "x-portone-per-pg": { "nice": { "description": "결제 시 부가세를 지정했던 경우 필수 입력 바랍니다.
\n" }, "html5_inicis": { "description": "결제 시 부가세를 지정했던 경우 필수 입력 바랍니다.
\n" }, "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 결제 시 부가세를 지정했던 경우 필수 입력이 필요하며, 입력한 부가세가 그대로 취소 승인되기 때문에 정확한 금액을 입력해 주시길 바랍니다.
취소 트랜잭션 수행 전, 현재시점의 취소 가능한 잔액
\n", "x-portone-description": "API요청자가 기록하고 있는 취소가능 잔액과 포트원이 기록하고 있는 취소가능 잔액이 일치하는지 사전에 검증하고, 검증에 실패하면 트랜잭션을 수행하지 않습니다. null인 경우에는 검증 프로세스를 생략합니다.
\n" }, { "name": "reason", "in": "formData", "description": "취소 사유", "required": false, "type": "string", "x-portone-name": "취소 사유", "x-portone-description": "결제건을 취소하려는 사유
\n", "x-portone-per-pg": { "naverpay": { "required": true, "description": "해당 파라미터 누락시 네이버페이 실 검수를 통과할 수 없습니다.
\n" } } }, { "name": "refund_holder", "in": "formData", "description": "환불계좌 예금주환불받을 계좌의 예금주
\n", "x-portone-per-pg": { "kcp": { "description": "휴대폰소액결제 익월 환불시 필수입력입니다.
\n" }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "refund_bank", "in": "formData", "description": "환불계좌 은행코드환불받을 계좌의 은행코드
\n", "x-portone-description": "\n", "x-portone-per-pg": { "kcp": { "description": "휴대폰소액결제 익월 환불시 필수입력입니다.
\n" }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "refund_account", "in": "formData", "description": "환불계좌 계좌번호환불받을 계좌번호
\n", "x-portone-per-pg": { "kcp": { "description": "휴대폰소액결제 익월 환불시 필수입력입니다.
\n" }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "refund_tel", "in": "formData", "description": "환불계좌 예금주 연락처환불받을 계좌의 예금주 연락처 (가상계좌 취소인 경우 필수)
\n", "x-portone-per-pg": { "smartro": { "required": true }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "extra", "in": "formData", "description": "네이버페이 사용 시 extra.requester 를 설정해야합니다.결제 취소 요청시 필요한 추가 정보
\n", "x-portone-per-pg": { "naverpay": { "required": true, "description": "휴대폰소액결제 익월 환불의 경우는 환불받으실 계좌정보를 같이 전달해주시면 환불정보가 PG사에 등록되어 익영업일에 처리됩니다. (관련 특약계약 필요)
\n" }, "ksnet": { "description": "결제 취소 특이사항\n - 휴대폰 결제는 부분취소가 불가능합니다.\n - 카드결제, 가상계좌, 계좌이체, 간편결제의 경우 부분취소는 총 9번 가능하며 취소는 결제일 기준 6개월 이내에만 가능합니다.\n - 계좌입금 거래 시 발급한 현금영수증은 경우 거래 취소 시 자동으로 취소 되지 않습니다. 수동으로 취소해야 합니다.\n - 복합과세의 계좌입금 거래를 부분취소하는 경우 기존에 발급한 현금영수증을 취소하고 부분취소 금액이 반영된 금액 정보로 다시 현금영수증을 발급해야합니다.\n - 가상계좌 결제건 취소는 23:00~06:00 시간 외에만 가능합니다.
\n" }, "smartro_v2": { "description": "테스트 모드 특이사항\n - 체크카드 결제 건의 경우 전액 취소만 가능하며 부분취소는 불가능합니다.\n - 카카오페이에서 등록된 카드로 결제시, 결제 된 금액이 자동으로 취소되지 않으므로 반드시 포트 REST 결제취소 API(POST /payments/cancel)로 직접 취소하셔야 합니다.
\n연동 특이사항\n - 가상 계좌 결제건 취소에 한해 취소 요청이후 즉시 환불 처리가 되는 것이 아니라 스마트로에서 입력한 환불계좌로 최종 환불 처리하면,\n 가맹점은 결과를 핑백(웹훅)으로 응답받은 후에 최종 취소 완료 처리를 해주셔야 합니다.\n - 현금영수증 미발행 가상 계좌 결제건은 스마트로에서 면세금액에 대한 검증을 따로 지원하지 않기 때문에, 취소시 정확한 취소 면세금액을 요청해야합니다.
\n" }, "naverpay": { "description": "API 호출시 아래 파라미터를 반드시 설정해 주셔야 합니다. (해당 파라미터 누락시 네이버페이 실 검수를 통과할 수 없습니다.)\n - extra.requester
: API를 호출하는 출처\n - customer
: 구매자에 의한 요청\n - admin
(기본값): 어드민에 의한 요청\n - reason
: 결제 취소 사유
```ts\n{\n\"imp_uid\" : \"imp_123412341234\", //환불처리할 포트원 거래고유번호\n\"amount\" : 3000, //환불할 금액\n\"reason\": \"결제 취소 사유\", //실제 사유와 같아야 함\n\"extra\" : {\n\"requester\" : \"customer\"\n}\n}\n```
```\nimp_uid=imp_123412341234&amount=3000&extra[requester]=customer\n```\n
"
},
"html5_inicis": {
"description": "취소 시 요청된 값 그대로 이니시스에서 취소가 되므로, 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 부가세, 면세금액이 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다.
\n" }, "nice": { "description": "상점 아이디 설정이 지정금액 방식인 경우에는 취소 시에 공급가액, 부가세, 봉사료, 면세금액 등을 설정하도록 하고 있습니다.(링크의 1617 코드 참조). 취소 시 취소할 금액, 부가세, 면세금액을 정확하게 전달해 주셔야 공급가액, 부가세, 면세금액, 봉사료(0원)가 설정되어 정상적으로 취소가 된다는 점 주의해주시기 바랍니다.
\n" }, "daou": { "description": "가상계좌 결제 취소시, PG사와 특약 필요하며, 실제 환불 금액 입금까지 7 영업일 이상 소요됩니다.
\n결제 취소 요청 시 취소 요청이 바로 승인 되지 않고 일정 시간 후 승인처리되는 경우가 존재합니다.\n 가맹점은 결제 취소 요청 응답 처리 시 취소가 승인되었는지 여부를 확인해야 합니다.
\n결제 취소 API를 통해 취소 요청을 한 경우 API 응답의 status와 cancel_history 값을 기준으로 취소 승인 여부를 판단해야 합니다. status가 cancelled 이고 cancel_history에 취소 요청 내역이 있는 경우 취소가 승인된 것이고 그렇지 않은 경우 취소 승인대기 상태입니다.\n콘솔을 통한 취소 요청이 승인대기인 경우 결제내역에서 결제상태는 결제취소로 변경되지 않고 진행중인 취소요청 내역이 있음이 표시되며 결제내역 상세 화면에서 취소요청내역이 조회됩니다.
\n취소 요청이 승인대기 상태인 경우 최종적으로 승인되거나 승인되지 않을 수 있기 때문에 가맹점은 최종 취소 처리 결과를 전달받기 위해 가맹점 통보 웹훅 기능을 연동해야 합니다.
\n\n
\n" }, "tosspayments": { "description": "결제수단이 상품권인 결제건은 부분취소가 불가능합니다
\n" }, "welcome": { "description": "부분 취소는 지불수단 별로 부분 환불 사용 서비스 신청 가맹점에 한해 지원 가능합니다. 부분 환불 사용 서비스 사용 신청 및 사용 여부 문의는 웰컴페이먼츠 계약 담당자에게 확인해주시기를 바랍니다.
\n" } } } }, "/payments/prepare": { "put": { "tags": [ "payments.validation" ], "summary": "결제금액 단건 수정 API", "description": "POST 결제금액 사전등록 API 로 이미 등록된 결제사전정보에 대해 금액을 수정하는 기능입니다.", "operationId": "editPreparePayment", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "formData", "description": "이미 사전등록한 가맹점 주문번호", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-description": "이미 사전등록한 가맹점 주문번호
\n" }, { "name": "amount", "in": "formData", "description": "결제예정금액", "required": true, "type": "number", "x-portone-name": "결제 예정금액", "x-portone-description": "수정 할 결제건의 결제예정금액
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentPrepareResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "요청된 merchant_uid 로 등록된 결제사전정보를 찾을 수 없는 경우" } }, "x-portone-category": "payment.validation" }, "post": { "tags": [ "payments.validation" ], "summary": "결제금액 사전등록 API", "description": "(포트원 javascript사용)인증방식의 결제를 진행할 때 결제금액 위변조시 결제진행자체를 block하기 위해 결제예정금액을 사전등록하는 기능입니다.\n결제금액을 사전 등록할 결제건의 가맹점 주문번호
\n" }, { "name": "amount", "in": "formData", "description": "결제예정금액", "required": true, "type": "number", "x-portone-name": "결제예정금액", "x-portone-description": "사전 등록할 결제예정금액
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentPrepareResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-category": "payment.validation" } }, "/payments/prepare/{merchant_uid}": { "get": { "tags": [ "payments.validation" ], "summary": "결제금액 단건조회 API", "description": "POST 결제금액 사전등록 API 로 이미 등록되어있는 사전등록 결제정보를 조회합니다", "operationId": "getPaymentPrepareByMerchantUid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "가맹점 주문번호", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제금액을 조회할 결제건의 가맹점 주문번호
\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentPrepareResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-category": "payment.validation" } }, "/paymentwall/delivery": { "post": { "tags": [ "paymentwall" ], "summary": "페이먼트월 배송등록 API", "description": "이커머스(실물 상품) 비즈니스의 경우, 페이먼트월에서 필수적으로 요구되는 배송정보 등록 API배송등록 할 결제건의 포트원 거래고유번호
\n" }, { "name": "merchant_uid", "in": "formData", "description": "가맹점 주문번호", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-description": "배송등록 할 결제건의 가맹점 주문번호
\n" }, { "name": "type", "in": "formData", "description": "상품구분코드\n배송등록 할 결제건의 상품 구분 코드
\n" }, { "name": "status", "in": "formData", "description": "아래 중 하나는 필수적으로 설정이 필요합니다.\n배송등록 할 결제건의 배송 상태코드
\n" }, { "name": "carrier_tracking_id", "in": "formData", "description": "운송장 번호 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 64, "x-portone-name": "운송장 번호", "x-portone-description": "배송등록 할 결제건의 운송장 번호 (physical
주문인 경우 필수 파라미터)
운송사 이름 (physical
주문인 경우 필수 파라미터)
도착예상시간 Unix timestamp sec (digital
인 경우, 지금 시간을 기록해도 무방)
배송상태 업데이트 예정시간 Unix timestamp sec (digital
인 경우, 지금 시간을 기록해도 무방)
결제건의 환불가능여부를 나타내는 파라미터
\n" }, { "name": "details", "in": "formData", "description": "자세한 사항들", "type": "string", "maxLength": 400, "x-portone-name": "상세 사항", "x-portone-description": "" }, { "name": "shipping_address_email", "in": "formData", "description": "수신자 email", "required": true, "type": "string", "maxLength": 50, "x-portone-name": "email", "x-portone-description": "수신자의 email주소
\n" }, { "name": "shipping_address_country", "in": "formData", "description": "수신자 국가 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 국가", "x-portone-description": "수신자의 국가 (physical
주문인 경우 필수 파라미터)
수신자 주소 중 시 (physical
주문인 경우 필수 파라미터)
수신자 우편번호 (physical
주문인 경우 필수 파라미터)
수신자 주소 중 주. 미국이 아닌 경우 'N/A'로 표기 (physical
주문인 경우 필수 파라미터)
수신자 거리명 (physical
주문인 경우 필수 파라미터)
수신자 전화번호 (physical
주문인 경우 필수 파라미터)
수신자 이름 (physical
주문인 경우 필수 파라미터)
수신자 성 (physical
주문인 경우 필수 파라미터)
현금영수증을 조회할 결제건의 포트원 거래고유번호
\n" } ], "responses": { "200": { "description": "현금영수증 상세정보 조회 완료", "schema": { "$ref": "#/definitions/ReceiptResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "존재하지 않는 포트원 거래정보이거나 현금영수증 발행된 내역이 확인되지 않는 경우" } }, "x-portone-supported-pgs": [ "nice", "daou", "html5_inicis", "kcp", "payco", "smartro", "uplus", "tosspayments", "ksnet", "smartro_v2", "nice_v2", "welcome" ], "x-portone-category": "receipt" }, "post": { "tags": [ "receipts" ], "summary": "현금영수증 단건발급 API", "description": "포트원을 통해 발생된 현금성 거래(가상계좌, 게좌이체)의 포트원 거래고유번호(imp_uid)를 기준으로 현금영수증이 발급 됩니다.현금영수증을 발급할 결제건의 포트원 거래 고유번호
\n" }, { "name": "product_type", "in": "formData", "description": "현금영수증 발행 주문 상품구분현금영수증 발행 주문 상품구분
\n", "x-portone-supported-pgs": [ "ksnet", "nice_v2" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "identifier", "in": "formData", "description": "현금영수증 발행대상 식별정보.현금영수증 발행대상 식별정보로 국세청현금영수증카드
, 휴대폰번호
, 주민등록번호
, 사업자등록번호
를 기재합니다.
identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" }, "kcp": { "description": "identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" }, "nice": { "description": "identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" }, "daou": { "description": "identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" } } }, { "name": "identifier_type", "in": "formData", "description": "현금영수증 식별정보 구분코드현금영수증를 발행대상의 식별정보 구분코드
\n", "x-portone-supported-pgs": [ "kicc", "settle", "nice_v2" ], "x-portone-per-pg": { "kicc": { "required": true }, "settle": { "required": true }, "nice_v2": { "required": true, "description": "API로 현금영수증 발급 시, 현금영수증 카드 번호로 현금영수증 발급이 불가능하오니 참고 부탁드립니다.
\n" } } }, { "name": "type", "in": "formData", "description": "현금영수증 발행 타입(대상).\n현금영수증 발행할 대상의 타입
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "nice_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "company_tel", "in": "formData", "description": "발행 상점 고객센터 번호현금영수증 발행 상점 고객센터 번호
\n", "x-portone-supported-pgs": [ "daou" ], "x-portone-per-pg": { "daou": { "required": true } } }, { "name": "company_name", "in": "formData", "description": "상점 사업자 명현금영수증 발행 상점 사업자 명
\n", "x-portone-supported-pgs": [ "daou" ], "x-portone-per-pg": { "daou": { "required": true } } }, { "name": "corp_reg_no", "in": "formData", "description": "상점 사업자 번호현금영수증 발행 상점 사업자 번호
\n", "x-portone-supported-pgs": [ "daou", "welcome" ], "x-portone-per-pg": { "daou": { "required": true }, "welcome": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "구매자 이름현금영수증을 발행할 결제건의 구매자 이름
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.
\n", "x-portone-per-pg": { "ksnet": { "required": true }, "smartro_v2": { "required": true } } }, { "name": "buyer_email", "in": "formData", "description": "구매자 Email", "required": false, "type": "string", "x-portone-name": "구매자 Email 주소", "x-portone-description": "현금영수증을 발행할 결제건의 구매자 Email 주소
\n" }, { "name": "buyer_tel", "in": "formData", "description": "구매자 전화번호현금영수증을 발행할 결제건의 구매자 전화번호
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "welcome": { "requiqred": true } } }, { "name": "tax_free", "in": "formData", "description": "현금영수증 발행금액 중 면세금액현금영수증 발행금액 중 면세금액으로 지정하지 않으면 0원으로 적용합니다.
\n", "x-portone-description": "발행금액의 1/11 이 부가세로 자동 적용되므로, 부가세금액 조정을 위해서는 tax_free
파라메터를 활용해주세요.
부가세 지정 가맹점에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다.
\n" } ], "responses": { "200": { "description": "현금영수증 발행 완료", "schema": { "$ref": "#/definitions/ReceiptResponse" } }, "400": { "description": "필수 파라메터가 누락된 경우, 결제완료(paid)가 아닌 결제 건에 대해 발행요청한 경우, 이미 현금영수증 발행된 건에 대해 요청한 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "현금영수증 발행에 실패한 경우" }, "501": { "description": "현재 포트원이 현금영수증 관련 지원하지 않는 PG사인 경우" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "nice", "kicc", "settle", "daou", "tosspayments", "ksnet", "smartro", "smartro_v2", "nice_v2", "welcome" ], "x-portone-category": "receipt", "x-portone-per-pg": { "tosspayments": { "description": "현금영수증 발급 API 호출시 유효성 검사를 하지 않습니다.
\n예를 들어 현금영수증 발급 유형(type)을 소득공제(person
)으로 보내고 현금영수증 발급 번호(identifier)를 사업자 등록번호로 보내면\n실제로는 현금영수증 발급에 실패해야하지만 토스페이먼츠에서 유효성 검사를 하지 않아 그대로 성공 응답을 보내고 있습니다.\n따라서 원활한 현금영수증 발급을 위해서는 현금영수증 발급 API 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.
현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 취소해야합니다.
\n" }, "nice_v2": { "description": "현금영수증 유의사항
\n현금영수증을 취소할 결제건의 포트원 거래고유번호
\n" } ], "responses": { "200": { "description": "현금영수증 발급취소 완료", "schema": { "$ref": "#/definitions/ReceiptResponse" } }, "400": { "description": "포트원으로 현금영수증이 발급된 적 없는 건에 대해서 발급취소 요청한 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "PG사로부터 현금영수증 발급취소 실패응답을 받은 경우" }, "501": { "description": "현재 포트원이 현금영수증 관련 지원하지 않는 PG사인 경우" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "settle", "nice", "daou", "tosspayments", "nice_v2", "ksnet", "smartro_v2", "welcome" ], "x-portone-category": "receipt" } }, "/receipts/external/{merchant_uid}": { "get": { "tags": [ "receipts" ], "summary": "외부 발급내역 단건 조회 API", "description": "포트원 API를 통해 현금영수증만 발행된 건의 상세정보를 조회하는 API입니다. (포트원과 별개로 결제된 현금거래건)", "operationId": "getExternalReceipt", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "현금영수증 발행 대상 가맹점 주문번호", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "현금영수증 발행 대상 가맹점 주문번호
\n" } ], "responses": { "200": { "description": "현금영수증 상세정보 조회 완료", "schema": { "$ref": "#/definitions/ExternalReceiptResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "merchant_uid 로 현금영수증 발행된 내역이 확인되지 않는 경우" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "settle", "nice", "kicc", "tosspayments", "nice_v2", "ksnet", "smartro_v2", "welcome" ], "x-portone-category": "receipt" }, "post": { "tags": [ "receipts" ], "summary": "현금영수증 발급(외부) API", "description": "포트원과 별개로 거래된 일반 현금결제에 대해, 포트원 내에 설정된 PG사로 현금영수증 발행 요청하는 API입니다.\n\n현금영수증 발행을 위한 가맹점 주문번호
\n", "x-portone-description": "가맹점 주문번호는 현금거래 주문번호와 동일한 번호를 기재해야 추후 대사가 가능한점 유념하시기 바랍니다.
\n", "x-portone-per-pg": { "smartro_v2": { "description": "특수문자 포함이 불가능합니다.
\n" } } }, { "name": "name", "in": "formData", "description": "현금영수증 발행 주문명", "required": true, "type": "string", "x-portone-name": "주문명", "x-portone-description": "현금영수증 발행할 결제건의 주문명
\n" }, { "name": "amount", "in": "formData", "description": "현금영수증 발행 금액", "required": true, "type": "integer", "x-portone-name": "발행 금액", "x-portone-description": "현금영수증 발행할 결제건의 금액
\n" }, { "name": "product_type", "in": "formData", "description": "현금영수증 발행 주문 상품구분현금영수증 발행할 결제건의 주문 상품구분
\n", "x-portone-supported-pgs": [ "ksnet" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "identifier", "in": "formData", "description": "현금영수증 발행대상 식별정보현금영수증 발행대상 식별정보로 국세청현금영수증카드
, 휴대폰번호
, 주민등록번호
, 사업자등록번호
를 기재합니다.
identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" }, "kcp": { "description": "identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" }, "nice": { "description": "identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.
\n" } } }, { "name": "identifier_type", "in": "formData", "description": "현금영수증 발행대상 식별정보 유형현금영수증 발행대상의 식별정보 구분코드
\n", "x-portone-supported-pgs": [ "kicc", "settle", "nice_v2" ], "x-portone-per-pg": { "kicc": { "required": true }, "settle": { "required": true }, "nice_v2": { "required": true, "description": "API로 현금영수증 발급 시, 현금영수증 카드 번호로 현금영수증 발급이 불가능하오니 참고 부탁드립니다.
\n" } } }, { "name": "type", "in": "formData", "description": "현금영수증 발행 타입(대상)\n현금영수증 발행할 대상의 타입
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "nice_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "구매자 이름현금영수증을 발행할 결제건의 구매자 이름
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.
\n", "x-portone-per-pg": { "ksnet": { "required": true }, "smartro_v2": { "required": true } } }, { "name": "buyer_email", "in": "formData", "description": "구매자 Email", "required": false, "type": "string", "x-portone-name": "구매자 Email 주소", "x-portone-description": "현금영수증을 발행할 결제건의 구매자 Email 주소
\n" }, { "name": "buyer_tel", "in": "formData", "description": "구매자 전화번호현금영수증을 발행할 결제건의 구매자 전화번호
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "tax_free", "in": "formData", "description": "현금영수증 발행금액 중 면세금액현금영수증 발행금액 중 면세금액으로 지정하지 않으면 0원으로 적용
\n", "x-portone-description": "발행금액의 1/11 이 부가세로 자동 적용되므로, 부가세금액 조정을 위해서는 tax_free 파라메터를 활용해주세요.
\n" }, { "name": "pg", "in": "formData", "description": "PG설정이 2개 이상인 경우, 현금영수증 발행처리를 원하는 PG사를 지정하실 수 있습니다.\n pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.현금영수증을 발행할 PG사 구분코드
\n" }, { "name": "vat_amount", "in": "formData", "description": "부가세 지정 가맹점에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다.", "required": false, "type": "number", "x-portone-name": "부가세 지정 금액", "x-portone-description": "부가세 지정 가맹점에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다.
\n" }, { "name": "corp_reg_no", "in": "formData", "description": "상점 사업자 번호현금영수증 발행 상점 사업자 번호
\n", "x-portone-supported-pgs": [ "welcome" ], "x-portone-per-pg": { "welcome": { "required": true } } }, { "name": "pay_method", "in": "formData", "description": "결제건의 결제수단현금영수증 발행 할 결제건의 결제수단
\n", "x-portone-supported-pgs": [ "welcome" ], "x-portone-per-pg": { "welcome": { "required": true } } } ], "responses": { "200": { "description": "현금영수증 발행 완료", "schema": { "$ref": "#/definitions/ExternalReceiptResponse" } }, "400": { "description": "필수 파라메터가 누락된 경우, 이미 현금영수증 발행된 merchant_uid 에 대해 요청한 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "현금영수증 발행에 실패한 경우" }, "501": { "description": "현재 포트원이 현금영수증 관련 지원하지 않는 PG사인 경우" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "settle", "nice", "kicc", "tosspayments", "nice_v2", "ksnet", "smartro", "smartro_v2", "welcome" ], "x-portone-category": "receipt", "x-portone-per-pg": { "tosspayments": { "description": "현금영수증 발급 API 호출시 유효성 검사를 하지 않습니다.
\n예를 들어 현금영수증 발급 유형(type)을 소득공제(person
)으로 보내고 현금영수증 발급 번호(identifier)를 사업자 등록번호로 보내면\n실제로는 현금영수증 발급에 실패해야하지만 토스페이먼츠에서 유효성 검사를 하지 않아 그대로 성공 응답을 보내고 있습니다.\n따라서 원활한 현금영수증 발급을 위해서는 현금영수증 발급 API 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.
현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 취소해야합니다.
\n" }, "nice_v2": { "description": "현금영수증 유의사항
\n발급취소대상 가맹점 주문번호
\n", "x-portone-description": "merchant_uid는 현금결제를 구분할 고유주문번호를 의미하며 발행에 사용된 값을 전달하면 됩니다.
\n" } ], "responses": { "200": { "description": "현금영수증 발행취소 완료", "schema": { "$ref": "#/definitions/ExternalReceiptResponse" } }, "400": { "description": "merchant_uid 파라메터가 누락된 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "현금영수증 발행된 적이 없는 merchant_uid 에 대해 요청한 경우" }, "500": { "description": "현금영수증 발행취소에 실패한 경우" }, "501": { "description": "현재 포트원이 현금영수증 관련 지원하지 않는 PG사인 경우" } }, "x-portone-supported-pgs": [ "html5_inicis", "kcp", "settle", "nice", "tosspayments", "nice_v2", "ksnet", "smartro_v2", "welcome" ], "x-portone-category": "receipt" } }, "/cards": { "get": { "tags": [ "codes" ], "summary": "카드사코드 전체조회 API", "description": "카드사정보 리스트를 조회합니다.조회할 카드사 코드
\n" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/StandardCodeResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "코드에 해당되는 카드사정보를 찾을 수 없음" } }, "x-portone-category": "etc.code" } }, "/banks": { "get": { "tags": [ "codes" ], "summary": "은행코드 전체조회 API", "description": "은행정보 리스트를 조회합니다.조회할 은행코드
\n" } ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/StandardCodeResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "코드에 해당되는 은행정보를 찾을 수 없음" } }, "x-portone-category": "etc.code" } }, "/subscribe/payments/onetime": { "post": { "tags": [ "subscribe" ], "summary": "비 인증 결제(일회성) API", "description": "구매자로부터 별도의 인증과정을 거치지 않고, 카드정보만으로 결제를 진행하는 API입니다.가맹점 거래 고유번호로 매 결제요청 시 고유값으로 요청해야 합니다.
\n" }, { "name": "currency", "in": "formData", "description": "(Paymentwall 전용) 통화 e.g.) KRW, USD, VND, ... Default: KRW", "required": false, "type": "string", "x-portone-name": "결제통화 구분코드", "x-portone-description": "통화 e.g.) KRW, USD, VND, ... Default: KRW
\n", "x-portone-per-pg": { "ksnet": { "description": "USD 결제는 순수 해외카드로만 결제 가능합니다.
\n" } } }, { "name": "amount", "in": "formData", "description": "결제금액", "required": true, "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제요청 할 금액
\n" }, { "name": "tax_free", "in": "formData", "description": "amount 중 면세공급가액.amount 중 면세공급가액
\n", "x-portone-per-pg": { "ksnet": { "description": "면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.
\n과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.
\n" }, "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 사용 가능합니다.
amount 중 부가세 금액
\n", "x-portone-description": "부가세를 지정할 수 있으며, tax_free=0, vat_amount=0
으로 영세율로 결제 가능합니다.\nPG사와의 사전 협의 후 사용가능합니다. (기본값: null)
부가세업체정함
설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
카드번호(dddd-dddd-dddd-dddd
) 기재 양식을 유의하세요.
카드 유효기간(YYYY-MM
) 기재 양식을 유의하세요.
생년월일6자리(YYMMDD
) (법인카드의 경우 사업자등록번호10자리)
PG사별로 혹은 계약상황에 따라 필수값 여부가 상이합니다.
\n생년월일 기재가 필요없는 해외 PG사 결제 요청의 경우 000000
으로 고정 기재하도 무방합니다.
카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어\n birth
(생년월일 6자리 혹은 사업자 등록번호 10자리)는 검증하지 않습니다.
결제 요청할 카드의 비밀번호 앞 2자리
\n", "x-portone-description": "PG사별로 혹은 계약상황에 따라 필수값 여부가 상이합니다.
\n", "x-portone-per-pg": { "ksnet": { "description": "카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어\n pwd_2digit
(생년월일 6자리 혹은 사업자 등록번호 10자리)는 검증하지 않습니다.
결제 요청할 카드의 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리)
\n", "x-portone-supported-pgs": [ "paymentwall" ], "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "customer_uid", "in": "formData", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호.빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n", "x-portone-unsupported-pgs": [ "ksnet", "tosspayments" ] }, { "name": "pg", "in": "formData", "description": "API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.결제 요청할 PG사 구분코드
\n" }, { "name": "name", "in": "formData", "description": "제품명", "required": false, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "결제요청 할 결제건의 주문명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "주문자명결제건의 구매자명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "ksnet": { "required": true }, "welcome": { "required": true }, "paymentwall": { "description": "구매자명은 first name 과 last name이 한칸 띄어쓰기 형태로 구분되서 유입되어야 합니다. 예시) Michael Jackson
\n" } } }, { "name": "buyer_email", "in": "formData", "description": "주문자 E-mail주소", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 E-mail 주소", "x-portone-description": "결제건의 주문자 E-mail주소
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "결제건의 주문자 전화번호
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, { "name": "buyer_addr", "in": "formData", "description": "주문자 주소", "required": false, "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "결제건의 주문자 주소
\n" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호
\n" }, { "name": "card_quota", "in": "formData", "description": "카드할부개월수. 2 이상의 integer 할부개월수 적용결제건의 카드할부개월수으로 기본값은 **0(일시불)**입니다.
\n", "x-portone-description": "결제금액 50,000원 이상 한정으로 2 이상의 integer 할부개월수가 적용가능합니다.
\n" }, { "name": "interest_free_by_merchant", "in": "formData", "description": "카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하고자 PG사와 계약된 경우카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하는지에 대한 여부 (PG사와 사전 계약이 필요)
\n", "x-portone-supported-pgs": [ "nice_v2", "nice" ] }, { "name": "use_card_point", "in": "formData", "description": "승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부 flag. PG사 영업담당자와 계약 당시 사전 협의 필요승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부 flag. PG사 영업담당자와 계약 당시 사전 협의 필요
\n", "x-portone-supported-pgs": [ "ksnet", "nice", "nice_v2" ] }, { "name": "custom_data", "in": "formData", "description": "거래정보와 함께 저장할 추가 정보", "required": false, "type": "string", "x-portone-name": "추가 정보", "x-portone-description": "거래정보와 함께 저장할 추가 정보
\n" }, { "name": "notice_url", "in": "formData", "description": "결제성공 시 통지될 Notification URL(Webhook URL)", "required": false, "type": "string", "x-portone-name": "Notification URL(Webhook URL)", "x-portone-description": "결제성공 시 통지될 Notification URL(Webhook URL)
\n" }, { "name": "browser_ip", "in": "formData", "description": "구매자 브라우져(PC)의 IP (필수 : 페이먼트월)", "required": false, "type": "string", "x-portone-name": "브라우져 IP", "x-portone-description": "구매자 브라우져(PC)의 IP
\n", "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "secure_3d_charge_id", "in": "formData", "description": "(해외PG 전용) 3D secure 인증 후 재결제시 PG사에서 부여한 결제 ID", "required": false, "type": "string", "x-portone-name": "결제 ID", "x-portone-description": "해외PG 전용 파라미터로 3D secure 인증 후 재결제시 PG사에서 부여한 결제 ID
\n", "x-portone-supported-pgs": [ "paymentwall" ] }, { "name": "secure_3d_token", "in": "formData", "description": "(해외PG 전용) 3D secure 인증 후 재결제시 PG사에서 부여한 토큰", "required": false, "type": "string", "x-portone-name": "토큰", "x-portone-description": "해외PG 전용 파라미터로 3D secure 인증 후 재결제시 PG사에서 부여한 토큰
\n", "x-portone-supported-pgs": [ "paymentwall" ] }, { "name": "product_type", "in": "formData", "description": "판매 상품에 대한 구분 값결제 요청할 판매 상품에 대한 구분 값
\n", "x-portone-supported-pgs": [ "ksnet" ], "x-portone-per-pg": { "ksnet": { "required": true } } } ], "responses": { "200": { "description": "정상 결제", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "daou", "kcp", "nice", "nice_v2", "html5_inicis", "jtnet", "paymentwall", "settle", "tosspayments", "ksnet", "welcome" ], "x-portone-category": "nonAuthPayment" } }, "/subscribe/payments/again": { "post": { "tags": [ "subscribe" ], "summary": "비 인증 결제(빌링키) API", "description": "저장된 빌링키로 재결제를 하는 경우 사용됩니다. PG사 결제창, 비 인증 결제(일회성)API 또는 빌링키 발급 API로 등록된 빌링키가 있을 때 매칭되는 customer_uid로 재결제를 진행할 수 있습니다.", "operationId": "again", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid", "in": "formData", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "merchant_uid", "in": "formData", "description": "가맹점 거래 고유번호 (스마트로 - 신모듈의 경우, 특수문자 포함이 불가능합니다.)", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제 요청할 결제건의 가맹점 거래 고유번호
\n", "x-portone-per-pg": { "smartro_v2": { "description": "스마트로는 주문 번호(merchant_uid)에 특수문자를 허용하고 있지 않습니다.
\n따라서 결제창에서 일반결제를 할때와 발급 된 빌링키로 API를 통해 재결제를 하는 경우 숫자, 문자(알파벳 소문자와 대문자) 또는 그 조합으로 이루어진 주문 번호를 사용해주세요.\n또한, 주문번호(merchant_uid)가 최대 40자를 넘을 수 없습니다. 40자가 넘을 경우 40자까지 잘려서 저장되기 때문에 유의 바랍니다.
\n" } } }, { "name": "currency", "in": "formData", "description": "(Paymentwall 전용) 통화 e.g.) KRW, USD, VND, ... Default: KRW", "required": false, "type": "string", "x-portone-name": "결제 통화 코드", "x-portone-description": "통화 e.g.) KRW, USD, VND, ... Default: KRW
\n", "x-portone-per-pg": { "ksnet": { "description": "USD 결제는 순수 해외카드로만 결제 가능합니다.
\n" }, "paypal_v2": { "required": true, "description": "KRW은 불가능합니다.
\n" } } }, { "name": "amount", "in": "formData", "description": "결제금액", "required": true, "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제 요청할 금액
\n" }, { "name": "tax_free", "in": "formData", "description": "amount 중 면세공급가액.amount 중 면세공급가액
\n", "x-portone-per-pg": { "ksnet": { "description": "면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.
\n과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.
\n" }, "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 사용 가능합니다.
amount 중 부가세 금액
\n", "x-portone-description": "부가세를 지정할 수 있으며, tax_free=0, vat_amount=0
으로 영세율로 결제 가능합니다.(기본값: null)
부가세업체정함
설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
결제 요청할 결제건의 제품명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "danal_tpay": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "주문자명결제건의 주문자명
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "ksnet": { "required": true }, "welcome": { "required": true }, "paymentwall": { "description": "first name, last name 한칸 띄어쓰기로 구분되어 유입되어야 합니다. 예시) Michael Jackson
\n" } } }, { "name": "buyer_email", "in": "formData", "description": "주문자 E-mail주소 (필수 : 페이먼트월, 스마트로 - 신모듈)", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 E-mail 주소", "x-portone-description": "결제건의 주문자 E-mail주소
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "paymentwall": { "required": true, "description": "빌링키 발급시 기재한 이메일주소와 발급된 빌링키로 결제시 기입한 이메일주소가 일치해야 합니다.
\n" } } }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호 (필수 :스마트로 - 신모듈)", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "결제건의 주문자 전화번호
\n", "x-portone-per-pg": { "smartro_v2": { "required": true } } }, { "name": "buyer_addr", "in": "formData", "description": "주문자 주소", "required": false, "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "결제건의 주문자 주소
\n" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호
\n" }, { "name": "card_quota", "in": "formData", "description": "카드할부개월수. 2 이상의 integer 할부개월수 적용결제건의 카드 할부 개월 수로 기본값은 **0(일시불)**입니다.
\n" }, { "name": "interest_free_by_merchant", "in": "formData", "description": "카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하고자 PG사와 계약된 경우카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하는지에 대한 여부 (PG사와 사전 계약이 필요)
\n", "x-portone-supported-pgs": [ "nice", "ksnet", "nice_v2" ] }, { "name": "use_card_point", "in": "formData", "description": "승인요청시 카드사 포인트 차감하며 결제승인처리할지 flag. PG사 영업담당자와 계약 당시 사전 협의 필요승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부 flag. PG사 영업담당자와 계약 당시 사전 협의 필요
\n", "x-portone-supported-pgs": [ "nice", "smartro_v2", "nice_v2" ] }, { "name": "custom_data", "in": "formData", "description": "거래정보와 함께 저장할 추가 정보", "required": false, "type": "string", "x-portone-name": "빌링키 발급 시 같이 저장할 가맹점 custom 데이터", "x-portone-description": "거래정보와 함께 저장할 추가 정보
\n" }, { "name": "notice_url", "in": "formData", "description": "결제성공 시 통지될 Notification URL(Webhook URL)", "required": false, "type": "string", "x-portone-name": "Notification URL(Webhook URL)", "x-portone-description": "결제성공 시 통지될 Notification URL(Webhook URL)
\n" }, { "name": "browser_ip", "in": "formData", "description": "구매자 브라우져(PC)의 IP구매자 브라우져(PC)의 IP
\n", "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "product_type", "in": "formData", "description": "판매 상품에 대한 구분 값 (real : 실물상품, digital : 디지털 컨텐츠)결제 요청할 판매 상품에 대한 구분 값
\n", "x-portone-supported-pgs": [ "ksnet", "paypal_v2" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "product_count", "in": "formData", "description": "결제 상품의 개수 (Default : 1)", "required": false, "type": "integer", "x-portone-name": "결제 상품의 개수", "x-portone-description": "결제 상품의 개수로 기본값은 1입니다.
\n" }, { "name": "cash_receipt_type", "in": "formData", "description": "현금영수증 발행할 대상현금영수증 발행대상의 구분 값
\n", "x-portone-supported-pgs": [ "tosspay_v2" ], "x-portone-per-pg": { "tosspay_v2": { "description": "(신) 토스페이 경우 anonymous 전달 시 현금영수증 미발행 그 외의 값을 전달한 경우 현금영수증 자동 발행으로 동작합니다.
\n" } } }, { "name": "bypass", "in": "formData", "description": "JSON string 형식의 PG사별로 특화된 파라미터.JSON string 형식의 PG사별로 특화된 파라미터
\n", "x-portone-description": "전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다. 각 PG사별 스펙은 PG사별 연동 문서 참고해주세요
\n" }, { "name": "extra", "in": "formData", "description": "추가 파라미터", "required": false, "schema": { "$ref": "#/definitions/SubscribePaymentExtra" }, "x-portone-name": "추가 파라미터", "x-portone-description": "비인증 결제 요청 시 추가 파라미터
\n" } ], "responses": { "200": { "description": "정상 결제", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "nonAuthPayment", "x-portone-per-pg": { "paypal_v2": { "description": "페이팔은 이상 거래를 줄이기 위해 Risk Data Acquisition 정책을 시행하고 있습니다. 일반 결제나 빌링키 발급은 페이팔 버튼을 통해 진행되기 때문에 페이팔이 이상 거래 판단을 위한 구매자 접속 정보를 얻을 수 있지만, 발급 된 빌링키로 재결제 (again API 호출) 할때는 가맹점 서버에서 포트원 API를 통해 페이팔 API가 호출되는 구조이기 때문에 이상 거래 판단을 위한 구매자 접속 정보를 얻을 수 없습니다.\n따라서 발급 된 빌링키로 재결제를 할때는 구매자의 브라우저/디바이스 접속 정보를 페이팔에 전달할 수 있도록 again API가 호출되는 가맹점 클라이언트 페이지에 반드시 페이팔 Fraudnet 스크립트/Manges SDK를 아래와 같이 추가해야 합니다.
\n페이팔 RT를 통한 again API 호출시에는 Manges & Fraudnet 조치가 필수적으로 요구됩니다.\n브라우저/앱에 페이팔 Fraudnet Script/Manges SDK를 추가한 후 again API를 호출할때 진행되는 플로우는 아래와 같습니다.
\n\n<!-- again API가 호출되는 가맹점 클라이언트 -->\n<script\n type=\"application/json\"\n fncls=\"fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99\"\n>\n{\n \"f\": \"RISK_SESSION_CORRELATION_ID\",\n \"s\": \"SOURCE_IDENTIFIER\",\n \"sandbox\": true\n}\n</script>\n<script type=\"text/javascript\" src=\"https://c.paypal.com/da/r/fb.js\"></script>\n<noscript>\n<img\n src=\"https://c.paypal.com/v1/r/d/b/ns?f=RISK_SESSION_CORRELATION_ID&s=SOURCE_IDENTIFIER&js=0&r=1\"\n/>\n</noscript>
파라미터 | \n의미 | \n예시 | \n
---|---|---|
fncls | \nfnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99로 항상 고정 | \nfnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99 | \n
f | \n주문번호(merchant_uid) 전달 | \nmid_1683690731602 | \n
s | \nstring | \n7WBB3CKT63FRG_checkout-page | \n
sandbox | \n페이팔 Account ID가 테스트 용인지 운영 용인지 여부 | \ntrue | \n
Android Integration of Magnes 가이드 문서에 따라 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 두번째 파라미터(paypalClientMetaDataId
)로는 주문번호(merchant_uid
)를 전달해주시면 됩니다.
MagnesResult magnesResult = MagnesSDK.getInstance()\n.collectAndSubmit(Context context, String paypalClientMetaDataId,\nHashMap<String, String>\nadditionalData)
iOS Swift SDK Integration 가이드 문서에 따라 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 첫번째 파라미터(withPayPalClientMetadataId
)로는 주문번호(merchant_uid
)를 전달해주시면 됩니다.
let magnesResult:MagnesResult =\nMagnesSDK.shared().collectAndSubmit(withPayPalClientMetadataId:\n\"YOUR-PAYPAL-CLIENT-METADATA-ID\", withAdditionalData: [String: String])
iOS Objective-C SDK Integration of Magnes 가이드 문서에 따라 아래와 같이 collectAndSubmitWithPayPalClientMetadataId 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 첫번째 파라미터(YOUR-PAYPAL-CLIENT-METADATA-ID
)로는 주문번호(merchant_uid
)를 전달해주시면 됩니다.
//PPRMOCMagnesSDK *magnesSDK = [PPRMOCMagnesSDK shared];\nPPRMOCMagnesSDKResult *magnesResult =\n[magnesSDK\ncollectAndSubmitWithPayPalClientMetadataId:@\"YOUR-PAYPAL-CLIENT-METADATA-ID\"\nwithAdditionalData:@{}];
페이팔은 판매자 보호 정책을 통해 가맹점 거래에서 이상 거래나 사기 등이 발생 시, 판매자 보호 정책을 통해 가맹점이 손해 입을 수 있는 부분을 보존하는 판매자 보호 프로그램을 가지고 있습니다. 이 판매자 보호 정책을 적용하기 위해서는 페이팔 측에서 제공하는 STC 기능을 사용해야 합니다.
\nSTC 기능을 사용하시기 위해 다음 정보를 확인하셔야 합니다.
\nawait fetch(\n \"https://api.iamport.kr/subscribe/payments/again\",\n {\n method: \"POST\",\n headers: {\n Authorization: `Basic ${ACCESS_TOKEN}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n customer_uid, // [필수 입력] 빌링키 발급시 전달 한 빌링키와 1:1 매핑되는 UUID\n merchant_uid, // [필수 입력] 주문 번호\n currency, // [필수 입력] 결제 통화 (페이팔은 KRW 불가능)\n amount, // [필수 입력] 결제 금액\n name, // 주문명\n bypass: JSON.stringify({\n paypal_v2: {\n additional_data: [{\n key: \"sender_account_id\", // 가맹점 account ID(merchant-id)\n value: \"A12345N343\"\n }, {\n key: \"sender_first_name\", // 가맹점의 account에 등록 된 구매자의 이름\n value: \"John\"\n }, {\n key: \"sender_last_name\", // 가맹점의 account에 등록 된 구매자의 이름\n value: \"Doe\"\n }, {\n key: \"sender_email\", // 가맹점의 account에 등록 된 구매자의 이메일 주소\n value: \"example@example.com\"\n }, {\n key: \"sender_phone\", // 가맹점의 account에 등록 된 구매자의 연락처\n value: \"(02)16705176\"\n }, {\n key: \"sender_country_code\", // 가맹점의 account에 등록 된 국가 코드\n value: \"KR\" // ISO Alpha-2 형식 국가 코드\n }, {\n key: \"sender_create_date\", // 가맹점의 account에 등록 된 국가 코드\n value: \"2023-10-10T23:59:59+09:00\" // IOS8601 형식\n }]\n }\n }) // end of bypass string\n }) // end of body\n }\n)
조회 시작시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')
\n" }, { "name": "schedule_to", "in": "query", "description": "조회 종료시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)", "required": true, "type": "integer", "x-portone-name": "조회 종료시각", "x-portone-description": "조회 종료시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)
\n" }, { "name": "schedule_status", "in": "query", "description": "예약상태. 누락되면 모든 상태의 예약내역 조회\n조회할 결제건의 예약상태
\n" }, { "name": "page", "in": "query", "description": "조회목록 페이징. 1부터 시작하며, 기본값은 1입니다.", "required": false, "type": "integer", "x-portone-name": "조회목록 페이징", "x-portone-description": "조회목록 페이징으로 기본값은 1입니다.
\n" }, { "name": "limit", "in": "query", "description": "한 번에 조회할 결제예약건수.(최대 1000건, 기본값 20건)", "required": false, "type": "integer", "default": "20", "maximum": "1000", "minimum": "1", "x-portone-name": "페이지당 조회건수", "x-portone-description": "한 번에 조회할 결제예약건수.(최대 1000건, 기본값 20건)
\n" }, { "name": "sorting", "in": "query", "description": "정렬방식조회된 결제건의 정렬방식
\n" } ], "responses": { "200": { "description": "결제예약목록 조회완료", "schema": { "$ref": "#/definitions/ScheduleResponse" } }, "400": { "description": "검색 파라메터가 유효하지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "nonAuthPayment.subscribe" }, "post": { "tags": [ "subscribe" ], "summary": "결제 예약 API", "description": "customer__uid를 이용하여 비인증 결제 요청을 예약할 수 있는 API입니다.빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "customer_id", "in": "formData", "description": "string 타입의 구매자 식별 고유번호 (필수 : 토스페이먼츠)", "required": false, "type": "string", "x-portone-description": "string 타입의 구매자 식별 고유번호
\n", "x-portone-name": "구매자 ID", "x-portone-per-pg": { "tosspayments": { "required": true, "description": "customer_id는 optional이기 때문에 보내지 않아도 동작은 하지만 보내지 않으면\n (포트원이 빌링키 발급 요청시마다 customer_id에 uuid값을 채번하기 때문에)\n 구매자와 결제수단은 매칭되지 않으니 유념하시기 바랍니다.
\n" } } }, { "name": "checking_amount", "in": "formData", "description": "카드정상결제여부 체크용 금액. 결제 직후 자동으로 취소됩니다. (0원으로 설정할 경우 테스트하지 않음)", "required": false, "type": "integer", "x-portone-name": "유효카드 체크 승인금액", "x-portone-summary": "결제 예약을 위해 카드정상결제여부를 체크하는 승인 금액
\n", "x-portone-description": "결제 직후 자동으로 취소됩니다. (0원으로 설정할 경우 테스트하지 않음)
\n" }, { "name": "card_number", "in": "formData", "description": "카드번호(dddd-dddd-dddd-dddd)", "required": false, "type": "string", "x-portone-name": "카드번호", "x-portone-description": "결제 예약 요청할 카드번호(dddd-dddd-dddd-dddd
)
결제 예약 요청할 카드 유효기간(YYYY-MM
)
결제 예약 요청할 카드 소유자의 생년월일6자리(법인카드의 경우 사업자등록번호10자리)
\n", "x-portone-unsupported-pgs": [ "chai", "danal", "danal_tpay", "kakaopay", "kicc", "mobilians", "naverpay", "payco", "settle_acc", "settle_firm", "smartro", "uplus", "smartro_v2" ] }, { "name": "pwd_2digit", "in": "formData", "description": "카드비밀번호 앞 2자리", "required": false, "type": "string", "x-portone-name": "카드비밀번호 앞 2자리", "x-portone-description": "결제 예약 요청할 카드비밀번호 앞 2자리
\n" }, { "name": "cvc", "in": "formData", "description": "카드 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리). Paymentwall에서만 사용", "required": false, "type": "string", "x-portone-name": "카드 인증번호", "x-portone-description": "결제 예약 요청할 카드 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리)
\n", "x-portone-supported-pgs": [ "paymentwall" ], "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "pg", "in": "formData", "description": "신규 customer_uid를 등록하는 경우에만 유효합니다.(기존에 등록된 customer_uid로만 schedule 하는 경우에는 pg파라메터 적용되지 않습니다.)결제 예약을 요청할 PG사 구분코드
\n", "x-portone-description": "신규 customer_uid를 등록하는 경우에만 유효합니다.(기존에 등록된 customer_uid로만 schedule 하는 경우에는 pg파라메터 적용되지 않습니다.)
\nAPI 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.
\n지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.
\n결제예약 스케쥴에 대한 배열
\n" } ], "responses": { "200": { "description": "정상적으로 예약 등록이 완료되었습니다", "schema": { "$ref": "#/definitions/ScheduleResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "nonAuthPayment.subscribe", "x-portone-per-pg": { "chai": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "danal": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "danal_tpay": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "kakaopay": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "kicc": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "mobilians": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "naverpay": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "payco": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "settle_acc": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "settle_firm": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "smartro": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "uplus": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "smartro_v2": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" }, "tosspay_v2": { "description": "API 방식으로 빌링키 발급을 지원하지 않기 때문에, 예약결제시 새로운 빌링키 발급은 지원하지 않습니다.
\n" } } } }, "/subscribe/payments/unschedule": { "post": { "tags": [ "subscribe" ], "summary": "결제 예약취소 API", "description": "예약된 결제가 실행되기전에 해당 예약을 취소할 수 있는 API입니다.", "operationId": "unschedule", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid", "in": "formData", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호", "required": true, "type": "string", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, { "name": "merchant_uid", "in": "formData", "description": "가맹점 거래 고유번호결제 예약 취소할 결제건의 가맹점 거래 고유번호
\n", "x-portone-description": "누락되면 customer_uid에 대한 결제예약정보를 일괄취소합니다.
\n" } ], "responses": { "200": { "description": "정상적으로 예약 취소가 완료되었습니다", "schema": { "$ref": "#/definitions/ScheduleResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "nonAuthPayment.subscribe" } }, "/subscribe/payments/schedule/{merchant_uid}": { "get": { "tags": [ "subscribe" ], "summary": "결제예약 단건조회 API", "description": "예약 거래주문번호(merchant_uid)로 결제예약정보를 조회할 수 있습니다. 결제예약 등록시 사용된 merchant_uid로 예약 상태 등 정보를 조회할 수 있습니다.", "operationId": "getScheduleByMid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "결제예약에 사용된 가맹점 거래 고유번호", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제예약에 사용된 가맹점 거래 고유번호
\n" } ], "responses": { "200": { "description": "정상적으로 예약 취소가 완료되었습니다", "schema": { "$ref": "#/definitions/SingleScheduleResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "merchant_uid로 조회되는 예약결제건이 존재하지 않는 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "nonAuthPayment.subscribe" }, "put": { "tags": [ "subscribe" ], "summary": "결제요청 예약시각 수정 API", "description": "결제예약 시 사용한 거래주문번호(merchant_uid)를 이용하여 해당하는 예약 건의 결제요청 예약시각을 수정할 수 있습니다.", "operationId": "updateScheduleByMid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "결제예약에 사용된 가맹점 거래 고유번호", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제예약에 사용된 가맹점 거래 고유번호
\n" }, { "name": "schedule_at", "in": "formData", "description": "수정할 결제요청 예약시각 UNIX timestamp in seconds", "required": true, "type": "integer", "x-portone-name": "수정할 예약시각", "x-portone-description": "수정할 결제요청 예약시각 UNIX timestamp
\n" } ], "responses": { "200": { "description": "정상적으로 예약 변경이 완료되었습니다.", "schema": { "$ref": "#/definitions/SingleScheduleResponse" } }, "400": { "description": "필수 파라미터 누락, 이미 실행 혹은 취소된 결제예약, 예약시각이 현재 시각보다 과거인 경우" }, "404": { "description": "존재하지 않는 결제예약" }, "500": { "description": "포트원 내부 이슈로 인한 API 호출 실패" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome" ], "x-portone-category": "nonAuthPayment.subscribe" } }, "/subscribe/payments/schedule/{merchant_uid}/reschedule": { "post": { "tags": [ "subscribe" ], "summary": "결제 실패 재예약 API", "description": "결제 예약 실행 시 실패했던 건, 혹은 예약 취소했던 건에 대해 다른 시각으로 다시 결제 예약을 할 수 있습니다.", "operationId": "rescheduleByMid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "결제예약에 사용된 가맹점 거래 고유번호", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제예약에 사용된 가맹점 거래 고유번호
\n" }, { "name": "schedule_at", "in": "formData", "description": "실패한 예약건을 다시 처리할 시각 UNIX timestamp in seconds", "required": true, "type": "integer", "x-portone-name": "예약 시각", "x-portone-description": "실패한 예약건을 다시 처리할 시각 UNIX timestamp
\n" } ], "responses": { "200": { "description": "정상적으로 재예약이 완료되었습니다.", "schema": { "$ref": "#/definitions/SingleScheduleResponse" } }, "400": { "description": "필수 파라미터 누락, 아직 실행되지 않거나 이미 실행 중 혹은 승인된 결제예약, 예약시각이 현재 시각보다 과거인 경우" }, "404": { "description": "존재하지 않는 결제예약" }, "500": { "description": "포트원 내부 이슈로 인한 API 호출 실패" } }, "x-portone-supported_pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome" ], "x-portone-category": "nonAuthPayment.subscribe" } }, "/subscribe/payments/schedule/{merchant_uid}/retry": { "post": { "tags": [ "subscribe" ], "summary": "결제 실패 재시도 API", "description": "결제 예약 실행 시 실패했던 건, 혹은 예약 취소했던 건을 즉시 결제 재시도 할 수 있습니다.", "operationId": "retryScheduleByMid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "결제예약에 사용된 가맹점 거래 고유번호", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제예약에 사용된 가맹점 거래 고유번호
\n" } ], "responses": { "200": { "description": "정상적으로 재시도가 완료되었습니다. (결제 성공/실패 여부는 결제 상태(status)로 확인 필요)", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "400": { "description": "필수 파라미터 누락, 아직 실행되지 않거나 이미 실행중 혹은 승인된 결제예약" }, "404": { "description": "존재하지 않는 결제예약 혹은 빌링키" }, "500": { "description": "미지원 PG사, 포트원 내부 이슈 등으로 인한 API 호출 실패" } }, "x-portone-supported_pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome" ], "x-portone-category": "nonAuthPayment.subscribe" } }, "/subscribe/payments/schedule/customers/{customer_uid}": { "get": { "tags": [ "subscribe" ], "summary": "결제예약 복수조회(빌링키) API", "description": "빌링키 결제예약 조회 API 와 동일한 동작을 하는 API입니다.string 타입의 고객의 결제 수단 식별 고유번호
\n" }, { "name": "page", "in": "query", "description": "조회목록 페이징. 1부터 시작하며, 기본값은 1입니다.", "required": false, "type": "integer", "x-portone-name": "조회목록 페이징", "x-portone-description": "조회목록 페이징으로 기본값은 1입니다.
\n" }, { "name": "from", "in": "query", "description": "조회 시작시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')", "required": true, "type": "integer", "x-portone-name": "조회 시작시각", "x-portone-description": "조회 시작시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')
\n" }, { "name": "to", "in": "query", "description": "조회 종료시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)", "required": true, "type": "integer", "x-portone-name": "조회 종료시각", "x-portone-description": "조회 종료시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)
\n" }, { "name": "schedule-status", "in": "query", "description": "예약상태. 누락되면 모든 상태의 예약내역 조회\n조회할 결제건의 예약상태
\n" } ], "responses": { "200": { "description": "결제예약목록 조회완료", "schema": { "$ref": "#/definitions/ScheduleResponse" } }, "400": { "description": "검색 파라메터가 유효하지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "jtnet", "kakaopay", "kcp", "kcp_billing", "kicc", "ksnet", "mobilians", "naverpay", "nice", "nice_v2", "payco", "paymentwall", "settle", "settle_acc", "smartro_v2", "tosspayments", "paypal_v2", "welcome", "tosspay_v2" ], "x-portone-category": "nonAuthPayment.subscribe" } }, "/tiers/{tier_code}": { "get": { "tags": [ "tiers" ], "summary": "하위 가맹점 정보 조회 API", "description": "하위 가맹점(Tier)정보 조회. 등록된 하위 가맹점(Tier) 정보를 반환합니다.", "operationId": "GetTier", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "tier_code", "in": "path", "description": "하위 가맹점(Tier) 고유코드. 알파벳 대문자 또는 숫자만 사용(반드시 3자리)", "required": true, "type": "string", "default": "XYZ", "x-portone-name": "Tier 코드", "x-portone-description": "하위 가맹점의 고유 코드로 알파벳 대문자 또는 숫자만 사용 가능합니다.(반드시 3자리)
\n" } ], "responses": { "200": { "description": "정상 등록", "schema": { "$ref": "#/definitions/TierResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "등록되지 않았거나 이미 삭제된 tier_code를 사용한 경우" } }, "x-portone-category": "user.tier" }, "put": { "tags": [ "tiers" ], "summary": "하위 가맹점 정보 수정 API", "description": "하위 가맹점(Tier)정보 수정. 수정된 하위 가맹점(Tier) 정보를 반환합니다.", "operationId": "UpdateTier", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "tier_code", "in": "path", "description": "하위 가맹점(Tier) 고유코드. 알파벳 대문자 또는 숫자만 사용(반드시 3자리)", "required": true, "type": "string", "default": "XYZ", "x-portone-name": "Tier code", "x-portone-description": "하위 가맹점의 고유 코드로 알파벳 대문자 또는 숫자만 사용 가능합니다.(반드시 3자리)
\n" }, { "name": "tier_name", "in": "formData", "description": "가맹점 명칭(내부 관리용)", "required": true, "type": "string", "x-portone-name": "하위 가맹점 명칭", "x-portone-description": "내부 관리용으로 사용되는 하위 가맹점의 명칭
\n" } ], "responses": { "200": { "description": "정상 등록", "schema": { "$ref": "#/definitions/TierResponse" } }, "400": { "description": "필수 파라메터(tier_name)가 누락된 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "등록되지 않았거나 이미 삭제된 tier_code를 사용한 경우" }, "500": { "description": "저장에 실패한 경우" } }, "x-portone-category": "user.tier" }, "post": { "tags": [ "tiers" ], "summary": "하위 가맹점 정보 등록 API", "description": "하위 가맹점(Tier)정보 등록. 등록된 하위 가맹점(Tier) 정보를 반환합니다.", "operationId": "AddTier", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "tier_code", "in": "path", "description": "하위 가맹점(Tier) 고유코드. 알파벳 대문자 또는 숫자만 사용(반드시 3자리)", "required": true, "type": "string", "default": "XYZ", "x-portone-name": "Tier 코드", "x-portone-description": "하위 가맹점의 고유 코드로 알파벳 대문자 또는 숫자만 사용 가능합니다.(반드시 3자리)
\n" }, { "name": "tier_name", "in": "formData", "description": "가맹점 명칭(내부 관리용)", "required": true, "type": "string", "x-portone-name": "하위 가맹점 명칭", "x-portone-description": "내부 관리용으로 사용되는 하위 가맹점의 명칭
\n" } ], "responses": { "200": { "description": "정상 등록", "schema": { "$ref": "#/definitions/TierResponse" } }, "400": { "description": "필수 파라메터(tier_name)가 누락된 경우, 이미 등록된 tier_code에 대해 시도하는 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "저장에 실패한 경우" } }, "x-portone-category": "user.tier" }, "delete": { "tags": [ "tiers" ], "summary": "하위 가맹점 정보 삭제 API", "description": "하위 가맹점(Tier)정보 삭제. 삭제된 하위 가맹점(Tier) 정보를 반환합니다.", "operationId": "DeleteTier", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "tier_code", "in": "path", "description": "하위 가맹점(Tier) 고유코드. 알파벳 대문자 또는 숫자만 사용(반드시 3자리)", "required": true, "type": "string", "default": "XYZ", "x-portone-name": "Tier code", "x-portone-description": "하위 가맹점의 고유 코드로 알파벳 대문자 또는 숫자만 사용 가능합니다.(반드시 3자리)
\n" } ], "responses": { "200": { "description": "정상 등록", "schema": { "$ref": "#/definitions/TierResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "등록되지 않았거나 이미 삭제된 tier_code를 사용한 경우" }, "500": { "description": "삭제에 실패한 경우" } }, "x-portone-category": "user.tier" } }, "/users/pg": { "get": { "tags": [ "users" ], "summary": "PG MID복수조회 API", "description": "포트원 관리자 콘솔에 등록되어있는 PG MID 정보를 복수조회 할 수 있습니다.", "operationId": "getPgSettingList", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "responses": { "200": { "description": "포트원 관리자 콘솔에 등록되어있는 PG 설정 정보 응답 완료", "schema": { "$ref": "#/definitions/MultiplePgSettingResponse" } } }, "x-portone-category": "user" } }, "/vbanks": { "post": { "tags": [ "vbanks" ], "summary": "가상계좌 발급 API", "description": "가상계좌번호를 발급하여 고객이 입금할 수 있도록 합니다.가상계좌를 발급할 결제건의 가맹점 거래 고유번호으로 이미 결제가 이뤄진 적이 있는 merchant_uid로는 추가적인 가상계좌 생성이 불가능합니다.
\n", "x-portone-per-pg": { "smartro_v2": { "descripton": "특수문자 포함이 불가능합니다." } } }, { "name": "amount", "in": "formData", "description": "입금 예정 금액", "required": true, "type": "number", "x-portone-name": "입금 예정 금액", "x-portone-description": "발급 된 가상계좌에 입금 될 금액
\n" }, { "name": "product_type", "in": "formData", "description": "상품구분가상계좌 발급을 위한 결제건의 상품구분 코드
\n", "x-portone-supported-pgs": [ "ksnet" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "vbank_num", "in": "formData", "description": "고정식 가상계좌 발급 시, pg사로부터 전달받은 가상계좌 번호고정식 가상계좌 발급 시, pg사로부터 전달받은 가상계좌 번호 (사용을 위해 PG사와 협의 필요)
\n", "x-portone-supported-pgs": [ "smartro_v2" ], "x-portone-per-pg": { "smartro_v2": { "description": "고정식 가상계좌를 발급 하시는 경우, 필수로 입력해야합니다.
\n" } } }, { "name": "vbank_code", "in": "formData", "description": "은행구분코드가상계좌 발급을 위한 은행구분코드
\n", "x-portone-description": "\n" }, { "name": "vbank_due", "in": "formData", "description": "가상계좌 입금기한 UNIX TIMESTAMP", "required": true, "type": "integer", "x-portone-name": "가상계좌 입금기한", "x-portone-description": "가상계좌 발급시 입금기한 UNIX TIMESTAMP
\n" }, { "name": "vbank_holder", "in": "formData", "description": "가상계좌 예금주명가상계좌 발급을 위한 예금주명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "nice": { "required": true }, "settle": { "required": true }, "smartro_v2": { "required": true }, "tosspayments": { "description": "해당 파라미터를 입력하셔도 적용되지 않고, 가맹점명이 예금주명으로 사용됩니다.
\n" }, "ksnet": { "description": "해당 파라미터를 입력하셔도 적용되지 않고, 가맹점명이 예금주명으로 사용됩니다.
\n" }, "welcome": { "description": "해당 파라미터를 입력하셔도 적용되지 않고, 가맹점명이 예금주명으로 사용됩니다.
\n" } }, "x-portone-unsupported-pgs": [ "tosspayments", "ksnet", "welcome" ] }, { "name": "vbank_key", "in": "formData", "description": "고정식 가상계좌를 발급받기 위한 고객과 매칭시킨 계좌 고유 키고정식 가상계좌를 발급받기 위한 고객과 매칭시킨 계좌 고유 키(사용을 위해 PG사와 협의 필요)
\n", "x-portone-supported-pgs": [ "tosspayments" ], "x-portone-per-pg": { "tosspayments": { "description": "고정식 가상계좌를 발급 하시는 경우, 필수로 입력해야합니다.
\n" } } }, { "name": "name", "in": "formData", "description": "주문명", "required": false, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "가상계좌 발급을 위한 결제건의 주문명
\n" }, { "name": "buyer_name", "in": "formData", "description": "주문자명가상계좌 발급을 위한 결제건의 주문자명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "tosspayments": { "required": true }, "ksnet": { "required": true }, "smartro_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "buyer_email", "in": "formData", "description": "주문자 Email주소가상계좌 발급을 위한 결제건의 주문자 Email주소
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호가상계좌 발급을 위한 결제건의 주문자 전화번호
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "nice_v2": { "description": "가상계좌 발급 건 에스크로 등록시 가상계좌 발급시 전달 한 주문자의 전화번호나 사업자 등록 번호가 사용됩니다.
\n" } } }, { "name": "business_registration_number", "in": "formData", "description": "주문자 사업자 등록번호주문자의 사업자 등록번호
\n", "x-portone-supported-pgs": [ "nice_v2" ], "x-portone-per-pg": { "nice_v2": { "description": "API를 통한 가상 계좌 발급 시, 향후 해당 거래 건을 에스크로 배송 정보로 등록할 때 사용될 구매자의 사업자 번호를 business_registration_number
파라미터로 입력받고 있습니다.
가상계좌 발급을 위한 결제건의 주문자 주소
\n" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "가상계좌 발급을 위한 결제건의 주문자 우편번호
\n" }, { "name": "pg", "in": "formData", "description": "PG사 구분자.가상계좌 발급 할 PG사 구분코드
\n", "x-portone-per-pg": { "html5_inicis": { "required": true, "description": "inicis.{상점아이디} 형태로 지정 바랍니다.
\n" } } }, { "name": "notice_url", "in": "formData", "description": "가상계좌 입금시 입금통지받을 URL가상계좌 입금시 입금통지받을 URL
\n" }, { "name": "custom_data", "in": "formData", "description": "결제정보와 함께 저장할 custom_data결제정보와 함께 저장할 추가정보로 객체로 전달되는 경우 JSON 문자열로 저장
\n" }, { "name": "tax_free", "in": "formData", "description": "면세금액가상계좌 발급을 위한 결제건의 면세금액
\n", "x-portone-supported-pgs": [ "nice", "nice_v2", "welcome" ], "x-portone-per-pg": { "nice": { "description": "상점아이디의 과세설정이 지정금액방식(복합과세)으로 설정되어 있는 경우 필수값 입니다.
\n과세 혹은 면세로 설정된 상점아이디에서 파라미터 전달 시 가상계좌 생성이 불가능합니다.
\n" }, "nice_v2": { "description": "상점아이디의 과세설정이 지정금액방식(복합과세)으로 설정되어 있는 경우 필수값 입니다.
\n과세 혹은 면세로 설정된 상점아이디에서 파라미터 전달 시 가상계좌 생성이 불가능합니다.
\n" }, "welcome": { "description": "현금영수증 부가세업체정함
설정 가맹점에 한해 사용이 가능합니다
가상계좌 발급을 위한 결제건의 부가세 금액
\n", "x-portone-supported-pgs": [ "nice", "nice_v2", "welcome" ], "x-portone-per-pg": { "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
이니시스의 가맹점 콘솔에서 확인하셔야 하는 API Key 값
\n", "x-portone-description": "가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다. (이니시스 전용 필수 파라미터로 Query parameter입니다.)
\n", "x-portone-supported-pgs": [ "html5_inicis" ], "x-portone-per-pg": { "html5_inicis": { "required": true, "description": "Query parameter로 입력 바랍니다.
\n" } } }, { "name": "product_count", "in": "formData", "description": "결제 상품의 개수 (Default : 1)", "required": false, "type": "integer", "x-portone-name": "결제 상품의 개수", "x-portone-description": "가상계좌 발급을 위한 결제 상품의 개수로 기본값은 1입니다
\n" } ], "responses": { "200": { "description": "가상계좌 생성 완료", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "settle", "nice", "nice_v2", "html5_inicis", "ksnet", "smartro_v2", "tosspayments", "welcome" ], "x-portone-category": "vbank" } }, "/vbanks/{imp_uid}": { "put": { "tags": [ "vbanks" ], "summary": "가상계좌 발급정보 수정 API", "description": "API요청으로 발급된 가상계좌(입금이 되기 전)의 정보를 수정합니다가상계봐 발급 정보를 수정할 결제건의 포트원 거래고유번호
\n" }, { "name": "amount", "in": "formData", "description": "수정할 결제금액", "required": false, "type": "integer", "x-portone-name": "발급금액", "x-portone-description": "수정할 결제금액
\n" }, { "name": "vbank_due", "in": "formData", "description": "수정할 가상계좌 입금기한 UNIX TIMESTAMP", "required": false, "type": "integer", "x-portone-name": "입금기한", "x-portone-description": "수정할 가상계좌 입금기한 UNIX TIMESTAMP
\n" } ], "responses": { "200": { "description": "가상계좌 수정 완료", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "400": { "description": "imp_uid가 누락된 경우/ 가상계좌 결제 건이 아닌 경우/ 가상계좌가 입금대기 상태(ready)가 아닌 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 imp_uid" } }, "x-portone-supported-pgs": [ "settle" ], "x-portone-category": "vbank" }, "delete": { "tags": [ "vbanks" ], "summary": "가상계좌 발급취소 API", "description": "발급된 가상계좌(입금이 되기 전)를 말소합니다.가상계좌 발급 취소할 결제건의 포트원 거래고유번호
\n" }, { "name": "pg_api_key", "in": "query", "description": "이니시스의 가맹점 콘솔에서 확인하셔야 하는 API Key 값으로 가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다.이니시스의 가맹점 콘솔에서 확인하셔야 하는 API Key 값
\n", "x-portone-description": "가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다. (이니시스 전용 필수 파라미터로 Query parameter입니다.)
\n", "x-portone-supported-pgs": [ "html5_inicis" ], "x-portone-per-pg": { "html5_inicis": { "required": true, "description": "Query parameter로 입력 바랍니다.
\n" } } } ], "responses": { "200": { "description": "가상계좌 말소 완료", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "400": { "description": "imp_uid가 누락된 경우/ 가상계좌 결제 건이 아닌 경우 / 가상계좌가 입금대기 상태(ready)가 아닌 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 imp_uid" } }, "x-portone-supported-pgs": [ "html5_inicis", "uplus", "danal", "nice", "kicc", "settle", "smartro", "tosspayments", "ksnet", "smartro_v2", "nice_v2", "welcome" ], "x-portone-category": "vbank" } }, "/vbanks/holder": { "get": { "tags": [ "vbanks" ], "summary": "예금주 조회 API", "description": "가상계좌 환불 전, 확인차원에서 예금주를 조회하는 APIKB국민은행 | 004\n |
SC제일은행 | 023\n |
경남은행 | 039\n |
광주은행 | 034\n |
기업은행 | 003\n |
농협 | 011\n |
대구은행 | 031\n |
부산은행 | 032\n |
산업은행 | 002\n |
수협 | 007\n |
신한은행 | 088\n |
신협 | 048\n |
외환은행 | 005\n |
우리은행 | 020\n |
우체국 | 071\n |
전북은행 | 037\n |
제주은행 | 035\n |
축협 | 012\n |
하나은행(서울은행) | 081\n |
한국씨티은행(한미은행) | 027\n |
K뱅크 | 089\n |
카카오뱅크 | 090\n |
유안타증권 | 209\n |
현대증권 | 218\n |
미래에셋증권 | 230\n |
대우증권 | 238\n |
삼성증권 | 240\n |
한국투자증권 | 243\n |
우리투자증권 | 247\n |
교보증권 | 261\n |
하이투자증권 | 262\n |
에이치엠씨투자증권 | 263\n |
키움증권 | 264\n |
이트레이드증권 | 265\n |
에스케이증권 | 266\n |
대신증권 | 267\n |
솔로몬투자증권 | 268\n |
한화증권 | 269\n |
하나대투증권 | 270\n |
굿모닝신한증권 | 278\n |
동부증권 | 279\n |
유진투자증권 | 280\n |
메리츠증권 | 287\n |
엔에이치투자증권 | 289\n |
부국증권 | 290 |
조회할 은행코드(금융결제원 표준코드3자리)
\n" }, { "name": "bank_num", "in": "query", "description": "계좌번호(숫자외 기호 포함 가능)", "required": true, "type": "string", "x-portone-name": "계좌번호", "x-portone-description": "조회할 계좌번호(숫자외 기호 포함 가능)
\n" } ], "responses": { "200": { "description": "예금주 조회 성공", "schema": { "$ref": "#/definitions/VbankHolderResponse" } }, "400": { "description": "bank_code가 누락된 경우/ bank_num이 누락된 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "계좌정보 조회 실패" } }, "x-portone-category": "vbank" } } }, "definitions": { "AuthAnnotation": { "required": [ "access_token", "expired_at", "now" ], "properties": { "access_token": { "description": "인증이 필요한 REST API요청에 사용할 access_token", "type": "string", "x-portone-name": "access_token", "x-portone-description": "인증이 필요한 REST API요청에 사용할 access_token
\n" }, "expired_at": { "description": "token만료시각. UNIX timestamp", "type": "integer", "x-portone-name": "token 만료시각", "x-portone-description": "access_token의 만료시각. UNIX timestamp
\n" }, "now": { "description": "현재시각 UNIX timestamp. token만료시각을 정확히 계산하기 위해 사용", "type": "integer", "x-portone-name": "현재시각", "x-portone-description": "token 만료시각을 정확히 계산하기 위해 사용되는 현재시각. UNIX timestamp
\n" } } }, "AuthResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "properties": { "response": { "$ref": "#/definitions/AuthAnnotation" } } } ] }, "BenepiaPointAnnotation": { "required": [ "bank_holder" ], "properties": { "point": { "description": "베네피아 보유 포인트", "type": "integer", "x-portone-name": "포인트", "x-portone-description": "베네피아 보유 포인트
\n" } } }, "BenepiaPointResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "베네피아 포인트 조회 정보. 바로 아래 BenepiaPoint structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/BenepiaPointAnnotation" } } } ] }, "CertificationAnnotation": { "required": [ "imp_uid", "pg_provider", "foreigner" ], "properties": { "imp_uid": { "description": "포트원 인증 고유번호", "type": "string", "x-portone-name": "포트원 인증 고유번호", "x-portone-description": "본인인증 결과건의 포트원 인증 고유번호
\n" }, "merchant_uid": { "description": "가맹점 주문번호", "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "본인인증 결과건의 포트원 가맹점 주문번호
\n" }, "pg_tid": { "description": "PG사 본인인증결과 고유번호", "type": "string", "x-portone-name": "PG사 본인인증결과 고유번호", "x-portone-description": "본인인증 결과건의 PG사 본인인증결과 고유번호
\n" }, "pg_provider": { "description": "본인인증 제공 PG사 명칭. danal(다날)", "type": "string", "x-portone-name": "pg사 구분코드", "x-portone-description": "본인인증 제공 PG사의 명칭
\n" }, "name": { "description": "인증결과-실명", "type": "string", "x-portone-name": "성명", "x-portone-description": "인증된 사용자의 성명
\n" }, "gender": { "description": "인증결과-성별인증된 사용자의 성별
\n" }, "birthday": { "description": "인증결과-생년월일인증된 사용자의 생년월일 ISO8601 형식의 문자열. YYYY-MM-DD
10자리 문자열
인증된 사용자의 외국인 여부
\n", "x-portone-description": "다날 본인인증서비스 계약시 외국인 구분기능을 추가 요청하지 않은 경우 항상 false를 응답합니다.
\n인증에 사용된 휴대폰 번호 (신용카드 본인인증의 경우 해당사항 없음)
\n", "x-portone-description": "특수 기호없이 숫자로만 구성된 휴대폰번호가 전달되며 통신사 사전승인이 이뤄지지 않으면 phone 속성은 존재하지 않습니다.
\n통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.
\n" }, "carrier": { "description": "인증결과-사용된 휴대폰번호의 통신사(신용카드 본인인증의 경우 해당사항없음). 통신사 사전승인이 이뤄지지 않으면 carrier 속성은 존재하지 않습니다. 통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.\n인증에 사용된 휴대폰번호의 통신사 (신용카드 본인인증의 경우 해당사항없음)
\n", "x-portone-description": "통신사 사전승인이 이뤄지지 않으면 carrier 속성은 존재하지 않습니다.
\n통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.
\n본인인증 성공여부
\n" }, "certified_at": { "description": "인증처리시각 UNIX timestamp", "type": "integer", "x-portone-name": "인증처리시각", "x-portone-description": "본인인증 처리시각 UNIX timestamp
\n" }, "unique_key": { "description": "개인 고유구분 식별키(CI)", "type": "string", "maxLength": "88", "x-portone-name": "개인 고유구분 식별키", "x-portone-description": "개인별로 고유하게 부여하는 개인 식별키(CI)
\n" }, "unique_in_site": { "description": "가맹점 내 개인 고유구분 식별키(DI). 본인인증 PG MID별로 할당되는 개인 식별키", "type": "string", "maxLength": "64", "x-portone-name": "가맹점 내 개인 고유구분 식별키", "x-portone-summary": "가맹점 내 개인별로 고유하게 부여하는 개인 식별키(DI)
\n", "x-portone-description": "본인인증 PG MID별로 할당되는 개인 식별키
\n" }, "origin": { "description": "본인인증 프로세스가 진행된 웹 페이지의 URL", "type": "string", "x-portone-name": "웹 페이지 URL", "x-portone-description": "본인인증 프로세스가 진행된 웹 페이지의 URL
\n" }, "foreigner_v2": { "description": "인증결과-외국인 여부(nullable)\n본인인증 결과 외국인 여부(nullable)
\n", "x-portone-description": "다날 본인인증서비스 계약시 외국인 구분기능 추가 요청을 해주셔야 사용이 가능합니다. 요청을 하지 않은 경우 null을 응답합니다.
\n본인인증 결과건의 포트원 인증 고유번호
\n" } } }, "CertificationOTPResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "본인인증 결과 객체. 바로 아래 Certification structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/CertificationOTPAnnotation" } } } ] }, "CustomerAnnotation": { "required": [ "customer_uid", "pg_provider", "pg_id", "card_name", "inserted", "updated" ], "properties": { "customer_uid": { "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호", "type": "string", "maxLength": "80", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, "pg_provider": { "description": "빌링키가 등록된 PG사 구분코드", "type": "string", "maxLength": "16", "x-portone-name": "PG사 구분코드", "x-portone-description": "빌링키가 등록된 PG사 구분코드
\n" }, "pg_id": { "description": "빌링키가 등록된 PG사 상점아이디(MID)", "type": "string", "maxLength": "80", "x-portone-name": "상점아이디(MID)", "x-portone-description": "빌링키가 등록된 PG사 상점아이디(MID)
\n" }, "customer_id": { "description": "구매자 ID", "type": "string", "x-portone-name": "구매자 ID", "x-portone-description": "구매자 식별 고유 번호
\n" }, "card_name": { "description": "카드사명", "type": "string", "x-portone-name": "카드명", "x-portone-description": "빌링키 발급 한 카드명
\n" }, "card_code": { "description": "카드사 코드(금융결제원 표준코드번호)\n 링크보기", "type": "string", "x-portone-name": "카드사 코드", "x-portone-description": "\n" }, "card_issuer_code": { "description": "카드 발급사 코드(금융결제원 표준코드번호)카드 발급사 코드번호 (금융결제원 표준코드 번호)
\n발급사 코드 지원 pg사\n- (신) 토스페이먼츠\n- KSNET\n- 페이팔 RT\n- (신) 스마트로\n- (신) 나이스페이먼츠\n- 웰컴페이먼츠\n- (신) 토스페이
",
"x-portone-supported-pgs": [
"tosspayments",
"ksnet",
"paypal_v2",
"smartro_v2",
"nice_v2",
"welcome",
"tosspay_v2"
]
},
"card_issuer_name": {
"description": "카드 발급사명으로 발급사 코드를 지원하는 pg사에 한해 제공됩니다.",
"type": "string",
"x-portone-name": "카드 발급사명",
"x-portone-description": "빌링키 발급 한 카드의 발급사명
\n발급사 코드를 지원하는 pg사에 한해 제공됩니다.
"
},
"card_publisher_code": {
"description": "카드 발행사 코드(금융결제원 표준코드번호) 카드 발행사 코드번호 (금융결제원 표준코드 번호)
\n발행사 코드 지원 pg사\n- (신) 토스페이먼츠\n- KSNET사\n- 페이팔 RT\n- (신) 스마트로\n- (신) 나이스페이먼츠\n- 웰컴페이먼츠\n- (신) 토스페이
",
"x-portone-supported-pgs": [
"tosspayments",
"ksnet",
"paypal_v2",
"smartro_v2",
"nice_v2",
"welcome",
"tosspay_v2"
]
},
"card_publisher_name": {
"description": "카드 발행사명으로 발행사 코드를 지원하는 pg사에 한해 제공됩니다.",
"type": "string",
"x-portone-name": "카드 발행사명",
"x-portone-description": "빌링키 발급 한 카드의 발행사명
\n발행사 코드를 지원하는 pg사에 한해 제공됩니다.
"
},
"card_number": {
"description": "마스킹 카드번호",
"type": "string",
"x-portone-name": "마스킹 카드번호",
"x-portone-description": "빌링키 발급 한 카드의 마스킹된 카드번호
\n" }, "card_type": { "description": "카드유형빌링키 발급 한 카드의 유형
\n", "x-portone-description": "주의 : 해당 정보를 제공하지 않는 일부 PG사의 경우 null 로 응답됩니다.(ex. JTNet, 이니시스-빌링)
\n빌링키 발급 한 고객(카드소지자)의 성함
\n" }, "customer_tel": { "description": "고객(카드소지자) 전화번호", "type": "string", "maxLength": "20", "x-portone-name": "전화번호", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 전화번호
\n" }, "customer_email": { "description": "고객(카드소지자) Email 주소", "type": "string", "maxLength": "200", "x-portone-name": "Email 주소", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 Email 주소
\n" }, "customer_addr": { "description": "고객(카드소지자) 주소", "type": "string", "maxLength": "200", "x-portone-name": "주소", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 주소
\n" }, "customer_postcode": { "description": "고객(카드소지자) 우편번호", "type": "string", "maxLength": "8", "x-portone-name": "우편번호", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 우편번호
\n" }, "inserted": { "description": "빌링키가 등록된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "발급 시각", "x-portone-description": "빌링키가 발급된 시각 UNIX timestamp
\n" }, "updated": { "description": "빌링키가 업데이트된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "업데이트 시각", "x-portone-description": "빌링키가 업데이트된 시각 UNIX timestamp
\n" } } }, "CustomerResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록된 구매자고객의 빌링키 정보. 바로 아래 Customer structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/CustomerAnnotation" } } } ] }, "MultipleCustomersResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "구매자고객의 빌링키 상세정보. 바로 아래 Customer structure를 확인하세요", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/CustomerAnnotation" } } } } ] }, "EscrowLogisAnnotation": { "required": [ "company", "invoice", "sent_at", "applied_at" ], "properties": { "company": { "description": "택배사코드", "type": "string", "x-portone-name": "택배사코드", "x-portone-description": "에스크로 결제건의 택배사 코드
\n" }, "invoice": { "description": "송장번호", "type": "string", "x-portone-name": "송장번호", "x-portone-description": "에스크로 결제건의 송장번호
\n" }, "sent_at": { "description": "발송일시 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발송 시각", "x-portone-description": "에스크로 결제건의 배송 발송 시각 UNIX timestamp
\n" }, "applied_at": { "description": "배송정보 등록일시 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "등록 시각", "x-portone-description": "에스크로 결제건의 배송 정보 등록 시각 UNIX timestamp
\n" } } }, "EscrowLogisResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록된 에스크로 배송 정보. 바로 아래 EscrowLogis structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/EscrowLogisAnnotation" } } } ] }, "EscrowLogisSenderAnnotation": { "properties": { "name": { "description": "보내는 분 성함(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "성함", "x-portone-description": "배송을 보내는 발신자의 성함
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "tel": { "description": "보내는 분 전화번호(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "전화번호", "x-portone-description": "배송을 보내는 발신자의 전화번호
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "addr": { "description": "보내는 분 주소(필수 : KG이니시스)", "type": "string", "x-portone-name": "주소", "x-portone-description": "배송을 보내는 발신자의 주소
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "postcode": { "description": "보내는 분 우편번호(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "우편번호", "x-portone-description": "배송을 보내는 발신자의 우편번호
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "relationship": { "description": "보내는 분과의 관계(필수 : 키움페이(구 다우, 페이조아), 예: 본인)", "type": "string", "x-portone-name": "발신자와의 관계", "x-portone-description": "배송을 보내는 발신자와의 관계 (예 : 본인)
\n", "x-portone-per-pg": { "daou": { "required": true } } }, "formed_address": { "description": "(필수 : 스마트로 - 신모듈)배송을 보내는 발신자의 지번주소 또는 도로명 주소
\n", "x-portone-per-pg": { "smartro_v2": { "required": true } } }, "address_line_2": { "description": "보내는 분의 상세주소 (ex) 동-호수, 아파트 or 건물명)", "type": "string", "x-portone-name": "주소 2", "x-portone-description": "배송을 보내는 발신자의 상세주소 (ex. 동-호수, 아파트 or 건물명)
\n", "x-portone-per-pg": { "smartro_v2": { "required": true } } } }, "type": "object", "x-portone-name": "주소 구성", "x-portone-description": "배송을 보내는 발신자의 주소 구성
\n", "x-portone-per-pg": { "smartro_v2": { "required": true, "description": "기존 파라미터인 addr
가 아닌 해당 파라미터를 이용한 주소 설정이 필요합니다.
배송을 받는 수신자의 성함
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "tel": { "description": "받는 분 전화번호(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "전화번호", "x-portone-description": "배송을 받는 수신자의 전화번호
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "addr": { "description": "받는 분 주소(필수 : KG이니시스)", "type": "string", "x-portone-name": "주소", "x-portone-description": "배송을 받는 수신자의 주소
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "postcode": { "description": "받는 분 우편번호(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "우편번호", "x-portone-description": "배송을 받는 수신자의 우편번호
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "formed_address": { "description": "(필수 : 스마트로 - 신모듈)배송을 받는 수신자의 지번주소 또는 도로명 주소
\n", "x-portone-per-pg": { "smartro_v2": { "required": true } } }, "address_line_2": { "description": "보내는 분의 상세주소 (ex) 동-호수, 아파트 or 건물명)", "type": "string", "x-portone-name": "주소 2", "x-portone-description": "배송을 받는 수신자의 상세주소 (ex. 동-호수, 아파트 or 건물명)
\n", "x-portone-per-pg": { "smartro_v2": { "required": true } } } }, "type": "object", "x-portone-name": "주소 구성", "x-portone-description": "배송을 받는 수신자의 주소 구성
\n", "x-portone-per-pg": { "smartro_v2": { "required": true, "description": "기존 파라미터인 addr
가 아닌 해당 파라미터를 이용한 주소 설정이 필요합니다.
에스크로 결제건의 택배사 코드
\n" }, "invoice": { "description": "송장번호", "type": "string", "x-portone-name": "송장번호", "x-portone-description": "에스크로 결제건의 송장번호
\n" }, "sent_at": { "description": "발송일시 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발송 시각", "x-portone-description": "에스크로 결제건의 배송 발송 시각 UNIX timestamp
\n" }, "receiving_at": { "description": "수령일시(필수: 키움페이(구 다우, 페이조아) / 예: YYYYMMDD)", "type": "string", "x-portone-name": "수령 시각", "x-portone-description": "에스크로 결제건의 배송 수령 시각 UNIX timestamp
\n", "x-portone-per-pg": { "daou": { "required": true } } }, "address": { "description": "발송주소(필수: 키움페이(구 다우, 페이조아))", "type": "string", "x-portone-name": "발송 주소", "x-portone-description": "에스크로 결제건의 배송 발송 주소
\n", "x-portone-per-pg": { "daou": { "required": true } } } } }, "EscrowLogisProductsAnnotation": { "required": [ "id", "name", "amount" ], "properties": { "id": { "description": "상품 고유 아이디 (필수 : 웰컴페이먼츠)", "type": "string", "x-portone-name": "상품 고유 아이디", "x-portone-description": "", "x-portone-per-pg": { "welcome": { "required": true } } }, "name": { "description": "상품 이름 (필수 : 웰컴페이먼츠)", "type": "string", "x-portone-name": "상품 이름", "x-portone-description": "", "x-portone-per-pg": { "welcome": { "required": true } } }, "code": { "description": "상품 코드", "type": "string", "x-portone-name": "상품 코드", "x-portone-description": "가맹점에서 사용하는 상품 관리 코드
\n" }, "amount": { "description": "상품 단위 가격 (필수 : 웰컴페이먼츠)", "type": "number", "x-portone-name": "상품 단위 가격", "x-portone-description": "", "x-portone-per-pg": { "welcome": { "required": true } } }, "currency": { "description": "상품의 결제통화 구분코드으로 기본값은 KRW입니다.", "type": "string", "default": "KRW", "x-portone-name": "상품의 결제통화 구분코드", "x-portone-description": "통화 e.g.) KRW, USD, VND, ... Default: KRW
\n" }, "quantity": { "description": "상품의 수량", "type": "integer", "default": 1, "x-portone-name": "상품의 수량", "x-portone-description": "상품의 수량으로 기본값은 1입니다.
\n" }, "tag": { "description": "상품의 카테고리 e.g) 도서, 가전기기, 인테리어 용품 등", "type": "string", "x-portone-name": "상품의 카테고리", "x-portone-description": "상품의 카테고리 e.g) 도서, 가전기기, 인테리어 용품 등
\n" } } }, "KakaoOrderAnnotation": {}, "KakaoOrderResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "properties": { "response": { "description": "응답데이터는 카카오페이 주문내조회 API 참조", "$ref": "#/definitions/KakaoOrderAnnotation" } } } ] }, "KcpQuickMemberAnnotation": { "required": [ "member_id", "pg_provider", "inserted", "updated" ], "properties": { "member_id": { "description": "고객 고유번호", "type": "string", "maxLength": "80", "x-portone-name": "구매자 고유 아이디", "x-portone-description": "구매자의 고유 아이디(memberID)
\n" }, "pg_provider": { "description": "PG사 코드. kcp_quick(KCP 퀵페이)", "type": "string", "maxLength": "16", "x-portone-name": "PG사 구분코드", "x-portone-description": "유저 정보가 등록된 PG사 구분코드. kcp_quick(KCP 퀵페이)
\n" }, "pg_id": { "description": "PG사 상점아이디", "type": "string", "maxLength": "80", "x-portone-name": "PG사 상점아이디", "x-portone-description": "유저 정보가 등록된 PG사 상점아이디(MID)
\n" }, "inserted": { "description": "유저 정보가 등록된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "등록 시각", "x-portone-description": "유저 정보가 등록된 시각 UNIX timestamp
\n" }, "updated": { "description": "유저 정보가 업데이트된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "업데이트 시각", "x-portone-description": "유저 정보가 업데이트된 시각 UNIX timestamp
\n" } } }, "KcpQuickMemberResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록된 구매자고객의 퀵페이 등록 정보. 바로 아래 Member structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/KcpQuickMemberAnnotation" } } } ] }, "NaverAddress": { "required": [ "base", "postcode", "tel1", "name" ], "properties": { "base": { "description": "기본 주소", "type": "string", "x-portone-name": "기본주소", "x-portone-description": "" }, "detail": { "description": "상세 주소", "type": "string", "x-portone-name": "상세주소", "x-portone-description": "네이버페이 상품 배송 상세주소
\n" }, "postcode": { "description": "우편번호", "type": "string", "x-portone-name": "우편번호", "x-portone-description": "네이버페이 상품 배송 우편번호
\n" }, "tel1": { "description": "연락처1", "type": "string", "x-portone-name": "연락처 1", "x-portone-description": "네이버페이 상품 배송 연락처 1
\n" }, "tel2": { "description": "연락처2", "type": "string", "x-portone-name": "연락처 2", "x-portone-description": "네이버페이 상품 배송 연락처 2
\n" }, "name": { "description": "대상 이름", "type": "string", "x-portone-name": "성함", "x-portone-description": "네이버페이 상품 배송 수취인 성함
\n" } } }, "NaverCashAmountAnnotation": { "required": [ "amount_total", "amount_by_npoint", "amount_by_primary", "amount_supply", "amount_vat" ], "properties": { "amount_total": { "description": "현금영수증 발급가능 총액", "type": "integer", "x-portone-name": "총액", "x-portone-description": "현금영수증 발급 가능한 총액
\n" }, "amount_by_npoint": { "description": "현금영수증 발급가능 총액 중 Npoint 에 의한 금액", "type": "integer", "x-portone-name": "포인트 금액", "x-portone-description": "현금영수증 발급가능한 총액 중 Npoint에 의한 금액
\n" }, "amount_by_primary": { "description": "현금영수증 발급가능 총액 중 메인 결제수단(신용카드, 계좌이체 등)에 의한 금액", "type": "integer", "x-portone-name": "메인 결제수단 금액", "x-portone-description": "현금영수증 발급 가능한 총액 중 주 결제수단(신용카드, 계좌이체 등)에 의한 금액
\n" }, "amount_supply": { "description": "현금영수증 발급가능 총액 중 공급가액", "type": "integer", "x-portone-name": "공급가액", "x-portone-description": "현금영수증 발급 가능한 총액 중 공급가액
\n" }, "amount_vat": { "description": "현금영수증 발급가능 총액 중 부가세", "type": "integer", "x-portone-name": "부가세", "x-portone-description": "현금영수증 발급 가능한 총액 중 부가세
\n" } } }, "NaverCashAmountResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "네이버페이 현금영수증 발급가능금액 상세정보. 바로 아래 NaverCashAmount structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/NaverCashAmountAnnotation" } } } ] }, "NaverOrderer": { "required": [ "name", "id", "tel" ], "properties": { "name": { "description": "주문자 이름", "type": "string", "x-portone-name": "성함", "x-portone-description": "네이버페이 주문자 성함
\n" }, "id": { "description": "주문자 마스킹된 네이버 아이디", "type": "string", "x-portone-name": "네이버 아이디", "x-portone-description": "네이버페이 주문자의 마스킹된 네이버 아이디
\n" }, "tel": { "description": "주문자 연락처", "type": "string", "x-portone-name": "연락처", "x-portone-description": "네이버페이 주문자의 연락처
\n" } } }, "NaverProductOrderAnnotation": { "required": [ "product_order_id", "product_order_status", "product_id", "product_name", "product_option_id", "product_option_name", "quantity" ], "properties": { "product_order_id": { "description": "네이버페이 상품주문번호", "type": "string", "x-portone-name": "상품주문번호", "x-portone-description": "결제건의 네이버페이 상품주문번호
\n" }, "product_order_status": { "description": "네이버페이 상품주문상태", "type": "string", "x-portone-name": "상품주문상태", "x-portone-description": "네이버페이 상품주문상테
\n" }, "claim_type": { "description": "네이버페이 상품주문관련 클레임 타입(취소/교환/환불 등 클레임에 대한 유형)", "type": "string", "x-portone-name": "클레임 타입", "x-portone-description": "네이버페이 상품주문관련 클레임 타입(취소/교환/환불 등 클레임에 대한 유형)
\n" }, "claim_status": { "description": "네이버페이 상품주문관련 클레임에 대한 처리 상태(취소/교환/환불 등 클레임에 대해 처리 진행 상태)", "type": "string", "x-portone-name": "클레임 처리 상태", "x-portone-description": "네이버페이 상품주문관련 클레임에 대한 처리 상태(취소/교환/환불 등 클레임에 대해 처리 진행 상태)
\n" }, "product_id": { "description": "네이버페이 상품주문의 상품 고유번호", "type": "string", "x-portone-name": "상품 고유 번호", "x-portone-description": "네이버페이 상품의 고유 번호
\n" }, "product_name": { "description": "네이버페이 상품주문의 상품명", "type": "string", "x-portone-name": "상품명", "x-portone-description": "네이버페이 상품명
\n" }, "product_option_id": { "description": "네이버페이 상품주문의 상품옵션 고유번호", "type": "string", "x-portone-name": "상품 옵션 번호", "x-portone-description": "네이버페이 상품 옵션 고유 번호
\n" }, "product_option_name": { "description": "네이버페이 상품주문의 상품옵션명", "type": "string", "x-portone-name": "상품옵션명", "x-portone-description": "네이버페이 상품옵션명
\n" }, "product_amount": { "description": "네이버페이 개별상품 주문금액", "type": "integer", "x-portone-name": "상품금액", "x-portone-description": "네이버페이 상품의 금액
\n" }, "delivery_amount": { "description": "네이버페이 개별상품 배송비", "type": "integer", "x-portone-name": "상품 배송비", "x-portone-description": "네이버페이 상품의 배송비
\n" }, "quantity": { "description": "네이버페이 상품주문의 상품 수량", "type": "integer", "x-portone-name": "상품 수량", "x-portone-description": "네이버페이 상품의 수량
\n" }, "orderer": { "description": "네이버페이 상품주문의 주문자 정보", "x-portone-name": "주문자 정보", "x-portone-description": "네이버페이 상품주문의 주문자 정보
\n", "$ref": "#/definitions/NaverOrderer" }, "shipping_address": { "description": "네이버페이 상품주문별 배송주소 정보", "x-portone-name": "배송주소 정보", "x-portone-description": "네이버페이 상품주문별 배송주소 정보
\n", "$ref": "#/definitions/NaverAddress" }, "shipping_memo": { "description": "네이버페이 상품주문별 배송메모", "type": "string", "x-portone-name": "배송메모", "x-portone-description": "네이버페이 상품주문별 배송메모
\n" }, "shipping_due": { "description": "네이버페이 상품주문별 배송기한 Unix Timestamp", "type": "integer", "x-portone-name": "배송기한", "x-portone-description": "네이버페이 상품주문별 배송기한 UNIX timestamp
\n" }, "individual_code": { "description": "네이버페이 주문자의 개인통고유부호", "type": "string", "x-portone-name": "개인통관고유부호", "x-portone-description": "네이버페이 주문자의 개인통관고유부호
\n" } } }, "NaverProductOrderResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "네이버페이 상품주문 상세정보. 바로 아래 NaverProductOrder structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/NaverProductOrderAnnotation" } } } ] }, "NaverProductOrderArrayResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "네이버페이 상품주문 상세정보. 바로 아래 NaverProductOrder structure를 확인하세요", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/NaverProductOrderAnnotation" } } } } ] }, "NaverReviewAnnotation": { "required": [ "review_id", "score", "title", "product_order_id", "product_id", "product_name", "writer", "created_at" ], "properties": { "review_id": { "description": "네이버페이 구매평 고유 ID", "type": "string", "x-portone-name": "구매평 고유 ID", "x-portone-description": "네이버페이 구매평 고유 ID
\n" }, "score": { "description": "네이버페이 구매만족도. 1, 2, 3, 4, 5 (점)", "type": "string", "x-portone-name": "구매 만족도", "x-portone-summary": "네이버페이 구매만족도
\n", "x-portone-description": "네이버페이 일반 구매평 내용 또는 프리미엄 구매평 제목
\n" }, "content": { "description": "네이버페이 프리미엄 구매평 내용(일반 구매평인 경우 없음)", "type": "string", "x-portone-name": "구매평 내용", "x-portone-description": "네이버페이 프리미엄 구매평 내용으로 일반 구매평인 경우 없습니다.
\n" }, "product_order_id": { "description": "네이버페이 상품주문번호", "type": "string", "x-portone-name": "상품 주문 번호", "x-portone-description": "네이버페이 상품 주문 번호
\n" }, "product_id": { "description": "네이버페이 상품주문의 상품 고유번호", "type": "string", "x-portone-name": "상품 고유 번호", "x-portone-description": "네이버페이 상품의 고유 번호
\n" }, "product_name": { "description": "네이버페이 상품주문의 상품명", "type": "string", "x-portone-name": "상품명", "x-portone-description": "네이버페이 상품명
\n" }, "product_option_name": { "description": "네이버페이 상품주문의 상품옵션명", "type": "string", "x-portone-name": "상품 옵션", "x-portone-description": "네이버페이 상품 옵션(옵션명)
\n" }, "writer": { "description": "네이버페이 구매평 작성자 아이디", "type": "string", "x-portone-name": "구매평 작성자 아이디", "x-portone-description": "암호화된 네이버페이 구매평 작성자 아이디
\n" }, "created_at": { "description": "네이버페이 구매평 작성시각 unix timestamp", "type": "integer", "x-portone-name": "작성시각", "x-portone-description": "네이버페이 구매평 작성시각 UNIX timestamp
\n" }, "modified_at": { "description": "네이버페이 구매평 수정시각 unix timestamp", "type": "integer", "x-portone-name": "수정시각", "x-portone-description": "네이버페이 구매평 수정시각 UNIX timestamp
\n" } } }, "NaverReviewsResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "네이버페이 구매평 상세정보. 바로 아래 NaverReview structure를 확인하세요", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/NaverReviewAnnotation" } } } } ] }, "PartnerReceiptsAnnotation": { "required": [ "business_registration_number", "company_name", "amount" ], "properties": { "business_registration_number": { "description": "하위 상점 사업자번호 ("-" 포함)", "type": "string", "x-portone-name": "하위 상점 사업자 등록 번호", "x-portone-description": "거래를 구성하는 하위 상점의 사업자 등록 점번호 (\"-\" 포함)
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "company_name": { "description": "하위 상점 명", "type": "string", "x-portone-name": "하위 상점 명", "x-portone-description": "거래를 구성하는 하위 상점의 상점 명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "amount": { "description": "하위 상점 거래 금액", "type": "number", "x-portone-name": "하위 상점 거래 금액", "x-portone-description": "거래를 구성하는 하위 상점의 해당 결제건 내 거래 금액
\n", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "tax_free": { "description": "하위 상점 거래 금액 중 면세 금액 (default = 0)", "type": "number", "x-portone-name": "하위 상점 거래 금액 중 면세 금액", "x-portone-description": "거래를 구성하는 하위 상점의 해당 결제건 내 면세 금액
\n", "x-portone-per-pg": { "html5_inicis": { "required": false } } }, "vat_amount": { "description": "하위 상점 거래 금액 중 부가세 금액 (default = 거래 금액 / 11)", "type": "number", "x-portone-name": "하위 상점 거래 금액 중 부가세 금액", "x-portone-description": "거래를 구성하는 하위 상점의 해당 결제건 내 부가세 금액
\n", "x-portone-per-pg": { "html5_inicis": { "required": false } } } } }, "PartnerReceiptResultAnnotation": { "properties": { "receipt_url": { "description": "매출전표 확인 URL", "type": "string", "x-portone-name": "매출전표 확인 URL", "x-portone-description": "거래건에 대한 매출전표를 확인할 수 있는 URL
\n" } } }, "PartnerReceiptResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록 성공한 매출전표 관련 정보.", "properties": { "response": { "$ref": "#/definitions/PartnerReceiptResultAnnotation" } } } ] }, "PaycoStatusAnnotation": { "required": [ "status" ], "properties": { "status": { "description": "PAYCO주문변경된 상태변경된 주문 상태
\n", "x-portone-description": "결제건의 포트원 거래고유번호
\n" }, "merchant_uid": { "description": "가맹점 주문번호", "type": "string", "maxLength": "40", "x-portone-name": "가맹점 주문번호", "x-portone-description": "결제건의 가맹점 주문번호
\n" }, "pay_method": { "description": "결제수단 구분코드\n결제건의 결제수단을 구분하는 코드
\n", "x-portone-per-pg": { "paypal_v2": { "description": "페이팔을 통해 카드 결제 외 BanContact, BLIK, eps, giropay 등 다양한 결제 수단으로 결제가 가능하지만,\n페이팔이 승인 된 결제 수단을 알려주지 않기 때문에 페이팔의 모든 결제 건의 결제 수단은 paypal로 일괄 저장됩니다.
\n" } } }, "channel": { "description": "결제환경 구분코드\n결제건을 생성한 환경을 구분하는 코드
\n" }, "pg_provider": { "description": "PG사 구분코드", "type": "string", "maxLength": "16", "x-portone-name": "PG사 구분코드", "x-portone-description": "결제건의 PG사 구분코드
\n" }, "emb_pg_provider": { "description": "허브형결제 PG사 구분코드", "type": "string", "maxLength": "16", "x-portone-name": "허브형결제 PG사 구분코드", "x-portone-description": "허브형 결제인 경우 결제건의 허브형 결제 PG사를 구분하는 코드
\n" }, "pg_tid": { "description": "PG사 거래번호", "type": "string", "maxLength": "64", "x-portone-name": "PG사 거래번호", "x-portone-description": "결제건의 PG사 거래번호
\n" }, "pg_id": { "description": "PG사 MID", "type": "string", "maxLength": "80", "x-portone-name": "PG사 상점아이디", "x-portone-description": "결제건의 PG사 상점아이디
\n" }, "escrow": { "description": "에스크로결제 여부", "type": "boolean", "x-portone-name": "에스크로결제 여부", "x-portone-description": "에스크로 결제건인지 구분하는 코드
\n" }, "apply_num": { "description": "신용카드 승인번호", "type": "string", "maxLength": "20", "x-portone-name": "승인번호", "x-portone-description": "결제건의 신용카드 승인번호
\n" }, "bank_code": { "description": "은행 표준코드 - (금융결제원기준)", "type": "string", "x-portone-name": "은행 표준코드", "x-portone-description": "결제건의 은행 표준코드 (금융결제원기준) - 실시간계좌이체 결제건의 경우
\n" }, "bank_name": { "description": "은행 명칭 - (실시간계좌이체 결제 건의 경우)", "type": "string", "x-portone-name": "은행명", "x-portone-description": "결제건의 은행명 - 실시간계좌이체 결제 건의 경우
\n" }, "card_code": { "description": "카드사 코드번호(금융결제원 표준코드번호)\n 링크보기", "type": "string", "x-portone-name": "카드사 코드번호", "x-portone-description": "결제건의 카드사 코드번호 (금융결제원 표준코드번호) - 카드 결제 건의 경우
\n" }, "card_name": { "description": "카드사명 - (신용카드 결제 건의 경우)", "type": "string", "x-portone-name": "카드사명", "x-portone-description": "결제건의 카드사명 - 카드 결제 건의 경우
\n" }, "card_issuer_code": { "description": "결제건의 카드 발급사 코드번호(금융결제원 표준코드번호) - (카드 결제 건의 경우)결제건의 카드 발급사 코드번호 (금융결제원 표준코드 번호) - 카드 결제 건의 경우
\n발급사 코드 지원 pg사\n- (신) 토스페이먼츠\n- KSNET\n- 페이팔 RT\n- (신) 스마트로\n- (신) 나이스페이먼츠\n- 웰컴페이먼츠\n- 토스페이먼츠 브랜드페이\n- (신) 토스페이
",
"x-portone-supported-pgs": [
"tosspayments",
"ksnet",
"paypal_v2",
"smartro_v2",
"nice_v2",
"toss_brandpay",
"welcome",
"tosspay_v2"
]
},
"card_issuer_name": {
"description": "결제한 카드의 발급사명으로 발급사 코드를 지원하는 pg사에 한해 제공됩니다. - (카드 결제 건의 경우)",
"type": "string",
"x-portone-name": "카드 발급사명",
"x-portone-description": "결제한 카드의 발급사명 - 카드 결제 건의 경우
\n발급사 코드를 지원하는 pg사에 한해 제공됩니다.
"
},
"card_publisher_code": {
"description": "결제건의 카드 발행사 코드번호(금융결제원 표준코드번호) - (카드 결제 건의 경우) 결제건의 카드 발행사 코드번호(금융결제원 표준코드번호) - 카드 결제 건의 경우
\n발행사 코드 지원 pg사\n- (신) 토스페이먼츠\n- KSNET사\n- 페이팔 RT\n- (신) 스마트로\n- (신) 나이스페이먼츠\n- 웰컴페이먼츠\n- 토스페이먼츠 브랜드페이\n- (신) 토스페이
",
"x-portone-supported-pgs": [
"tosspayments",
"ksnet",
"paypal_v2",
"smartro_v2",
"nice_v2",
"welcome",
"toss_brandpay",
"tosspay_v2"
]
},
"card_publisher_name": {
"description": "카드 발행사명으로 발행사 코드를 지원하는 pg사에 한해 제공됩니다. - (카드 결제 건의 경우)",
"type": "string",
"x-portone-name": "카드 발행사명",
"x-portone-description": "결제 한 카드의 발행사명 - (카드 결제 건의 경우)
\n발행사 코드를 지원하는 pg사에 한해 제공됩니다.
"
},
"card_quota": {
"description": "할부개월 수(0이면 일시불)",
"type": "integer",
"x-portone-name": "할부개월 수",
"x-portone-description": "결제건의 할부개월 수(일시불은 0으로 표기) - 신용카드 결제 건의 경우
\n", "x-portone-per-pg": { "paypal_v2": "Pay Later를 이용하면 할부 결제가 가능합니다. 하지만 **페이팔이 승인 된 할부 정보를 알려주지 않기 때문에**\n실제로 할부로 결제가 됐는지, 됐다면 몇 개월 할부로 결제 됐는지 알 수 없습니다." } }, "card_number": { "description": "결제에 사용된 마스킹된 카드번호. 7~12번째 자리를 마스킹하는 것이 일반적이지만, PG사의 정책/설정에 따라 다소 차이가 있을 수 있습니다.", "type": "string", "x-portone-name": "카드번호", "x-portone-summary": "결제에 사용된 마스킹된 카드번호
\n", "x-portone-description": "7~12번째 자리를 마스킹하는 것이 일반적이지만, PG사의 정책/설정에 따라 상이할 수 있습니다.
\n" }, "card_type": { "description": "카드 구분코드 (주의)해당 정보를 제공하지 않는 일부 PG사의 경우 null 로 응답됨(ex. JTNet, 이니시스-빌링)\n결제건에 사용된 카드 구분코드
\n", "x-portone-description": "주의 : 해당 정보를 제공하지 않는 일부 PG사의 경우 null로 응답됩니다.(ex. JTNet, 이니시스-빌링)
\n결제건의 가상계좌 은행 표준코드(금융결제원기준)- 가상계좌 결제 건의 경우
\n" }, "vbank_name": { "description": "입금받을 가상계좌 은행명", "type": "string", "x-portone-name": "가상계좌 은행명", "x-portone-description": "결제건의 입금받을 가상계좌 은행명 - 가상계좌 결제 건의 경우
\n" }, "vbank_num": { "description": "입금받을 가상계좌 계좌번호", "type": "string", "maxLength": "32", "x-portone-name": "가상계좌 계좌번호", "x-portone-description": "결제건의 입금받을 가상계좌 계좌번호 - 가상계좌 결제 건의 경우
\n" }, "vbank_holder": { "description": "입금받을 가상계좌 예금주", "type": "string", "x-portone-name": "가상계좌 예금주", "x-portone-description": "결제건의 입금받을 가상계좌 예금주 - 가상계좌 결제 건의 경우
\n", "x-portone-per-pg": { "tosspayments": { "description": "토스페이먼츠는 가상계좌 발급 완료시 발급 된 가상계좌의 예금주 명을 전달해주지 않습니다.\n따라서 vbank_holder
가 null로 리턴 되지만, 실제 가상계좌 예금주 명은 토스페이먼츠와 계약된 가맹점 이름과 동일하다고 하니, 참고 부탁드립니다.
결제건의 가상계좌 입금기한 - 가상계좌 결제 건의 경우
\n" }, "vbank_issued_at": { "description": "가상계좌 생성 시각 UNIX timestamp", "type": "integer", "x-portone-name": "가상계좌 생성시각", "x-portone-description": "결제건의 가상계좌 생성시각 UNIX timestamp - 가상계좌 결제 건의 경우
\n" }, "name": { "description": "제품명", "type": "string", "maxLength": "40", "x-portone-name": "제품명", "x-portone-description": "결제건의 제품명
\n" }, "amount": { "description": "주문(결제)금액", "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제건의 결제금액
\n" }, "cancel_amount": { "description": "결제취소금액", "type": "number", "x-portone-name": "취소금액", "x-portone-description": "결제건의 누적 취소금액
\n" }, "currency": { "description": "통화구분코드", "type": "string", "x-portone-name": "결제통화 구분코드", "x-portone-description": "외환분호 e.g) KRW, USD, VND, ... Default: KRW
\n" }, "buyer_name": { "description": "주문자명", "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "결제건의 주문자명
\n" }, "buyer_email": { "description": "주문자 Email주소", "type": "string", "maxLength": "64", "x-portone-name": "주문자 Email주소", "x-portone-description": "결제건의 주문자의 Email주소
\n" }, "buyer_tel": { "description": "주문자 전화번호", "type": "string", "maxLength": "16", "x-portone-name": "주문자 전화번호", "x-portone-description": "결제건의 주문자 전화번호
\n" }, "buyer_addr": { "description": "주문자 주소", "type": "string", "maxLength": "128", "x-portone-name": "주문자 주소", "x-portone-description": "결제건의 주문자 주소
\n" }, "buyer_postcode": { "description": "주문자 우편번호", "type": "string", "maxLength": "8", "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호
\n" }, "custom_data": { "description": "가맹점에서 전달한 custom data결제 요청시 가맹점에서 전달한 추가정보 (JSON string으로 전달)
\n" }, "user_agent": { "description": "구매자가 결제를 시작한 단말기의 UserAgent 문자열", "type": "string", "x-portone-name": "단말기의 UserAgent 문자열", "x-portone-description": "구매자가 결제시 사용한 단말기의 UserAgent 문자열
\n" }, "status": { "description": "결제상태\n결제건의 결제상태
\n" }, "started_at": { "description": "결제시작시점 UNIX timestamp", "type": "integer", "x-portone-name": "요청 시각", "x-portone-description": "결제건의 결제요청 시각 UNIX timestamp
\n" }, "paid_at": { "description": "결제완료시점 UNIX timestamp결제건의 결제완료 시각 UNIX timestamp
\n", "x-portone-description": "결제상태가 결제완료(paid)가 아닌 경우 0으로 표시됩니다.
\n" }, "failed_at": { "description": "결제실패시점 UNIX timestamp결제건의 결제실패시각 UNIX timestamp
\n", "x-portone-description": "결제상태가 결제실패(failed)가 아닌경우 0으로 표시됩니다.
\n" }, "cancelled_at": { "description": "결제취소시점 UNIX timestamp결제건의 결제취소시각 UNIX timestamp
\n", "x-portone-description": "결제상태가 결제취소(cancelled)가 아닐 경우 0으로 표시됩니다.
\n" }, "fail_reason": { "description": "결제실패 사유", "type": "string", "x-portone-name": "결제실패 사유", "x-portone-summary": "결제건의 결제실패 사유
\n", "x-portone-description": "결제상태가 결제실패(failed)가 아닐 경우 null로 표시됩니다.
\n" }, "cancel_reason": { "description": "결제취소 사유", "type": "string", "x-portone-name": "결제취소 사유", "x-portone-summary": "결제건의 결제취소 사유
\n", "x-portone-description": "결제상태가 결제취소(cancelled)가 아닐 경우 null로 표시됩니다.
\n" }, "receipt_url": { "description": "매출전표 확인 URL결제건의 매출전표 URL로 PG사 또는 결제 수단에 따라 매출전표가 없을 수 있습니다.
\n", "x-portone-per-pg": { "tosspayments": { "description": "테스트 결제건, 간편결제 중 카드 외 결제건은 매출 전표 확인이 불가능합니다.
\n" }, "ksnet": { "description": "매출 전표 확인 시 자동으로 인쇄 기능이 호출됩니다. 오동작이 아닌 KSNET의 의도된 기능입니다.
\n카드, 간편결제를 외 결제 수단 에서는 매출전표를 제공하지 않습니다.
\n" }, "settle_acc": { "description": "내통장 결제는 매출전표를 제공하지 않습니다.
\n" } } }, "cancel_history": { "description": "취소/부분취소 내역", "type": "array", "items": { "$ref": "#/definitions/PaymentCancelAnnotation" }, "x-portone-name": "취소 내역", "x-portone-description": "결제건의 취소/부분취소 내역
\n" }, "cancel_receipt_urls": { "description": "(Deprecated : cancel_history 사용 권장) 취소/부분취소 시 생성되는 취소 매출전표 확인 URL. 부분취소 횟수만큼 매출전표가 별도로 생성됨", "type": "array", "items": { "type": "string" } }, "cash_receipt_issued": { "description": "현금영수증 자동발급 여부", "type": "boolean", "x-portone-name": "현금영수증 발급 여부", "x-portone-description": "결제건의 현금영수증 발급 여부
\n" }, "customer_uid": { "description": "해당 결제처리에 사용된 customer_uid", "type": "string", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "결제건에 사용된 빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, "customer_uid_usage": { "description": "customer_uid가 결제처리에 사용된 상세 용도\n결제처리에 사용된 구매자의 결제 수단 식별 고유번호의 사용 구분코드
\n" } } }, "PaymentBalanceAnnotation": { "required": [ "tax_free", "supply", "vat", "service" ], "properties": { "tax_free": { "description": "면세 공급가액 (환불시 마이너스 차감된 최종 금액 반환)", "type": "number", "x-portone-name": "면세 공급가액", "x-portone-description": "면세 공급가액으로 환불시 마이너스 차감된 최종 금액을 반환합니다.
\n" }, "supply": { "description": "과세 공급가액 (환불시 마이너스 차감된 최종 금액 반환)", "type": "number", "x-portone-name": "과세 공급가액", "x-portone-description": "과세 공급가액으로 환불시 마이너스 차감된 최종 금액을 반환합니다.
\n" }, "vat": { "description": "부가세액 (환불시 마이너스 차감된 최종 금액 반환)", "type": "number", "x-portone-name": "부가세액", "x-portone-description": "부가세액으로 환불시 마이너스 차감된 최종 금액을 반환합니다.
\n" }, "service": { "description": "봉사료 (환불시 마이너스 차감된 최종 금액 반환)", "type": "number", "x-portone-name": "봉사료", "x-portone-description": "봉사료로 환불시 마이너스 차감된 최종 금액을 반환합니다.
\n" } } }, "PaymentBalanceHistoriesAnnotation": { "required": [ "cash_receipt", "primary", "secondary", "discount" ], "properties": { "cash_receipt": { "description": "현금영수증 발급된 금액 상세", "x-portone-name": "현금영수증 발급된 상세 금액", "x-portone-description": "결제건의 현금영수증이 발급된 경우 상세 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "primary": { "description": "1차 결제수단(신용카드, 계좌이체, 가상계좌, 휴대폰소액결제) 금액 상세", "x-portone-name": "1차 결제수단", "x-portone-description": "결제건의 1차 결제수단(신용카드, 계좌이체, 가상계좌, 휴대폰소액결제) 상세 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "secondary": { "description": "2차 결제수단(PG사포인트, 카드사포인트) 금액 상세", "x-portone-name": "2차 결제수단", "x-portone-description": "결제건의 2차 결제수단(PG사포인트, 카드사포인트) 상세 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "discount": { "description": "PG사/카드사 자체 할인 금액 상세", "x-portone-name": "할인 금액 상세", "x-portone-description": "결제건의 PG사/카드사 자체 상세 할인 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "created": { "description": "Balance정보가 등록된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "등록시각", "x-portone-description": "결제건의 Balance정보가 등록된 시각 UNIX timestamp
\n" } } }, "PaymentBalanceResponseAnnotation": { "required": [ "amount", "cash_receipt", "primary", "secondary", "discount" ], "properties": { "amount": { "description": "최초 총 결제금액", "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제건의 총 결제금액
\n" }, "cash_receipt": { "description": "현금영수증 발급된 금액 상세", "x-portone-name": "현금영수증 발급된 상세 금액", "x-portone-description": "결제건의 현금영수증이 발급된 경우 상세 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "primary": { "description": "1차 결제수단(신용카드, 계좌이체, 가상계좌, 휴대폰소액결제) 금액 상세", "x-portone-name": "1차 결제수단", "x-portone-description": "결제건의 1차 결제수단(신용카드, 계좌이체, 가상계좌, 휴대폰소액결제) 상세 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "secondary": { "description": "2차 결제수단(PG사포인트, 카드사포인트) 금액 상세", "x-portone-name": "2차 결제수단", "x-portone-description": "결제건의 2차 결제수단(PG사포인트, 카드사포인트) 상세 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "discount": { "description": "PG사/카드사 자체 할인 금액 상세", "x-portone-name": "할인 금액 상세", "x-portone-description": "결제건의 PG사/카드사 자체 상세 할인 금액을 반환합니다.
\n", "$ref": "#/definitions/PaymentBalanceAnnotation" }, "histories": { "description": "PaymentBalance 이력", "type": "array", "items": { "$ref": "#/definitions/PaymentBalanceHistoriesAnnotation" }, "x-portone-name": "PaymentBalance이력", "x-portone-description": "결제건의 Balance 이력을 반환합니다.
\n" } } }, "PagedPaymentAnnotation": { "required": [ "total", "previous", "next" ], "properties": { "total": { "description": "검색한 결제 상태에 대한 전체 건수", "type": "integer", "x-portone-name": "전체 건수", "x-portone-description": "조회한 결제 상태에 대한 전체 건수
\n" }, "previous": { "description": "이전 page숫자. 이전 페이지가 없으면 0", "type": "integer", "x-portone-name": "이전 page숫자", "x-portone-description": "이전 page숫자로 이전 페이지가 없는 경우 0을 반환합니다.
\n" }, "next": { "description": "다음 page숫자. 다음 페이지가 없으면 0", "type": "integer", "x-portone-name": "다음 page숫자", "x-portone-description": "다음 page숫자로 다음 페이지가 없는 경우 0을 반환합니다.
\n" }, "list": { "description": "결제 상세정보 배열(최대 20개). 바로 아래 Payment structure를 확인하세요.", "type": "array", "items": { "$ref": "#/definitions/PaymentAnnotation" }, "x-portone-name": "결제 상세정보 배열", "x-portone-description": "결제 상세정보 배열로 최대 20개를 반환합니다. 바로 아래 Payment structure를 확인해주세요.
\n" } } }, "PaymentResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제 상세정보. 바로 아래 Payment structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/PaymentAnnotation" } } } ] }, "PaymentBalanceResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제 상세정보. 바로 아래 Payment structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/PaymentBalanceResponseAnnotation" } } } ] }, "PaymentListResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제 상세정보. 바로 아래 Payment structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/PagedPaymentAnnotation" } } } ] }, "MultiplePaymentsResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제 상세정보. 바로 아래 Payment structure를 확인하세요", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/PaymentAnnotation" } } } } ] }, "PaymentCancelAnnotation": { "required": [ "pg_tid", "amount", "reason", "cancelled_at", "cancellation_id" ], "properties": { "pg_tid": { "description": "PG사 승인취소번호", "type": "string", "x-portone-name": "PG사 승인취소번호", "x-portone-description": "결제건의 PG사 승인취소번호
\n" }, "amount": { "description": "취소 금액", "type": "number", "x-portone-name": "취소 금액", "x-portone-description": "결제건의 취소 금액
\n" }, "cancelled_at": { "description": "결제취소된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "취소 시각", "x-portone-description": "결제건의 결제취소된 시각 UNIX timestamp
\n" }, "reason": { "description": "결제취소 사유", "type": "string", "x-portone-name": "취소 사유", "x-portone-description": "결제건의 결제취소 사유
\n" }, "cancellation_id": { "description": "결제건의 취소 아이디", "type": "string", "x-portone-name": "결제취소 아이디", "x-portone-description": "결제건의 취소 아이디
\n" }, "receipt_url": { "description": "취소에 대한 매출전표 확인 URL결제건의 취소 매출전표 확인 URL로 PG사, 결제 수단에 따라 제공되지 않을 수 있습니다.
\n" } } }, "PaymentPrepareAnnotation": { "required": [ "total", "previous", "next" ], "properties": { "merchant_uid": { "description": "가맹점 주문번호", "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "사전 등록한 가맹점의 주문번호
\n" }, "amount": { "description": "결제 예정 금액", "type": "number", "x-portone-name": "결제 예정 금액", "x-portone-description": "사전 등록한 결제 예정 금액
\n" } } }, "PaymentPrepareResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "사전에 등록된 결제 예정 정보. 바로 아래 PaymentPrepare structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/PaymentPrepareAnnotation" } } } ] }, "PaymentwallDeliveryAnnotation": { "properties": { "code": { "description": "0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다", "type": "integer", "x-portone-name": "응답코드", "x-portone-description": "0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
\n" }, "message": { "description": "code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다", "type": "string", "x-portone-name": "응답메세지", "x-portone-description": "code 값이 0이 아닐 때, ‘존재하지 않는 결제정보입니다’와 같은 오류 메세지를 포함합니다
\n" }, "response": { "description": "에러 메시지를 포함하거나, 성공시 success: 1 메시지를 포함합니다", "x-portone-name": "응답", "x-portone-description": "에러 메시지를 포함하거나, 성공시 success: 1 메시지를 포함합니다
\n", "$ref": "#/definitions/PaymentwallDeliveryDetailAnnotation" } } }, "PaymentwallDeliveryDetailAnnotation": { "properties": { "error_code": { "description": "이 값이 없으면 정상적인 경우, 없으면 notices를 확인해봐야 합니다", "type": "integer", "x-portone-name": "에러코드", "x-portone-description": "이 값이 없으면 정상적인 경우, 없으면 notices를 확인해봐야 합니다
\n" }, "error": { "description": "에러 메시지", "type": "string", "x-portone-name": "에러메세지", "x-portone-description": "에러코드에 대응하는 오류메세지를 반환합니다.
\n" }, "notices": { "description": "자세한 에러 메시지", "type": "array", "items": { "type": "string" }, "x-portone-name": "자세한 에러메세지", "x-portone-description": "error_code
값이 없는 경우 확인이 필요한 상세 에러메세지
결제건의 포트원 거래고유번호
\n" }, "receipt_tid": { "description": "현금영수증 PG사 발행고유번호", "type": "string", "x-portone-name": "PG사 현금영수증 발행 고유번호", "x-portone-description": "결제건에 대해 현금영수증 발행시 PG사의 발행고유번호
\n" }, "apply_num": { "description": "현금영수증 국세청 발행번호", "type": "string", "x-portone-name": "국세청 발행번호", "x-portone-description": "결제건에 대해 현금영수증 발행시 국세청 발행번호
\n" }, "type": { "description": "현금영수증 발행대상 타입\n현금영수증 발행 대상의 타입
\n" }, "amount": { "description": "현금영수증 발행금액", "type": "integer", "x-portone-name": "발행 금액", "x-portone-description": "현금영수증 발행 금액
\n" }, "vat": { "description": "현금영수증 발행금액 중 부가세금액", "type": "integer", "x-portone-name": "부가세액", "x-portone-description": "현금영수증 발행금액 중 부가세액
\n" }, "receipt_url": { "description": "발행된 현금영수증 URL", "type": "string", "x-portone-name": "현금영수증 URL", "x-portone-description": "발행된 현금영수증을 확인할 수 있는 URL
\n" }, "applied_at": { "description": "현금영수증 발행시각 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발행시각", "x-portone-description": "현금영수증 발행시각 UNIX timestamp
\n" }, "cancelled_at": { "description": "현금영수증 발행취소시각 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발행취소시각", "x-portone-description": "현금영수증 발행취소시각 UNIX timestamp
\n" } } }, "ReceiptResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "현금영수증 발행 상세정보. 바로 아래 Receipt structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/ReceiptAnnotation" } } } ] }, "ExternalReceiptAnnotation": { "required": [ "merchant_uid", "apply_num", "type", "amount", "vat", "applied_at" ], "properties": { "merchant_uid": { "description": "현금영수증 가맹점 주문번호", "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "현금영수증을 발행한 가맹점의 주문번호
\n" }, "receipt_tid": { "description": "현금영수증 PG사 발행고유번호", "type": "string", "x-portone-name": "PG사 현금영수증 발행 고유번호", "x-portone-description": "결제건에 대해 현금영수증 발행시 PG사의 발행고유번호
\n" }, "apply_num": { "description": "현금영수증 국세청 발행번호", "type": "string", "x-portone-name": "국세청 발행번호", "x-portone-description": "결제건에 대해 현금영수증 발행시 국세청 발행번호
\n" }, "type": { "description": "현금영수증 발행대상 타입\n현금영수증 발행 대상의 타입
\n" }, "amount": { "description": "현금영수증 발행금액", "type": "integer", "x-portone-name": "발행 금액", "x-portone-description": "현금영수증 발행 금액
\n" }, "vat": { "description": "현금영수증 발행금액 중 부가세금액", "type": "integer", "x-portone-name": "부가세액", "x-portone-description": "현금영수증 발행금액 중 부가세액
\n" }, "receipt_url": { "description": "발행된 현금영수증 URL", "type": "string", "x-portone-name": "현금영수증 URL", "x-portone-description": "발행된 현금영수증을 확인할 수 있는 URL
\n" }, "applied_at": { "description": "현금영수증 발행시각 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발행시각", "x-portone-description": "현금영수증 발행시각 UNIX timestamp
\n" }, "cancelled_at": { "description": "현금영수증 발행취소시각 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발행취소시각", "x-portone-description": "현금영수증 발행취소시각 UNIX timestamp
\n" } } }, "ExternalReceiptResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "현금영수증 발행 상세정보. 바로 아래 Receipt structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/ExternalReceiptAnnotation" } } } ] }, "ResponseAnnotation": { "properties": { "code": { "description": "0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다", "type": "integer", "x-portone-name": "응답코드", "x-portone-description": "0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
\n" }, "message": { "description": "code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다", "type": "string", "x-portone-name": "응답메세지", "x-portone-description": "code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
\n" } } }, "ScheduleAnnotation": { "required": [ "merchant_uid", "schedule_at", "amount", "currency" ], "properties": { "merchant_uid": { "description": "가맹점 주문번호", "type": "string", "x-portone-name": "가맹점의 주문번호", "x-portone-description": "결제 예약건의 가맹점 주문번호
\n", "x-portone-per-pg": { "smartro_v2": { "description": "스마트로는 주문 번호(merchant_uid)에 특수문자를 허용하고 있지 않습니다.
\n따라서 결제창에서 일반결제를 할때와 발급 된 빌링키로 API를 통해 재결제를 하는 경우 숫자, 문자(알파벳 소문자와 대문자) 또는 그 조합으로 이루어진 주문 번호를 사용해주세요.\n또한, 주문번호(merchant_uid)가 최대 40자를 넘을 수 없습니다. 40자가 넘을 경우 40자까지 잘려서 저장되기 때문에 유의 바랍니다.
\n" } } }, "schedule_at": { "description": "결제요청 예약시각 UNIX timestamp in seconds", "type": "integer", "default": 0, "x-portone-name": "예약시각", "x-portone-description": "결제요청 예약시각 UNIX timestamp
\n" }, "currency": { "description": "통화 e.g.) KRW, USD, VND, ... Default: KRW ", "type": "string", "default": "KRW", "x-portone-name": "결제 통화 코드", "x-portone-description": "통화 e.g.) KRW, USD, VND, ... Default: KRW
\n", "x-portone-per-pg": { "ksnet": { "description": "USD 결제는 순수 해외카드로만 결제 가능합니다.
\n" }, "paypal_v2": { "required": true, "description": "KRW은 불가능합니다.
\n" } } }, "amount": { "description": "결제금액", "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제 예약을 요청한 결제금액
\n" }, "tax_free": { "description": "amount 중 면세공급가액.결제 예약을 요청한 결제금액 중 면세공급가액
\n", "x-portone-per-pg": { "ksnet": { "description": "면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.
\n과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.
\n" }, "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 사용 가능합니다.
결제 예약을 요청한 결제금액 중 부가세
\n", "x-portone-supported-pgs": [ "nice", "html5_inicis", "nice_v2", "welcome" ], "x-portone-per-pg": { "welcome": { "description": "부가세업체정함
설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
결제건의 제품명
\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "danal_tpay": { "required": true } } }, "buyer_name": { "description": "[스마트로 - 신모듈, 웰컴페이먼츠 필수 파라미터] 주문자명", "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "결제건의 문자명
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "ksnet": { "required": true }, "welcome": { "required": true }, "paymentwall": { "description": "first name, last name 한칸 띄어쓰기로 구분되어 유입되어야 합니다. 예시) Michael Jackson
\n" } } }, "buyer_email": { "description": "주문자 Email주소", "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email주소", "x-portone-description": "결제건의 주문자 Email주소
\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "paymentwall": { "required": true, "description": "빌링키 발급시 기재한 주소와 발급된 빌링키로 결제시 기입한 이메일주소가 일치해야 합니다.
\n" } } }, "buyer_tel": { "description": "주문자 전화번호", "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "결제건의 주문자 전화번호
\n", "x-portone-per-pg": { "smartro_v2": { "required": true } } }, "buyer_addr": { "description": "주문자 주소", "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "결제건의 주문자 주소
\n" }, "buyer_postcode": { "description": "주문자 우편번호", "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호
\n" }, "custom_data": { "description": "예약된 결제가 수행될 때 Payment.custom_data로 사용할 값.", "type": "string", "x-portone-name": "추가정보", "x-portone-description": "예약된 결제가 수행될 때 함께 저장할 추가정보
\n" }, "notice_url": { "description": "예약된 결제가 수행된 후 웹훅(Notification)이 발송될 URL을 직접 지정. (지정되지 않으면 관리자페이지의 Notification URL로 발송됨)", "type": "string", "x-portone-name": "Notification URL(Webhook URL)", "x-portone-summary": "예약된 결제가 수행된 후 웹훅(Notification)이 발송될 URL을 직접 지정
\n", "x-portone-description": "해당 파리미터를 지정하지 않으면 웹훅은 관리자페이지의 Notification URL로 발송 됩니다
\n" }, "product_type": { "description": "판매 상품에 대한 구분 값 (real : 실물상품 digital : 디지털 컨텐츠)", "type": "string", "x-portone-name": "주문 상품구분", "x-portone-description": "판매 상품에 대한 구분 값
\n", "x-portone-supported-pgs": [ "ksnet", "paypal_v2" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, "cash_receipt_type": { "description": "현금영수증 발행대상 구분 값 (person, company, anonymous)현금영수증 발행대상 구분 값
\n", "x-portone-supported-pgs": [ "tosspay_v2" ], "x-portone-per-pg": { "tosspay_v2": { "description": "anonymous를 전달한 경우 현금영수증 미발행, 그 외 경우 현금영수증 자동발행으로 동작합니다.
\n" } } }, "card_quota": { "description": "카드할부개월수. 2 이상의 integer 할부개월수 적용(결제금액 50,000원 이상 한정, default = 0(일시불))", "type": "number", "x-portone-name": "카드 할부 개월 수", "x-portone-description": "결제건의 카드 할부 개월 수로 기본값은 **0(일시불)**입니다.
\n" }, "interest_free_by_merchant": { "description": "카드할부처리시, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 가맹점이 지불하고자 PG사와 계약된 경우 (default : false)", "type": "boolean", "example": false, "x-portone-name": "가맹점부담 무이자 할부여부", "x-portone-summary": "카드 할부이자를 가맹점에서 부담하는 지 여부
\n", "x-portone-description": "카드할부 처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하고자 PG사와 계약한 경우 (Default : false)
\n", "x-portone-supported-pgs": [ "nice", "ksnet", "nice_v2" ] }, "use_card_point": { "description": "승인요청시 카드사 포인트 차감하며 결제승인처리할지 flag. PG사 영업담당자와 계약 당시 사전 협의 필요(default : false)", "type": "boolean", "example": false, "x-portone-name": "카드포인트 사용여부", "x-portone-summary": "승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부
\n", "x-portone-description": "PG사 영업담당자와 계약 당시 사전 협의가 필요하며 기본값은 false입니다.
\n", "x-portone-supported-pgs": [ "nice", "smartro_v2", "nice_v2" ] }, "product_count": { "description": "결제 상품의 개수 (Default : 1)", "type": "integer", "x-portone-name": "결제 상품의 개수", "x-portone-description": "결제 상품의 개수로 기본값은 1입니다.
\n" }, "extra": { "description": "결제 예약 요청시 필요한 추가 정보", "properties": { "naverUseCfm": { "description": "네이버페이 반복결제 계약 시 이용완료일 필수로 설정된 가맹점에 한함", "type": "string", "x-portone-name": "이용완료일", "x-portone-description": "이용완료일 YYYYMMDD
결제 예약 요청시 필요한 추가 정보
\n" }, "bypass": { "description": "JSON string 형식의 PG사별로 특화된 파라미터.JSON string 형식의 PG사별로 특화된 파라미터
\n", "x-portone-description": "전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다. 각 PG사별 스펙은 PG사별 연동 문서 참고해주세요
\n" } } }, "ScheduleResultAnnotation": { "properties": { "customer_uid": { "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호", "type": "string", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
\n" }, "merchant_uid": { "description": "가맹점 주문번호", "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-description": "예약 결제건의 가맹점 주문번호
\n" }, "imp_uid": { "description": "포트원 거래고유번호예약 결제건의 포트원 거래고유번호
\n", "x-portone-description": "예약된 결제가 실행 전 철회되거나 아직 실행 전 예약 상태에 있으면 imp_uid는 null입니다.
\n" }, "customer_id": { "description": "구매자 ID", "type": "string", "x-portone-name": "구매자 ID", "x-portone-description": "string 타입의 구매자 식별 고유번호
\n" }, "schedule_at": { "description": "예약결제 실행 예정 시각 UNIX timestamp in seconds", "type": "integer", "default": 0, "x-portone-name": "결제 예정 시각", "x-portone-description": "결제 예약시 요청한 결제 예정 시각 UNIX timestamp
\n" }, "executed_at": { "description": "예약결제가 실행된 시각 UNIX timestamp", "type": "integer", "default": 0, "x-portone-name": "결제 실행 시각", "x-portone-description": "실제 결제가 실행된 시각 UNIX timestamp
\n" }, "revoked_at": { "description": "예약결제 실행을 철회한 시각 UNIX timestamp", "type": "integer", "default": 0, "x-portone-name": "결제 실행 철회 시각", "x-portone-description": "예약 결제 실행을 철회한 시각 UNIX timestamp
\n" }, "amount": { "description": "결제금액", "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제 예약시 요청한 결제금액
\n" }, "currency": { "description": "통화 e.g.) KRW, USD, VND, ... Default: KRW ", "type": "string", "default": "KRW", "x-portone-name": "결제 통화 코드", "x-portone-description": "통화 e.g.) KRW, USD, VND, ... Default: KRW
\n" }, "name": { "description": "제품명", "type": "string", "maxLength": 40, "x-portone-name": "제품명", "x-portone-description": "예약 결제건의 제품명
\n" }, "buyer_name": { "description": "주문자명", "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "예약 결제건의 주문자명
\n" }, "buyer_email": { "description": "주문자 Email주소", "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email주소", "x-portone-description": "예약 결제건의 주문자 Email주소
\n" }, "buyer_tel": { "description": "주문자 전화번호", "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "예약 결제건의 주문자 전화번호
\n" }, "buyer_addr": { "description": "주문자 주소", "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "예약 결제건의 주문자 주소
\n" }, "buyer_postcode": { "description": "주문자 우편번호", "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "예약 결제건의 주문자 우편번호
\n" }, "custom_data": { "description": "예약된 결제가 수행될 때 결제정보와 함께 저장할 추가정보", "type": "string", "x-portone-name": "추가정보", "x-portone-description": "예약된 결제가 수행될 때 결제정보와 함께 저장할 추가정보
\n" }, "schedule_status": { "description": "예약상태\n결제건의 예약상태
\n" }, "payment_status": { "description": "실행된 결제의 승인 상태\n예약 결제건의 승인 상태
\n" }, "fail_reason": { "description": "실행된 결제가 승인 실패인 경우, 실패사유", "type": "string", "x-portone-name": "실패사유", "x-portone-description": "예약 결제건이 결제 승인에 실패한 경우, 실패사유
\n" } } }, "ScheduleResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록된 결제예약 정보. 바로 아래 ScheduleResult structure를 확인하세요", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/ScheduleResultAnnotation" } } } } ] }, "SingleScheduleResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록된 결제예약 정보. 바로 아래 ScheduleResult structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/ScheduleResultAnnotation" } } } ] }, "StandardCodeAnnotation": { "required": [ "code", "name" ], "properties": { "code": { "description": "기관코드(금융결제원표준코드)", "type": "string", "x-portone-name": "기관코드", "x-portone-description": "금융결제표준코드
\n" }, "name": { "description": "기관명(금융결제원기재명)", "type": "string", "x-portone-name": "기관명", "x-portone-description": "금융결제원기재명
\n" } } }, "StandardCodeResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제기관 정보", "properties": { "response": { "$ref": "#/definitions/StandardCodeAnnotation" } } } ] }, "StandardCodeListResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제기관 정보", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/StandardCodeAnnotation" } } } } ] }, "SubscribePaymentExtra": { "properties": { "naverUseCfm": { "description": "이용 완료일", "type": "string", "x-portone-name": "이용 완료일(YYYYMMDD), 네이버페이 전용", "x-portone-description": "이용 완료일(YYYYMMDD), 네이버페이 정기결졔 계약 시 이용완료일을 필수로 설정한 고객사의 경우 필수로 전달해야합니다.
\n", "x-portone-per-pg": { "naverpay": { "description": "이용 완료일(YYYYMMDD), 네이버페이 정기결졔 계약 시 이용완료일을 필수로 설정한 고객사의 경우 필수로 전달해야합니다.
\n" } } } } }, "TierAnnotation": { "required": [ "tier_code", "tier_name" ], "properties": { "tier_code": { "description": "하위 가맹점(Tier) 고유코드(알파벳 대문자 또는 숫자 3자리)", "type": "string", "x-portone-name": "티어코드", "x-portone-summary": "하위가맹점(Tier)의 고유코드
\n", "x-portone-description": "알파벳 대문자 또는 숫자 3자리로 구성됩니다.
\n" }, "tier_name": { "description": "하위 가맹점(Tier) 관리명칭", "type": "string", "x-portone-name": "티어명", "x-portone-description": "하위가맹점(Tier)의 관리명칭
\n" } } }, "TierResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "하위 가맹점(Tier) 정보", "properties": { "response": { "$ref": "#/definitions/TierAnnotation" } } } ] }, "PgSettingAnnotation": { "required": [ "pg_provider", "pg_id", "sandbox", "type" ], "properties": { "pg_provider": { "description": "PG사 구분코드설정된 PG사의 구분코드
\n" }, "pg_id": { "description": "PG사 상점아이디", "type": "string", "maxLength": "80", "x-portone-name": "PG사 상점아이디", "x-portone-description": "설정된 PG사의 상점아이디(MID)
\n" }, "sandbox": { "description": "테스트모드 여부", "type": "boolean", "x-portone-name": "테스트모드 여부", "x-portone-description": "설정된 PG사의 테스트모드 여부
\n" }, "type": { "description": "PG 설정 타입 구분코드\n설정된 PG사의 타입 구분코드
\n" }, "channel_name": { "description": "가맹점이 포트원 콘솔에 채널 추가시 설정한 결제 채널 이름", "type": "string", "x-portone-name": "채널이름", "x-portone-description": "가맹점이 포트원 콘솔에 채널 추가시 설정한 결제 채널 이름
\n" }, "channel_key": { "description": "가맹점이 포트원 콘솔에 채널 추가시 포트원이 자동 생성한 채널 고유 키", "type": "string", "x-portone-name": "채널 고유 키", "x-portone-description": "가맹점이 포트원 콘솔에 채널 추가시 포트원이 자동 생성한 채널 고유 키
\n" } } }, "MultiplePgSettingResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "PG 설정 정보.", "properties": { "response": { "type": "array", "items": { "$ref": "#/definitions/PgSettingAnnotation" } } } } ] }, "VbankHolderAnnotation": { "required": [ "bank_holder" ], "properties": { "bank_holder": { "description": "예금주명", "type": "string", "x-portone-name": "예금주명", "x-portone-description": "가상계좌의 예금주명
\n" } } }, "VbankHolderResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "계좌번호 예금주 정보. 바로 아래 VbankHolder structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/VbankHolderAnnotation" } } } ] }, "KcpQuickControllerAnnotation": {}, "UserControllerAnnotation": {} }, "tags": [ { "name": "authenticate", "description": "REST API사용을 위한 인증(access_token취득)" }, { "name": "payments", "description": "결제내역 조회 및 결제 취소" }, { "name": "payments.validation", "description": "payments확장기능. 결제될 내역에 대한 사전정보 등록&검증" }, { "name": "subscribe", "description": "ActiveX없는 간편결제, 정기 예약 결제 기능" }, { "name": "subscribe.customer", "description": "subscribe확장기능. 구매자 빌키 관리" }, { "name": "vbanks", "description": "PG결제화면없이 API만으로 가상계좌 발급/취소" }, { "name": "receipts", "description": "현금영수증 발급/관리" }, { "name": "certifications", "description": "SMS본인인증결과 조회 및 관리" }, { "name": "escrow.logis", "description": "에스크로 결제건에 대한 배송정보 등록" }, { "name": "codes", "description": "결제기관에 대한 표준코드 및 기관정보(금융결제원기준)" }, { "name": "payco", "description": "PAYCO전용 API" }, { "name": "naver", "description": "네이버페이 전용 API" }, { "name": "kakao", "description": "카카오페이 전용 API" }, { "name": "benepia", "description": "베네피아 포인트 API" }, { "name": "paymentwall", "description": "페이먼트월 전용 API (배송등록 등)" }, { "name": "cvs", "description": "편의점방문 수납결제 API" }, { "name": "kcpquick", "description": "KCP 퀵페이 전용 API" }, { "name": "users", "description": "가맹점 설정 정보 전용 API" }, { "name": "tiers", "description": "대표가맹점에 대한 하위가맹점 관리" }, { "name": "partners", "description": "하위 상점 전용 API" } ], "x-portone-categories": [ { "id": "auth", "title": "인증 관련 API", "description": "API 인증에 관련된 기능을 제공합니다." }, { "id": "payment", "title": "결제 관련 API", "description": "결제 건과 관련된 기능을 제공합니다.", "children": [ { "id": "payment.validation", "title": "결제 금액 사전 등록 관련 API", "description": "사전 등록하는 결제금액과 관련된 기능을 제공합니다." } ] }, { "id": "nonAuthPayment", "title": "비인증 결제 관련 API", "description": "별도 결제창 호출없이 결제를 진행할 수 있는 비인증 결제 기능을 제공합니다.", "children": [ { "id": "nonAuthPayment.subscribe", "title": "정기 결제 관련 API", "description": "비인증 결제 중 정기 결제를 관리하는 기능을 제공합니다." } ] }, { "id": "billingkey", "title": "빌링키 관련 API", "description": "빌링키 관리와 관련된 기능을 제공합니다." }, { "id": "vbank", "title": "가상계좌 관련 API", "description": "가상계좌 결제와 관련된 기능을 제공합니다." }, { "id": "pg", "title": "PG사 관련 API", "description": "PG사 별 추가로 지원하는 기능을 제공합니다.", "children": [ { "id": "pg.kakao", "title": "카카오 관련 API", "description": "카카오페이에서 지원하는 기능을 제공합니다." }, { "id": "pg.kcpquick", "title": "KCP 퀵페이 관련 API", "description": "KCP 퀵페이에서 지원하는 기능을 제공합니다." }, { "id": "pg.naverpay", "title": "네이버페이 관련 API", "description": "네이버페이에서 지원하는 기능을 제공합니다." }, { "id": "pg.payco", "title": "페이코 관련 API", "description": "페이코에서 지원하는 기능을 제공합니다." }, { "id": "pg.paymentwall", "title": "페이먼트월 관련 API", "description": "페이먼트월에서 지원하는 기능을 제공합니다." } ] }, { "id": "certification", "title": "본인인증 관련 API", "description": "본인인증 요청 및 결과 조회와 관련된 기능을 제공합니다." }, { "id": "receipt", "title": "현금영수증 관련 API", "description": "포트원 결제건 및 외부 결제 건의 현금영수증 관리와 관련된 기능을 제공합니다." }, { "id": "escrow", "title": "에스크로 관련 API", "description": "에스크로 결제 건의 배송 정보와 관련된 기능을 제공합니다." }, { "id": "user", "title": "가맹점 정보 관련 API", "description": "가맹점 정보를 관리하는 기능을 제공합니다.", "children": [ { "id": "user.tier", "title": "가맹점의 하위가맹점 관련 API", "description": "대표가맹점에 대한 하위가맹점 관리와 관련된 기능을 제공합니다." } ] }, { "id": "partner", "title": "하위 상점 관련 API", "description": "하위 상점과 관련된 기능을 제공합니다." }, { "id": "etc", "title": "기타 API", "description": "부가적인 기능을 제공합니다.", "children": [ { "id": "etc.benepia", "title": "베네피아 포인트 관련 API", "description": "베네피아 포인트(복지 포인트)와 관련된 기능을 제공합니다." }, { "id": "etc.code", "title": "결제기관 관련 API", "description": "금융결제원 기준 카드사, 은행의 표준 코드와 기관정보 조회 기능을 제공합니다." }, { "id": "etc.cvs", "title": "편의점 결제 관련 API", "description": "편의점 결제를 위한 수납 번호(barcode)와 관련된 기능을 제공합니다." } ] } ] }