PortOne REST API - V1
결제완료된 정보, 결제취소, 상태별 결제목록 조회 등의 기능을 하는 REST API를 제공합니다.
비인증 결제, 정기 자동결제 등 부가기능을 위한 REST API도 제공합니다.
2026년 1월 26일부로 포트원 V1 결제내역 단건조회 API에 동작 변경이 있습니다.
자세한 사항은 V1 결제내역 단건조회 API 동작 변경 안내를 참고해주세요.
V1 API hostname: api.iamport.kr
하위호환성
포트원이 제공하는 모든 Stable API에 대해 아래와 같은 하위호환성이 보장됩니다.
-
현재 사용 가능한 입력 형식은 앞으로도 사용할 수 있습니다.
-
입력 형식 내 필드 정의가 삭제되지 않습니다.
-
필수 입력 정보가 추가되거나, 선택 입력 정보가 필수로 변경되지 않습니다.
- 오로지 선택 입력 정보만 추가될 수 있습니다.
-
하위 필드의 형식(타입) 또한 위 규칙을 지키며 변경됩니다.
-
enum 타입의 값이 삭제되지 않습니다.
-
-
출력 형식이 확장될 수 있지만, 축소되지 않습니다.
-
출력 형식 내 필드 정의가 삭제되지 않습니다.
-
사용 중인 필수 출력 정보가 선택사항으로 변경되거나 출력 시 누락되지 않습니다.
- 이미 존재하는 용례 내에서는 필수 출력 정보가 언제나 유지됩니다.
- 단, 기능이 추가 및 확장되는 등 새로운 용례로 사용될 때의 출력 정보에 한하여 선택사항으로 변경될 수 있습니다.
-
하위 필드의 형식(타입) 또한 위 규칙을 지키며 변경됩니다.
-
단, 새로운 필드 또는 enum 값, oneOf 케이스가 추가될 수 있습니다.
- 알지 못하는 필드 및 값이 주어지더라도 crash가 발생하지 않도록 유의하여 개발해주세요.
-
UNSTABLE이 표기된 일부 API의 경우, 위 하위호환성 정책과 무관하게 변경 및 지원 종료될 수 있으니 이용에 유의하세요.
하위 상점의 API 사용
하위 상점에 대해 API를 사용하려는 경우 API 호출 시 Tier 헤더(HTTP Request Header)로 하위상점의 티어코드를 전달해야 합니다.
[Agency & Tier 란?]
인증 관련 API
포트원 API를 호출할 때는 액세스 토큰을 Authorization 헤더에 넣어주어야 합니다.
액세스 토큰은 access_token 발급 API post/users/getToken를 호출해서 발급받을 수 있습니다.
액세스 토큰 발급 API를 호출하려면 API 키와 API 시크릿을 인자로 넣어주어야 합니다.
결제 관련 API
목차
결제 금액 사전 등록 관련 API
비인증 결제 관련 API
정기 결제 관련 API
목차
결제예약 복수조회 API
Request
Query
조회 시작시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')
조회 종료시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)
조회할 결제건의 예약상태
조회목록 페이징으로 기본값은 1입니다.
한 번에 조회할 결제예약건수.(최대 1000건, 기본값 20건)
조회된 결제건의 정렬방식
Response
200 Ok
결제예약목록 조회완료
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
400 Error
검색 파라메터가 유효하지 않은 경우
401 Error
인증 Token이 전달되지 않았거나 유효하지 않은 경우
결제 예약 API
비 인증 결제(빌링키) API를 포트원이 대신 수행하는 개념)
결제 요청에 대한 결과는 notice_url에 설정한 EndPoint URL로 웹훅을 통해 수신(POST request)받을 수 있습니다.
- 기존에 빌링키가 등록된 customer_uid가 존재하는 경우 해당 customer_uid와 해당되는 빌링키로 schedule정보가 예약됩니다.(카드정보 선택사항)
- 등록된 customer_uid가 없는 경우 빌링키 신규 발급을 먼저 진행한 후 schedule정보를 예약합니다.(카드정보 필수사항)
- 예약건 별로 고유의 merchant_uid를 전달해주셔야 합니다.
- schedules의 상세정보(선택정보) buyer_name, buyer_email, buyer_tel, buyer_addr, buyer_postcode 누락시,
customer_uid에 해당되는 customer_name, customer_email, customer_tel, customer_addr, customer_postcode 정보로 대체됩니다.(둘 다 입력시 buyer_* 정보를 우선합니다) - 슈퍼빌링키의 customer_uid로 요청하는 경우, 결제 시점 해당 스마트 라우팅 그룹 내 채널 비율 설정에 따라 결제를 요청합니다. 특정 빌링키로 결제를 요청하려면 channelKey에 결제를 희망하는 빌링키의 채널 키를 입력해 주세요.
Request
Body
빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호
string 타입의 구매자 식별 고유번호
결제 직후 자동으로 취소됩니다. (0원으로 설정할 경우 테스트하지 않음)
결제 예약 요청할 카드번호(dddd-dddd-dddd-dddd)
결제 예약 요청할 카드 유효기간(YYYY-MM)
결제 예약 요청할 카드 소유자의 생년월일6자리(법인카드의 경우 사업자등록번호10자리)
결제 예약 요청할 카드비밀번호 앞 2자리
결제 예약 요청할 카드 인증번호 (카드 뒷면 3자리, AMEX의 경우 4자리)
신규 customer_uid를 등록하는 경우에만 유효합니다.(기존에 등록된 customer_uid로만 schedule 하는 경우에는 pg파라메터 적용되지 않습니다.)
API 방식 비인증 PG설정이 2개 이상인 경우, 결제가 진행되길 원하는 PG사를 지정하실 수 있습니다. pg 파라메터는 {PG사} 혹은 {PG사}.{PG상점아이디} 형태의 문자열입니다.
지정하지 않거나 유효하지 않은 값이 전달되면 기본PG설정된 값을 이용해 결제하게 됩니다.
- 나이스페이먼츠, KCP 2가지 PG설정이 되어있다면, pg 파라메터로 nice 또는 kcp로 구분 가능
- 나이스페이먼츠로부터 2개 이상의 상점아이디를 발급받았다면, nice.MID1 또는 nice.MID2로 구분 가능
다수 채널에 대해 발급된 빌링키에 대해, 결제 채널을 특정하고 싶을 때 명시
결제예약 스케쥴에 대한 배열
Response
200 Ok
정상적으로 예약 등록이 완료되었습니다
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
401 Error
인증 Token이 전달되지 않았거나 유효하지 않은 경우
결제 예약취소 API
Request
Body
빌링키와 매핑되며 고객사에서 채번하는 구매자의 결제 수단 식별 고유번호, 누락될 경우 merchant_uid들에 해당하는 결제예약정보를 일괄취소합니다.
누락되면 customer_uid에 대한 결제예약정보를 일괄취소합니다.
Response
200 Ok
정상적으로 예약 취소가 완료되었습니다
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
401 Error
인증 Token이 전달되지 않았거나 유효하지 않은 경우
결제예약 단건조회 API
Request
Path
결제예약에 사용된 고객사 거래 고유번호
Response
200 Ok
정상적으로 예약 취소가 완료되었습니다
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
401 Error
인증 Token이 전달되지 않았거나 유효하지 않은 경우
404 Error
merchant_uid로 조회되는 예약결제건이 존재하지 않는 경우
결제요청 예약시각 수정 API
Request
Path
결제예약에 사용된 고객사 거래 고유번호
Body
수정할 결제요청 예약시각 UNIX timestamp
Response
200 Ok
정상적으로 예약 변경이 완료되었습니다.
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
400 Error
필수 파라미터 누락, 이미 실행 혹은 취소된 결제예약, 예약시각이 현재 시각보다 과거인 경우
404 Error
존재하지 않는 결제예약
500 Error
포트원 내부 이슈로 인한 API 호출 실패
결제 실패 재예약 API
Request
Path
결제예약에 사용된 고객사 거래 고유번호
Body
실패한 예약건을 다시 처리할 시각 UNIX timestamp
Response
200 Ok
정상적으로 재예약이 완료되었습니다.
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
400 Error
필수 파라미터 누락, 아직 실행되지 않거나 이미 실행 중 혹은 승인된 결제예약, 예약시각이 현재 시각보다 과거인 경우
404 Error
존재하지 않는 결제예약
500 Error
포트원 내부 이슈로 인한 API 호출 실패
결제 실패 재시도 API
Request
Path
결제예약에 사용된 고객사 거래 고유번호
Response
200 Ok
정상적으로 재시도가 완료되었습니다. (결제 성공/실패 여부는 결제 상태(status)로 확인 필요)
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
400 Error
필수 파라미터 누락, 아직 실행되지 않거나 이미 실행중 혹은 승인된 결제예약
404 Error
존재하지 않는 결제예약 혹은 빌링키
500 Error
미지원 PG사, 포트원 내부 이슈 등으로 인한 API 호출 실패
결제예약 복수조회(빌링키) API
customer_uid별 결제예약목록을 조회할 수 있습니다. 결제예약정보가 (페이징된)목록으로 전달되며, 최대 3개월 단위로 조회가 가능합니다.
결제예약정보가 예약된 시각 기준으로 최신순으로 정렬되어 전달됩니다.
Request
Path
string 타입의 고객의 결제 수단 식별 고유번호
Query
조회목록 페이징으로 기본값은 1입니다.
조회 시작시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. from <= '예약시각')
조회 종료시각 unix timestamp(결제예약건의 '예약시각'기준으로 조회합니다. '예약시각' < to)
조회할 결제건의 예약상태
Response
200 Ok
결제예약목록 조회완료
0이면 정상적인 조회, 0아닌 값이면 message를 확인해봐야 합니다
code값이 0이 아닐 때, '존재하지 않는 결제정보입니다'와 같은 오류 메세지를 포함합니다
400 Error
검색 파라메터가 유효하지 않은 경우
401 Error
인증 Token이 전달되지 않았거나 유효하지 않은 경우