{
"swagger": "2.0",
"info": {
"title": "포트원 REST API",
"description": "* 결제완료된 정보, 결제취소, 상태별 결제목록 조회 등의 기능을 하는 REST API를 제공합니다.
비인증결제, 정기 자동결제 등 부가기능을 위한 REST API를 제공합니다.",
"contact": {
"name": "(주)코리아포트원",
"url": "https://admin.portone.io",
"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 응답을 받습니다.
고객사 거래 고유번호
\n", "x-portone-description": "이미 결제가 이뤄진 적이 있는 merchant_uid로는 결제요청이 불가능합니다." }, { "name": "amount", "in": "formData", "description": "결제요청금액", "required": true, "type": "number", "x-portone-name": "결제요청금액", "x-portone-description": "결제 요청하고자 하는 금액" }, { "name": "name", "in": "formData", "description": "주문명", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "주문명" }, { "name": "buyer_name", "in": "formData", "description": "주문자명", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "주문자명" }, { "name": "buyer_email", "in": "formData", "description": "주문자 Email주소", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email 주소", "x-portone-description": "주문자 Email주소" }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "주문자 전화번호" }, { "name": "buyer_addr", "in": "formData", "description": "주문자 주소", "required": false, "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "주문자 주소" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "주문자 우편번호" }, { "name": "channel_key", "in": "formData", "description": "베네피아 포인트 결제 시 사용할 채널의 채널키", "required": true, "type": "string" }, { "name": "notice_url", "in": "formData", "description": "선언되지 않으면 포트원 관리자 페이지에 정의된 Notification URL값을 사용", "required": false, "type": "array", "x-portone-name": "Notification URL(Webhook URL)", "x-portone-description": "웹훅을 수신하고자 하는 URL" }, { "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 문자열로 저장" } ], "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": "본인인증 결과로 리턴 받은 포트원 인증 고유번호" } ], "responses": { "200": { "description": "본인인증결과 조회 성공", "schema": { "$ref": "#/definitions/CertificationResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "본인인증결과를 찾을 수 없음" } }, "x-portone-supported-pgs": [ "danal", "inicis_unified", "inicis", "kcp_v2" ], "x-portone-category": "certification" }, "delete": { "tags": [ "certifications" ], "summary": "본인인증 정보삭제 API", "description": "본인인증 결과를 삭제합니다.본인인증 대상자 전화번호
\n", "x-portone-description": "- 또는 . 과 같은 기호가 포함되어도 무방 - 포트원 내에서 숫자 외에는 정규식으로 모두 제거처리" }, { "name": "birth", "in": "formData", "description": "본인인증 대상자 생년월일본인인증 대상자 생년월일
\n", "x-portone-description": "`YYMMDD` 6자리(연/월/일 사이에 - 또는 . 과 같은 기호가 포함되어도 무방 - 포트원 내에서 숫자 외에는 정규식으로 모두 제거처리함)" }, { "name": "gender_digit", "in": "formData", "description": "본인인증 대상자 주민등록번호 뒷부분 첫자리(주민등록번호 13자리 중 7번째 자리본인인증 대상자 주민등록번호 뒷부분 첫자리
\n", "x-portone-description": "주민등록번호 13자리 중 7번째 자리\n\n2000년 이전 출생자는 1 또는 2, 2000년 이후 출생자는 3 또는 4\n본인인증 대상자 통신자 코드
\n", "x-portone-description": "알뜰폰 사용자의 경우, carrier파라메터 SKT, KT, LGT 중 하나를 지정한 후 **is_mvno : true** 로 설정\n- SKT\n- KT\n- LGT" }, { "name": "is_mvno", "in": "formData", "description": "본인인증 대상자 알뜰폰 사용 여부", "required": false, "type": "boolean", "default": "false", "x-portone-name": "알뜰폰 사용 여부", "x-portone-description": "본인인증 대상자 알뜰폰 사용 여부" }, { "name": "company", "in": "formData", "description": "고객사 서비스명칭 또는 domain URL.고객사 서비스명칭 또는 domain URL
\n", "x-portone-description": "KISA에서 대상자에게 발송하는 SMS에 안내될 서비스 명칭" }, { "name": "merchant_uid", "in": "formData", "description": "본인인증 요청건을 식별하기 위한 고객사 주문번호", "required": false, "type": "string", "x-portone-name": "고객사 주문번호", "x-portone-description": "본인인증 요청건을 식별하기 위한 고객사 주문번호" }, { "name": "pg", "in": "formData", "description": "PG사 구분자본인인증을 요청하고자 하는 PG사 구분자
\n", "x-portone-description": "다날 상점아이디를 2개 이상 동시에 사용하시려는 경우 설정하시면 됩니다. **danal.{상점아이디}** 형태로 지정. Deprecated 되었으므로 channel_key 파라미터를 사용해주세요." }, { "name": "channel_key", "in": "formData", "description": "본인인증을 요청하고자 하는 PG사의 채널키로 kcp(신모듈) 본인인증을 사용하시려는 경우 반드시 channel_key를 입력해야합니다.", "required": true, "type": "string", "x-portone-name": "채널키", "x-portone-summary": "본인인증을 요청하고자 하는 PG사의 채널키
\n", "x-portone-description": "kcp(신모듈) 본인인증을 사용하시려는 경우 반드시 channel_key를 입력해야합니다." }, { "name": "verification_method", "in": "formData", "description": "본인인증을 진행하고자 하는 방식.\n - SMS\n - APP\n\n지원하는 pg사\n- kcp(신모듈)", "required": false, "type": "string", "enum": [ "SMS", "APP" ], "x-portone-name": "본인인증 방식", "x-portone-summary": "본인인증을 진행하고자 하는 방식
\n", "x-portone-description": "본인인증을 진행하고자 하는 방식. (현재 kcp(신모듈)만 지원)\n- SMS\n- APP", "x-portone-supported-pgs": [ "kcp_v2" ] }, { "name": "bypass", "in": "formData", "description": "JSON string 형식의 PG사별로 특화된 파라미터.JSON string 형식의 PG사별로 특화된 파라미터
\n", "x-portone-description": "전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다. 각 PG사별 스펙은 PG사별 연동 문서 참고해주세요", "x-portone-supported-pgs": [ "kcp_v2" ] } ], "responses": { "200": { "description": "본인인증을 위한 대상자 정보 검증 완료(인증번호 SMS전송요청 중)", "schema": { "$ref": "#/definitions/CertificationOTPResponse" } }, "400": { "description": "대상자 개인정보 중 일부가 누락되었거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "500": { "description": "처리 중 다날서버 응답오류 등 오류가 발생한 경우" } }, "x-portone-supported-pgs": [ "danal", "kcp_v2" ], "x-portone-category": "certification" } }, "/certifications/otp/confirm/{imp_uid}": { "post": { "tags": [ "certifications" ], "summary": "본인인증 완료 API", "description": "본인인증 요청 API를 통해 SMS/APP로 전송된 인증번호를 전달하여 본인인증을 완료합니다.연동 유의사항
\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": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호"
}
],
"responses": {
"200": {
"description": "정상 조회 시, 일반 빌링키 조회는 CustomerResponse를 반환하며, 슈퍼 빌링키 조회는 SuperBillingKeyResponse를 반환합니다.",
"schema": {
"properties": {
"CustomerResponse": {
"$ref": "#/definitions/CustomerResponse"
},
"SuperBillingKeyResponse": {
"$ref": "#/definitions/SuperBillingKeyResponse"
}
}
}
},
"401": {
"description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우"
},
"404": {
"description": "유효하지 않은 customer_uid"
}
},
"x-portone-supported-pgs": [
"chai",
"danal",
"danal_tpay",
"daou",
"html5_inicis",
"inicis",
"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": "구매자에 대해 빌링키 발급 및 저장 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`)" }, { "name": "expiry", "in": "formData", "description": "카드 유효기간(YYYY-MM)", "required": true, "type": "string", "x-portone-name": "카드 유효기간", "x-portone-description": "빌링키 발급 하고자 하는 카드 유효기간(`YYYY-MM`)" }, { "name": "birth", "in": "formData", "description": "생년월일6자리(법인카드의 경우 사업자등록번호10자리)생년월일6자리
\n", "x-portone-description": "법인카드의 경우 사업자등록번호10자리\n\nPG사별로 혹은 계약상황에따라 필수값 여부가 상이합니다.", "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사별 혹은 계약상황에 따라 필수값 여부가 상이합니다.", "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자리", "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": "고객(카드소지자) 관리용 성함", "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": "고객(카드소지자) 전화번호" }, { "name": "customer_email", "in": "formData", "description": "고객(카드소지자) Email", "required": false, "type": "string", "maxLength": 200, "x-portone-name": "카드소유자 이메일주소", "x-portone-description": "고객(카드소지자) Email" }, { "name": "customer_addr", "in": "formData", "description": "고객(카드소지자) 주소", "required": false, "type": "string", "maxLength": 200, "x-portone-name": "카드소유자 주소", "x-portone-description": "고객(카드소지자) 주소" }, { "name": "customer_postcode", "in": "formData", "description": "고객(카드소지자) 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "카드소유자 우편번호", "x-portone-description": "고객(카드소지자) 우편번호" }, { "name": "channel_group_id", "in": "formData", "description": "고객사 거래 고유번호
\n", "x-portone-description": "이미 결제가 이뤄진 적이 있는 merchant_uid로는 추가적인 편의점결제 수납번호(barcode) 발급 또는 등록이 불가능합니다." }, { "name": "amount", "in": "formData", "description": "결제금액", "required": true, "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제하고자 하는 금액" }, { "name": "barcode", "in": "formData", "description": "고객사에서 직접 생성, 관리하는 바코드(barcode)번호가 있는 경우, 갤럭시아컴즈로부터 신규 수납번호(barcode)를 발급요청하지 않고 고객사에서 관리하는 바코드(barcode)번호를 등록하여 수납번호로 활용할 수 있습니다.", "required": false, "type": "string", "x-portone-name": "바코드", "x-portone-description": "고객사에서 직접 생성, 관리하는 바코드(barcode)번호가 있는 경우, 갤럭시아컴즈로부터 신규 수납번호(barcode)를 발급요청하지 않고 고객사에서 관리하는 바코드(barcode)번호를 등록하여 수납번호로 활용할 수 있습니다." }, { "name": "expired_at", "in": "formData", "description": "편의점 수납가능한 결제기한(Unix Timestamp). 정의하지 않으면 갤럭시아컴즈와 계약시 협의한 기본값이 적용됩니다.", "required": false, "type": "integer", "x-portone-name": "편의점 수납가능한 결제기한", "x-portone-description": "편의점 수납가능한 결제기한(Unix Timestamp). 정의하지 않으면 갤럭시아컴즈와 계약시 협의한 기본값이 적용됩니다." }, { "name": "name", "in": "formData", "description": "주문명", "required": false, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "주문명" }, { "name": "buyer_name", "in": "formData", "description": "주문자명", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "주문자의 이름" }, { "name": "buyer_email", "in": "formData", "description": "주문자 Email주소", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email 주소", "x-portone-description": "주문자 Email 주소" }, { "name": "buyer_tel", "in": "formData", "description": "주문자 전화번호", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "주문자 전화번호" }, { "name": "buyer_addr", "in": "formData", "description": "주문자 주소", "required": false, "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "주문자의 주소" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "주문자의 우편번호" }, { "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"
},
{
"name": "notice_url",
"in": "formData",
"description": "편의점결제 수납성공 시 통지받을 URL에스크로 결제건에 대해 배송 정보 등록 API 호출 시 send_email 파라미터를 이용하여\n 구매 확정됐을 때 결제창에 입력한 이메일로 구매 확정 내용을 전송할지 여부를 제어할 수 있습니다. 기본 값은 true(구매 확정 여부 이메일 전송)이며 false로 입력 시 구매가 확정되어도 이메일로 안내되지 않습니다.
KSNET에서 일반 에스크로, 배송 에스크로 두 가지 유형의 에스크로를 제공합니다. 포트원을 통해 KSNET 에스크로를 사용하려는 경우 반드시 배송 에스크로 설정이 되어 있어야 합니다.
\n또한 에스크로 거래는 30분 ~ 1시간 뒤 ksta.ksnet.co.kr -> PG 거래내역 -> 배송 에스크로 거래조회에서 확인이 가능합니다. 에스크로 정보 수정의 경우도 등록이 완료된 이후부터 가능합니다.
\n" }, "nice_V2": { "description": "API로 에스크로 배송 정보 등록은 가능하지만 PUT 배송정보 단건수정 API로 수정은 불가능합니다.
\n" } } } }, "/kcpquick/members/{member_id}": { "delete": { "tags": [ "kcpquick" ], "summary": "(KCP 퀵페이) 구매자 정보 단건 삭제 API", "description": "구매자의 KCP 퀵페이 정보 삭제합니다.키움페이(구 다우, 페이조아)는 (발급된) 가상계좌에 입금 완료시, 송금자의 정보(은행명, 계좌번호, 송금인) 중 송금자 이름만 알려줍니다.\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 (가상계좌나 정기결제와 같이 결제가 비동기로 승인되는 경우 포트원 → 고객사로 결제 결과를 통보해주는) 웹훅 기능을 연동해야 합니다.
(부분)취소요청금액으로 누락하거나 0을 입력 시 전액취소를 요청합니다.
\n", "x-portone-description": "(부분)취소요청 금액으로 **(누락하거나 0을 입력하는 경우 전액 취소 요청합니다.)**" }, { "name": "tax_free", "in": "formData", "description": "(부분)취소요청금액 중 면세금액(누락되면 0원처리)(부분)취소요청금액 중 면세금액으로 누락되면 0원처리합니다.
\n", "x-portone-description": "단, 아래 PG사의 경우 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 **필수 입력** 바랍니다.", "x-portone-per-pg": { "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" }, "html5_inicis": { "description": "결제 시 부가세를 지정했던 경우 필수 입력 바랍니다.
\n" }, "welcome": { "description": "부가세업체정함 설정 고객사에 한해 결제 시 부가세를 지정했던 경우 필수 입력이 필요하며, 입력한 부가세가 그대로 취소 승인되기 때문에 정확한 금액을 입력해 주시길 바랍니다.
취소 트랜잭션 수행 전, 현재시점의 취소 가능한 잔액
\n", "x-portone-description": "API요청자가 기록하고 있는 취소가능 잔액과 포트원이 기록하고 있는 취소가능 잔액이 일치하는지 사전에 검증하고, 검증에 실패하면 트랜잭션을 수행하지 않습니다. null인 경우에는 검증 프로세스를 생략합니다." }, { "name": "reason", "in": "formData", "description": "취소 사유", "required": false, "type": "string", "x-portone-name": "취소 사유", "x-portone-description": "결제건을 취소하려는 사유", "x-portone-per-pg": { "naverpay": { "required": true, "description": "해당 파라미터 누락시 네이버페이 실 검수를 통과할 수 없습니다.
\n" } } }, { "name": "refund_holder", "in": "formData", "description": "환불계좌 예금주휴대폰소액결제 익월 환불시 필수입력입니다.
\n" }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "refund_bank", "in": "formData", "description": "환불계좌 은행코드환불받을 계좌의 은행코드
\n", "x-portone-description": "[은행 코드 리스트 확인하기](https://developers.portone.io/docs/ko/tip/pg-1)", "x-portone-per-pg": { "kcp": { "description": "휴대폰소액결제 익월 환불시 필수입력입니다.
\n" }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "refund_account", "in": "formData", "description": "환불계좌 계좌번호휴대폰소액결제 익월 환불시 필수입력입니다.
\n" }, "smartro_v2": { "description": "가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "refund_tel", "in": "formData", "description": "환불계좌 예금주 연락처가상계좌, 계좌이체 거래건 환불시 필수입력입니다.
\n" } } }, { "name": "retain_promotion", "in": "formData", "description": "프로모션이 적용된 결제일 경우 결제 취소 이후 잔여 금액이 프로모션 정책에 위반되더라도 프로모션을 유지할지에 대한 여부 (default: false)", "required": false, "type": "boolean", "x-portone-name": "프로모션 정책 유지 여부", "x-portone-description": "프로모션이 적용된 결제일 경우 결제 취소 이후 잔여 금액이 프로모션 정책에 위반되더라도 프로모션을 유지할지에 대한 여부 (default: false)" }, { "name": "extra", "in": "formData", "description": "네이버페이 사용 시 extra.requester 를 설정해야합니다.휴대폰소액결제 익월 환불의 경우는 환불받으실 계좌정보를 같이 전달해주시면 환불정보가 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: 결제 취소 사유
```javascript\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" }, "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": "이미 사전등록한 고객사 주문번호" }, { "name": "amount", "in": "formData", "description": "결제예정금액", "required": true, "type": "number", "x-portone-name": "결제 예정금액", "x-portone-description": "수정 할 결제건의 결제예정금액" }, { "name": "currency", "in": "formData", "description": "결제예정통화.(ex. KRW, USD, JPY) null일 경우 통화 검증을 하지 않습니다. (default=null)", "required": false, "type": "string", "x-portone-name": "결제예정통화", "x-portone-description": "사전 등록할 결제예정통화. null일 경우 통화 검증을 하지 않습니다." } ], "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 *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": "현금영수증 식별정보 구분코드API로 현금영수증 발급 시, 현금영수증 카드 번호로 현금영수증 발급이 불가능하오니 참고 부탁드립니다.
\n" } } }, { "name": "type", "in": "formData", "description": "현금영수증 발행 타입(대상).\n현금영수증을 발행할 결제건의 구매자 이름
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 **강력히 권장**합니다.", "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 주소" }, { "name": "buyer_tel", "in": "formData", "description": "구매자 전화번호현금영수증을 발행할 결제건의 구매자 전화번호
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.", "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` 파라메터를 활용해주세요." }, { "name": "vat", "in": "formData", "description": "Deprecated 되었으므로 tax_free 파라메터를 사용해주세요.현금영수증 발급 API 호출시 유효성 검사를 하지 않습니다.
\n예를 들어 현금영수증 발급 유형(type)을 소득공제(person)으로 보내고 현금영수증 발급 번호(identifier)를 사업자 등록번호로 보내면\n실제로는 현금영수증 발급에 실패해야하지만 토스페이먼츠에서 유효성 검사를 하지 않아 그대로 성공 응답을 보내고 있습니다.\n따라서 원활한 현금영수증 발급을 위해서는 현금영수증 발급 API 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.
현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 취소해야합니다.
\n" }, "nice_v2": { "description": "현금영수증 유의사항
\n현금영수증 발행을 위한 고객사 주문번호
\n", "x-portone-description": "고객사 주문번호는 현금거래 주문번호와 동일한 번호를 기재해야 추후 대사가 가능한점 유념하시기 바랍니다.", "x-portone-per-pg": { "smartro_v2": { "description": "특수문자 포함이 불가능합니다.
\n" } } }, { "name": "name", "in": "formData", "description": "현금영수증 발행 주문명", "required": true, "type": "string", "x-portone-name": "주문명", "x-portone-description": "현금영수증 발행할 결제건의 주문명" }, { "name": "amount", "in": "formData", "description": "현금영수증 발행 금액", "required": true, "type": "integer", "x-portone-name": "발행 금액", "x-portone-description": "현금영수증 발행할 결제건의 금액" }, { "name": "product_type", "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": "현금영수증 발행대상 식별정보 유형API로 현금영수증 발급 시, 현금영수증 카드 번호로 현금영수증 발급이 불가능하오니 참고 부탁드립니다.
\n" } } }, { "name": "type", "in": "formData", "description": "현금영수증 발행 타입(대상)\n현금영수증을 발행할 결제건의 구매자 이름
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 **강력히 권장**합니다.", "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 주소" }, { "name": "buyer_tel", "in": "formData", "description": "구매자 전화번호현금영수증을 발행할 결제건의 구매자 전화번호
\n", "x-portone-description": "현금영수증 발행건 사후 추적을 위해 입력을 **강력히 권장**합니다.", "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 파라메터를 활용해주세요." }, { "name": "vat_amount", "in": "formData", "description": "부가세 지정 고객사에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다.", "required": false, "type": "number", "x-portone-name": "부가세 지정 금액", "x-portone-description": "부가세 지정 고객사에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다." }, { "name": "corp_reg_no", "in": "formData", "description": "상점 사업자 번호현금영수증 발급 API 호출시 유효성 검사를 하지 않습니다.
\n예를 들어 현금영수증 발급 유형(type)을 소득공제(person)으로 보내고 현금영수증 발급 번호(identifier)를 사업자 등록번호로 보내면\n실제로는 현금영수증 발급에 실패해야하지만 토스페이먼츠에서 유효성 검사를 하지 않아 그대로 성공 응답을 보내고 있습니다.\n따라서 원활한 현금영수증 발급을 위해서는 현금영수증 발급 API 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.
현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 취소해야합니다.
\n" }, "nice_v2": { "description": "현금영수증 유의사항
\n발급취소대상 고객사 주문번호
\n", "x-portone-description": "merchant_uid는 현금결제를 구분할 고유주문번호를 의미하며 발행에 사용된 값을 전달하면 됩니다." } ], "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": "카드사정보 리스트를 조회합니다.USD 결제는 순수 해외카드로만 결제 가능합니다.
\n" } } }, { "name": "amount", "in": "formData", "description": "결제금액", "required": true, "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제요청 할 금액" }, { "name": "tax_free", "in": "formData", "description": "amount 중 면세공급가액.면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.
\n과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.
\n" }, "welcome": { "description": "부가세업체정함 설정 고객사에 한해 사용 가능합니다.
amount 중 부가세 금액
\n", "x-portone-description": "부가세를 지정할 수 있으며, `tax_free=0, vat_amount=0`으로 영세율로 결제 가능합니다.\nPG사와의 사전 협의 후 사용가능합니다. (기본값: **null**)", "x-portone-supported-pgs": [ "nice", "html5_inicis", "nice_v2", "welcome" ], "x-portone-per-pg": { "welcome": { "description": "부가세업체정함 설정 고객사에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
생년월일6자리(YYMMDD) (법인카드의 경우 사업자등록번호10자리)
카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어\n birth(생년월일 6자리 혹은 사업자 등록번호 10자리)는 검증하지 않습니다.
결제 요청할 카드의 비밀번호 앞 2자리
\n", "x-portone-description": "PG사별로 혹은 계약상황에 따라 필수값 여부가 상이합니다.", "x-portone-per-pg": { "ksnet": { "description": "카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어\n pwd_2digit(생년월일 6자리 혹은 사업자 등록번호 10자리)는 검증하지 않습니다.
구매자명은 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주소", "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": "결제건의 주문자 전화번호", "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": "결제건의 주문자 주소" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호" }, { "name": "card_quota", "in": "formData", "description": "카드할부개월수. 2 이상의 integer 할부개월수 적용결제건의 카드할부개월수으로 기본값은 **0(일시불)**입니다.
\n", "x-portone-description": "결제금액 50,000원 이상 한정으로 2 이상의 integer 할부개월수가 적용가능합니다." }, { "name": "interest_free_by_merchant", "in": "formData", "description": "카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 고객사가 지불하고자 PG사와 계약된 경우JSON string 형식의 PG사별로 특화된 파라미터
\n", "x-portone-description": "전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다. 각 PG사별 스펙은 PG사별 연동 문서 참고해주세요" } ], "responses": { "200": { "description": "정상 결제", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "daou", "kcp", "nice", "nice_v2", "html5_inicis", "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": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호스마트로는 주문 번호(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", "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": "결제 요청할 금액" }, { "name": "tax_free", "in": "formData", "description": "amount 중 면세공급가액.면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.
\n과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.
\n" }, "welcome": { "description": "부가세업체정함 설정 고객사에 한해 사용 가능합니다.
amount 중 부가세 금액
\n", "x-portone-description": "부가세를 지정할 수 있으며, `tax_free=0, vat_amount=0`으로 영세율로 결제 가능합니다.(기본값: **null**)", "x-portone-supported-pgs": [ "nice", "html5_inicis", "nice_v2", "welcome", "tosspay_v2" ], "x-portone-per-pg": { "welcome": { "description": "부가세업체정함 설정 고객사에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
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주소", "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": "결제건의 주문자 전화번호", "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": "결제건의 주문자 주소" }, { "name": "buyer_postcode", "in": "formData", "description": "주문자 우편번호", "required": false, "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호" }, { "name": "card_quota", "in": "formData", "description": "카드할부개월수. 2 이상의 integer 할부개월수 적용(신) 토스페이 경우 anonymous 전달 시 현금영수증 미발행 그 외의 값을 전달한 경우 현금영수증 자동 발행으로 동작합니다.
\n" } } }, { "name": "bypass", "in": "formData", "description": "JSON string 형식의 PG사별로 특화된 파라미터.JSON string 형식의 PG사별로 특화된 파라미터
\n", "x-portone-description": "전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다. 각 PG사별 스펙은 PG사별 연동 문서 참고해주세요" }, { "name": "extra", "in": "formData", "description": "추가 파라미터", "required": false, "schema": { "$ref": "#/definitions/SubscribePaymentExtra" }, "x-portone-name": "추가 파라미터", "x-portone-description": "비인증 결제 요청 시 추가 파라미터" }, { "name": "promotion_id", "in": "formData", "description": "`promotion-id-`로 시작하며, 프로모션 아이디에 설정된 할인 내용을 적용하여 결제합니다. 비인증 결제 경우 빌링키 발급시 저장된 마스킹된 카드번호를 통해 프로모션 적용 여부가 결정됩니다.", "required": false, "type": "string", "x-portone-name": "프로모션 아이디", "x-portone-description": "`promotion-id-`로 시작하며, 프로모션 아이디에 설정된 할인 내용을 적용하여 결제합니다. 비인증 결제 경우 빌링키 발급시 저장된 마스킹된 카드번호를 통해 프로모션 적용 여부가 결정됩니다." }, { "name": "channel_key", "in": "formData", "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
<!-- 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)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원으로 설정할 경우 테스트하지 않음)" }, { "name": "card_number", "in": "formData", "description": "카드번호(dddd-dddd-dddd-dddd)", "required": false, "type": "string", "x-portone-name": "카드번호", "x-portone-description": "결제 예약 요청할 카드번호(`dddd-dddd-dddd-dddd`)", "x-portone-unsupported-pgs": [ "chai", "danal", "danal_tpay", "kakaopay", "kicc", "mobilians", "naverpay", "payco", "settle_acc", "settle_firm", "smartro", "uplus", "smartro_v2" ] }, { "name": "expiry", "in": "formData", "description": "카드 유효기간(YYYY-MM)", "required": false, "type": "string", "x-portone-name": "카드 유효기간", "x-portone-description": "결제 예약 요청할 카드 유효기간(`YYYY-MM`)", "x-portone-unsupported-pgs": [ "chai", "danal", "danal_tpay", "kakaopay", "kicc", "mobilians", "naverpay", "payco", "settle_acc", "settle_firm", "smartro", "uplus", "smartro_v2" ] }, { "name": "birth", "in": "formData", "description": "생년월일6자리(법인카드의 경우 사업자등록번호10자리)", "required": false, "type": "string", "x-portone-name": "생년월일 6자리", "x-portone-description": "결제 예약 요청할 카드 소유자의 생년월일6자리(법인카드의 경우 사업자등록번호10자리)", "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자리" }, { "name": "cvc", "in": "formData", "description": "카드 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리). Paymentwall에서만 사용", "required": false, "type": "string", "x-portone-name": "카드 인증번호", "x-portone-description": "결제 예약 요청할 카드 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리)", "x-portone-supported-pgs": [ "paymentwall" ], "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "channel_key", "in": "formData", "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": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호결제 예약 취소할 결제건의 고객사 거래 고유번호
\n", "x-portone-description": "누락되면 customer_uid에 대한 결제예약정보를 일괄취소합니다." } ], "responses": { "200": { "description": "정상적으로 예약 취소가 완료되었습니다", "schema": { "$ref": "#/definitions/ScheduleResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "chai", "danal", "danal_tpay", "daou", "html5_inicis", "inicis", "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": "결제예약에 사용된 고객사 거래 고유번호" } ], "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", "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": "결제예약에 사용된 고객사 거래 고유번호" }, { "name": "schedule_at", "in": "formData", "description": "수정할 결제요청 예약시각 UNIX timestamp in seconds", "required": true, "type": "integer", "x-portone-name": "수정할 예약시각", "x-portone-description": "수정할 결제요청 예약시각 UNIX timestamp" } ], "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", "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": "결제예약에 사용된 고객사 거래 고유번호" }, { "name": "schedule_at", "in": "formData", "description": "실패한 예약건을 다시 처리할 시각 UNIX timestamp in seconds", "required": true, "type": "integer", "x-portone-name": "예약 시각", "x-portone-description": "실패한 예약건을 다시 처리할 시각 UNIX timestamp" } ], "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", "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": "결제예약에 사용된 고객사 거래 고유번호" } ], "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", "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입니다.고정식 가상계좌를 발급 하시는 경우, 필수로 입력해야합니다.
\n" }, "settle": { "description": "고정식 가상계좌를 발급 하시는 경우, 필수로 입력해야합니다.
\n" } } }, { "name": "vbank_code", "in": "formData", "description": "은행구분코드가상계좌 발급을 위한 은행구분코드
\n", "x-portone-description": "[은행구분코드 리스트 확인하기](https://developers.portone.io/docs/ko/tip/pg-1)" }, { "name": "vbank_due", "in": "formData", "description": "가상계좌 입금기한 UNIX TIMESTAMP", "required": true, "type": "integer", "x-portone-name": "가상계좌 입금기한", "x-portone-description": "가상계좌 발급시 입금기한 UNIX TIMESTAMP" }, { "name": "vbank_holder", "in": "formData", "description": "가상계좌 예금주명해당 파라미터를 입력하셔도 적용되지 않고, 고객사명이 예금주명으로 사용됩니다.
\n" }, "ksnet": { "description": "해당 파라미터를 입력하셔도 적용되지 않고, 고객사명이 예금주명으로 사용됩니다.
\n" }, "welcome": { "description": "해당 파라미터를 입력하셔도 적용되지 않고, 고객사명이 예금주명으로 사용됩니다.
\n" } }, "x-portone-unsupported-pgs": [ "tosspayments", "ksnet", "welcome" ] }, { "name": "vbank_key", "in": "formData", "description": "고정식 가상계좌를 발급받기 위한 고객과 매칭시킨 계좌 고유 키고정식 가상계좌를 발급 하시는 경우, 필수로 입력해야합니다.
\n" } } }, { "name": "name", "in": "formData", "description": "주문명", "required": false, "type": "string", "maxLength": 40, "x-portone-name": "주문명", "x-portone-description": "가상계좌 발급을 위한 결제건의 주문명" }, { "name": "buyer_name", "in": "formData", "description": "주문자명가상계좌 발급 건 에스크로 등록시 가상계좌 발급시 전달 한 주문자의 전화번호나 사업자 등록 번호가 사용됩니다.
\n" } } }, { "name": "business_registration_number", "in": "formData", "description": "주문자 사업자 등록번호API를 통한 가상 계좌 발급 시, 향후 해당 거래 건을 에스크로 배송 정보로 등록할 때 사용될 구매자의 사업자 번호를 business_registration_number 파라미터로 입력받고 있습니다.
상점아이디의 과세설정이 지정금액방식(복합과세)으로 설정되어 있는 경우 필수값 입니다.
\n상점아이디의 과세설정이 지정금액방식(복합과세)으로 설정되어 있는 경우 필수값 입니다.
\n현금영수증 부가세업체정함 설정 고객사에 한해 사용이 가능합니다
부가세업체정함 설정 고객사에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
이니시스의 가맹점 관리자 페이지에서 확인하셔야 하는 API Key 값
\n", "x-portone-description": "가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다. (**이니시스 전용 필수 파라미터로 Query parameter입니다.**)", "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입니다" }, { "name": "escrow_password", "in": "formData", "description": "헥토파이낸셜 고정식 가상계좌 에스크로 결제 시 필수로 입력해야합니다.", "required": false, "type": "string", "x-portone-name": "에스크로 비밀번호", "x-portone-description": "헥토파이낸셜 고정식 가상계좌 에스크로 결제 시 필수로 입력해야합니다." }, { "name": "fixed_unlimited_vbank", "in": "formData", "description": "헥토파이낸셜 고정식 무제한 가상계좌 발급 시 필수로 입력해야합니다.", "required": false, "type": "boolean", "default": false, "x-portone-name": "고정식 무제한 가상계좌 여부", "x-portone-description": "헥토파이낸셜 고정식 무제한 가상계좌 발급시 필수로 입력해야합니다." } ], "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요청으로 발급된 가상계좌(입금이 되기 전)의 정보를 수정합니다이니시스의 가맹점 관리자 페이지에서 확인하셔야 하는 API Key 값
\n", "x-portone-description": "가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다. (**이니시스 전용 필수 파라미터로 Query parameter입니다.**)", "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" } } }, "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" }, "expired_at": { "description": "token만료시각. UNIX timestamp", "type": "integer", "x-portone-name": "token 만료시각", "x-portone-description": "access_token의 만료시각. UNIX timestamp" }, "now": { "description": "현재시각 UNIX timestamp. token만료시각을 정확히 계산하기 위해 사용", "type": "integer", "x-portone-name": "현재시각", "x-portone-description": "token 만료시각을 정확히 계산하기 위해 사용되는 현재시각. UNIX timestamp" } } }, "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": "베네피아 보유 포인트" } } }, "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": "본인인증 결과건의 포트원 인증 고유번호" }, "merchant_uid": { "description": "고객사 주문번호", "type": "string", "x-portone-name": "고객사 주문번호", "x-portone-description": "본인인증 결과건의 포트원 고객사 주문번호" }, "pg_tid": { "description": "PG사 본인인증결과 고유번호", "type": "string", "x-portone-name": "PG사 본인인증결과 고유번호", "x-portone-description": "본인인증 결과건의 PG사 본인인증결과 고유번호" }, "pg_provider": { "description": "본인인증 제공 PG사 명칭. danal(다날), kcp_v2", "type": "string", "x-portone-name": "pg사 구분코드", "x-portone-description": "본인인증 제공 PG사의 명칭" }, "name": { "description": "인증결과-실명", "type": "string", "x-portone-name": "성명", "x-portone-description": "인증된 사용자의 성명" }, "gender": { "description": "인증결과-성별인증된 사용자의 외국인 여부
\n", "x-portone-description": "**다날 본인인증서비스 계약시** 외국인 구분기능을 추가 요청하지 않은 경우 항상 **false**를 응답합니다.\n- true : 외국인\n- false : 내국인" }, "phone": { "description": "인증결과-사용된 휴대폰번호(신용카드 본인인증의 경우 해당사항없음). 특수기호없이 숫자로만 구성된 휴대폰번호가 전달됨. 통신사 사전승인이 이뤄지지 않으면 phone 속성은 존재하지 않습니다. 통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.", "type": "string", "x-portone-name": "휴대폰번호", "x-portone-summary": "인증에 사용된 휴대폰 번호 (신용카드 본인인증의 경우 해당사항 없음)
\n", "x-portone-description": "특수 기호없이 숫자로만 구성된 휴대폰번호가 전달되며 통신사 사전승인이 이뤄지지 않으면 phone 속성은 존재하지 않습니다.\n\n통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다." }, "carrier": { "description": "인증결과-사용된 휴대폰번호의 통신사(신용카드 본인인증의 경우 해당사항없음). 통신사 사전승인이 이뤄지지 않으면 carrier 속성은 존재하지 않습니다. 통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.\n인증에 사용된 휴대폰번호의 통신사 (신용카드 본인인증의 경우 해당사항없음)
\n", "x-portone-description": "사용된 휴대폰번호의 통신사(신용카드 본인인증의 경우 해당사항없음). 통신사 사전승인이 이뤄지지 않으면 carrier 속성은 존재하지 않습니다. 통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.\n- SKT\n- KT\n- LGT\n- SKT_MVNO\n- KT_MVNO\n- LGT_MVNO" }, "certified": { "description": "인증성공여부", "type": "boolean", "x-portone-name": "인증성공여부", "x-portone-description": "본인인증 성공여부" }, "certified_at": { "description": "인증처리시각 UNIX timestamp", "type": "integer", "x-portone-name": "인증처리시각", "x-portone-description": "본인인증 처리시각 UNIX timestamp" }, "unique_key": { "description": "개인 고유구분 식별키(CI)", "type": "string", "maxLength": "88", "x-portone-name": "개인 고유구분 식별키", "x-portone-description": "개인별로 고유하게 부여하는 개인 식별키(CI)" }, "unique_in_site": { "description": "고객사 내 개인 고유구분 식별키(DI). 본인인증 PG MID별로 할당되는 개인 식별키", "type": "string", "maxLength": "64", "x-portone-name": "고객사 내 개인 고유구분 식별키", "x-portone-summary": "고객사 내 개인별로 고유하게 부여하는 개인 식별키(DI)
\n", "x-portone-description": "본인인증 PG MID별로 할당되는 개인 식별키" }, "origin": { "description": "본인인증 프로세스가 진행된 웹 페이지의 URL", "type": "string", "x-portone-name": "웹 페이지 URL", "x-portone-description": "본인인증 프로세스가 진행된 웹 페이지의 URL" }, "foreigner_v2": { "description": "인증결과-외국인 여부(nullable)\n본인인증 결과 외국인 여부(nullable)
\n", "x-portone-description": "- true : 외국인\n- false : 내국인\n\n**다날 본인인증서비스 계약시** 외국인 구분기능 추가 요청을 해주셔야 사용이 가능합니다. 요청을 하지 않은 경우 **null**을 응답합니다." } } }, "CertificationResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "본인인증 결과 객체. 바로 아래 Certification structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/CertificationAnnotation" } } } ] }, "CertificationOTPAnnotation": { "required": [ "imp_uid" ], "properties": { "imp_uid": { "description": "포트원 인증 고유번호", "type": "string", "x-portone-name": "포트원 인증 고유번호", "x-portone-description": "본인인증 결과건의 포트원 인증 고유번호" } } }, "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", "sandbox" ], "properties": { "customer_uid": { "description": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호", "type": "string", "maxLength": "80", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호" }, "pg_provider": { "description": "빌링키가 등록된 PG사 구분코드", "type": "string", "maxLength": "16", "x-portone-name": "PG사 구분코드", "x-portone-description": "빌링키가 등록된 PG사 구분코드" }, "pg_id": { "description": "빌링키가 등록된 PG사 상점아이디(MID)", "type": "string", "maxLength": "80", "x-portone-name": "상점아이디(MID)", "x-portone-description": "빌링키가 등록된 PG사 상점아이디(MID)" }, "sandbox": { "description": "빌링키 발급 시 이용한 포트원 채널의 테스트 채널 여부", "type": "boolean", "x-portone-name": "테스트 빌링키 여부", "x-portone-description": "빌링키 발급 시 이용한 포트원 채널의 테스트 채널 여부\n\n(본 필드는 `2026년 1월 26일`부터 추가 예정입니다.)" }, "customer_id": { "description": "구매자 ID", "type": "string", "x-portone-name": "구매자 ID", "x-portone-description": "구매자 식별 고유 번호" }, "card_name": { "description": "카드사명", "type": "string", "x-portone-name": "카드명", "x-portone-description": "빌링키 발급 한 카드명" }, "card_code": { "description": "카드사 코드(금융결제원 표준코드번호)\n 링크보기", "type": "string", "x-portone-name": "카드사 코드", "x-portone-description": "카드사 코드(금융결제원 표준코드번호)\n\n[링크보기](https://developers.portone.io/opi/ko/support/code-info/card-code?v=v1)" }, "card_issuer_code": { "description": "카드 발급사 코드(금융결제원 표준코드번호)빌링키 발급 한 카드의 유형
\n", "x-portone-description": "(주의)해당 정보를 제공하지 않는 일부 PG사의 경우 null 로 응답됨(ex. 이니시스-빌링)\n- 0 : 신용카드\n- 1 : 체크카드" }, "customer_name": { "description": "고객(카드소지자) 성함", "type": "string", "maxLength": "20", "x-portone-name": "고객 성함", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 성함" }, "customer_tel": { "description": "고객(카드소지자) 전화번호", "type": "string", "maxLength": "20", "x-portone-name": "전화번호", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 전화번호" }, "customer_email": { "description": "고객(카드소지자) Email 주소", "type": "string", "maxLength": "200", "x-portone-name": "Email 주소", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 Email 주소" }, "customer_addr": { "description": "고객(카드소지자) 주소", "type": "string", "maxLength": "200", "x-portone-name": "주소", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 주소" }, "customer_postcode": { "description": "고객(카드소지자) 우편번호", "type": "string", "maxLength": "8", "x-portone-name": "우편번호", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 우편번호" }, "inserted": { "description": "빌링키가 등록된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "발급 시각", "x-portone-description": "빌링키가 발급된 시각 UNIX timestamp" }, "updated": { "description": "빌링키가 업데이트된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "업데이트 시각", "x-portone-description": "빌링키가 업데이트된 시각 UNIX timestamp" } } }, "CustomerResponse": { "description": "일반 빌링키 응답", "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "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": "에스크로 결제건의 택배사 코드" }, "invoice": { "description": "송장번호", "type": "string", "x-portone-name": "송장번호", "x-portone-description": "에스크로 결제건의 송장번호" }, "sent_at": { "description": "발송일시 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "발송 시각", "x-portone-description": "에스크로 결제건의 배송 발송 시각 UNIX timestamp" }, "applied_at": { "description": "배송정보 등록일시 UNIX TIMESTAMP", "type": "integer", "x-portone-name": "등록 시각", "x-portone-description": "에스크로 결제건의 배송 정보 등록 시각 UNIX timestamp" } } }, "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": "배송을 보내는 발신자의 성함", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "tel": { "description": "보내는 분 전화번호(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "전화번호", "x-portone-description": "배송을 보내는 발신자의 전화번호", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "addr": { "description": "보내는 분 주소(필수 : KG이니시스)", "type": "string", "x-portone-name": "주소", "x-portone-description": "배송을 보내는 발신자의 주소", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "postcode": { "description": "보내는 분 우편번호(필수 : KG이니시스, 스마트로 - 신모듈)", "type": "string", "x-portone-name": "우편번호", "x-portone-description": "배송을 보내는 발신자의 우편번호", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "required": true } } }, "relationship": { "description": "보내는 분과의 관계(필수 : 키움페이(구 다우, 페이조아), 예: 본인)", "type": "string", "x-portone-name": "발신자와의 관계", "x-portone-description": "배송을 보내는 발신자와의 관계 (예 : 본인)", "x-portone-per-pg": { "daou": { "required": true } } }, "formed_address": { "description": "(필수 : 스마트로 - 신모듈)기존 파라미터인 addr가 아닌 해당 파라미터를 이용한 주소 설정이 필요합니다.
기존 파라미터인 addr가 아닌 해당 파라미터를 이용한 주소 설정이 필요합니다.
네이버페이 구매만족도
\n", "x-portone-description": "- 일반 구매평 : 불만족 (0), 보통 (1), 만족 (2)\n- 프리미엄 구매평 : 추천 안 함(10), 보통(11), 추천(12), 적극추천(13)" }, "title": { "description": "네이버페이 일반 구매평 내용 또는 프리미엄 구매평 제목", "type": "string", "x-portone-name": "구매평 내용 or 제목", "x-portone-description": "네이버페이 일반 구매평 내용 또는 프리미엄 구매평 제목" }, "content": { "description": "네이버페이 프리미엄 구매평 내용(일반 구매평인 경우 없음)", "type": "string", "x-portone-name": "구매평 내용", "x-portone-description": "네이버페이 프리미엄 구매평 내용으로 일반 구매평인 경우 없습니다." }, "product_order_id": { "description": "네이버페이 상품주문번호", "type": "string", "x-portone-name": "상품 주문 번호", "x-portone-description": "네이버페이 상품 주문 번호" }, "product_id": { "description": "네이버페이 상품주문의 상품 고유번호", "type": "string", "x-portone-name": "상품 고유 번호", "x-portone-description": "네이버페이 상품의 고유 번호" }, "product_name": { "description": "네이버페이 상품주문의 상품명", "type": "string", "x-portone-name": "상품명", "x-portone-description": "네이버페이 상품명" }, "product_option_name": { "description": "네이버페이 상품주문의 상품옵션명", "type": "string", "x-portone-name": "상품 옵션", "x-portone-description": "네이버페이 상품 옵션(옵션명)" }, "writer": { "description": "네이버페이 구매평 작성자 아이디", "type": "string", "x-portone-name": "구매평 작성자 아이디", "x-portone-description": "암호화된 네이버페이 구매평 작성자 아이디" }, "created_at": { "description": "네이버페이 구매평 작성시각 unix timestamp", "type": "integer", "x-portone-name": "작성시각", "x-portone-description": "네이버페이 구매평 작성시각 UNIX timestamp" }, "modified_at": { "description": "네이버페이 구매평 수정시각 unix timestamp", "type": "integer", "x-portone-name": "수정시각", "x-portone-description": "네이버페이 구매평 수정시각 UNIX timestamp" } } }, "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": "거래를 구성하는 하위 상점의 사업자 등록 점번호 ("-" 포함)", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "company_name": { "description": "하위 상점 명", "type": "string", "x-portone-name": "하위 상점 명", "x-portone-description": "거래를 구성하는 하위 상점의 상점 명", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "amount": { "description": "하위 상점 거래 금액", "type": "number", "x-portone-name": "하위 상점 거래 금액", "x-portone-description": "거래를 구성하는 하위 상점의 해당 결제건 내 거래 금액", "x-portone-per-pg": { "html5_inicis": { "required": true } } }, "tax_free": { "description": "하위 상점 거래 금액 중 면세 금액 (default = 0)", "type": "number", "x-portone-name": "하위 상점 거래 금액 중 면세 금액", "x-portone-description": "거래를 구성하는 하위 상점의 해당 결제건 내 면세 금액", "x-portone-per-pg": { "html5_inicis": { "required": false } } }, "vat_amount": { "description": "하위 상점 거래 금액 중 부가세 금액 (default = 거래 금액 / 11)", "type": "number", "x-portone-name": "하위 상점 거래 금액 중 부가세 금액", "x-portone-description": "거래를 구성하는 하위 상점의 해당 결제건 내 부가세 금액", "x-portone-per-pg": { "html5_inicis": { "required": false } } } } }, "PartnerReceiptResultAnnotation": { "properties": { "receipt_url": { "description": "매출전표 확인 URL", "type": "string", "x-portone-name": "매출전표 확인 URL", "x-portone-description": "거래건에 대한 매출전표를 확인할 수 있는 URL" } } }, "PartnerReceiptResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "등록 성공한 매출전표 관련 정보.", "properties": { "response": { "$ref": "#/definitions/PartnerReceiptResultAnnotation" } } } ] }, "PaycoStatusAnnotation": { "required": [ "status" ], "properties": { "status": { "description": "PAYCO주문변경된 상태변경된 주문 상태
\n", "x-portone-description": "- DELIVERY_START\n- PURCHASE_DECISION\n- CANCELED" } } }, "PaycoStatusResponse": { "allOf": [ { "$ref": "#/definitions/ResponseAnnotation" }, { "description": "결제 상세정보. 바로 아래 PaycoStatus structure를 확인하세요", "properties": { "response": { "$ref": "#/definitions/PaycoStatusAnnotation" } } } ] }, "PaymentAnnotation": { "required": [ "imp_uid", "merchant_uid", "amount", "cancel_amount", "currency", "status", "sandbox" ], "properties": { "imp_uid": { "description": "포트원 거래고유번호", "type": "string", "maxLength": "32", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "결제건의 포트원 거래고유번호" }, "merchant_uid": { "description": "고객사 주문번호", "type": "string", "maxLength": "40", "x-portone-name": "고객사 주문번호", "x-portone-description": "결제건의 고객사 주문번호" }, "pay_method": { "description": "결제수단 구분코드\n페이팔을 통해 카드 결제 외 BanContact, BLIK, eps, giropay 등 다양한 결제 수단으로 결제가 가능하지만,\n페이팔이 승인 된 결제 수단을 알려주지 않기 때문에 페이팔의 모든 결제 건의 결제 수단은 paypal로 일괄 저장됩니다.
\n" } } }, "channel": { "description": "결제환경 구분코드\n결제에 사용된 마스킹된 카드번호
\n", "x-portone-description": "결제에 사용된 마스킹된 카드번호. 7~12번째 자리를 마스킹하는 것이 일반적이지만, PG사의 정책/설정에 따라 다소 차이가 있을 수 있습니다." }, "card_type": { "description": "카드 구분코드 (주의)해당 정보를 제공하지 않는 일부 PG사의 경우 null 로 응답됨(ex. 이니시스-빌링)\n결제건에 사용된 카드 구분코드
\n", "x-portone-description": "(주의)해당 정보를 제공하지 않는 일부 PG사의 경우 null 로 응답됨(ex. 이니시스-빌링)\n- 0 : 신용카드\n- 1 : 체크카드" }, "vbank_code": { "description": "가상계좌 은행 표준코드 - (금융결제원기준)", "type": "string", "x-portone-name": "가상계좌 은행 표준코드", "x-portone-description": "결제건의 가상계좌 은행 표준코드(금융결제원기준)- 가상계좌 결제 건의 경우" }, "vbank_name": { "description": "입금받을 가상계좌 은행명", "type": "string", "x-portone-name": "가상계좌 은행명", "x-portone-description": "결제건의 입금받을 가상계좌 은행명 - 가상계좌 결제 건의 경우" }, "vbank_num": { "description": "입금받을 가상계좌 계좌번호", "type": "string", "maxLength": "32", "x-portone-name": "가상계좌 계좌번호", "x-portone-description": "결제건의 입금받을 가상계좌 계좌번호 - 가상계좌 결제 건의 경우" }, "vbank_holder": { "description": "입금받을 가상계좌 예금주", "type": "string", "x-portone-name": "가상계좌 예금주", "x-portone-description": "결제건의 입금받을 가상계좌 예금주 - 가상계좌 결제 건의 경우", "x-portone-per-pg": { "tosspayments": { "description": "토스페이먼츠는 가상계좌 발급 완료시 발급 된 가상계좌의 예금주 명을 전달해주지 않습니다.\n따라서 vbank_holder가 null로 리턴 되지만, 실제 가상계좌 예금주 명은 토스페이먼츠와 계약된 고객사 이름과 동일하다고 하니, 참고 부탁드립니다.
결제건의 결제완료 시각 UNIX timestamp
\n", "x-portone-description": "결제완료시점 UNIX timestamp\n\n결제완료가 아닐 경우 0" }, "failed_at": { "description": "결제실패시점 UNIX timestamp결제건의 결제실패시각 UNIX timestamp
\n", "x-portone-description": "결제실패시점 UNIX timestamp\n\n결제실패가 아닐 경우 0" }, "cancelled_at": { "description": "결제취소시점 UNIX timestamp결제건의 결제취소시각 UNIX timestamp
\n", "x-portone-description": "결제취소시점 UNIX timestamp\n\n결제취소가 아닐 경우 0" }, "fail_reason": { "description": "결제실패 사유", "type": "string", "x-portone-name": "결제실패 사유", "x-portone-summary": "결제건의 결제실패 사유
\n", "x-portone-description": "결제상태가 결제실패(failed)가 아닐 경우 null로 표시됩니다." }, "cancel_reason": { "description": "결제취소 사유", "type": "string", "x-portone-name": "결제취소 사유", "x-portone-summary": "결제건의 결제취소 사유
\n", "x-portone-description": "결제상태가 결제취소(cancelled)가 아닐 경우 null로 표시됩니다." }, "receipt_url": { "description": "매출전표 확인 URL테스트 결제건, 간편결제 중 카드 외 결제건은 매출 전표 확인이 불가능합니다.
\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": "결제건의 취소/부분취소 내역" }, "deposit_history": { "description": "고정식 무제한 가상계좌 입금 내역", "type": "array", "items": { "$ref": "#/definitions/VbankDepositAnnotation" }, "x-portone-name": "고정식 무제한 가상계좌 입금 내역", "x-portone-description": "고정식 무제한 가상계좌 입금 내역" }, "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": "결제건의 현금영수증 발급 여부" }, "customer_uid": { "description": "해당 결제처리에 사용된 customer_uid", "type": "string", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "결제건에 사용된 빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호" }, "customer_uid_usage": { "description": "customer_uid가 결제처리에 사용된 상세 용도\n스마트로는 주문 번호(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" }, "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", "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": "결제 예약을 요청한 결제금액" }, "tax_free": { "description": "amount 중 면세공급가액.면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.
\n과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.
\n" }, "welcome": { "description": "부가세업체정함 설정 고객사에 한해 사용 가능합니다.
부가세업체정함 설정 고객사에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.
first name, last name 한칸 띄어쓰기로 구분되어 유입되어야 합니다. 예시) Michael Jackson
\n" } } }, "buyer_email": { "description": "주문자 Email주소", "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email주소", "x-portone-description": "결제건의 주문자 Email주소", "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": "결제건의 주문자 전화번호", "x-portone-per-pg": { "smartro_v2": { "required": true } } }, "buyer_addr": { "description": "주문자 주소", "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "결제건의 주문자 주소" }, "buyer_postcode": { "description": "주문자 우편번호", "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "결제건의 주문자 우편번호" }, "custom_data": { "description": "예약된 결제가 수행될 때 Payment.custom_data로 사용할 값.", "type": "string", "x-portone-name": "추가정보", "x-portone-description": "예약된 결제가 수행될 때 함께 저장할 추가정보" }, "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을 직접 지정. (지정되지 않으면 관리자페이지의 Notification URL로 발송됨)" }, "product_type": { "description": "판매 상품에 대한 구분 값 (real : 실물상품 digital : 디지털 컨텐츠)", "type": "string", "x-portone-name": "주문 상품구분", "x-portone-description": "판매 상품에 대한 구분 값", "x-portone-supported-pgs": [ "ksnet", "paypal_v2" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, "cash_receipt_type": { "description": "현금영수증 발행대상 구분 값 (person, company, anonymous)anonymous를 전달한 경우 현금영수증 미발행, 그 외 경우 현금영수증 자동발행으로 동작합니다.
\n" } } }, "card_quota": { "description": "카드할부개월수. 2 이상의 integer 할부개월수 적용(결제금액 50,000원 이상 한정, default = 0(일시불))", "type": "number", "x-portone-name": "카드 할부 개월 수", "x-portone-description": "결제건의 카드 할부 개월 수로 기본값은 **0(일시불)**입니다." }, "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)", "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입니다.", "x-portone-supported-pgs": [ "nice", "smartro_v2", "nice_v2" ] }, "product_count": { "description": "결제 상품의 개수 (Default : 1)", "type": "integer", "x-portone-name": "결제 상품의 개수", "x-portone-description": "결제 상품의 개수로 기본값은 1입니다." }, "browser_ip": { "description": "구매자 브라우져의 IP", "type": "string", "x-portone-name": "구매자 브라우져의 IP", "x-portone-description": "구매자 브라우져의 IP", "x-portone-per-pg": { "paymentwall": { "description": "빌링키 결제 요청 시 전달
\n" } } }, "extra": { "description": "결제 예약 요청시 필요한 추가 정보", "properties": { "naverUseCfm": { "description": "네이버페이 반복결제 계약 시 이용완료일 필수로 설정된 고객사에 한함", "type": "string", "x-portone-name": "이용완료일", "x-portone-description": "이용완료일 `YYYYMMDD`", "x-portone-supported-pgs": [ "naverpay" ] } }, "type": "object", "x-portone-name": "추가 파라미터", "x-portone-description": "결제 예약 요청시 필요한 추가 정보" }, "bypass": { "description": "JSON string 형식의 PG사별로 특화된 파라미터.JSON string 형식의 PG사별로 특화된 파라미터
\n", "x-portone-description": "전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다. 각 PG사별 스펙은 PG사별 연동 문서 참고해주세요" }, "promotion_id": { "description": "`promotion-id-`로 시작하며, 프로모션 아이디에 설정된 할인 내용을 적용하여 결제합니다. 비인증 결제 경우 빌링키 발급시 저장된 마스킹된 카드번호를 통해 프로모션 적용 여부가 결정됩니다.", "type": "string", "x-portone-name": "프로모션 아이디", "x-portone-description": "`promotion-id-`로 시작하며, 프로모션 아이디에 설정된 할인 내용을 적용하여 결제합니다. 비인증 결제 경우 빌링키 발급시 저장된 마스킹된 카드번호를 통해 프로모션 적용 여부가 결정됩니다." } } }, "ScheduleResultAnnotation": { "properties": { "customer_uid": { "description": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호", "type": "string", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호" }, "merchant_uid": { "description": "고객사 주문번호", "type": "string", "maxLength": 40, "x-portone-name": "고객사 주문번호", "x-portone-description": "예약 결제건의 고객사 주문번호" }, "imp_uid": { "description": "포트원 거래고유번호예약 결제건의 포트원 거래고유번호
\n", "x-portone-description": "예약된 결제가 실행 전 철회되거나 아직 실행 전 예약 상태에 있으면 imp_uid는 null입니다." }, "pg_provider": { "description": "PG사 구분코드결제 실행에 사용된 PG사 구분코드
\n", "x-portone-description": "슈퍼빌링키 예약결제 실행 시 라우팅된 결제를 실행한 PG사의 구분코드입니다." }, "pg_id": { "description": "PG사 상점아이디결제 실행에 사용된 PG사 상점아이디
\n", "x-portone-description": "슈퍼빌링키 예약결제 실행 시 라우팅된 결제를 실행한 PG사의 상점아이디입니다." }, "customer_id": { "description": "구매자 ID", "type": "string", "x-portone-name": "구매자 ID", "x-portone-description": "string 타입의 구매자 식별 고유번호" }, "schedule_at": { "description": "예약결제 실행 예정 시각 UNIX timestamp in seconds", "type": "integer", "default": 0, "x-portone-name": "결제 예정 시각", "x-portone-description": "결제 예약시 요청한 결제 예정 시각 UNIX timestamp" }, "executed_at": { "description": "예약결제가 실행된 시각 UNIX timestamp", "type": "integer", "default": 0, "x-portone-name": "결제 실행 시각", "x-portone-description": "실제 결제가 실행된 시각 UNIX timestamp" }, "revoked_at": { "description": "예약결제 실행을 철회한 시각 UNIX timestamp", "type": "integer", "default": 0, "x-portone-name": "결제 실행 철회 시각", "x-portone-description": "예약 결제 실행을 철회한 시각 UNIX timestamp" }, "amount": { "description": "결제금액", "type": "number", "x-portone-name": "결제금액", "x-portone-description": "결제 예약시 요청한 결제금액" }, "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 " }, "name": { "description": "제품명", "type": "string", "maxLength": 40, "x-portone-name": "제품명", "x-portone-description": "예약 결제건의 제품명" }, "buyer_name": { "description": "주문자명", "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-description": "예약 결제건의 주문자명" }, "buyer_email": { "description": "주문자 Email주소", "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email주소", "x-portone-description": "예약 결제건의 주문자 Email주소" }, "buyer_tel": { "description": "주문자 전화번호", "type": "string", "maxLength": 16, "x-portone-name": "주문자 전화번호", "x-portone-description": "예약 결제건의 주문자 전화번호" }, "buyer_addr": { "description": "주문자 주소", "type": "string", "maxLength": 128, "x-portone-name": "주문자 주소", "x-portone-description": "예약 결제건의 주문자 주소" }, "buyer_postcode": { "description": "주문자 우편번호", "type": "string", "maxLength": 8, "x-portone-name": "주문자 우편번호", "x-portone-description": "예약 결제건의 주문자 우편번호" }, "custom_data": { "description": "예약된 결제가 수행될 때 결제정보와 함께 저장할 추가정보", "type": "string", "x-portone-name": "추가정보", "x-portone-description": "예약된 결제가 수행될 때 결제정보와 함께 저장할 추가정보" }, "schedule_status": { "description": "예약상태\n이용 완료일(YYYYMMDD), 네이버페이 정기결졔 계약 시 이용완료일을 필수로 설정한 고객사의 경우 필수로 전달해야합니다.
\n" } } } } }, "SuperBillingKeyAnnotation": { "required": [ "customer_uid", "channelGroupId" ], "properties": { "customer_uid": { "description": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호", "type": "string", "maxLength": "80", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호" }, "channelGroupId": { "description": "스마트 라우팅 그룹 내 활성화 된 모든 채널로 빌링키 발급 요청을 합니다.", "type": "string", "maxLength": "80", "x-portone-name": "스마트 라우팅 그룹 ID", "x-portone-description": "스마트 라우팅 그룹 내 활성화 된 모든 채널로 빌링키 발급 요청을 합니다." }, "customer_id": { "description": "구매자 ID", "type": "string", "x-portone-name": "구매자 ID", "x-portone-description": "구매자 식별 고유 번호" }, "customer_name": { "description": "고객(카드소지자) 성함", "type": "string", "maxLength": "20", "x-portone-name": "고객 성함", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 성함" }, "customer_tel": { "description": "고객(카드소지자) 전화번호", "type": "string", "maxLength": "20", "x-portone-name": "전화번호", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 전화번호" }, "customer_email": { "description": "고객(카드소지자) Email 주소", "type": "string", "maxLength": "200", "x-portone-name": "Email 주소", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 Email 주소" }, "customer_addr": { "description": "고객(카드소지자) 주소", "type": "string", "maxLength": "200", "x-portone-name": "주소", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 주소" }, "customer_postcode": { "description": "고객(카드소지자) 우편번호", "type": "string", "maxLength": "8", "x-portone-name": "우편번호", "x-portone-description": "빌링키 발급 한 고객(카드소지자)의 우편번호" }, "succeededChannels": { "description": "빌링키가 발급된 각 채널의 PG사별 고유 정보를 담은 배열", "type": "array", "items": { "$ref": "#/definitions/SucceededChannelAnnotation" }, "x-portone-name": "채널별발급정보", "x-portone-description": "빌링키가 발급된 각 채널의 PG사별 고유 정보를 담은 배열" }, "failedChannels": { "description": "빌링키 발급에 실패한 채널의 정보와 실패 사유를 포함한 배열", "type": "array", "items": { "$ref": "#/definitions/FailedChannelAnnotation" }, "x-portone-name": "채널별실패정보", "x-portone-description": "빌링키 발급에 실패한 채널의 정보와 실패 사유를 포함한 배열" } } }, "SucceededChannelAnnotation": { "required": [ "pg_provider", "pg_id", "inserted", "update" ], "properties": { "pg_provider": { "description": "빌링키가 등록된 PG사 구분코드", "type": "string", "maxLength": "16", "x-portone-name": "PG사 구분코드", "x-portone-description": "빌링키가 등록된 PG사 구분코드" }, "pg_id": { "description": "빌링키가 등록된 PG사 상점아이디(MID)", "type": "string", "maxLength": "80", "x-portone-name": "상점아이디(MID)", "x-portone-description": "빌링키가 등록된 PG사 상점아이디(MID)" }, "card_name": { "description": "카드사명", "type": "string", "x-portone-name": "카드명", "x-portone-description": "빌링키 발급 한 카드명" }, "card_code": { "description": "카드사 코드(금융결제원 표준코드번호)\n 링크보기", "type": "string", "x-portone-name": "카드사 코드", "x-portone-description": "카드사 코드(금융결제원 표준코드번호)\n\n[링크보기](https://developers.portone.io/opi/ko/support/code-info/card-code?v=v1)" }, "card_issuer_code": { "description": "카드 발급사 코드(금융결제원 표준코드번호)빌링키 발급 한 카드의 유형
\n", "x-portone-description": "(주의)해당 정보를 제공하지 않는 일부 PG사의 경우 null 로 응답됨(ex. 이니시스-빌링)\n- 0 : 신용카드\n- 1 : 체크카드" }, "inserted": { "description": "빌링키가 등록된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "발급 시각", "x-portone-description": "빌링키가 발급된 시각 UNIX timestamp" }, "updated": { "description": "빌링키가 업데이트된 시각 UNIX timestamp", "type": "integer", "x-portone-name": "업데이트 시각", "x-portone-description": "빌링키가 업데이트된 시각 UNIX timestamp" } } }, "FailedChannelAnnotation": { "required": [ "type", "message", "pg_provider", "pg_id" ], "properties": { "type": { "description": "빌링키 발급 실패 유형\n하위 상점(Tier)의 고유코드
\n", "x-portone-description": "알파벳 대문자 또는 숫자 3자리로 구성됩니다." }, "tier_name": { "description": "하위 상점(Tier) 관리명칭", "type": "string", "x-portone-name": "티어명", "x-portone-description": "하위 상점(Tier)의 관리명칭" } } }, "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사 구분코드