{ "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 응답을 받습니다.
", "operationId": "getToken", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_key", "in": "formData", "description": "REST API 키 (포트원 관리자 페이지의 `상점 ・ 계정 관리` -> `내 식별코드 ・ API Keys`에서 확인하실 수 있습니다 : https://admin.portone.io)", "required": true, "type": "string", "x-portone-name": "REST API KEY", "x-portone-description": "

REST API 키로 포트원 관리자 페이지의 상점 ・ 계정 관리 -> 내 식별코드 ・ API Keys에서 확인하실 수 있습니다 : https://admin.portone.io

\n" }, { "name": "imp_secret", "in": "formData", "description": "REST API Secret (포트원 관리자 페이지의 `상점 ・ 계정 관리` -> `내 식별코드 ・ API Keys`에서 확인하실 수 있습니다 : https://admin.portone.io)", "required": true, "type": "string", "x-portone-name": "REST API SECRET", "x-portone-description": "

REST API Secret으로 포트원 관리자 페이지의 상점 ・ 계정 관리 -> 내 식별코드 ・ API Keys에서 확인하실 수 있습니다 : https://admin.portone.io

\n" } ], "responses": { "200": { "description": "정상적으로 access_token을 받아왔습니다", "schema": { "$ref": "#/definitions/AuthResponse" } }, "401": { "description": "imp_key, imp_secret 인증에 실패한 경우" } }, "x-portone-category": "auth" } }, "/benepia/point": { "post": { "tags": [ "benepia" ], "summary": "포인트 단건조회 API", "description": "API를 통해 베네피아 포인트(복지포인트)조회합니다.
\n 사용자로부터 베네피아 계정 아이디, 비밀번호를 전달받아 보유중인 베네피아 포인트를 조회할 수 있습니다.
\n KCP를 통해서만 진행되므로 KCP사이트코드 발급이 필요합니다.", "operationId": "queryBenepiaPoint", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "benepia_user", "in": "formData", "description": "베네피아 계정 아이디", "required": true, "type": "string", "x-portone-name": "계정 아이디", "x-portone-description": "

베네피아 계정 아이디

\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 사용자로부터 전달받은 베네피아 계정 아이디, 비밀번호와 함께 결제정보를 요청하여 베네피아 포인트 사용처리합니다.
\n KCP를 통해서만 진행되므로 KCP사이트코드 발급이 필요합니다.", "operationId": "payBenepiaPoint", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "benepia_user", "in": "formData", "description": "베네피아 계정 아이디", "required": true, "type": "string", "x-portone-name": "계정 아이디", "x-portone-description": "

베네피아 계정 아이디

\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 구분코드
\n KCP PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 KCP사이트코드를 지정하실 수 있습니다.\n pg 파라메터는 kcp.{KCP사이트코드} 형식의 문자열입니다. pg 파라메터가 누락되는 경우 PG설정 내 KCP설정을 자동 탐색하여 처리하게 됩니다.", "required": false, "type": "string", "x-portone-name": "PG 구분코드", "x-portone-description": "

사용하고자 하는 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": "본인인증 결과를 삭제합니다.
본인인증 결과정보를 포트원 서버내에서 완전히 삭제하고 싶을 때 요청합니다.", "operationId": "deleteCertification", "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": "본인인증결과를 찾을 수 없음" }, "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

본인인증 대상자의 성명, 생년월일 + 주민등록 뒷부분 첫 자리, 휴대폰번호, 통신사 정보를 가맹점에서 직접 입력받아 API요청하면 됩니다. 전달된 개인정보가 올바를 경우 해당 휴대폰으로 인증번호 SMS가 전송됩니다.\n

200응답 시 imp_uid 가 응답데이터로 전달되며, SMS전송된 인증번호를 본인인증 완료 API 로 요청주시면 최종 본인인증 프로세스가 완료됩니다.", "operationId": "requestOTP", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "name", "in": "formData", "description": "본인인증 대상자 성명", "required": true, "type": "string", "x-portone-name": "성명", "x-portone-description": "

본인인증 대상자 성명

\n" }, { "name": "phone", "in": "formData", "description": "본인인증 대상자 전화번호
(- 또는 . 과 같은 기호가 포함되어도 무방 - 포트원 내에서 숫자 외에는 정규식으로 모두 제거처리)", "required": true, "type": "string", "x-portone-name": "휴대폰번호", "x-portone-summary": "

본인인증 대상자 전화번호

\n", "x-portone-description": "\n" }, { "name": "birth", "in": "formData", "description": "본인인증 대상자 생년월일
YYMMDD 6자리(연/월/일 사이에 - 또는 . 과 같은 기호가 포함되어도 무방 - 포트원 내에서 숫자 외에는 정규식으로 모두 제거처리함)", "required": true, "type": "string", "x-portone-name": "생년월일", "x-portone-summary": "

본인인증 대상자 생년월일

\n", "x-portone-description": "

YYMMDD 6자리(연/월/일 사이에 - 또는 . 과 같은 기호가 포함되어도 무방 - 포트원 내에서 숫자 외에는 정규식으로 모두 제거처리함)

\n" }, { "name": "gender_digit", "in": "formData", "description": "본인인증 대상자 주민등록번호 뒷부분 첫자리(주민등록번호 13자리 중 7번째 자리
2000년 이전 출생자는 1 또는 2, 2000년 이후 출생자는 3 또는 4)", "required": true, "type": "string", "x-portone-name": "성별구분코드", "x-portone-summary": "

본인인증 대상자 주민등록번호 뒷부분 첫자리

\n", "x-portone-description": "

주민등록번호 13자리 중 7번째 자리

\n

2000년 이전 출생자는 1 또는 2, 2000년 이후 출생자는 3 또는 4

\n" }, { "name": "carrier", "in": "formData", "description": "본인인증 대상자 통신사 코드 (알뜰폰 사용자의 경우, carrier파라메터 SKT, KT, LGT 중 하나를 지정한 후 is_mvno : true 로 설정)\n ", "required": true, "type": "string", "enum": [ "SKT", "KT", "LGT" ], "x-portone-name": "통신사구분코드", "x-portone-summary": "

본인인증 대상자 통신자 코드

\n", "x-portone-description": "

알뜰폰 사용자의 경우, carrier파라메터 SKT, KT, LGT 중 하나를 지정한 후 is_mvno : true 로 설정

\n\n" }, { "name": "is_mvno", "in": "formData", "description": "본인인증 대상자 알뜰폰 사용 여부", "required": false, "type": "boolean", "default": "false", "x-portone-name": "알뜰폰 사용 여부", "x-portone-description": "

본인인증 대상자 알뜰폰 사용 여부

\n" }, { "name": "company", "in": "formData", "description": "가맹점 서비스명칭 또는 domain URL.
KISA에서 대상자에게 발송하는 SMS에 안내될 서비스 명칭", "required": false, "type": "string", "x-portone-name": "가맹점 서비스명칭", "x-portone-summary": "

가맹점 서비스명칭 또는 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사 구분자
다날 상점아이디를 2개 이상 동시에 사용하시려는 경우 설정하시면 됩니다. danal.{상점아이디} 형태로 지정", "required": false, "type": "string", "x-portone-name": "PG사 구분코드", "x-portone-summary": "

본인인증을 요청하고자 하는 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로 전송된 인증번호를 전달하여 본인인증을 완료합니다.
\n 본인인증이 완료되면 대상자의 이름, 전화번호, 통신사, 성별, 외국인 여부, 생년월일, CI, DI 값을 응답받을 수 있습니다.", "operationId": "confirmOTP", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "본인인증 요청 API 요청 후 응답된 인증 고유번호", "required": true, "type": "string", "x-portone-name": "포트원 인증 고유번호", "x-portone-description": "

본인인증 요청 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입니다.

등록된 카드마다 1개의 customer_uid가 매핑되므로,\n 가맹점 시스템 내에 1명의 고객이 여러 장의 카드를 등록할 수 있는 경우 여러 개의 customer_uid를 가지게 됩니다.
해당 고객이 등록해놓은 카드정보 목록을 한 번에 조회하는데 사용하면 편리합니다.\n

예시) /subscribe/customers?customer_uid[]=hong_1234_a&customer_uid[]=hong_1234_b", "operationId": "customer_view_multiple", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid[]", "in": "query", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호", "required": true, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "default": "customer_1234", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "

빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호

\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": "구매자에 대해 빌링키 발급 및 저장
해당 빌링키 발급 API는 PG사와 협의가 완료된 경우 이용 가능한 서비스입니다.\n ", "operationId": "customer_save", "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", "maxLength": 80, "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "

빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호

\n" }, { "name": "pg", "in": "formData", "description": "API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.
지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.
", "required": false, "type": "string", "maxLength": 80, "x-portone-name": "PG 구분코드", "x-portone-description": "

빌링키 발급을 받고자 하는 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)

\n" }, { "name": "expiry", "in": "formData", "description": "카드 유효기간(YYYY-MM)", "required": true, "type": "string", "x-portone-name": "카드 유효기간", "x-portone-description": "

빌링키 발급 하고자 하는 카드 유효기간(YYYY-MM)

\n" }, { "name": "birth", "in": "formData", "description": "생년월일6자리(법인카드의 경우 사업자등록번호10자리)
PG사별로 혹은 계약상황에따라 필수값 여부가 상이합니다.", "required": false, "type": "string", "x-portone-name": "생년월일", "x-portone-summary": "

생년월일6자리

\n", "x-portone-description": "

법인카드의 경우 사업자등록번호10자리

\n

PG사별로 혹은 계약상황에따라 필수값 여부가 상이합니다.

\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": "구매자의 빌링키 정보 삭제
빌링키 삭제시 결제예약된 내역이 존재하는지 반드시 확인하셔야 합니다.
삭제된 빌링키는 복구할 수 없습니다.", "operationId": "customer_delete", "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": "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입니다.

customer_uid별 결제예약목록을 조회할 수 있습니다. 결제예약정보가 (페이징된)목록으로 전달되며, 최대 3개월 단위로 조회가 가능합니다.

결제예약정보가 예약된 시각 기준으로 최신순으로 정렬되어 전달됩니다.", "operationId": "findSchedulesByCustomer", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid", "in": "path", "description": "결제예약에 사용된 구매자의 결제 수단 식별 고유번호", "required": true, "type": "string", "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "

결제예약에 사용된 구매자의 결제 수단 식별 고유번호

\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 ", "required": false, "type": "string", "enum": [ "scheduled", "executed", "revoked" ], "x-portone-name": "예약상태", "x-portone-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", "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 이미 결제가 이뤄진 적이 있는 merchant_uid로는 추가적인 편의점결제 수납번호(barcode) 발급 또는 등록이 불가능합니다.", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-summary": "

가맹점 거래 고유번호

\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 설정하지 않은 결제에 대해서는 항상 수납가능으로 간주하고 수납성공진행 됩니다.
\n 설정된 결제에 대해서는 해당 URL로 아래와 같은 형식의 데이터가 Webhook(HTTP POST)으로 전송되며 200응답 == 수납가능 / 그 외응답 == 수납불가 처리\n
{\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
\n 선언되지 않으면 포트원 관리자 페이지에 정의된 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-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\t 입력한 배송정보를 획득합니다.

\n\t 택배사 코드표 : https://developers.portone.io/docs/ko/tip/code\n\t

지원되는 PG사

\n\t ", "operationId": "escrow_logis_get", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 거래고유번호", "required": true, "type": "string", "default": "imp_12345678912", "x-portone-name": "포트원 거래고유번호", "x-portone-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 logis는 하위 필드가 모두 필수입니다.
sender, receiver의 각 세부 항목은 PG사마다 필수 여부가 모두 다릅니다.

\n

지원되는 PG사

\n ", "operationId": "escrow_logis_edit", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 거래고유번호", "required": true, "type": "string", "default": "imp_12345678912", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "

배송정보를 수정하고자 하는 에스크로 결제건의 포트원 거래고유번호

\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": "배송정보
택배사코드표는 메뉴얼 참조", "required": true, "schema": { "$ref": "#/definitions/EscrowLogisInfoAnnotation" }, "type": "string", "x-portone-name": "배송정보", "x-portone-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 logis는 하위 필드가 모두 필수입니다.
sender, receiver의 각 세부 항목은 PG사마다 필수 여부가 모두 다릅니다.

\n

지원되는 PG사

", "operationId": "escrow_logis_save", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "path", "description": "포트원 거래고유번호", "required": true, "type": "string", "default": "imp_12345678912", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "

배송정보를 등록하고자 하는 에스크로 결제건의 포트원 거래고유번호

\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": "배송정보
택배사코드표는 메뉴얼 참조", "required": true, "schema": { "$ref": "#/definitions/EscrowLogisInfoAnnotation" }, "type": "string", "x-portone-name": "배송정보", "x-portone-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로 입력 시 구매가 확정되어도 이메일로 안내되지 않습니다.

\n" } } } ], "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", "nice_v2", "welcome" ], "x-portone-category": "escrow", "x-portone-per-pg": { "ksnet": { "description": "

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
(카카오페이) 카카오페이 주문내조회 API를 래핑한 API 입니다. 지원되는 request가 유사하며 응답되는 response는 카카오페이 API 와 동일합니다.", "operationId": "getOrders", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "payment_request_date", "in": "query", "description": "YYYYMMDD 형식의 조회 날짜를 지정하시면 됩니다.", "required": true, "type": "string" }, { "name": "cid", "in": "query", "description": "포트원 내 설정된 카카오페이 CID를 기본값으로 합니다. 포트원 계정 내 복수의 카카오페이 CID가 설정된 경우 지정하시면 됩니다.", "required": false, "type": "string" }, { "name": "page", "in": "query", "description": "페이지 숫자(1부터 시작, 1이 기본값)", "required": false, "type": "integer" } ], "responses": { "200": { "description": "카카오페이 주문내역조회 성공. 응답데이터는 카카오페이 주문내조회 API 참조", "schema": { "$ref": "#/definitions/KakaoOrderResponse" } } }, "deprecated": true, "x-portone-category": "pg.kakao" } }, "/kcpquick/members/{member_id}": { "delete": { "tags": [ "kcpquick" ], "summary": "(KCP 퀵페이) 구매자 정보 단건 삭제 API", "description": "구매자의 KCP 퀵페이 정보 삭제합니다.
(KCP 퀵페이 정보를 DB에서 물리적삭제 합니다)
\n Accept 설정 필수\n
http header 에 아래와 같이 Accept 를 설정하셔야 합니다.\n
Accept : application/json", "operationId": "member_delete", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "member_id", "in": "path", "description": "구매자 고유 아이디(memberID)", "required": true, "type": "string", "default": "memberID", "x-portone-name": "구매자 고유 아이디", "x-portone-description": "

삭제 하고자 하는 구매자 고유 아이디(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": "(주문형-네이버페이) 네이버페이 상품주문들을 환불처리합니다.
주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 환불처리할 수 있습니다.\n 시도된 상품주문 중 환불처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverCancelProductOrder", "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": "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

reason (환불사유코드)

", "required": false, "type": "string", "default": "PRODUCT_UNSATISFIED", "enum": [ "SOLD_OUT", "DELAYED_DELIVERY", "PRODUCT_UNSATISFIED", "INTENT_CHANGED", "COLOR_AND_SIZE", "WRONG_ORDER", "INCORRECT_INFO" ], "x-portone-name": "취소 사유 코드", "x-portone-description": "

취소 사유 코드로 올바르지 않은 코드인 경우 기본값(PRODUCT_UNSATISFIED)을 적용합니다.

\n" } ], "responses": { "200": { "description": "모든주문환불성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부주문 환불성공 & 일부주문 환불실패
네이버페이에 환불요청시 product_order_id 개별로 환불요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든주문 환불실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/approve-cancel": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 구매자의 환불요청 승인처리 API", "description": "네이버페이 주문형 구매자가 환불요청한 상품주문들을 환불승인처리합니다. 상품발주처리 중 구매자의 환불요청이 있는 경우, 최종 환불처리를 위해서는 판매자의 승인이 필요하므로 본 API 를 사용하셔야 합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래고유번호(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 환불승인처리할 수 있습니다.\n 시도된 상품주문 중 환불승인처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverApproveCancelProductOrder", "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": "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": "일부주문 환불승인성공 & 일부주문 환불승인실패
포트원에서 네이버페이에 환불승인요청시 product_order_id 개별로 환불승인요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든주문 환불승인실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/ship": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 상품주문 발송처리 API", "description": "(주문형-네이버페이) 네이버페이 상품주문들을 발송처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 발송처리할 수 있습니다.\n 시도된 상품주문 중 발송처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverShipProductOrder", "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": "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

delivery_method (배송방법코드)

", "required": true, "type": "string", "enum": [ "DELIVERY", "GDFW_ISSUE_SVC", "VISIT_RECEIPT", "DIRECT_DELIVERY", "QUICK_SVC", "NOTHING" ], "x-portone-name": "배송방법 코드", "x-portone-description": "

배송방법을 나타내는 코드

\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_company (택배사 코드)

", "required": false, "type": "string", "enum": [ "CJGLS", "KGB", "DONGBU", "EPOST", "REGISTPOST", "HANJIN", "HYUNDAI", "KGBLS", "INNOGIS", "DAESIN", "ILYANG", "KDEXP", "CHUNIL", "CH1", "HDEXP", "CVSNET", "DHL", "FEDEX", "GSMNTON", "WARPEX", "WIZWA", "EMS", "DHLDE", "ACIEXPRESS", "EZUSA", "PANTOS", "UPS", "HLCGLOBAL", "KOREXG", "TNT", "SWGEXP", "DAEWOON", "USPS", "IPARCEL", "KUNYOUNG", "HPL", "DADREAM", "SLX", "SFEXPRESS", "HONAM" ], "x-portone-name": "택배사 코드", "x-portone-description": "

택배사 코드(delivery_method == DELIVERY 인 경우 필수로 입력해야하는 파라메터)

\n" }, { "name": "tracking_number", "in": "formData", "description": "송장번호(delivery_method == 'DELIVERY' 인 경우 필수 파라메터)", "required": false, "type": "string", "x-portone-name": "송장번호", "x-portone-description": "

송장번호(delivery_method == DELIVERY 인 경우 필수 파라미터)

\n" } ], "responses": { "200": { "description": "모든 상품주문 발송처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 발송처리성공 & 일부주문 발송처리실패
포트원에서 네이버페이에 발송처리 요청시 product_order_id 개별로 발송요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "400": { "description": "delivery_method / dispatched_at 파라메터가 누락되거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 발송처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/ship-exchanged": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 교환승인된 상품 재발송처리 API", "description": "(주문형-네이버페이) 네이버페이 교환승인된 상품주문들을 재발송처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 재발송처리할 수 있습니다.\n 시도된 상품주문 중 재발송처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverShipProductOrder", "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": "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

delivery_method (배송방법코드)

", "required": true, "type": "string", "enum": [ "DELIVERY", "GDFW_ISSUE_SVC", "VISIT_RECEIPT", "DIRECT_DELIVERY", "QUICK_SVC", "NOTHING" ], "x-portone-name": "배송방법 코드", "x-portone-description": "

배송방법을 나타내는 코드

\n" }, { "name": "delivery_company", "in": "formData", "description": "택배사 코드(delivery_method == 'DELIVERY' 인 경우 필수 파라메터)\n

delivery_company (택배사 코드)

", "required": false, "type": "string", "enum": [ "CJGLS", "KGB", "DONGBU", "EPOST", "REGISTPOST", "HANJIN", "HYUNDAI", "KGBLS", "INNOGIS", "DAESIN", "ILYANG", "KDEXP", "CHUNIL", "CH1", "HDEXP", "CVSNET", "DHL", "FEDEX", "GSMNTON", "WARPEX", "WIZWA", "EMS", "DHLDE", "ACIEXPRESS", "EZUSA", "PANTOS", "UPS", "HLCGLOBAL", "KOREXG", "TNT", "SWGEXP", "DAEWOON", "USPS", "IPARCEL", "KUNYOUNG", "HPL", "DADREAM", "SLX", "SFEXPRESS", "HONAM" ], "x-portone-name": "택배사 코드", "x-portone-description": "

택배사 코드(delivery_method == DELIVERY 인 경우 필수로 입력해야하는 파라메터)

\n" }, { "name": "tracking_number", "in": "formData", "description": "송장번호(delivery_method == 'DELIVERY' 인 경우 필수 파라메터)", "required": false, "type": "string", "x-portone-name": "송장번호", "x-portone-description": "

송장번호(delivery_method == DELIVERY 인 경우 필수로 입력해야하는 파라메터)

\n" } ], "responses": { "200": { "description": "모든 상품주문 재발송처리 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 재발송처리성공 & 일부주문 재발송처리실패
포트원에서 네이버페이에 재발송처리 요청시 product_order_id 개별로 재발송요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "400": { "description": "delivery_method 파라메터가 누락되거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 재발송처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/collect-exchanged": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 교환승인된 상품 수거완료처리 API", "description": "(주문형-네이버페이) 네이버페이 교환승인된 상품주문들을 수거완료처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 수거완료처리할 수 있습니다.\n 시도된 상품주문 중 수거완료처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverCollectProductOrder", "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": "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": "일부 상품주문 수거완료처리성공 & 일부주문 수거완료처리실패
포트원에서 네이버페이에 수거완료처리 요청시 product_order_id 개별로 수거완료요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 수거완료처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/place": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 상품발주처리 API", "description": "(주문형-네이버페이) 네이버페이 상품주문들을 발주처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 발주처리할 수 있습니다.\n 시도된 상품주문 중 발주처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverPlaceProductOrder", "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": "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": "일부 상품주문 발주처리성공 & 일부주문 발주처리실패
포트원에서 네이버페이에 발주처리 요청시 product_order_id 개별로 발주요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 발주처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/request-return": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 상품반품요청 API", "description": "(주문형-네이버페이) 네이버페이 상품주문들을 반품요청합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 반품요청할 수 있습니다.\n 시도된 상품주문 중 반품요청에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverRequestReturnProductOrder", "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": "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 ", "required": false, "type": "string", "default": "INTENT_CHANGED", "enum": [ "INTENT_CHANGED", "COLOR_AND_SIZE", "WRONG_ORDER", "PRODUCT_UNSATISFIED", "DELAYED_DELIVERY", "SOLD_OUT", "DROPPED_DELIVERY", "BROKEN", "INCORRECT_INFO", "WRONG_DELIVERY", "WRONG_OPTION" ], "x-portone-name": "반품사유코드", "x-portone-description": "

반품사유코드로 올바르지 않은 사유코드인 경우 기본값(INTENT_CHANGED)을 적용합니다.

\n" }, { "name": "delivery_method", "in": "formData", "description": "반품 배송방법 코드\n ", "required": true, "type": "string", "enum": [ "RETURN_DESIGNATED", "RETURN_DELIVERY", "RETURN_INDIVIDUAL" ], "x-portone-name": "배송방법 코드", "x-portone-description": "

반품 배송방법 코드

\n" }, { "name": "delivery_company", "in": "formData", "description": "택배사 코드(delivery_method == 'RETURN_DELIVERY' 인 경우 필수 파라메터)\n ", "required": false, "type": "string", "enum": [ "CJGLS", "KGB", "DONGBU", "EPOST", "REGISTPOST", "HANJIN", "HYUNDAI", "KGBLS", "INNOGIS", "DAESIN", "ILYANG", "KDEXP", "CHUNIL", "CH1", "HDEXP", "CVSNET", "DHL", "FEDEX", "GSMNTON", "WARPEX", "WIZWA", "EMS", "DHLDE", "ACIEXPRESS", "EZUSA", "PANTOS", "UPS", "HLCGLOBAL", "KOREXG", "TNT", "SWGEXP", "DAEWOON", "USPS", "IPARCEL", "KUNYOUNG", "HPL", "DADREAM", "SLX", "SFEXPRESS", "HONAM" ], "x-portone-name": "택배사 코드", "x-portone-description": "

택배사 코드(delivery_method == RETURN_DELIVERY 인 경우 필수로 입력해야하는 파라메터)

\n" }, { "name": "tracking_number", "in": "formData", "description": "송장번호(delivery_method == 'RETURN_DELIVERY' 인 경우 필수 파라메터)", "required": false, "type": "string", "x-portone-name": "송장번호", "x-portone-description": "

송장번호(delivery_method == RETURN_DELIVERY 인 경우 필수로 입력해야하는 파라메터)

\n" } ], "responses": { "200": { "description": "모든 상품주문 반품요청 성공", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "207": { "description": "일부 상품주문 반품요청성공 & 일부주문 반품요청실패
\n 포트원에서 네이버페이에 반품요청시 product_order_id 개별로 반품요청이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다. (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "400": { "description": "delivery_method 파라메터가 누락되거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 반품요청실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/approve-return": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 상품 반품승인 처리 API", "description": "(주문형-네이버페이) 네이버페이 상품주문들을 반품승인처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 반품승인 처리할 수 있습니다.\n 반품시 배송비 제외, 혹은 추가 청구액이 필요한 경우 반품보류 처리(POST 반품요청상품 반품보류 처리 API) 사용합니다.\n
시도된 상품주문 중 반품승인 처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverApproveReturnProductOrder", "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": "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 포트원에서 네이버페이에 반품승인 처리시 product_order_id 개별로 반품승인 처리이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다.\n (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 반품승인 처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/reject-return": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 상품 반품거절 처리 API", "description": "(주문형-네이버페이) 네이버페이 반품요청 상품주문들을 반품거절처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 반품거절 처리할 수 있습니다.\n 시도된 상품주문 중 반품거절 처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverRejectReturnProductOrder", "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": "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 포트원에서 네이버페이에 반품거절 처리시 product_order_id 개별로 반품거절 처리이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다.\n (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "400": { "description": "memo 파라미터가 누락되거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 반품거절 처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/withhold-return": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 상품 반품보류 처리 API", "description": "(주문형-네이버페이) 반품요청 상품주문들을 반품보류처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 반품보류 처리할 수 있습니다.\n 시도된 상품주문 중 반품보류 처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverWithholdReturnProductOrder", "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": "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 ", "required": false, "type": "string", "default": "ETC", "enum": [ "RETURN_DELIVERYFEE", "EXTRAFEEE", "RETURN_DELIVERYFEE_AND_EXTRAFEEE", "RETURN_PRODUCT_NOT_DELIVERED", "ETC" ], "x-portone-name": "반품보류사유 코드", "x-portone-description": "

반품보류사유 코드로 올바르지 않은 보류사유코드인 경우 기본값(ETC)를 적용합니다.

\n" }, { "name": "memo", "in": "formData", "description": "반품보류에 대하여 구매자에게 전달하는 메모", "required": true, "type": "string", "x-portone-name": "메모", "x-portone-description": "

반품보류에 대하여 구매자에게 전달하는 메모

\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 포트원에서 네이버페이에 반품보류 처리시 product_order_id 개별로 반품보류 처리이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다.\n (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "400": { "description": "memo 파라미터가 누락되거나 올바르지 않은 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 반품보류 처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/resolve-return": { "post": { "tags": [ "naver" ], "summary": "(주문형-네이버페이) 반품보류상품 반품보류해제 처리 API", "description": "(주문형-네이버페이) 반품보류 상품주문들을 반품보류해제처리합니다.
\n 주문상품의 종류가 여러 개인 경우, 한 건의 포트원 거래건(imp_uid)에 여러 개의 네이버페이 상품주문이 존재하며 일부 또는 전체를 반품보류해제 처리할 수 있습니다.\n 시도된 상품주문 중 반품보류해제 처리에 성공한 상품주문에 대한 최종 정보만 제공됩니다.", "operationId": "naverResolveReturnProductOrder", "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": "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 포트원에서 네이버페이에 반품보류해제 처리시 product_order_id 개별로 반품보류해제 처리이 진행되어야 합니다. 일부 건만 성공하는 경우 207 응답이 내려갑니다.\n (모두 성공인 경우 200응답 / 모두 실패인 경우 500응답)", "schema": { "$ref": "#/definitions/NaverProductOrderArrayResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "imp_uid에 해당되는 거래건을 찾을 수 없거나 접근 권한이 없는 계정인 경우" }, "500": { "description": "모든 상품주문 반품보류해제 처리실패" } }, "x-portone-supported-pgs": [ "naverco" ], "x-portone-category": "pg.naverpay" } }, "/payments/{imp_uid}/naver/point": { "post": { "tags": [ "naver" ], "summary": "(결제형-네이버페이) 네이버페이 포인트 적립 API", "description": "(결제형-네이버페이) 네이버페이 포인트 적립 API", "operationId": "naverDepositPoint", "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/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 네이버페이의 경우 주문하는 상품의 종류별로 주문번호(product_order_id)를 관리합니다. 포트원 거래건 당 1개 이상의 네이버페이 상품주문이 연결되므로,\n 포트원 거래고유번호(imp_uid)에 매핑된 1개 이상의 네이버페이 상품주문번호(product_order_id) 및 상세 내역을 조회할 수 있습니다.

\n

응답 안내

\n

product_order_status

\n

claim_type

\n

claim_status

[ claim_type : CANCEL 일 때 ]

\n

[ claim_type : RETURN 일 때 ]

\n \n

[ claim_type : EXCHANGE 일 때 ]

\n \n

[ claim_type : PURCHASE_DECISION_HOLDBACK 일 때 ]

\n \n

[ claim_type : ADMIN_CANCEL 일 때 ]

\n ", "operationId": "getProductOrders", "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/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 네이버페이 상품주문번호(product_order_id)를 통해 해당되는 상품주문정보 단건을 조회할 수 있습니다.
\n

product_order_status

\n \n

claim_type

\n \n

claim_status

[ claim_type : CANCEL 일 때 ]

\n \n

[ claim_type : RETURN 일 때 ]

\n \n

[ claim_type : EXCHANGE 일 때 ]

\n \n

[ claim_type : PURCHASE_DECISION_HOLDBACK 일 때 ]

\n \n

[ claim_type : ADMIN_CANCEL 일 때 ]

\n ", "operationId": "getProductOrderSingle", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "product_order_id", "in": "path", "description": "네이버페이 상품주문번호", "required": true, "type": "string", "x-portone-name": "네이버페이 상품주문번호", "x-portone-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 ", "required": true, "type": "string", "enum": [ "general", "premium" ], "x-portone-name": "구매평 유형", "x-portone-description": "

조회할 구매평의 유형

\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

지원되는 PG사

\n ", "operationId": "partner", "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": "data", "in": "formData", "description": "등록할 하위 상점 및 하위 상점 별 거래 금액 정보 배열
[ 필수항목 ]
business_registration_number : 하위 상점 사업자 등록 번호
company_name : 하위 상점 명
amount : 하위 상점 거래 금액
[ 선택항목 ]
tax_free : 하위 상점 거래 금액 중 면세 금액 (기본값 : 0)
vat_amount : 하위 상점 거래 금액 중 부가세 금액 (기본값 : amount / 11)", "required": true, "type": "array", "items": { "$ref": "#/definitions/PartnerReceiptsAnnotation" }, "default": "[ { "business_registration_number": "하위 상점 사업자 등록 번호1", "company_name": "하위 상점 명1", "amount": 1000 }, { "business_registration_number": "하위 상점 사업자 등록 번호2", "company_name": "하위 상점 명2", "amount": 2000 } ]", "x-portone-name": "등록할 하위 상점 및 하위 상점 별 거래 금액 정보", "x-portone-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 ", "required": true, "type": "string", "enum": [ "DELIVERY_START", "PURCHASE_DECISION", "CANCELED" ], "x-portone-name": "주문상태코드", "x-portone-description": "

변경될 주문상태

\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로 설정해주셔야 합니다.

\n
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" } } } }, "/payments": { "get": { "tags": [ "payments" ], "summary": "결제내역 복수조회 API", "description": "여러 개의 포트원 거래고유번호 또는 가맹점 주문번호로 결제내역을 한 번에 조회합니다.(최대 100개)\n
(예시) /payments?imp_uid[]=imp_448280090638&imp_uid[]=imp_448280090639&merchant_uid[]=merchant_143434085216", "operationId": "getPaymentListByImpUid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid[]", "in": "query", "description": "포트원 거래고유번호", "required": false, "type": "array", "items": { "type": "string" }, "collectionFormat": "multi", "default": "imp_448280090638", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "

조회할 결제건의 포트원 거래고유번호 리스트

\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 동일한 merchant_uid가 여러 건 존재하는 경우, 정렬 기준에 따라 가장 첫 번째 해당되는 건을 반환합니다.\n (모든 내역에 대한 조회가 필요하시면 GET 결제 복수조회(가맹점 주문번호 중복 포함) API를 사용해주세요.)

\n payment_status를 추가로 지정하시면, 해당 status에 해당하는 가장 최신 데이터를 반환합니다.", "operationId": "getPaymentByMerchantUid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "결제요청 시 가맹점에서 요청한 merchant_uid", "required": true, "type": "string", "default": "merchant_1448280088556", "x-portone-name": "가맹점 주문번호", "x-portone-description": "

결제요청 시 가맹점에서 요청한 가맹점 주문번호

\n" }, { "name": "payment_status", "in": "path", "description": "특정 status상태의 값만 필터링하고 싶은 경우에 사용.
지정하지 않으면 모든 상태를 대상으로 조회합니다. ", "required": false, "type": "string", "default": "", "x-portone-name": "거래상태 구분코드", "x-portone-description": "

특정 status상태의 값만 필터링하고 싶은 경우에 사용하는 파라미터로 지정하지 않으면 모든 상태를 대상으로 조회합니다

\n" }, { "name": "sorting", "in": "query", "description": "기본값은 -started
마이너스(-) 기호가 앞에 붙으면 내림차순 정렬을 의미합니다.
\n ", "required": false, "type": "string", "default": "-started", "enum": [ "-started", "started", "-paid", "paid", "-updated", "updated" ], "x-portone-name": "정렬구분코드", "x-portone-description": "

정렬 기준을 설정하는 파라미터로 기본값은 -started입니다.

\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "거래건이 존재하지 않는 경우" } }, "x-portone-category": "payment" } }, "/payments/findAll/{merchant_uid}/{payment_status}": { "get": { "tags": [ "payments" ], "summary": "결제 복수조회(가맹점 주문번호 중복 포함) API", "description": "가맹점지정 고유번호 및 상태기준으로 결제내역을 확인합니다
동일한 merchant_uid가 여러 건 존재하는 경우, 존재하는 모든 거래가 조회됩니다.\n

payment_status를 추가로 지정하시면, 해당 status에 해당하는 가장 최신 데이터를 반환합니다.", "operationId": "getAllPaymentsByMerchantUid", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "결제요청 시 가맹점에서 요청한 merchant_uid", "required": true, "type": "string", "default": "merchant_1448280088556", "x-portone-name": "가맹점 주문번호", "x-portone-description": "

결제요청 시 가맹점에서 요청한 가맹점 주문번호

\n" }, { "name": "payment_status", "in": "path", "description": "특정 status상태의 값만 필터링하고 싶은 경우에 사용.
지정하지 않으면 모든 상태를 조회합니다. ", "required": false, "type": "string", "default": "", "x-portone-name": "결제상태코드", "x-portone-description": "

특정 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
마이너스(-) 기호가 앞에 붙으면 내림차순 정렬을 의미합니다.
\n ", "required": false, "type": "string", "default": "-started", "enum": [ "-started", "started", "-paid", "paid", "-updated", "updated" ], "x-portone-name": "정렬기준", "x-portone-description": "

정렬기준을 나타내는 파라미터로 기본값은 -started입니다.

\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentListResponse" } }, "400": { "description": "merchant_uid누락, 올바르지 않은 status 등 파라메터가 잘못된 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "유효하지 않은 merchant_uid" } }, "x-portone-category": "payment" } }, "/payments/status/{payment_status}": { "get": { "tags": [ "payments" ], "summary": "결제상태기준 복수조회 API", "description": "미결제/결제완료/결제취소/결제실패 상태 별로 검색할 수 있습니다.(20건씩 최신순 페이징)

\n 검색기간은 최대 90일까지이며 to파라메터의 기본값은 현재 unix timestamp이고 from파라메터의 기본값은 to파라메터 기준으로 90일 전입니다.\n 때문에, from/to 파라메터가 없이 호출되면 현재 시점 기준으로 최근 90일 구간에 대한 데이터를 검색하게 됩니다.
\n from, to 파라메터를 지정하여 90일 단위로 과거 데이터 조회는 가능합니다.
", "operationId": "getPaymentsByStatus", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "payment_status", "in": "path", "description": "", "required": true, "type": "string", "enum": [ "all", "ready", "paid", "cancelled", "failed" ], "x-portone-name": "결제상태코드", "x-portone-description": "

조회할 결제건의 결제상태 코드

\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.

시간별 검색 시작 시각(>=) UNIX TIMESTAMP. 결제건의 최종 status에 따라 다른 검색기준이 적용됩니다.
ready : 결제시작 시각 기준
paid : 결제완료 시각 기준
cancelled : 결제취소 시각 기준
failed : 결제실패 시각 기준", "required": false, "type": "integer", "x-portone-name": "검색 시작 시각", "x-portone-description": "

기본값은 to 파라메터 기준으로 90일 전 unix timestamp입니다. (시간별 검색 시작 시각(>=) UNIX TIMESTAMP)

\n" }, { "name": "to", "in": "query", "description": "기본값 : 현재 unix timestamp

시간별 검색 종료 시각(<=) UNIX TIMESTAMP. 결제건의 최종 status에 따라 다른 검색기준이 적용됩니다.
ready : 결제시작 시각 기준
paid : 결제완료 시각 기준
cancelled : 결제취소 시각 기준
failed : 결제실패 시각 기준", "required": false, "type": "integer", "x-portone-name": "검색 종료 시각", "x-portone-description": "

기본값은 현재 unix timestamp입니다. (시간별 검색 종료 시각(<=) UNIX TIMESTAMP)

\n" }, { "name": "sorting", "in": "query", "description": "기본값은 -started
마이너스(-) 기호가 앞에 붙으면 내림차순 정렬을 의미합니다.
\n ", "required": false, "type": "string", "default": "-started", "enum": [ "-started", "started", "-paid", "paid", "-updated", "updated" ], "x-portone-name": "정렬기준", "x-portone-description": "

정렬기준을 나타내는 파라미터로 기본값은 -started입니다.

\n" } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentListResponse" } }, "400": { "description": "유효하지 않은 payment_status인 경우, 데이터 범위를 넘어선 page인 경우" }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-category": "payment" } }, "/payments/cancel": { "post": { "tags": [ "payments" ], "summary": "결제취소 API", "description": "승인된 결제를 취소합니다.
신용카드/실시간계좌이체/휴대폰소액결제의 경우 즉시 취소처리가 이뤄지게 되며,\n 가상계좌와 휴대폰소액결제 익월 환불(KCP)의 경우는 환불받으실 계좌정보를 같이 전달해주시면 환불정보가 PG사에 등록되어 익영업일에 처리됩니다.\n (가상계좌 환불, 휴대폰소액결제 익월 환불(KCP)의 경우 관련 특약계약 필요)", "operationId": "cancelPayment", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "formData", "description": "취소할 거래의 포트원 거래고유번호", "required": false, "type": "string", "x-portone-name": "포트원 거래고유번호", "x-portone-description": "

취소할 거래의 포트원 거래고유번호

\n" }, { "name": "merchant_uid", "in": "formData", "description": "가맹점에서 전달한 거래 고유번호.
imp_uid, merchant_uid 중 하나는 필수이어야 합니다.
두 값이 모두 넘어오면 imp_uid를 우선 적용합니다.", "required": false, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-description": "

가맹점에서 전달한 거래 고유번호로 imp_uid, merchant_uid 중 하나는 필수이어야 합니다. (두 값이 모두 넘어오면 imp_uid를 우선 적용합니다.)

\n" }, { "name": "amount", "in": "formData", "description": "(부분)취소요청 금액
누락하거나 0을 입력하는 경우 전액 취소 요청합니다.
", "required": false, "type": "number", "x-portone-name": "(부분)취소 요청금액", "x-portone-summary": "

(부분)취소요청금액으로 누락하거나 0을 입력 시 전액취소를 요청합니다.

\n", "x-portone-description": "

(부분)취소요청 금액으로 (누락하거나 0을 입력하는 경우 전액 취소 요청합니다.)

\n" }, { "name": "tax_free", "in": "formData", "description": "(부분)취소요청금액 중 면세금액(누락되면 0원처리)
단, 아래 PG사의 경우 자동으로 0원 처리 되지 않으므로 면세 결제에 한하여 필수 입력 바랍니다.
", "required": false, "type": "number", "x-portone-name": "(부분)취소요청 금액 중 면세금액", "x-portone-summary": "

(부분)취소요청금액 중 면세금액으로 누락되면 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": "

부가세업체정함 설정 가맹점에 한해 결제 시 면세금액을 지정했던 경우 필수 입력 바라며, 입력한 면세금액이 그대로 취소 승인되기 때문에 정확한 금액을 입력해 주시길 바랍니다.

\n" } } }, { "name": "vat_amount", "in": "formData", "description": "(부분)취소요청금액 중 부가세 금액(기본값: null).
단, 결제 시 부가세를 지정했던 경우 필수 입력 바랍니다.
지원되는 PG사
", "required": false, "type": "number", "x-portone-name": "(부분)취소요청금액 중 부가세 금액", "x-portone-summary": "

(부분)취소요청금액 중 부가세 금액으로 기본값은 null입니다.

\n", "x-portone-description": "

단, 결제 시 부가세를 지정했던 경우 필수 입력 바랍니다.

\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" } } }, { "name": "checksum", "in": "formData", "description": "취소 트랜잭션 수행 전, 현재시점의 취소 가능한 잔액.

API요청자가 기록하고 있는 취소가능 잔액과 포트원이 기록하고 있는 취소가능 잔액이 일치하는지 사전에 검증하고, 검증에 실패하면 트랜잭션을 수행하지 않습니다. null인 경우에는 검증 프로세스를 생략합니다.", "required": false, "type": "number", "x-portone-name": "현재시점의 취소 가능한 잔액", "x-portone-summary": "

취소 트랜잭션 수행 전, 현재시점의 취소 가능한 잔액

\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": "환불계좌 예금주
(가상계좌취소, 휴대폰소액결제 익월 환불(KCP)시 필수)", "required": false, "type": "string", "x-portone-name": "환불계좌 예금주", "x-portone-description": "

환불받을 계좌의 예금주

\n", "x-portone-per-pg": { "kcp": { "description": "

휴대폰소액결제 익월 환불시 필수입력입니다.

\n" }, "smartro_v2": { "description": "

가상계좌, 계좌이체 거래건 환불시 필수입력입니다.

\n" } } }, { "name": "refund_bank", "in": "formData", "description": "환불계좌 은행코드
링크보기
가상계좌취소, 휴대폰소액결제 익월 환불(KCP)시 필수)", "required": false, "type": "string", "x-portone-name": "환금계좌 은행코드", "x-portone-summary": "

환불받을 계좌의 은행코드

\n", "x-portone-description": "

은행 코드 리스트 확인하기

\n", "x-portone-per-pg": { "kcp": { "description": "

휴대폰소액결제 익월 환불시 필수입력입니다.

\n" }, "smartro_v2": { "description": "

가상계좌, 계좌이체 거래건 환불시 필수입력입니다.

\n" } } }, { "name": "refund_account", "in": "formData", "description": "환불계좌 계좌번호
(가상계좌취소, 휴대폰소액결제 익월 환불(KCP)시 필수)", "required": false, "type": "string", "x-portone-name": "환불계좌 계좌번호", "x-portone-description": "

환불받을 계좌번호

\n", "x-portone-per-pg": { "kcp": { "description": "

휴대폰소액결제 익월 환불시 필수입력입니다.

\n" }, "smartro_v2": { "description": "

가상계좌, 계좌이체 거래건 환불시 필수입력입니다.

\n" } } }, { "name": "refund_tel", "in": "formData", "description": "환불계좌 예금주 연락처
(가상계좌, 스마트로 - 구모듈 취소인 경우 필수)", "required": false, "type": "string", "x-portone-name": "환불계좌 예금주 연락처", "x-portone-description": "

환불받을 계좌의 예금주 연락처 (가상계좌 취소인 경우 필수)

\n", "x-portone-per-pg": { "smartro": { "required": true }, "smartro_v2": { "description": "

가상계좌, 계좌이체 거래건 환불시 필수입력입니다.

\n" } } }, { "name": "extra", "in": "formData", "description": "네이버페이 사용 시 extra.requester 를 설정해야합니다.
\n ", "required": false, "type": "array", "x-portone-name": "추가 파라미터", "x-portone-description": "

결제 취소 요청시 필요한 추가 정보

\n", "x-portone-per-pg": { "naverpay": { "required": true, "description": "\n" } } } ], "responses": { "200": { "description": "정상 조회", "schema": { "$ref": "#/definitions/PaymentResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-category": "payment", "x-portone-per-pg": { "kcp": { "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: 결제 취소 사유

\n

예시(json)

```ts\n{\n\"imp_uid\" : \"imp_123412341234\", //환불처리할 포트원 거래고유번호\n\"amount\" : 3000, //환불할 금액\n\"reason\": \"결제 취소 사유\", //실제 사유와 같아야 함\n\"extra\" : {\n\"requester\" : \"customer\"\n}\n}\n```

예시(form-urlencoded)

```\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" }, "paypal_v2": { "description": "

결제 취소 요청 시 취소 요청이 바로 승인 되지 않고 일정 시간 후 승인처리되는 경우가 존재합니다.\n 가맹점은 결제 취소 요청 응답 처리 시 취소가 승인되었는지 여부를 확인해야 합니다.

\n

결제 취소 API를 통해 취소 요청을 한 경우 API 응답의 statuscancel_history 값을 기준으로 취소 승인 여부를 판단해야 합니다. status가 cancelled 이고 cancel_history에 취소 요청 내역이 있는 경우 취소가 승인된 것이고 그렇지 않은 경우 취소 승인대기 상태입니다.\n콘솔을 통한 취소 요청이 승인대기인 경우 결제내역에서 결제상태는 결제취소로 변경되지 않고 진행중인 취소요청 내역이 있음이 표시되며 결제내역 상세 화면에서 취소요청내역이 조회됩니다.

\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
이 API를 통해 사전등록된 가맹점 주문번호(merchant_uid)에 대해, IMP.request_pay()에 전달된 merchant_uid가 일치하는 주문의 결제금액이 다른 경우 PG사 결제창 호출이 중단됩니다.", "operationId": "preparePayment", "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이 전달되지 않았거나 유효하지 않은 경우" } }, "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
해당 배송등록을 누락한 경우 페이먼트월 PG사로부터 정산대금을 받지 못합니다.", "operationId": "paymentwall_delivery", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "imp_uid", "in": "formData", "description": "포트원 거래고유번호", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "포트원 거래고유번호", "x-portone-description": "

배송등록 할 결제건의 포트원 거래고유번호

\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 ", "required": true, "type": "string", "maxLength": 10, "enum": [ "physical", "digital" ], "x-portone-name": "상품구분코드", "x-portone-description": "

배송등록 할 결제건의 상품 구분 코드

\n" }, { "name": "status", "in": "formData", "description": "아래 중 하나는 필수적으로 설정이 필요합니다.\n ", "required": true, "type": "string", "maxLength": 10, "enum": [ "order_placed", "order_shipped", "delivering", "delivered" ], "x-portone-name": "배송상태 구분코드", "x-portone-description": "

배송등록 할 결제건의 배송 상태코드

\n" }, { "name": "carrier_tracking_id", "in": "formData", "description": "운송장 번호 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 64, "x-portone-name": "운송장 번호", "x-portone-description": "

배송등록 할 결제건의 운송장 번호 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "carrier_type", "in": "formData", "description": "운송사 이름 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 64, "x-portone-name": "운송사 이름", "x-portone-description": "

운송사 이름 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "estimated_delivery_datetime", "in": "formData", "description": "도착예상시간 Unix timestamp sec (digital인 경우, 지금 시간을 기록해도 무방)", "required": true, "type": "integer", "maxLength": 64, "x-portone-name": "도착예상시간", "x-portone-description": "

도착예상시간 Unix timestamp sec (digital인 경우, 지금 시간을 기록해도 무방)

\n" }, { "name": "estimated_update_datetime", "in": "formData", "description": "배송상태 업데이트 예정시간 Unix timestamp sec (digital인 경우, 지금 시간을 기록해도 무방)", "required": true, "type": "integer", "maxLength": 64, "x-portone-name": "배송상태 업데이트 예정시간", "x-portone-description": "

배송상태 업데이트 예정시간 Unix timestamp sec (digital인 경우, 지금 시간을 기록해도 무방)

\n" }, { "name": "reason", "in": "formData", "description": "사유", "type": "string", "maxLength": 64, "x-portone-name": "사유", "x-portone-description": "" }, { "name": "refundable", "in": "formData", "description": "환불가능여부\n ", "required": true, "type": "string", "maxLength": 64, "enum": [ "yes", "no" ], "x-portone-name": "환불가능여부", "x-portone-description": "

결제건의 환불가능여부를 나타내는 파라미터

\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 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_city", "in": "formData", "description": "수신자 시 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 시", "x-portone-description": "

수신자 주소 중 시 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_zip", "in": "formData", "description": "수신자 우편번호 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 우편번호", "x-portone-description": "

수신자 우편번호 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_state", "in": "formData", "description": "수신자 주. 미국이 아닌 경우 'N/A'로 표기 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 주", "x-portone-description": "

수신자 주소 중 주. 미국이 아닌 경우 'N/A'로 표기 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_street", "in": "formData", "description": "수신자 거리명 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 거리명", "x-portone-description": "

수신자 거리명 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_phone", "in": "formData", "description": "수신자 전화번호 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 전화번호", "x-portone-description": "

수신자 전화번호 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_firstname", "in": "formData", "description": "수신자 이름 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 이름", "x-portone-description": "

수신자 이름 (physical 주문인 경우 필수 파라미터)

\n" }, { "name": "shipping_address_lastname", "in": "formData", "description": "수신자 성 (physical 주문인 경우 필수 파라미터)", "type": "string", "maxLength": 40, "x-portone-name": "수신자 성", "x-portone-description": "

수신자 성 (physical 주문인 경우 필수 파라미터)

\n" } ], "responses": { "200": { "description": "정상 결제", "schema": { "$ref": "#/definitions/PaymentwallDeliveryAnnotation" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" } }, "x-portone-supported-pgs": [ "paymentwall" ], "x-portone-category": "pg.paymentwall" } }, "/receipts/{imp_uid}": { "get": { "tags": [ "receipts" ], "summary": "발급내역 단건 조회 API", "description": "포트원을 통해 발행된 현금영수증 상세정보를 조회하는 API입니다.", "operationId": "getReceipt", "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/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 imp_uid 거래를 처리하는데 사용된 PG설정값을 그대로 활용합니다.
\n (ex. KCP 거래건이면 KCP를 통해 현금영수증 발행 API처리)
\n 현금영수증 발급 금액은 현금성 거래의 금액으로 자동 적용됩니다. 부분취소된 거래인 경우 남은 잔액으로 발급됩니다.

\n

지원되는 PG사

\n ", "operationId": "issueReceipt", "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": "product_type", "in": "formData", "description": "현금영수증 발행 주문 상품구분
(필수 : KSNET)\n ", "required": false, "type": "string", "enum": [ "real", "digital" ], "x-portone-name": "주문 상품구분", "x-portone-description": "

현금영수증 발행 주문 상품구분

\n", "x-portone-supported-pgs": [ "ksnet", "nice_v2" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "identifier", "in": "formData", "description": "현금영수증 발행대상 식별정보.
국세청현금영수증카드, 휴대폰번호, 주민등록번호, 사업자등록번호를 기재합니다.", "required": true, "type": "string", "x-portone-name": "식별정보", "x-portone-description": "

현금영수증 발행대상 식별정보로 국세청현금영수증카드, 휴대폰번호, 주민등록번호, 사업자등록번호를 기재합니다.

\n", "x-portone-per-pg": { "html5_inicis": { "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 (필수 : KICC, 헥토파이낸셜(구 세틀뱅크))
\n KG이니시스/NHN KCP/나이스페이먼츠/키움페이(구 다우, 페이조아), 웰컴페이먼츠는 identifier 만으로 자동 처리

\n ", "required": false, "type": "string", "enum": [ "person", "business", "phone", "taxcard" ], "x-portone-name": "식별정보 구분코드", "x-portone-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 ", "required": false, "type": "string", "default": "person", "enum": [ "person", "company" ], "x-portone-name": "타입(대상)", "x-portone-description": "

현금영수증 발행할 대상의 타입

\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "nice_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "company_tel", "in": "formData", "description": "발행 상점 고객센터 번호
(필수 : 키움페이(구 다우, 페이조아))", "required": false, "type": "string", "x-portone-name": "고객센터 번호", "x-portone-description": "

현금영수증 발행 상점 고객센터 번호

\n", "x-portone-supported-pgs": [ "daou" ], "x-portone-per-pg": { "daou": { "required": true } } }, { "name": "company_name", "in": "formData", "description": "상점 사업자 명
(필수 : 키움페이(구 다우, 페이조아))", "required": false, "type": "string", "x-portone-name": "상점 사업자 명", "x-portone-description": "

현금영수증 발행 상점 사업자 명

\n", "x-portone-supported-pgs": [ "daou" ], "x-portone-per-pg": { "daou": { "required": true } } }, { "name": "corp_reg_no", "in": "formData", "description": "상점 사업자 번호
(필수 : 키움페이(구 다우, 페이조아), 웰컴페이먼츠)", "required": false, "type": "string", "x-portone-name": "상점 사업자 번호", "x-portone-description": "

현금영수증 발행 상점 사업자 번호

\n", "x-portone-supported-pgs": [ "daou", "welcome" ], "x-portone-per-pg": { "daou": { "required": true }, "welcome": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "구매자 이름
(필수 : KSNET, 스마트로 - 신모듈)
(현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.)", "required": false, "type": "string", "x-portone-name": "구매자 이름", "x-portone-summary": "

현금영수증을 발행할 결제건의 구매자 이름

\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": "구매자 전화번호
(필수 : 스마트로 - 신모듈, 웰컴페이먼츠)
(현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.)", "required": false, "type": "string", "x-portone-name": "구매자 전화번호", "x-portone-summary": "

현금영수증을 발행할 결제건의 구매자 전화번호

\n", "x-portone-description": "

현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.

\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "welcome": { "requiqred": true } } }, { "name": "tax_free", "in": "formData", "description": "현금영수증 발행금액 중 면세금액
지정하지 않으면 0원으로 적용
발행금액의 1/11 이 부가세로 자동 적용되므로, 부가세금액 조정을 위해서는 `tax_free` 파라메터를 활용해주세요.", "required": false, "type": "integer", "x-portone-name": "면세금액", "x-portone-summary": "

현금영수증 발행금액 중 면세금액으로 지정하지 않으면 0원으로 적용합니다.

\n", "x-portone-description": "

발행금액의 1/11 이 부가세로 자동 적용되므로, 부가세금액 조정을 위해서는 tax_free 파라메터를 활용해주세요.

\n" }, { "name": "vat", "in": "formData", "description": "Deprecated 되었으므로 tax_free 파라메터를 사용해주세요.
부가세(지정하지 않으면 공급가액의 10%로 자동 적용)", "required": false, "type": "integer", "deprecated": true }, { "name": "vat_amount", "in": "formData", "description": "부가세 지정 가맹점에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다.", "required": false, "type": "number", "x-portone-name": "부가세 지정 금액", "x-portone-description": "

부가세 지정 가맹점에 한해 현금영수증 발행 금액 중 부가세 금액으로 부가세를 지정할 수 있습니다.

\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 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.

\n" }, "smartro_v2": { "description": "

현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 취소해야합니다.

\n" }, "nice_v2": { "description": "

현금영수증 유의사항

\n\n" } } }, "delete": { "tags": [ "receipts" ], "summary": "포트원 발급분 취소 API", "description": "포트원을 통해 발급한 현금영수증 발급거래를 취소합니다
\n 포트원과 별개로 거래된 현금영수증 취소는 DELETE 외부 발급분 취소 API를 이용해주세요.\n

지원되는 PG사

\n", "operationId": "revokeReceipt", "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/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

지원되는 PG사

\n ", "operationId": "issueExternalReceipt", "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-summary": "

현금영수증 발행을 위한 가맹점 주문번호

\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": "현금영수증 발행 주문 상품구분
(필수 : KSNET)\n ", "required": false, "type": "string", "enum": [ "real", "digital" ], "x-portone-name": "주문 상품구분", "x-portone-description": "

현금영수증 발행할 결제건의 주문 상품구분

\n", "x-portone-supported-pgs": [ "ksnet" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "identifier", "in": "formData", "description": "현금영수증 발행대상 식별정보
국세청현금영수증카드, 휴대폰번호, 주민등록번호, 사업자등록번호를 기재합니다.", "required": true, "type": "string", "x-portone-name": "식별정보", "x-portone-description": "

현금영수증 발행대상 식별정보로 국세청현금영수증카드, 휴대폰번호, 주민등록번호, 사업자등록번호를 기재합니다.

\n", "x-portone-per-pg": { "html5_inicis": { "description": "

identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.

\n" }, "kcp": { "description": "

identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.

\n" }, "nice": { "description": "

identifier을 활용하여 자동으로 타입 처리가 이루어지므로, 별도의 identifier_type 파라미터 입력은 필요하지 않습니다.

\n" } } }, { "name": "identifier_type", "in": "formData", "description": "현금영수증 발행대상 식별정보 유형
\n (필수 : KICC, 헥토파이낸셜(구 세틀뱅크))
\n KG이니시스/NHN KCP/나이스페이먼츠, 웰컴페이먼츠는 identifier 만으로 자동 처리

\n ", "required": false, "type": "string", "enum": [ "person", "business", "phone", "taxcard" ], "x-portone-name": "식별정보 구분코드", "x-portone-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 ", "required": false, "type": "string", "default": "person", "enum": [ "person", "company" ], "x-portone-name": "타입(대상)", "x-portone-description": "

현금영수증 발행할 대상의 타입

\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "nice_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "구매자 이름
\n (필수 : KSNET, 스마트로 - 신모듈)
\n (현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.)", "required": false, "type": "string", "x-portone-name": "구매자 이름", "x-portone-summary": "

현금영수증을 발행할 결제건의 구매자 이름

\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 (필수 : 스마트로 - 신모듈, 웰컴페이먼츠)\n
(현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.)", "required": false, "type": "string", "x-portone-name": "구매자 전화번호", "x-portone-summary": "

현금영수증을 발행할 결제건의 구매자 전화번호

\n", "x-portone-description": "

현금영수증 발행건 사후 추적을 위해 입력을 강력히 권장합니다.

\n", "x-portone-per-pg": { "smartro_v2": { "required": true }, "welcome": { "required": true } } }, { "name": "tax_free", "in": "formData", "description": "현금영수증 발행금액 중 면세금액
지정하지 않으면 0원으로 적용
발행금액의 1/11 이 부가세로 자동 적용되므로, 부가세금액 조정을 위해서는 tax_free 파라메터를 활용해주세요.", "required": false, "type": "integer", "x-portone-name": "면세금액", "x-portone-summary": "

현금영수증 발행금액 중 면세금액으로 지정하지 않으면 0원으로 적용

\n", "x-portone-description": "

발행금액의 1/11 이 부가세로 자동 적용되므로, 부가세금액 조정을 위해서는 tax_free 파라메터를 활용해주세요.

\n" }, { "name": "pg", "in": "formData", "description": "PG설정이 2개 이상인 경우, 현금영수증 발행처리를 원하는 PG사를 지정하실 수 있습니다.\n pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.
\n 지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.
\n ", "required": false, "type": "string", "maxLength": 80, "x-portone-name": "PG 구분코드", "x-portone-description": "

현금영수증을 발행할 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": "상점 사업자 번호
(필수 : 웰컴페이먼츠)", "required": false, "type": "string", "x-portone-name": "상점 사업자 번호", "x-portone-description": "

현금영수증 발행 상점 사업자 번호

\n", "x-portone-supported-pgs": [ "welcome" ], "x-portone-per-pg": { "welcome": { "required": true } } }, { "name": "pay_method", "in": "formData", "description": "결제건의 결제수단
(필수 : 웰컴페이먼츠)\n ", "required": false, "type": "string", "enum": [ "trans", "vbank" ], "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/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 호출시 현금영수증 정보를 정확하게 입력하셔야 합니다.

\n" }, "smartro_v2": { "description": "

현금영수증 발급 API를 통해 발급받은 경우는 현금영수증을 발급 받은 거래건 취소 시 현금영수증 자동 발급 취소를 지원하지 않기 때문에, 따로 현금영수증 발급 취소 API를 통해 취소해야합니다.

\n" }, "nice_v2": { "description": "

현금영수증 유의사항

\n\n" } } }, "delete": { "tags": [ "receipts" ], "summary": "외부 발급분 취소 API", "description": "포트원과 별개로 거래된 일반 현금결제에 대해, 포트원 내에 설정된 PG사로 포트원 API를 이용해 현금영수증 발행취소하는 API입니다.\n

지원되는 PG사

\n", "operationId": "revokeExternalReceipt", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "path", "description": "발급취소대상 가맹점 주문번호
merchant_uid는 현금결제를 구분할 고유주문번호를 의미하며 발행에 사용된 값을 전달하면 됩니다.", "required": true, "type": "string", "x-portone-name": "가맹점 주문번호", "x-portone-summary": "

발급취소대상 가맹점 주문번호

\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 카드사표준코드, 카드사명을 모두 조회할 수 있습니다(금융결제원표준코드 기준)", "operationId": "allCardCodes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/StandardCodeListResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "코드에 해당되는 카드사정보를 찾을 수 없음" } }, "x-portone-category": "etc.code" } }, "/cards/{card_standard_code}": { "get": { "tags": [ "codes" ], "summary": "카드사명 단건조회 API", "description": "특정 카드사표준코드를 기준으로 카드명을 조회합니다.
\n 카드사표준코드, 카드사명을 조회할 수 있습니다(금융결제원표준코드 기준)", "operationId": "cardCodes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "card_standard_code", "in": "path", "description": "", "required": true, "type": "string", "x-portone-name": "카드사코드", "x-portone-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 은행표준코드, 은행명을 모두 조회할 수 있습니다(금융결제원표준코드 기준)", "operationId": "allBankCodes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "responses": { "200": { "description": "", "schema": { "$ref": "#/definitions/StandardCodeListResponse" } }, "401": { "description": "인증 Token이 전달되지 않았거나 유효하지 않은 경우" }, "404": { "description": "코드에 해당되는 은행정보를 찾을 수 없음" } }, "x-portone-category": "etc.code" } }, "/banks/{bank_standard_code}": { "get": { "tags": [ "codes" ], "summary": "은행명 단건조회 API", "description": "은행코드로 은행명을 조회합니다.
\n 은행표준코드, 은행명을 조회할 수 있습니다(금융결제원표준코드 기준)", "operationId": "bankCodes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "parameters": [ { "name": "bank_standard_code", "in": "path", "description": "", "required": true, "type": "string", "x-portone-name": "은행코드", "x-portone-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입니다.

빌링키 저장 시, buyer_email, buyer_name 등의 정보는 customer 부가정보인 customer_email, customer_name 등으로 함께 저장됩니다.
빌링키 발급 API참조", "operationId": "onetime", "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": "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 중 면세공급가액.
기본값은 0이므로(amount 모두 과세대상이므로) amount의 1/11 이 부가세로 처리됩니다.", "required": false, "type": "number", "x-portone-name": "면세금액", "x-portone-description": "

amount 중 면세공급가액

\n", "x-portone-per-pg": { "ksnet": { "description": "

면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.

\n

과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.

\n" }, "welcome": { "description": "

부가세업체정함 설정 가맹점에 한해 사용 가능합니다.

\n" } } }, { "name": "vat_amount", "in": "formData", "description": "amount 중 부가세 금액.
부가세를 지정할 수 있으며, tax_free=0, vat_amount=0으로 영세율로 결제 가능합니다.(기본값: null)
지원되는 PG사
", "required": false, "type": "number", "x-portone-name": "부가세", "x-portone-summary": "

amount 중 부가세 금액

\n", "x-portone-description": "

부가세를 지정할 수 있으며, tax_free=0, vat_amount=0으로 영세율로 결제 가능합니다.\nPG사와의 사전 협의 후 사용가능합니다. (기본값: null)

\n", "x-portone-supported-pgs": [ "nice", "html5_inicis", "nice_v2", "welcome", "tosspay_v2" ], "x-portone-per-pg": { "welcome": { "description": "

부가세업체정함 설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.

\n" } } }, { "name": "vat", "in": "formData", "description": "Deprecated 되었습니다. tax_free 파라메터를 사용해주세요.
결제금액 중 부가세 금액(파라메터가 누락되면 10%로 자동 계산됨)", "required": false, "type": "number", "deprecated": true }, { "name": "card_number", "in": "formData", "description": "카드번호(dddd-dddd-dddd-dddd) 기재 양식을 유의하세요.", "required": true, "type": "string", "x-portone-name": "카드번호", "x-portone-description": "

카드번호(dddd-dddd-dddd-dddd) 기재 양식을 유의하세요.

\n" }, { "name": "expiry", "in": "formData", "description": "카드 유효기간(YYYY-MM) 기재 양식을 유의하세요.", "required": true, "type": "string", "x-portone-name": "카드 유효기간", "x-portone-description": "

카드 유효기간(YYYY-MM) 기재 양식을 유의하세요.

\n" }, { "name": "birth", "in": "formData", "description": "생년월일6자리(YYMMDD) (법인카드의 경우 사업자등록번호10자리)
(생년월일기재가 필요없는 해외 PG사 결제 요청의 경우 000000으로 고정 기재하도 무방)", "required": true, "type": "string", "x-portone-name": "생년월일 6자리", "x-portone-summary": "

생년월일6자리(YYMMDD) (법인카드의 경우 사업자등록번호10자리)

\n", "x-portone-description": "

PG사별로 혹은 계약상황에 따라 필수값 여부가 상이합니다.

\n

생년월일 기재가 필요없는 해외 PG사 결제 요청의 경우 000000으로 고정 기재하도 무방합니다.

\n", "x-portone-per-pg": { "ksnet": { "description": "

카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어\n birth(생년월일 6자리 혹은 사업자 등록번호 10자리)는 검증하지 않습니다.

\n" } } }, { "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": { "description": "

카드번호와 유효기간만으로 결제를 요청하는 비인증 승인 API만 연동되어 있어\n pwd_2digit(생년월일 6자리 혹은 사업자 등록번호 10자리)는 검증하지 않습니다.

\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": "customer_uid", "in": "formData", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호.

(결제에 사용된 카드정보를 빌링키 형태로 저장해두고 재결제에 사용하시려면 customer_uid를 지정해주세요. 비 인증 결제(빌링키) API, 결제 예약 API로 재결제를 진행하실 수 있습니다. customer_uid가 없는 경우 저장되지 않습니다.)", "required": false, "type": "string", "maxLength": 80, "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "

빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호

\n", "x-portone-unsupported-pgs": [ "ksnet", "tosspayments" ] }, { "name": "pg", "in": "formData", "description": "API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.
지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.
", "required": false, "type": "string", "maxLength": 80, "x-portone-name": "PG 구분코드", "x-portone-description": "

결제 요청할 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": "주문자명
(필수 : KSNET, 웰컴페이먼츠)
페이먼트월 PG를 이용하는 경우 구매자명은 first name 과 last name이 한칸 띄어쓰기 형태로 구분되서 유입되어야 합니다.
예시) Michael Jackson", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "구매자명", "x-portone-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 할부개월수 적용
(결제금액 50,000원 이상 한정, default = 0(일시불)) ", "required": false, "type": "integer", "x-portone-name": "카드할부개월수", "x-portone-summary": "

결제건의 카드할부개월수으로 기본값은 **0(일시불)**입니다.

\n", "x-portone-description": "

결제금액 50,000원 이상 한정으로 2 이상의 integer 할부개월수가 적용가능합니다.

\n" }, { "name": "interest_free_by_merchant", "in": "formData", "description": "카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하고자 PG사와 계약된 경우
(현재, 나이스페이먼츠, (신) 나이스페이만 지원됨)", "required": false, "type": "boolean", "default": false, "x-portone-name": "가맹점 부담 무이자 할부여부", "x-portone-description": "

카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하는지에 대한 여부 (PG사와 사전 계약이 필요)

\n", "x-portone-supported-pgs": [ "nice_v2", "nice" ] }, { "name": "use_card_point", "in": "formData", "description": "승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부 flag. PG사 영업담당자와 계약 당시 사전 협의 필요
(현재, (신) 나이스페이만 지원됨)", "required": false, "type": "boolean", "default": false, "x-portone-name": "카드포인트 사용여부", "x-portone-description": "

승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부 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": "판매 상품에 대한 구분 값
real : 실물상품
digital : 디지털 컨텐츠
(필수 : KSNET)", "required": false, "type": "string", "enum": [ "real", "digital" ], "x-portone-name": "주문 상품구분", "x-portone-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": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호
PG사가 발급한 빌링키와 1:1로 맵핑되는 가맹점이 지정한 고유값입니다.
customer_uid는 카드번호 단위로 구분되서 저장되어야 합니다.", "required": true, "type": "string", "maxLength": 80, "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-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 중 면세공급가액.
기본값은 0이므로(amount 모두 과세대상이므로) amount의 1/11 이 부가세로 처리됩니다.", "required": false, "type": "number", "x-portone-name": "면세금액", "x-portone-description": "

amount 중 면세공급가액

\n", "x-portone-per-pg": { "ksnet": { "description": "

면세 설정 상점아이디에서 면세처리를 위해 결제 금액과 동일한 면세 금액을 반드시 입력해야 합니다. 그렇지 않은 경우 매출전표에 전액 면세가 아닌 것으로 표시되고 실제 처리 내역이 다를 수 있습니다.

\n

과세 설정 상점아이디에서 면세 금액을 전달하지 않아야 합니다. 면세 금액을 전달하는 경우 매출전표에 면세 처리된 것으로 표시되지만 실제 처리 내역과 다를 수 있습니다.

\n" }, "welcome": { "description": "

부가세업체정함 설정 가맹점에 한해 사용 가능합니다.

\n" } } }, { "name": "vat_amount", "in": "formData", "description": "amount 중 부가세 금액.
부가세를 지정할 수 있으며, tax_free=0, vat_amount=0으로 영세율로 결제 가능합니다.(기본값: null)
지원되는 PG사
", "required": false, "type": "number", "x-portone-name": "부가세", "x-portone-summary": "

amount 중 부가세 금액

\n", "x-portone-description": "

부가세를 지정할 수 있으며, tax_free=0, vat_amount=0으로 영세율로 결제 가능합니다.(기본값: null)

\n", "x-portone-supported-pgs": [ "nice", "html5_inicis", "nice_v2", "welcome" ], "x-portone-per-pg": { "welcome": { "description": "

부가세업체정함 설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.

\n" } } }, { "name": "vat", "in": "formData", "description": "Deprecated 되었습니다. tax_free 파라메터를 사용해주세요.
결제금액 중 부가세 금액(파라메터가 누락되면 10%로 자동 계산됨)", "required": false, "type": "number", "deprecated": true }, { "name": "name", "in": "formData", "description": "제품명", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "제품명", "x-portone-description": "

결제 요청할 결제건의 제품명

\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "danal_tpay": { "required": true } } }, { "name": "buyer_name", "in": "formData", "description": "주문자명
(필수 KSNET, 스마트로 - 신모듈, 웰컴페이먼츠)
페이먼트월 PG사인 경우 first name, last name 한칸 띄어쓰기로 구분되어 유입되어야 합니다.", "required": false, "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" } } }, { "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 할부개월수 적용
(결제금액 50,000원 이상 한정, default = 0(일시불))", "required": false, "type": "integer", "x-portone-name": "카드 할부 개월수", "x-portone-description": "

결제건의 카드 할부 개월 수로 기본값은 **0(일시불)**입니다.

\n" }, { "name": "interest_free_by_merchant", "in": "formData", "description": "카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하고자 PG사와 계약된 경우
(현재, 나이스페이먼츠, (신) 나이스페이만 지원됨)", "required": false, "type": "boolean", "default": false, "x-portone-name": "가맹점부담 무이자 할부여부", "x-portone-description": "

카드할부처리할 때, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 고객대신 가맹점이 지불하는지에 대한 여부 (PG사와 사전 계약이 필요)

\n", "x-portone-supported-pgs": [ "nice", "ksnet", "nice_v2" ] }, { "name": "use_card_point", "in": "formData", "description": "승인요청시 카드사 포인트 차감하며 결제승인처리할지 flag. PG사 영업담당자와 계약 당시 사전 협의 필요
(현재, 나이스페이먼츠, 스마트로 - 신모듈, (신) 나이스페이만 지원됨)", "required": false, "type": "boolean", "default": false, "x-portone-name": "카드포인트 사용여부", "x-portone-description": "

승인요청시 카드사 포인트 차감하며 결제승인처리할지 여부 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
(필수 : 페이먼트월)", "required": false, "type": "string", "x-portone-name": "브라우저의 IP", "x-portone-description": "

구매자 브라우져(PC)의 IP

\n", "x-portone-per-pg": { "paymentwall": { "required": true } } }, { "name": "product_type", "in": "formData", "description": "판매 상품에 대한 구분 값 (real : 실물상품, digital : 디지털 컨텐츠)
(필수:KSNET)", "required": false, "type": "string", "enum": [ "real", "digital" ], "x-portone-name": "주문 상품구분", "x-portone-description": "

결제 요청할 판매 상품에 대한 구분 값

\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": "현금영수증 발행할 대상

지원되는 PG사
(신) 토스페이 경우 anonymous 전달 시 현금영수증 미발행 그 외의 값을 전달한 경우 현금영수증 자동 발행으로 동작합니다.", "required": false, "type": "string", "enum": [ "person", "company", "anonymous" ], "x-portone-name": "현금영수증 발행대상 타입", "x-portone-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사별로 특화된 파라미터.
전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다.
각 PG사별 스펙은 PG사별 연동 문서 참고해주세요", "required": false, "type": "string", "x-portone-name": "bypass 데이터", "x-portone-summary": "

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": "

Manges & Fraudnet 이상 거래 대응 필요

페이팔은 이상 거래를 줄이기 위해 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\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
파라미터의미예시
fnclsfnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99로 항상 고정fnparams-dede7cc5-15fd-4c75-a9f4-36c430ee3a99
f주문번호(merchant_uid) 전달mid_1683690731602
sstring7WBB3CKT63FRG_checkout-page
sandbox페이팔 Account ID가 테스트 용인지 운영 용인지 여부true
\n

안드로이드

Android Integration of Magnes 가이드 문서에 따라 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 두번째 파라미터(paypalClientMetaDataId)로는 주문번호(merchant_uid)를 전달해주시면 됩니다.

\n
MagnesResult magnesResult = MagnesSDK.getInstance()\n.collectAndSubmit(Context context, String paypalClientMetaDataId,\nHashMap<String, String>\nadditionalData)
IOS Swift

iOS Swift SDK Integration 가이드 문서에 따라 아래와 같이 collectAndSubmit 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 첫번째 파라미터(withPayPalClientMetadataId)로는 주문번호(merchant_uid)를 전달해주시면 됩니다.

\n
let magnesResult:MagnesResult =\nMagnesSDK.shared().collectAndSubmit(withPayPalClientMetadataId:\n\"YOUR-PAYPAL-CLIENT-METADATA-ID\", withAdditionalData: [String: String])
IOS Objective-C

iOS Objective-C SDK Integration of Magnes 가이드 문서에 따라 아래와 같이 collectAndSubmitWithPayPalClientMetadataId 메소드 호출을 통해 페이팔로 디바이스 정보를 보내야합니다. 이때 첫번째 파라미터(YOUR-PAYPAL-CLIENT-METADATA-ID)로는 주문번호(merchant_uid)를 전달해주시면 됩니다.

\n
//PPRMOCMagnesSDK *magnesSDK = [PPRMOCMagnesSDK shared];\nPPRMOCMagnesSDKResult *magnesResult =\n[magnesSDK\ncollectAndSubmitWithPayPalClientMetadataId:@\"YOUR-PAYPAL-CLIENT-METADATA-ID\"\nwithAdditionalData:@{}];

고위험 결제 처리

페이팔은 판매자 보호 정책을 통해 가맹점 거래에서 이상 거래나 사기 등이 발생 시, 판매자 보호 정책을 통해 가맹점이 손해 입을 수 있는 부분을 보존하는 판매자 보호 프로그램을 가지고 있습니다. 이 판매자 보호 정책을 적용하기 위해서는 페이팔 측에서 제공하는 STC 기능을 사용해야 합니다.

\n

STC 기능을 사용하시기 위해 다음 정보를 확인하셔야 합니다.

\n
    \n
  1. 페이팔 Business 계정 가입시 산업 종류(Industry)를 결정하는데, 계정의 산업 종류를 확인해야 합니다.
  2. \n
  3. 계정의 산업 종류를 확인하신 뒤, loadUI 호출 해 빌링키를 발급 받을때 그리고 발급 된 빌링키로 재결제(again API 호출)할때 모두 bypass.paypal_v2 객체에 아래와 같은 형식으로 전달해주셔야 합니다.
  4. \n
\n

발급 된 빌링키로 단건 결제(again API 호출)시 STC 적용하기

await 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)
" } } } }, "/subscribe/payments/schedule": { "get": { "tags": [ "subscribe" ], "summary": "결제예약 복수조회 API", "description": "기간범위를 지정하여 결제예약목록을 조회할 수 있습니다. 결제예약정보가 (페이징된)목록으로 전달되며, 최대 3개월 단위로 조회가 가능합니다.", "operationId": "findSchedulesByRange", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "schedule_from", "in": "query", "description": "조회 시작시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')", "required": true, "type": "integer", "x-portone-name": "조회 시작시각", "x-portone-description": "

조회 시작시각 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 ", "required": false, "type": "string", "enum": [ "scheduled", "executed", "revoked" ], "x-portone-name": "예약상태", "x-portone-description": "

조회할 결제건의 예약상태

\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": "정렬방식
scheduled : 예약일자 과거순
(Default : 예약일자 최신순)", "required": false, "type": "string", "x-portone-name": "정렬방식", "x-portone-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입니다.
비 인증 결제(빌링키) API를 포트원이 대신 수행하는 개념)
\n 결제 요청에 대한 결과는 notice_url에 설정한 EndPoint URL로 웹훅을 통해 수신(POST request)받을 수 있습니다.

\n ", "operationId": "schedule", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid", "in": "formData", "description": "빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호", "required": true, "type": "string", "maxLength": 80, "x-portone-name": "구매자의 결제 수단 식별 고유번호", "x-portone-description": "

빌링키와 매핑되며 가맹점에서 채번하는 구매자의 결제 수단 식별 고유번호

\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)

\n", "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)

\n", "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자리)

\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파라메터 적용되지 않습니다.)

API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.
지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.
", "required": false, "type": "string", "maxLength": 80, "x-portone-name": "pg 구분코드", "x-portone-summary": "

결제 예약을 요청할 PG사 구분코드

\n", "x-portone-description": "

신규 customer_uid를 등록하는 경우에만 유효합니다.(기존에 등록된 customer_uid로만 schedule 하는 경우에는 pg파라메터 적용되지 않습니다.)

\n

API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.

\n

지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.

\n\n" }, { "name": "schedules", "in": "formData", "description": "결제예약 스케쥴
[ 필수항목 ]
merchant_uid : 가맹점 주문번호(동일한 주문번호로 중복결제 불가) (스마트로 - 신모듈의 경우, 특수문자 포함이 불가능합니다.)
schedule_at : 결제요청 예약시각(초) (UNIX timestamp in seconds)
currency : 통화 e.g.) KRW, USD 등(단, (신) 페이팔의 경우 KRW 결제가 불가능하므로 반드시 유효한 값을 필수로 입력해야합니다.)
amount : 결제금액
[ 선택항목 ]
tax_free : amount 중 면세공급가액(기본값 : 0)
vat_amount : amount 중 부가세 금액(기본값 : null, 현재 나이스페이먼츠, 이니시스, (신) 나이스페이, 웰컴페이먼츠, (신) 토스페이 지원)
name : 주문명(누락되면 포트원 자체 기본값 사용)
buyer_name : 주문자명(필수 : KSENT, 스마트로-신모듈)
buyer_email : 주문자Email (필수 : 스마트로-신모듈)
buyer_tel : 주문자 전화번호 (필수 : 스마트로-신모듈)
buyer_addr : 주문자 주소
buyer_postcode : 주문자 우편번호
custom_data : 결제수행 시 사용될 custom_data 값
notice_url : 예약결제수행 후 통지될 Notification URL(지정되지 않으면 관리자페이지의 Notification URL로 발송)
product_type :\n 판매 상품에 대한 구분 값 (real : 실물상품, digital : 디지털 컨텐츠) (필수 : KSNET)
cash_receipt_type : 현금영수증 발행대상 (person, company, anonymous) ((신) 토스페이의 경우 anonymous 전달 시 미발행 그 외 경우 현금영수증 자동발행으로 동작합니다.)
card_quota : 카드할부개월수. 2 이상의 integer 할부개월수 적용(결제금액 50,000원 이상 한정, default = 0(일시불))
interest_free_by_merchant : 카드할부처리시, 할부이자가 발생하는 경우(카드사 무이자 프로모션 제외) 부과되는 할부이자를 가맹점이 지불하고자 PG사와 계약된 경우(default : false) (현재, 나이스페이먼츠, KSNET만 지원됨)
use_card_point : 승인요청시 카드사 포인트 차감하며 결제승인처리할지 flag. PG사 영업담당자와 계약 당시 사전 협의 필요(default : false) (현재, 나이스페이먼츠만 지원됨)
product_count : 결제 상품의 개수 (Default : 1)
bypass : 포트원이 정규화하기 어려운 JSON string 형식의 PG사별 specific 파라미터.전달 한 값은 가공 없이 그대로 PG사로 전달 됩니다.

extra.naverUseCfm : 이용완료일 YYYYMMDD (네이버페이 반복결제 계약 시 이용완료일 필수로 설정된 가맹점에 한함)", "required": true, "type": "array", "items": { "$ref": "#/definitions/ScheduleAnnotation" }, "default": "[ { "merchant_uid": "your_merchant_uid1", "schedule_at": 1478150985, "currency": "KRW", "amount": 1004, "name": "주문명", "buyer_name": "주문자명", "buyer_email": "주문자 Email주소", "buyer_tel": "주문자 전화번호", "buyer_addr": "주문자 주소", "buyer_postcode": "주문자 우편번호" }, { "merchant_uid": "your_merchant_uid2", "schedule_at": 1478150985, "amount": 1004, "name": "주문명", "buyer_name": "주문자명", "buyer_email": "주문자 Email주소", "buyer_tel": "주문자 전화번호", "buyer_addr": "주문자 주소", "buyer_postcode": "주문자 우편번호"} ]", "x-portone-name": "결제예약 스케쥴", "x-portone-description": "

결제예약 스케쥴에 대한 배열

\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": "가맹점 거래 고유번호
(누락되면 customer_uid에 대한 결제예약정보 일괄취소)", "required": false, "schema": { "type": "string" }, "type": "array", "x-portone-name": "가맹점 주문번호", "x-portone-summary": "

결제 예약 취소할 결제건의 가맹점 거래 고유번호

\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입니다.

customer_uid별 결제예약목록을 조회할 수 있습니다. 결제예약정보가 (페이징된)목록으로 전달되며, 최대 3개월 단위로 조회가 가능합니다.

결제예약정보가 예약된 시각 기준으로 최신순으로 정렬되어 전달됩니다.", "operationId": "findSchedulesByCustomer", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "customer_uid", "in": "path", "description": "결제예약에 사용된 가맹점 거래 고유번호", "required": true, "type": "string", "x-portone-name": "빌링키", "x-portone-description": "

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 ", "required": false, "type": "string", "enum": [ "scheduled", "executed", "revoked" ], "x-portone-name": "예약상태", "x-portone-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" } }, "/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": "가상계좌번호를 발급하여 고객이 입금할 수 있도록 합니다.
\n 희망하시는 은행, 예금주명으로 입금이 가능한 가상계좌를 생성할 수 있습니다.(별도로 PG계약 필요)
\n 은행구분코드는 페이지 가장 하단에 있는 은행코드표를 참조하시기 바랍니다.\n

지원되는 PG사

\n ", "operationId": "createVbank", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "merchant_uid", "in": "formData", "description": "가맹점 거래 고유번호. 이미 결제가 이뤄진 적이 있는 merchant_uid로는 추가적인 가상계좌 생성이 불가능합니다.
\n (스마트로 - 신모듈의 경우, 특수문자 포함이 불가능합니다.)", "required": true, "type": "string", "maxLength": 40, "x-portone-name": "가맹점 주문번호", "x-portone-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": "상품구분
(KSNET 전용 필수파라미터입니다.)\n ", "required": false, "type": "string", "enum": [ "real", "digital" ], "x-portone-name": "상품구분", "x-portone-description": "

가상계좌 발급을 위한 결제건의 상품구분 코드

\n", "x-portone-supported-pgs": [ "ksnet" ], "x-portone-per-pg": { "ksnet": { "required": true } } }, { "name": "vbank_num", "in": "formData", "description": "고정식 가상계좌 발급 시, pg사로부터 전달받은 가상계좌 번호
(필수 : 스마트로 - 신모듈) (**사용을 위해 PG사와 협의 필요**) ", "required": false, "type": "string", "x-portone-name": "고정 가상 계좌 번호", "x-portone-description": "

고정식 가상계좌 발급 시, pg사로부터 전달받은 가상계좌 번호 (사용을 위해 PG사와 협의 필요)

\n", "x-portone-supported-pgs": [ "smartro_v2" ], "x-portone-per-pg": { "smartro_v2": { "description": "

고정식 가상계좌를 발급 하시는 경우, 필수로 입력해야합니다.

\n" } } }, { "name": "vbank_code", "in": "formData", "description": "은행구분코드
\n 링크보기", "required": true, "type": "string", "x-portone-name": "은행구분코드", "x-portone-summary": "

가상계좌 발급을 위한 은행구분코드

\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 (필수 : 이니시스, 나이스, 헥토파이낸셜(구 세틀뱅크), 스마트로 - 신모듈)
\n **토스페이먼츠 - 신모듈, KSNET, 웰컴페이먼츠의 경우 적용되지 않고 가맹점명이 사용됨**", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "가상계좌 예금주명", "x-portone-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사와 협의 필요**)", "required": false, "type": "string", "maxLength": 13, "x-portone-name": "계좌 고유 키", "x-portone-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": "주문자명
(필수 : 이니시스, 토스페이먼츠 - 신모듈, KSNET, 스마트로 - 신모듈, 웰컴페이먼츠)", "required": false, "type": "string", "maxLength": 16, "x-portone-name": "주문자명", "x-portone-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주소
(필수 : 이니시스,스마트로 - 신모듈)", "required": false, "type": "string", "maxLength": 64, "x-portone-name": "주문자 Email 주소", "x-portone-description": "

가상계좌 발급을 위한 결제건의 주문자 Email주소

\n", "x-portone-per-pg": { "html5_inicis": { "required": true }, "smartro_v2": { "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": { "smartro_v2": { "required": true }, "nice_v2": { "description": "

가상계좌 발급 건 에스크로 등록시 가상계좌 발급시 전달 한 주문자의 전화번호나 사업자 등록 번호가 사용됩니다.

\n" } } }, { "name": "business_registration_number", "in": "formData", "description": "주문자 사업자 등록번호
((신) 나이스페이 전용. (신) 나이스페이의 경우 가상계좌 발급 건 에스크로 등록시 가상계좌 발급시 전달 한 주문자의 전화번호나 사업자 등록 번호가 사용 됨)", "required": false, "type": "string", "maxLength": 10, "x-portone-name": "사업자 등록번호", "x-portone-description": "

주문자의 사업자 등록번호

\n", "x-portone-supported-pgs": [ "nice_v2" ], "x-portone-per-pg": { "nice_v2": { "description": "

API를 통한 가상 계좌 발급 시, 향후 해당 거래 건을 에스크로 배송 정보로 등록할 때 사용될 구매자의 사업자 번호를 business_registration_number 파라미터로 입력받고 있습니다.

\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사 구분자.
\n 관리자콘솔 API 방식 비인증 PG설정이 2개 이상인 경우 필수적으로 기재해야 하는 항목입니다.\n 동일 PG사에 두개의 MID 를 설정한 경우 아래 양식으로 기재 합니다.\n {PG사}.{PG상점아이디}\n \n (단, **이니시스 경우 필수값임** `inicis.{상점아이디}` 형태로 지정)", "required": false, "type": "string", "x-portone-name": "PG사 구분코드", "x-portone-description": "

가상계좌 발급 할 PG사 구분코드

\n", "x-portone-per-pg": { "html5_inicis": { "required": true, "description": "

inicis.{상점아이디} 형태로 지정 바랍니다.

\n" } } }, { "name": "notice_url", "in": "formData", "description": "가상계좌 입금시 입금통지받을 URL
\n 선언되지 않으면 포트원 관리자 페이지에 정의된 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-description": "

결제정보와 함께 저장할 추가정보로 객체로 전달되는 경우 JSON 문자열로 저장

\n" }, { "name": "tax_free", "in": "formData", "description": "면세금액
\n
지원되는 PG사
\n **웰컴페이먼츠**의 경우, `현금영수증 부가세업체정함` 설정 가맹점에 한해 사용이 가능합니다.
\n **나이스페이먼츠, (신) 나이스페이 **의 경우, 상점아이디의 과세설정이 **지정금액방식**(복합과세)으로 설정되어 있는 경우 **필수값** 입니다.\n 과세 혹은 면세로 설정된 상점아이디에서 파라미터 전달 시 가상계좌 생성이 불가능합니다.", "required": false, "type": "integer", "x-portone-name": "면세금액", "x-portone-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" } } }, { "name": "vat_amount", "in": "formData", "description": "amount 중 부가세 금액.
\n 부가세를 지정할 수 있으며, tax_free=0, vat_amount=0으로 영세율로 결제 가능합니다.(기본값: null)
\n
지원되는 PG사
", "required": false, "type": "number", "x-portone-name": "부가세", "x-portone-description": "

가상계좌 발급을 위한 결제건의 부가세 금액

\n", "x-portone-supported-pgs": [ "nice", "nice_v2", "welcome" ], "x-portone-per-pg": { "welcome": { "description": "

부가세업체정함 설정 가맹점에 한해 사용 가능하며 전체금액의 10% 이하로 설정해야 합니다. vat_amount가 총 상품가격의 10%를 초과할 경우는 결제가 거절됩니다.

\n" } } }, { "name": "pg_api_key", "in": "query", "description": "이니시스의 가맹점 콘솔에서 확인하셔야 하는 API Key 값으로 가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다.
\n (**이니시스 전용 필수 파라미터로 Query parameter입니다.**)", "required": false, "type": "string", "x-portone-name": "Api Key", "x-portone-summary": "

이니시스의 가맹점 콘솔에서 확인하셔야 하는 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 아직 입금이 되지 않은 가상계좌의 입금기한 또는 입금금액을 수정할 수 있습니다. (헥토파이낸셜(구 세틀뱅크)만 사용 가능)
\n imp_uid가 지정되어야 합니다.(포트원 기획 의도상 동일한 merchant_uid의 입금대기 중인 가상계좌가 N개 존재할 수 있으므로 imp_uid로만 가상계좌 수정이 가능합니다)", "operationId": "modifyVbank", "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" }, { "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 아직 입금이 되지 않은 가상계좌를 말소시킴으로써 구매자가 실수로 입금하는 경우를 방지하도록 합니다.
\n imp_uid가 지정되어야 합니다.(포트원 기획 의도상 동일한 merchant_uid의 입금대기 중인 가상계좌가 N개 존재할 수 있으므로 imp_uid로만 가상계좌 말소가 가능합니다)\n

지원되는 PG사

\n ", "operationId": "revokeVbank", "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" }, { "name": "pg_api_key", "in": "query", "description": "이니시스의 가맹점 콘솔에서 확인하셔야 하는 API Key 값으로 가상계좌 발급 및 말소 신청에 사용됩니다. 누락하거나 잘못된 키 입력 시 hashData 불일치 오류가 발생합니다.
\n POST 가상계좌 발급 API요청의 `pg_api_key`와 동일한 값입니다.
\n (**이니시스 전용 필수 파라미터로 Query parameter입니다.**)", "required": false, "type": "string", "x-portone-name": "API Key", "x-portone-summary": "

이니시스의 가맹점 콘솔에서 확인하셔야 하는 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": "가상계좌 환불 전, 확인차원에서 예금주를 조회하는 API
\n 은행코드, 계좌번호를 이용해 해당 계좌의 예금주 명을 조회합니다.
\n
KB국민은행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
", "operationId": "queryBankHolder", "consumes": [ "application/json", "application/x-www-form-urlencoded" ], "produces": [ "application/json" ], "parameters": [ { "name": "bank_code", "in": "query", "description": "은행코드(금융결제원 표준코드3자리)", "required": true, "type": "string", "x-portone-name": "은행코드", "x-portone-description": "

조회할 은행코드(금융결제원 표준코드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": "인증결과-성별 ", "type": "string", "x-portone-name": "성별", "x-portone-description": "

인증된 사용자의 성별

\n" }, "birthday": { "description": "인증결과-생년월일
ISO8601 형식의 문자열. YYYY-MM-DD 10자리 문자열", "type": "string", "x-portone-name": "생년월일", "x-portone-description": "

인증된 사용자의 생년월일 ISO8601 형식의 문자열. YYYY-MM-DD 10자리 문자열

\n" }, "foreigner": { "description": "인증결과-외국인 여부.
다날 본인인증서비스 계약시외국인 구분기능을 추가 요청하지 않은 경우 항상 false를 응답합니다.\n ", "type": "boolean", "x-portone-name": "외국인 여부", "x-portone-summary": "

인증된 사용자의 외국인 여부

\n", "x-portone-description": "

다날 본인인증서비스 계약시 외국인 구분기능을 추가 요청하지 않은 경우 항상 false를 응답합니다.

\n\n" }, "phone": { "description": "인증결과-사용된 휴대폰번호(신용카드 본인인증의 경우 해당사항없음). 특수기호없이 숫자로만 구성된 휴대폰번호가 전달됨. 통신사 사전승인이 이뤄지지 않으면 phone 속성은 존재하지 않습니다. 통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.", "type": "string", "x-portone-name": "휴대폰번호", "x-portone-summary": "

인증에 사용된 휴대폰 번호 (신용카드 본인인증의 경우 해당사항 없음)

\n", "x-portone-description": "

특수 기호없이 숫자로만 구성된 휴대폰번호가 전달되며 통신사 사전승인이 이뤄지지 않으면 phone 속성은 존재하지 않습니다.

\n

통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.

\n" }, "carrier": { "description": "인증결과-사용된 휴대폰번호의 통신사(신용카드 본인인증의 경우 해당사항없음). 통신사 사전승인이 이뤄지지 않으면 carrier 속성은 존재하지 않습니다. 통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.\n ", "type": "string", "x-portone-name": "통신사", "x-portone-summary": "

인증에 사용된 휴대폰번호의 통신사 (신용카드 본인인증의 경우 해당사항없음)

\n", "x-portone-description": "

통신사 사전승인이 이뤄지지 않으면 carrier 속성은 존재하지 않습니다.

\n

통신사 사전승인이 필요하므로 cs@portone.io 로 다날 CPID 와 함께 사용승인 요청주시면 안내도와드리겠습니다.

\n\n" }, "certified": { "description": "인증성공여부", "type": "boolean", "x-portone-name": "인증성공여부", "x-portone-description": "

본인인증 성공여부

\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 \n 다날 본인인증서비스 계약시외국인 구분기능 추가 요청을 해주셔야 사용이 가능합니다. 요청을 하지 않은 경우 null을 응답합니다.", "type": "boolean", "x-portone-name": "외국인 여부(nullable)", "x-portone-summary": "

본인인증 결과 외국인 여부(nullable)

\n", "x-portone-description": "

다날 본인인증서비스 계약시 외국인 구분기능 추가 요청을 해주셔야 사용이 가능합니다. 요청을 하지 않은 경우 null을 응답합니다.

\n\n" } } }, "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": "

본인인증 결과건의 포트원 인증 고유번호

\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