PortOne REST API - V1

결제완료된 정보, 결제취소, 상태별 결제목록 조회 등의 기능을 하는 REST API를 제공합니다.
비인증 결제, 정기 자동결제 등 부가기능을 위한 REST API도 제공합니다.

2024년 9월 1일부로 포트원 V1 API에 대해 일부 보안 규격이 지원 종료됩니다.
자세한 사항은TLS 지원 범위를 참고해주세요.

V1 API hostname: api.iamport.kr


하위호환성

포트원이 제공하는 모든 Stable API에 대해 아래와 같은 하위호환성이 보장됩니다.

  1. 현재 사용 가능한 입력 형식은 앞으로도 사용할 수 있습니다.

    • 입력 형식 내 필드 정의가 삭제되지 않습니다.
    • 필수 입력 정보가 추가되거나, 선택 입력 정보가 필수로 변경되지 않습니다.

      • 오로지 선택 입력 정보만 추가될 수 있습니다.
    • 하위 필드의 형식(타입) 또한 위 규칙을 지키며 변경됩니다.
    • enum 타입의 값이 삭제되지 않습니다.
  2. 출력 형식이 확장될 수 있지만, 축소되지 않습니다.

    • 출력 형식 내 필드 정의가 삭제되지 않습니다.
    • 사용 중인 필수 출력 정보가 선택사항으로 변경되거나 출력 시 누락되지 않습니다.

      • 이미 존재하는 용례 내에서는 필수 출력 정보가 언제나 유지됩니다.
      • 단, 기능이 추가 및 확장되는 등 새로운 용례로 사용될 때의 출력 정보에 한하여 선택사항으로 변경될 수 있습니다.
    • 하위 필드의 형식(타입) 또한 위 규칙을 지키며 변경됩니다.
    • 단, 새로운 필드 또는 enum 값, oneOf 케이스가 추가될 수 있습니다.

      • 알지 못하는 필드 및 값이 주어지더라도 crash가 발생하지 않도록 유의하여 개발해주세요.
      • 새로운 필드 및 값이 추가되는 경우 사전 공지를 통해 안내드립니다.

UNSTABLE이 표기된 일부 API의 경우, 위 하위호환성 정책과 무관하게 변경 및 지원 종료될 수 있으니 이용에 유의하세요.


인증 관련 API

포트원 API를 호출할 때는 액세스 토큰Authorization 헤더에 넣어주어야 합니다.
액세스 토큰은 access_token 발급 API post/users/getToken를 호출해서 발급받을 수 있습니다.

액세스 토큰 발급 API를 호출하려면 API 키API 시크릿을 인자로 넣어주어야 합니다.

결제 관련 API

결제 금액 사전 등록 관련 API

비인증 결제 관련 API

별도 결제창 호출없이 결제를 진행할 수 있는 비인증 결제 기능을 제공합니다.

정기 결제 관련 API

빌링키 관련 API

가상계좌 관련 API

post/vbanks

가상계좌 발급 API

가상계좌번호를 발급하여 고객이 입금할 수 있도록 합니다.
희망하시는 은행, 예금주명으로 입금이 가능한 가상계좌를 생성할 수 있습니다.(별도로 PG계약 필요)
은행구분코드는 페이지 가장 하단에 있는 은행코드표를 참조하시기 바랍니다.

지원되는 PG사

  • 헥토파이낸셜(구 세틀뱅크)
  • 나이스페이먼츠
  • KG이니시스
  • 토스페이먼츠 - 신모듈
  • KSNET
  • 스마트로 - 신모듈
  • (신) 나이스페이
  • 웰컴페이먼츠

Request

Query

pg_api_key?: string
Api Key
(Optional)

이니시스의 가맹점 관리자 페이지에서 확인하셔야 하는 API Key 값

Body

merchant_uid: string
고객사 주문번호

amount: number
입금 예정 금액

product_type?: string
상품구분
(Optional)

vbank_num?: string
고정 가상 계좌 번호
(Optional)

vbank_code: string
은행구분코드

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


vbank_due: integer
가상계좌 입금기한

vbank_holder?: string
가상계좌 예금주명
(Optional)

vbank_key?: string
계좌 고유 키
(Optional)

name?: string
주문명
(Optional)

buyer_name?: string
주문자명
(Optional)

buyer_email?: string
주문자 Email 주소
(Optional)

buyer_tel?: string
주문자 전화번호
(Optional)

business_registration_number?: string
사업자 등록번호
(Optional)

buyer_addr?: string
주문자 주소
(Optional)

buyer_postcode?: string
주문자 우편번호
(Optional)

pg?: string
PG사 구분코드
(Optional)

notice_url?: array
Notification URL(Webhook URL)
(Optional)

custom_data?: string
추가 정보
(Optional)

tax_free?: integer
면세금액
(Optional)

vat_amount?: number
부가세
(Optional)

product_count?: integer
결제 상품의 개수
(Optional)

Response

200

가상계좌 생성 완료

code?: integer
응답코드
(Optional)
message?: string
응답메세지
(Optional)
response?: PaymentAnnotation
(Optional)
imp_uid: string
포트원 거래고유번호
merchant_uid: string
고객사 주문번호
pay_method?: string
결제수단 구분코드
(Optional)
channel?: string
결제환경 구분코드
(Optional)
pg_provider?: string
PG사 구분코드
(Optional)
emb_pg_provider?: string
허브형결제 PG사 구분코드
(Optional)
pg_tid?: string
PG사 거래번호
(Optional)
pg_id?: string
PG사 상점아이디
(Optional)
escrow?: boolean
에스크로결제 여부
(Optional)
apply_num?: string
승인번호
(Optional)
bank_code?: string
은행 표준코드
(Optional)
bank_name?: string
은행명
(Optional)
card_code?: string
카드사 코드번호
(Optional)
card_name?: string
카드사명
(Optional)
card_issuer_code?: string
카드 발급사 코드
(Optional)
card_issuer_name?: string
카드 발급사명
(Optional)
card_publisher_code?: string
카드 발행사 코드
(Optional)
card_publisher_name?: string
카드 발행사명
(Optional)
card_quota?: integer
할부개월 수
(Optional)
card_number?: string
카드번호
(Optional)

결제에 사용된 마스킹된 카드번호

card_type?: integer
카드 구분코드
(Optional)

결제건에 사용된 카드 구분코드

vbank_code?: string
가상계좌 은행 표준코드
(Optional)
vbank_name?: string
가상계좌 은행명
(Optional)
vbank_num?: string
가상계좌 계좌번호
(Optional)
vbank_holder?: string
가상계좌 예금주
(Optional)
vbank_date?: integer
가상계좌 입금기한
(Optional)
vbank_issued_at?: integer
가상계좌 생성시각
(Optional)
name?: string
제품명
(Optional)
amount: number
결제금액
cancel_amount: number
취소금액
currency: string
결제통화 구분코드
buyer_name?: string
주문자명
(Optional)
buyer_email?: string
주문자 Email주소
(Optional)
buyer_tel?: string
주문자 전화번호
(Optional)
buyer_addr?: string
주문자 주소
(Optional)
buyer_postcode?: string
주문자 우편번호
(Optional)
custom_data?: string
추가정보
(Optional)
user_agent?: string
단말기의 UserAgent 문자열
(Optional)
status: string
결제상태
started_at?: integer
요청 시각
(Optional)
paid_at?: integer
결제 시각
(Optional)

결제건의 결제완료 시각 UNIX timestamp

failed_at?: integer
실패시각
(Optional)

결제건의 결제실패시각 UNIX timestamp

cancelled_at?: integer
취소시각
(Optional)

결제건의 결제취소시각 UNIX timestamp

fail_reason?: string
결제실패 사유
(Optional)

결제건의 결제실패 사유

cancel_reason?: string
결제취소 사유
(Optional)

결제건의 결제취소 사유

receipt_url?: string
매출전표 URL
(Optional)
cancel_history?: PaymentCancelAnnotation[]
취소 내역
(Optional)
cancel_receipt_urls?: string[]
(Optional)

(Deprecated : cancel_history 사용 권장) 취소/부분취소 시 생성되는 취소 매출전표 확인 URL. 부분취소 횟수만큼 매출전표가 별도로 생성됨

cash_receipt_issued?: boolean
현금영수증 발급 여부
(Optional)
customer_uid?: string
구매자의 결제 수단 식별 고유번호
(Optional)
customer_uid_usage?: string
구매자의 결제 수단 식별 고유번호 사용 구분코드
(Optional)
promotion?: object
프로모션 정보
(Optional)

401

인증 Token이 전달되지 않았거나 유효하지 않은 경우

try
Request
Request Sample
N/A
put/vbanks/{imp_uid}

가상계좌 발급정보 수정 API

API요청으로 발급된 가상계좌(입금이 되기 전)의 정보를 수정합니다
아직 입금이 되지 않은 가상계좌의 입금기한 또는 입금금액을 수정할 수 있습니다. (헥토파이낸셜(구 세틀뱅크)만 사용 가능)
imp_uid가 지정되어야 합니다.(포트원 기획 의도상 동일한 merchant_uid의 입금대기 중인 가상계좌가 N개 존재할 수 있으므로 imp_uid로만 가상계좌 수정이 가능합니다)

Request

Path

imp_uid: string
포트원 거래고유번호

Body

amount?: integer
발급금액
(Optional)

vbank_due?: integer
입금기한
(Optional)

Response

200

가상계좌 수정 완료

code?: integer
응답코드
(Optional)
message?: string
응답메세지
(Optional)
response?: PaymentAnnotation
(Optional)
imp_uid: string
포트원 거래고유번호
merchant_uid: string
고객사 주문번호
pay_method?: string
결제수단 구분코드
(Optional)
channel?: string
결제환경 구분코드
(Optional)
pg_provider?: string
PG사 구분코드
(Optional)
emb_pg_provider?: string
허브형결제 PG사 구분코드
(Optional)
pg_tid?: string
PG사 거래번호
(Optional)
pg_id?: string
PG사 상점아이디
(Optional)
escrow?: boolean
에스크로결제 여부
(Optional)
apply_num?: string
승인번호
(Optional)
bank_code?: string
은행 표준코드
(Optional)
bank_name?: string
은행명
(Optional)
card_code?: string
카드사 코드번호
(Optional)
card_name?: string
카드사명
(Optional)
card_issuer_code?: string
카드 발급사 코드
(Optional)
card_issuer_name?: string
카드 발급사명
(Optional)
card_publisher_code?: string
카드 발행사 코드
(Optional)
card_publisher_name?: string
카드 발행사명
(Optional)
card_quota?: integer
할부개월 수
(Optional)
card_number?: string
카드번호
(Optional)

결제에 사용된 마스킹된 카드번호

card_type?: integer
카드 구분코드
(Optional)

결제건에 사용된 카드 구분코드

vbank_code?: string
가상계좌 은행 표준코드
(Optional)
vbank_name?: string
가상계좌 은행명
(Optional)
vbank_num?: string
가상계좌 계좌번호
(Optional)
vbank_holder?: string
가상계좌 예금주
(Optional)
vbank_date?: integer
가상계좌 입금기한
(Optional)
vbank_issued_at?: integer
가상계좌 생성시각
(Optional)
name?: string
제품명
(Optional)
amount: number
결제금액
cancel_amount: number
취소금액
currency: string
결제통화 구분코드
buyer_name?: string
주문자명
(Optional)
buyer_email?: string
주문자 Email주소
(Optional)
buyer_tel?: string
주문자 전화번호
(Optional)
buyer_addr?: string
주문자 주소
(Optional)
buyer_postcode?: string
주문자 우편번호
(Optional)
custom_data?: string
추가정보
(Optional)
user_agent?: string
단말기의 UserAgent 문자열
(Optional)
status: string
결제상태
started_at?: integer
요청 시각
(Optional)
paid_at?: integer
결제 시각
(Optional)

결제건의 결제완료 시각 UNIX timestamp

failed_at?: integer
실패시각
(Optional)

결제건의 결제실패시각 UNIX timestamp

cancelled_at?: integer
취소시각
(Optional)

결제건의 결제취소시각 UNIX timestamp

fail_reason?: string
결제실패 사유
(Optional)

결제건의 결제실패 사유

cancel_reason?: string
결제취소 사유
(Optional)

결제건의 결제취소 사유

receipt_url?: string
매출전표 URL
(Optional)
cancel_history?: PaymentCancelAnnotation[]
취소 내역
(Optional)
cancel_receipt_urls?: string[]
(Optional)

(Deprecated : cancel_history 사용 권장) 취소/부분취소 시 생성되는 취소 매출전표 확인 URL. 부분취소 횟수만큼 매출전표가 별도로 생성됨

cash_receipt_issued?: boolean
현금영수증 발급 여부
(Optional)
customer_uid?: string
구매자의 결제 수단 식별 고유번호
(Optional)
customer_uid_usage?: string
구매자의 결제 수단 식별 고유번호 사용 구분코드
(Optional)
promotion?: object
프로모션 정보
(Optional)

400

imp_uid가 누락된 경우/ 가상계좌 결제 건이 아닌 경우/ 가상계좌가 입금대기 상태(ready)가 아닌 경우

401

인증 Token이 전달되지 않았거나 유효하지 않은 경우

404

유효하지 않은 imp_uid

try
Request
Request Sample
N/A
delete/vbanks/{imp_uid}

가상계좌 발급취소 API

발급된 가상계좌(입금이 되기 전)를 말소합니다.
아직 입금이 되지 않은 가상계좌를 말소시킴으로써 구매자가 실수로 입금하는 경우를 방지하도록 합니다.
imp_uid가 지정되어야 합니다.(포트원 기획 의도상 동일한 merchant_uid의 입금대기 중인 가상계좌가 N개 존재할 수 있으므로 imp_uid로만 가상계좌 말소가 가능합니다)

지원되는 PG사

  • KG이니시스
  • NHN KCP
  • 토스페이먼츠 - 구모듈
  • 다날
  • 나이스페이먼츠
  • KICC
  • 헥토파이낸셜(구 세틀뱅크)
  • 스마트로 - 구모듈
  • 토스페이먼츠 - 신모듈
  • KSNET
  • 스마트로 - 신모듈
  • (신) 나이스페이
  • 웰컴페이먼츠

Request

Path

imp_uid: string
포트원 거래고유번호

Query

pg_api_key?: string
API Key
(Optional)

이니시스의 가맹점 관리자 페이지에서 확인하셔야 하는 API Key 값

Response

200

가상계좌 말소 완료

code?: integer
응답코드
(Optional)
message?: string
응답메세지
(Optional)
response?: PaymentAnnotation
(Optional)
imp_uid: string
포트원 거래고유번호
merchant_uid: string
고객사 주문번호
pay_method?: string
결제수단 구분코드
(Optional)
channel?: string
결제환경 구분코드
(Optional)
pg_provider?: string
PG사 구분코드
(Optional)
emb_pg_provider?: string
허브형결제 PG사 구분코드
(Optional)
pg_tid?: string
PG사 거래번호
(Optional)
pg_id?: string
PG사 상점아이디
(Optional)
escrow?: boolean
에스크로결제 여부
(Optional)
apply_num?: string
승인번호
(Optional)
bank_code?: string
은행 표준코드
(Optional)
bank_name?: string
은행명
(Optional)
card_code?: string
카드사 코드번호
(Optional)
card_name?: string
카드사명
(Optional)
card_issuer_code?: string
카드 발급사 코드
(Optional)
card_issuer_name?: string
카드 발급사명
(Optional)
card_publisher_code?: string
카드 발행사 코드
(Optional)
card_publisher_name?: string
카드 발행사명
(Optional)
card_quota?: integer
할부개월 수
(Optional)
card_number?: string
카드번호
(Optional)

결제에 사용된 마스킹된 카드번호

card_type?: integer
카드 구분코드
(Optional)

결제건에 사용된 카드 구분코드

vbank_code?: string
가상계좌 은행 표준코드
(Optional)
vbank_name?: string
가상계좌 은행명
(Optional)
vbank_num?: string
가상계좌 계좌번호
(Optional)
vbank_holder?: string
가상계좌 예금주
(Optional)
vbank_date?: integer
가상계좌 입금기한
(Optional)
vbank_issued_at?: integer
가상계좌 생성시각
(Optional)
name?: string
제품명
(Optional)
amount: number
결제금액
cancel_amount: number
취소금액
currency: string
결제통화 구분코드
buyer_name?: string
주문자명
(Optional)
buyer_email?: string
주문자 Email주소
(Optional)
buyer_tel?: string
주문자 전화번호
(Optional)
buyer_addr?: string
주문자 주소
(Optional)
buyer_postcode?: string
주문자 우편번호
(Optional)
custom_data?: string
추가정보
(Optional)
user_agent?: string
단말기의 UserAgent 문자열
(Optional)
status: string
결제상태
started_at?: integer
요청 시각
(Optional)
paid_at?: integer
결제 시각
(Optional)

결제건의 결제완료 시각 UNIX timestamp

failed_at?: integer
실패시각
(Optional)

결제건의 결제실패시각 UNIX timestamp

cancelled_at?: integer
취소시각
(Optional)

결제건의 결제취소시각 UNIX timestamp

fail_reason?: string
결제실패 사유
(Optional)

결제건의 결제실패 사유

cancel_reason?: string
결제취소 사유
(Optional)

결제건의 결제취소 사유

receipt_url?: string
매출전표 URL
(Optional)
cancel_history?: PaymentCancelAnnotation[]
취소 내역
(Optional)
cancel_receipt_urls?: string[]
(Optional)

(Deprecated : cancel_history 사용 권장) 취소/부분취소 시 생성되는 취소 매출전표 확인 URL. 부분취소 횟수만큼 매출전표가 별도로 생성됨

cash_receipt_issued?: boolean
현금영수증 발급 여부
(Optional)
customer_uid?: string
구매자의 결제 수단 식별 고유번호
(Optional)
customer_uid_usage?: string
구매자의 결제 수단 식별 고유번호 사용 구분코드
(Optional)
promotion?: object
프로모션 정보
(Optional)

400

imp_uid가 누락된 경우/ 가상계좌 결제 건이 아닌 경우 / 가상계좌가 입금대기 상태(ready)가 아닌 경우

401

인증 Token이 전달되지 않았거나 유효하지 않은 경우

404

유효하지 않은 imp_uid

try
Request
Request Sample
N/A
get/vbanks/holder

예금주 조회 API

가상계좌 환불 전, 확인차원에서 예금주를 조회하는 API
은행코드, 계좌번호를 이용해 해당 계좌의 예금주 명을 조회합니다.
KB국민은행004
SC제일은행023
경남은행039
광주은행034
기업은행003
농협011
대구은행031
부산은행032
산업은행002
수협007
신한은행088
신협048
외환은행005
우리은행020
우체국071
전북은행037
제주은행035
축협012
하나은행(서울은행)081
한국씨티은행(한미은행)027
K뱅크089
카카오뱅크090
유안타증권209
현대증권218
미래에셋증권230
대우증권238
삼성증권240
한국투자증권243
우리투자증권247
교보증권261
하이투자증권262
에이치엠씨투자증권263
키움증권264
이트레이드증권265
에스케이증권266
대신증권267
솔로몬투자증권268
한화증권269
하나대투증권270
굿모닝신한증권278
동부증권279
유진투자증권280
메리츠증권287
엔에이치투자증권289
부국증권290

Request

Query

bank_code: string
은행코드

bank_num: string
계좌번호

Response

200

예금주 조회 성공

code?: integer
응답코드
(Optional)
message?: string
응답메세지
(Optional)
(Optional)
bank_holder: string
예금주명

400

bank_code가 누락된 경우/ bank_num이 누락된 경우

401

인증 Token이 전달되지 않았거나 유효하지 않은 경우

404

계좌정보 조회 실패

try
Request
Request Sample
N/A

PG사 관련 API

PG사 별 추가로 지원하는 기능을 제공합니다.

카카오 관련 API

카카오페이에서 지원하는 기능을 제공합니다.

KCP 퀵페이 관련 API

KCP 퀵페이에서 지원하는 기능을 제공합니다.

네이버페이 관련 API

네이버페이에서 지원하는 기능을 제공합니다.

목차

(주문형-네이버페이) 네이버페이 주문환불 API
post/payments/{imp_uid}/naver/cancel
(주문형-네이버페이) 구매자의 환불요청 승인처리 API
post/payments/{imp_uid}/naver/approve-cancel
(주문형-네이버페이) 상품주문 발송처리 API
post/payments/{imp_uid}/naver/ship
(주문형-네이버페이) 교환승인된 상품 재발송처리 API
post/payments/{imp_uid}/naver/ship-exchanged
(주문형-네이버페이) 교환승인된 상품 수거완료처리 API
post/payments/{imp_uid}/naver/collect-exchanged
(주문형-네이버페이) 상품발주처리 API
post/payments/{imp_uid}/naver/place
(주문형-네이버페이) 상품반품요청 API
post/payments/{imp_uid}/naver/request-return
(주문형-네이버페이) 상품 반품승인 처리 API
post/payments/{imp_uid}/naver/approve-return
(주문형-네이버페이) 상품 반품거절 처리 API
post/payments/{imp_uid}/naver/reject-return
(주문형-네이버페이) 상품 반품보류 처리 API
post/payments/{imp_uid}/naver/withhold-return
(주문형-네이버페이) 반품보류상품 반품보류해제 처리 API
post/payments/{imp_uid}/naver/resolve-return
(결제형-네이버페이) 네이버페이 포인트 적립 API
post/payments/{imp_uid}/naver/point
(결제형-네이버페이) 에스크로 주문 확정 API
post/payments/{imp_uid}/naver/confirm
(주문형-네이버페이) 포트원 거래고유번호 기준 네이버페이 상품주문 조회 API
get/payments/{imp_uid}/naver/product-orders
(주문형-네이버페이) 네이버페이 상품주문번호로 상품주문 상세 조회 API
get/naver/product-orders/{product_order_id}
(주문형-네이버페이) 네이버페이 구매평 조회 API
get/naver/reviews
(결제형-네이버페이) 현금영수증 발급 가용액 조회 API
get/payments/{imp_uid}/naver/cash-amount

페이코 관련 API

페이코에서 지원하는 기능을 제공합니다.

페이먼트월 관련 API

페이먼트월에서 지원하는 기능을 제공합니다.

본인인증 관련 API

현금영수증 관련 API

에스크로 관련 API

고객사 정보 관련 API

고객사 정보를 관리하는 기능을 제공합니다.

고객사의 하위 상점 관련 API

하위 상점 관련 API

하위 상점과 관련된 기능을 제공합니다.

기타 API

부가적인 기능을 제공합니다.

베네피아 포인트 관련 API

베네피아 포인트(복지 포인트)와 관련된 기능을 제공합니다.

결제기관 관련 API

편의점 결제 관련 API

편의점 결제를 위한 수납 번호(barcode)와 관련된 기능을 제공합니다.

타입 정의

API 요청/응답의 각 필드에서 사용되는 타입 정의들을 확인할 수 있습니다