PortOne REST API - V2
API 결제, 결제 정보 조회, 결제 취소 등의 기능을 제공하는 REST API입니다.
V2 API hostname: api.portone.io
요청 및 응답 형식
요청과 응답의 본문은 JSON 형식입니다.
API 응답에 포함된 필드는 별도 안내 없이 추가될 수 있으니, 알지 못하는 필드가 있는 경우에는 무시하도록 개발해 주세요.
API 매개 변수 중 URL 경로에 들어가는 문자열 값이 있는 경우, URL 경로에 들어갈 수 없는 문자열은 이스케이프하여야 합니다. 자바스크립트의 encodeURIComponent
함수 등을 사용할 수 있습니다.
인증 방식
V2 API를 사용하기 위해서는 V2 API Secret이 필요하며, 포트원 콘솔 내 결제연동 탭에서 발급받을 수 있습니다.
인증 관련 API를 제외한 모든 API는 HTTP Authorization
헤더로 인증 정보를 전달해 주셔야 합니다. Authorization 헤더에 전달하는 형식은 두 가지 중 하나입니다.
- API Secret 직접 사용 (간편)
Authorization: PortOne MY_API_SECRET - 액세스 토큰 사용
Authorization: Bearer MY_ACCESS_TOKEN
GET 요청 시 Body 대신 Query 사용
GET 요청 시에 Body를 사용해야 하는 경우, Body 대신 Query를 사용할 수 있습니다.
이 경우, Body 객체를 requestBody
Query 필드에 넣어주시면 됩니다.
인증 관련 API
결제 관련 API
목차
결제 예약 관련 API
빌링키 관련 API
현금 영수증 관련 API
본인인증 관련 API
B2B 서비스 API
목차
연동 사업자 조회unstable
Request
Path
사업자등록번호
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답으로 사업자 객체를 반환합니다.
-
없이 숫자로만 구성됩니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bMemberCompanyNotFoundError
: 연동 사업자가 존재하지 않는 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
연동 사업자 정보 수정unstable
Request
Path
사업자등록번호
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Body
Response
200
성공 응답
-
없이 숫자로만 구성됩니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bMemberCompanyNotFoundError
: 연동 사업자가 존재하지 않는 경우
사업자 연동unstable
Request
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Body
-
없이 숫자로만 구성됩니다.
팝빌 로그인 계정으로 사용됩니다.
Response
200
성공 응답
-
없이 숫자로만 구성됩니다.
팝빌 로그인 계정으로 사용됩니다.
true일 경우 관리자, false일 경우 담당자입니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
409
B2bIdAlreadyExistsError
: ID가 이미 사용중인 경우B2bCompanyAlreadyRegisteredError
: 사업자가 이미 연동되어 있는 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
담당자 조회unstable
Request
Path
사업자등록번호
담당자 ID
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답으로 담당자 객체를 반환합니다.
팝빌 로그인 계정으로 사용됩니다.
true일 경우 관리자, false일 경우 담당자입니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bMemberCompanyNotFoundError
: 연동 사업자가 존재하지 않는 경우B2bContactNotFoundError
: 담당자가 존재하지 않는 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
담당자 정보 수정unstable
Request
Path
사업자등록번호
담당자 ID
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Body
Response
200
성공 응답
팝빌 로그인 계정으로 사용됩니다.
true일 경우 관리자, false일 경우 담당자입니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bContactNotFoundError
: 담당자가 존재하지 않는 경우B2bMemberCompanyNotFoundError
: 연동 사업자가 존재하지 않는 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
사업자 인증서 등록 URL 조회unstable
Request
Path
사업자등록번호
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답으로 URL을 반환합니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bMemberCompanyNotFoundError
: 연동 사업자가 존재하지 않는 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
인증서 조회unstable
Request
Path
사업자등록번호
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답으로 인증서 객체를 반환합니다.
인증서 타입
E_TAX
전자세금용 공동인증서POP_BILL
팝빌 특목용 공동인증서ETC
기타400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bMemberCompanyNotFoundError
: 연동 사업자가 존재하지 않는 경우B2bCertificateUnregisteredError
: 인증서가 등록되어 있지 않은 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
담당자 ID 존재 여부 확인unstable
Request
Query
담당자 ID
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답입니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
예금주 조회unstable
Request
Path
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bBankAccountNotFoundError
: 계좌가 존재하지 않는 경우B2bForeignExchangeAccountError
: 계좌 정보 조회가 불가능한 외화 계좌인 경우B2bSuspendedAccountError
: 정지 계좌인 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
503
B2bRegularMaintenanceTimeError
: 금융기관 시스템이 정기 점검 중인 경우B2bFinancialSystemFailureError
: 금융기관 장애B2bFinancialSystemUnderMaintenanceError
: 금융기관 시스템이 점검 중인 경우B2bFinancialSystemCommunicationError
: 금융기관과의 통신에 실패한 경우
사업자 상태 조회unstable
Request
Path
사업자등록번호
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답으로 사업자 상태 객체를 반환합니다.
사업자 과세 유형
SIMPLE
간이 과세ASSIGNED_ID_NUMBER
비영리법인 또는 국가기관, 고유번호가 부여된 단체TAX_FREE
면세SIMPLE_TAX_INVOICE_ISSUER
간이 과세 세금계산서 발급 사업자NORMAL
일반 과세날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
영업 상태
IN_BUSINESS
영업중CLOSED
폐업SUSPENDED
휴업날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bCompanyNotFoundError
: 사업자가 존재하지 않는 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
503
B2bHometaxUnderMaintenanceError
: 홈택스가 점검중이거나 순단이 발생한 경우
세금계산서 역발행 요청unstable
Request
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Body
세금계산서 생성 요청 정보
과세 유형
날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
영수/청구
최대 3개
영문 대소문자, 숫자, 특수문자('-','_')만 이용 가능
영문 대소문자, 숫자, 특수문자('-','_')만 이용 가능
공급자 담당자 휴대폰번호 {supplier.contact.mobile_phone_number} 값으로 문자 전송 전송시 포인트 차감되며, 실패시 환불 처리 기본값은 false
세금 계산서 수정
최대 99개
최대 3개
Response
200
성공 응답으로 세금계산서를 반환합니다.
과세 유형
TAXABLE
과세ZERO_RATED
영세FREE
면세입력 범위(4자리) : 0 ~ 9999
입력 범위(4자리) : 0 ~ 9999
날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
영수/청구
RECEIPT
INVOICE
NONE
최대 3개
-
를 제외한 10자리
4자리 고정
최대 200자
최대 100자
최대 300자
최대 100자
최대 100자
세금계산서 담당자
-
를 제외한 10자리
4자리 고정
최대 200자
최대 100자
최대 300자
최대 100자
최대 100자
세금계산서 담당자
세금 계산서 수정
수정 사유
최대 99개
날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
최대 100자
최대 100자
입력 범위 : -99999999.99 ~ 999999999.99, 10^-quantityScale 단위로 치환됨
입력 범위 : 0 ~ 2, 기본값: 0
입력 범위 : -99999999999999.99 ~ 999999999999999.99
입력 범위 : 0 ~ 2, 기본값: 0
최대 3개
최대 100자
세금계산서 발행(전자서명) 시점에 자동으로 부여
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bSupplierNotFoundError
: 공급자가 존재하지 않은 경우B2bRecipientNotFoundError
: 공급받는자가 존재하지 않은 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
세금 계산서 조회unstable
Request
Path
세금계산서 문서 번호
Query
사업자등록번호
path 파라미터로 전달된 문서번호 유형. 기본 값은 RECIPIENT이며 SUPPLIER, RECIPIENT을 지원합니다.
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
성공 응답으로 세금계산서를 반환합니다.
과세 유형
TAXABLE
과세ZERO_RATED
영세FREE
면세입력 범위(4자리) : 0 ~ 9999
입력 범위(4자리) : 0 ~ 9999
날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
영수/청구
RECEIPT
INVOICE
NONE
최대 3개
-
를 제외한 10자리
4자리 고정
최대 200자
최대 100자
최대 300자
최대 100자
최대 100자
세금계산서 담당자
-
를 제외한 10자리
4자리 고정
최대 200자
최대 100자
최대 300자
최대 100자
최대 100자
세금계산서 담당자
세금 계산서 수정
수정 사유
최대 99개
날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
최대 100자
최대 100자
입력 범위 : -99999999.99 ~ 999999999.99, 10^-quantityScale 단위로 치환됨
입력 범위 : 0 ~ 2, 기본값: 0
입력 범위 : -99999999999999.99 ~ 999999999999999.99
입력 범위 : 0 ~ 2, 기본값: 0
최대 3개
최대 100자
세금계산서 발행(전자서명) 시점에 자동으로 부여
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bTaxInvoiceNotFoundError
: 세금계산서가 존재하지 않은 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
세금계산서 삭제unstable
Request
Path
세금계산서 문서 번호
Query
사업자등록번호
path 파라미터로 전달된 문서번호 유형. 기본 값은 RECIPIENT이며 SUPPLIER, RECIPIENT을 지원합니다.
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Response
200
400
InvalidRequestError
: 요청된 입력 정보가 유효하지 않은 경우B2bTaxInvoiceNonDeletableStatusError
: 세금계산서가 삭제 가능한 상태가 아닌 경우
401
UnauthorizedError
: 인증 정보가 올바르지 않은 경우
403
B2bNotEnabledError
: B2B 기능이 활성화되지 않은 경우
404
B2bTaxInvoiceNotFoundError
: 세금계산서가 존재하지 않은 경우
502
B2bExternalServiceError
: 외부 서비스에서 에러가 발생한 경우
세금계산서 발행unstable
Request
Query
true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
Body
문서번호 유형
SUPPLIER
공급자RECIPIENT
공급받는자Response
200
성공 응답으로 세금계산서를 반환합니다.
과세 유형
TAXABLE
과세ZERO_RATED
영세FREE
면세입력 범위(4자리) : 0 ~ 9999
입력 범위(4자리) : 0 ~ 9999
날짜를 나타내는 문자열로, yyyy-MM-dd
형식을 따릅니다.
영수/청구
RECEIPT
INVOICE
NONE
최대 3개
-
를 제외한 10자리
4자리 고정
최대 200자
최대 100자