PortOne REST API - V2
API 결제, 결제 정보 조회, 결제 취소 등의 기능을 제공하는 REST API입니다.
V2 API hostname: api.portone.io
요청 및 응답 형식
요청과 응답의 본문은 JSON 형식입니다.
API 매개 변수 중 URL 경로에 들어가는 문자열 값이 있는 경우, URL 경로에 들어갈 수 없는 문자열은 이스케이프하여야 합니다. 자바스크립트의 encodeURIComponent
함수 등을 사용할 수 있습니다.
인증 방식
V2 API를 사용하기 위해서는 V2 API Secret이 필요하며, 포트원 관리자콘솔 내 결제연동 탭에서 발급받으실 수 있습니다.
인증 관련 API를 제외한 모든 API는 HTTP Authorization
헤더로 아래 형식의 인증 정보를 전달해주셔야 합니다.
Authorization: PortOne MY_API_SECRET
GET 요청 시 Body 대신 Query 사용하기
GET 요청 시에 Body를 전달해야 하는 경우, Body 대신 Query를 사용할 수 있습니다.
이 경우, Body 객체를 requestBody
Query 필드에 넣어주시면 됩니다.
하위호환성
포트원이 제공하는 모든 Stable API에 대해 아래와 같은 하위호환성이 보장됩니다.
현재 사용 가능한 입력 형식은 앞으로도 사용할 수 있습니다.
- 입력 형식 내 필드 정의가 삭제되지 않습니다.
필수 입력 정보가 추가되거나, 선택 입력 정보가 필수로 변경되지 않습니다.
- 오로지 선택 입력 정보만 추가될 수 있습니다.
- 하위 필드의 형식(타입) 또한 위 규칙을 지키며 변경됩니다.
- enum 타입의 값이 삭제되지 않습니다.
출력 형식이 확장될 수 있지만, 축소되지 않습니다.
- 출력 형식 내 필드 정의가 삭제되지 않습니다.
사용 중인 필수 출력 정보가 선택사항으로 변경되거나 출력 시 누락되지 않습니다.
- 이미 존재하는 용례 내에서는 필수 출력 정보가 언제나 유지됩니다.
- 단, 기능이 추가 및 확장되는 등 새로운 용례로 사용될 때의 출력 정보에 한하여 선택사항으로 변경될 수 있습니다.
- 하위 필드의 형식(타입) 또한 위 규칙을 지키며 변경됩니다.
단, 새로운 필드 또는 enum 값, oneOf 케이스가 추가될 수 있습니다.
- 알지 못하는 필드 및 값이 주어지더라도 crash가 발생하지 않도록 유의하여 개발해주세요.
UNSTABLE
이 표기된 일부 API의 경우, 위 하위호환성 정책과 무관하게 변경 및 지원 종료될 수 있으니 이용에 유의하세요.
인증 관련 API
결제 관련 API
목차
결제 예약 관련 API
결제 예약 단건 조회
Request
Path
조회할 결제 예약 건 아이디
Query
접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
Response
200
성공 응답으로 결제 예약 건 객체를 반환합니다.
고객 정보
고객사가 지정한 고객의 고유 식별자입니다.
성별
oneLine(한 줄 형식 주소) 필드는 항상 존재합니다.
통화 단위
OMR
Rial OmaniCUC
Peso ConvertibleBBD
Barbados DollarPLN
ZlotySVC
El Salvador ColonBMD
Bermudian DollarTJS
SomoniTND
Tunisian DinarGNF
Guinean FrancSDG
Sudanese PoundMRU
OuguiyaXBB
Bond Markets Unit European Monetary Unit (E.M.U.-6)PKR
Pakistan RupeeFKP
Falkland Islands PoundMUR
Mauritius RupeeXAF
CFA Franc BEACSAR
Saudi RiyalCAD
Canadian DollarHKD
Hong Kong DollarPYG
GuaraniMGA
Malagasy AriaryUYI
Uruguay Peso en Unidades Indexadas (UI)AUD
Australian DollarAMD
Armenian DramYER
Yemeni RialCHE
WIR EuroMMK
KyatSEK
Swedish KronaTRY
Turkish LiraXBC
Bond Markets Unit European Unit of Account 9 (E.U.A.-9)KES
Kenyan ShillingGEL
LariGTQ
QuetzalTZS
Tanzanian ShillingCUP
Cuban PesoALL
LekERN
NakfaBRL
Brazilian RealUGX
Uganda ShillingXUA
ADB Unit of AccountGIP
Gibraltar PoundMZN
Mozambique MeticalKRW
대한민국 원화JOD
Jordanian DinarIQD
Iraqi DinarVUV
VatuXXX
The codes assigned for transactions where no currency is involvedUZS
Uzbekistan SumBOV
MvdolUAH
HryvniaPEN
SolKMF
Comorian Franc DOP
Dominican PesoBDT
TakaLKR
Sri Lanka RupeeFJD
Fiji DollarLSL
LotiBSD
Bahamian DollarSRD
Surinam DollarXTS
Codes specifically reserved for testing purposesSHP
Saint Helena PoundLRD
Liberian DollarQAR
Qatari RialBND
Brunei DollarCDF
Congolese FrancSLE
LeoneUSN
US Dollar (Next day)VES
Bolívar SoberanoTMT
Turkmenistan New ManatCHW
WIR FrancBGN
Bulgarian LevJMD
Jamaican DollarSZL
LilangeniCZK
Czech KorunaZMW
Zambian KwachaUYU
Peso UruguayoNPR
Nepalese RupeeEGP
Egyptian PoundAZN
Azerbaijan ManatCLP
Chilean PesoMOP
PatacaSCR
Seychelles RupeeHTG
GourdeVND
DongLAK
Lao KipBTN
NgultrumGBP
Pound SterlingSSP
South Sudanese PoundXPD
PalladiumTWD
New Taiwan DollarDZD
Algerian DinarMXN
Mexican PesoXDR
SDR (Special Drawing Right)ZWL
Zimbabwe DollarAWG
Aruban FlorinTHB
BahtISK
Iceland KronaLBP
Lebanese PoundSGD
Singapore DollarMWK
Malawi KwachaKZT
TengeCRC
Costa Rican ColonWST
TalaDJF
Djibouti FrancLYD
Libyan DinarNGN
NairaBIF
Burundi FrancAED
UAE DirhamCHF
Swiss FrancRWF
Rwanda FrancXBD
Bond Markets Unit European Unit of Account 17 (E.U.A.-17)INR
Indian RupeeCLF
Unidad de FomentoXOF
CFA Franc BCEAOCOU
Unidad de Valor RealMXV
Mexican Unidad de Inversion (UDI)PGK
KinaCNY
Yuan RenminbiSYP
Syrian PoundVED
Bolívar SoberanoRON
Romanian LeuAFN
AfghaniPHP
Philippine PesoMDL
Moldovan LeuKHR
RielXPT
PlatinumCOP
Colombian PesoDKK
Danish KroneKYD
Cayman Islands DollarXPF
CFP FrancGMD
DalasiMVR
RufiyaaSTN
DobraTTD
Trinidad and Tobago DollarPAB
BalboaXAU
GoldXAG
SilverJPY
일본 엔화TOP
Pa’angaBWP
PulaMKD
DenarARS
Argentine PesoHUF
ForintMYR
Malaysian RinggitUSD
미국 달러SLL
LeoneMAD
Moroccan DirhamRUB
Russian RubleMNT
TugrikBOB
BolivianoGYD
Guyana DollarSBD
Solomon Islands DollarXBA
Bond Markets Unit European Composite Unit (EURCO)BHD
Bahraini DinarHNL
LempiraUYW
Unidad PrevisionalNZD
New Zealand DollarXCD
East Caribbean DollarXSU
SucreKGS
SomAOA
KwanzaBZD
Belize DollarIDR
RupiahSOS
Somali ShillingNIO
Cordoba OroGHS
Ghana CediANG
Netherlands Antillean GuilderRSD
Serbian DinarILS
New Israeli SheqelNOK
Norwegian KroneKWD
Kuwaiti DinarNAD
Namibia DollarETB
Ethiopian BirrBYN
Belarusian RubleKPW
North Korean WonEUR
EuroCVE
Cabo Verde EscudoZAR
RandIRR
Iranian RialHRK
Kuna (Replaced by EUR)BAM
Convertible Mark고객사가 직접 부여한 식별자입니다.
카테고리 등으로 활용될 수 있습니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
ForbiddenError
: 요청이 거절된 경우
404
PaymentScheduleNotFoundError
: 결제 예약건이 존재하지 않는 경우
결제 예약 다건 조회
Request
body를 쿼리 문자열에 포함시켜 보낼 수 있습니다. 자세히 보기
Body
다건 조회 API 에 사용되는 페이지 입력 정보
결제 예약 건 다건 조회 시 정렬 조건
결제 예약 건 정렬 기준
정렬 방식
결제 예약 건 다건 조회를 위한 입력 정보
접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
값을 입력하지 않으면 파라미터 end의 90일 전으로 설정됩니다.
값을 입력하지 않으면 현재 시점으로 설정됩니다.
값을 입력하지 않으면 상태 필터링이 적용되지 않습니다.
Response
200
성공 응답으로 조회된 예약 결제 건 리스트가 반환됩니다.
고객 정보
통화 단위
반환된 페이지 결과 정보
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
ForbiddenError
: 요청이 거절된 경우
결제 예약 취소
Request
body를 쿼리 문자열에 포함시켜 보낼 수 있습니다. 자세히 보기
Body
접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
Response
200
성공 응답
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
ForbiddenError
: 요청이 거절된 경우
404
PaymentScheduleNotFoundError
: 결제 예약건이 존재하지 않는 경우BillingKeyNotFoundError
: 빌링키가 존재하지 않는 경우
409
PaymentScheduleAlreadyProcessedError
: 결제 예약건이 이미 처리된 경우PaymentScheduleAlreadyRevokedError
: 결제 예약건이 이미 취소된 경우BillingKeyAlreadyDeletedError
: 빌링키가 이미 삭제된 경우
결제 예약
Request
Path
결제 건 아이디
Body
빌링키 결제 요청 입력 정보
접근 권한이 있는 상점 아이디만 입력 가능하며, 미입력시 토큰에 담긴 상점 아이디를 사용합니다.
다수 채널에 대해 발급된 빌링키에 대해, 결제 채널을 특정하고 싶을 때 명시
고객 정보 입력 정보
금액 세부 입력 정보
통화 단위
현금영수증 입력 정보
국가
결제 승인/실패 시 요청을 받을 웹훅 주소입니다. 상점에 설정되어 있는 값보다 우선적으로 적용됩니다. 입력된 값이 없을 경우에는 빈 배열로 해석됩니다.
입력된 값이 없을 경우에는 빈 배열로 해석됩니다.
상품 유형
분리 형식 주소 입력 정보
Response
200
성공 응답
결제 예약 건
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
ForbiddenError
: 요청이 거절된 경우
404
BillingKeyNotFoundError
: 빌링키가 존재하지 않는 경우
409
AlreadyPaidOrWaitingError
: 결제가 이미 완료되었거나 대기중인 경우SumOfPartsExceedsTotalAmountError
: 면세 금액 등 하위 항목들의 합이 전체 결제 금액을 초과한 경우BillingKeyAlreadyDeletedError
: 빌링키가 이미 삭제된 경우PaymentScheduleAlreadyExistsError
: 결제 예약건이 이미 존재하는 경우