PortOne B2b API

The B2b API from PortOne — 26 operation(s) for b2b.

Operations 31

GET /b2b/bulk-tax-invoices/{bulkTaxInvoiceId} 일괄 세금계산서 조회 #
POST /b2b/companies/business-info 사업자등록 정보 조회 #
GET /b2b/counterparties/{brn}/certificate/registration-url 사업자 인증서 등록 URL 조회 #
POST /b2b/counterparties/{brn}/certificate/validate 사업자 인증서 유효성 검증 #
GET /b2b/counterparties/{brn}/certificate 인증서 조회 #
GET /b2b/counterparties/{counterpartyId} 거래처 조회 #
DELETE /b2b/counterparties/{counterpartyId} 거래처 삭제 #
PATCH /b2b/counterparties/{counterpartyId} 거래처 정보 수정 #
GET /b2b/counterparties 거래처 검색 #
POST /b2b/counterparties 거래처 생성 #
POST /b2b/file-upload-url 파일 업로드 URL 생성 #
GET /b2b/tax-invoices-sheet 세금계산서 엑셀 파일(csv) 다운로드 #
PUT /b2b/tax-invoices/draft 세금계산서 임시저장 수정 #
POST /b2b/tax-invoices/draft 세금계산서 임시 저장 #
POST /b2b/tax-invoices/issue-immediately 세금계산서 즉시 정발행 #
POST /b2b/tax-invoices/request-reverse-issuance 세금계산서 역발행 즉시 요청 #
POST /b2b/tax-invoices/{taxInvoiceKey}/attach-file 세금계산서 파일 첨부 #
DELETE /b2b/tax-invoices/{taxInvoiceKey}/attachments/{attachmentId} 세금계산서 첨부파일 삭제 #
GET /b2b/tax-invoices/{taxInvoiceKey}/attachments 세금계산서 첨부파일 목록 조회 #
POST /b2b/tax-invoices/{taxInvoiceKey}/cancel-issuance 세금계산서 취소 (공급자에 의한 취소) #
POST /b2b/tax-invoices/{taxInvoiceKey}/cancel-request 세금계산서 역발행 요청 취소 (공급받는자에 의한 취소) #
POST /b2b/tax-invoices/{taxInvoiceKey}/issue 세금계산서 발행 승인 #
GET /b2b/tax-invoices/{taxInvoiceKey}/pdf-download-url 세금 계산서 PDF 다운로드 URL 조회 #
GET /b2b/tax-invoices/{taxInvoiceKey}/popup-url 세금 계산서 팝업 URL 조회 #
GET /b2b/tax-invoices/{taxInvoiceKey}/print-url 세금 계산서 프린트 URL 조회 #
POST /b2b/tax-invoices/{taxInvoiceKey}/refuse-request 세금계산서 역발행 요청 거부 #
POST /b2b/tax-invoices/{taxInvoiceKey}/request 세금계산서 역발행 요청 #
POST /b2b/tax-invoices/{taxInvoiceKey}/send-to-nts 세금계산서 국세청 즉시 전송 #
GET /b2b/tax-invoices/{taxInvoiceKey} 세금 계산서 조회 #
DELETE /b2b/tax-invoices/{taxInvoiceKey} 세금계산서 삭제 #
GET /b2b/tax-invoices 세금 계산서 다건조회 #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/portone-b2b-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

portone-b2b-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: PortOne B2b API
  version: 1.16.0
servers:
- url: https://api.portone.io
  description: 운영환경 서버
tags:
- name: B2b
paths:
  /b2b/bulk-tax-invoices/{bulkTaxInvoiceId}:
    get:
      summary: 일괄 세금계산서 조회
      description: '일괄 세금계산서 조회


        등록된 일괄 세금계산서를 일괄 세금계산서 아이디로 조회합니다.'
      operationId: getB2bBulkTaxInvoice
      parameters:
      - name: bulkTaxInvoiceId
        in: path
        description: 일괄 세금계산서 아이디
        required: true
        schema:
          type: string
        x-portone-title: 일괄 세금계산서 아이디
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2bBulkTaxInvoice'
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBulkTaxInvoiceError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBulkTaxInvoiceError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBulkTaxInvoiceError'
        '404':
          description: '* `B2bBulkTaxInvoiceNotFoundError`: 일괄 세금계산서가 존재하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBulkTaxInvoiceError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBulkTaxInvoiceError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.taxInvoice
      x-portone-title: 일괄 세금계산서 조회
      x-portone-description: 등록된 일괄 세금계산서를 일괄 세금계산서 아이디로 조회합니다.
      x-portone-error:
        $ref: '#/components/schemas/GetB2bBulkTaxInvoiceError'
      tags:
      - B2b
  /b2b/companies/business-info:
    post:
      summary: 사업자등록 정보 조회
      description: '사업자등록 정보 조회


        요청된 사업자등록번호 리스트에 해당하는 사업자등록 정보를 조회합니다.

        해당 API 사용을 위해서는 별도 문의가 필요합니다.'
      operationId: getB2bBusinessInfos
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetB2bBusinessInfosBody'
        required: true
      responses:
        '200':
          description: 성공 응답으로 사업자등록 정보조회 결과 리스트를 반환합니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBusinessInfosResponse'
          x-portone-description: 성공 응답으로 사업자등록 정보조회 결과 리스트를 반환합니다.
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBusinessInfosError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBusinessInfosError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBusinessInfosError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bBusinessInfosError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: platform.company
      x-portone-title: 사업자등록 정보 조회
      x-portone-description: '요청된 사업자등록번호 리스트에 해당하는 사업자등록 정보를 조회합니다.

        해당 API 사용을 위해서는 별도 문의가 필요합니다.'
      x-portone-error:
        $ref: '#/components/schemas/GetB2bBusinessInfosError'
      tags:
      - B2b
  /b2b/counterparties/{brn}/certificate/registration-url:
    get:
      summary: 사업자 인증서 등록 URL 조회
      description: '사업자 인증서 등록 URL 조회


        연동 사업자의 인증서를 등록하기 위한 URL을 조회합니다.'
      operationId: getB2bCounterpartyCertificateRegistrationUrl
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      - name: brn
        in: path
        description: 사업자등록번호
        required: true
        schema:
          type: string
        x-portone-title: 사업자등록번호
      responses:
        '200':
          description: 성공 응답으로 URL을 반환합니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlResponse'
          x-portone-description: 성공 응답으로 URL을 반환합니다.
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우

            * `B2bCounterpartyNtsNotConnectedError`: 국세청에 연동되어 있지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlError'
        '404':
          description: '* `B2bCounterpartyNotFoundError`: 거래처가 존재하지 않는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 사업자 인증서 등록 URL 조회
      x-portone-description: 연동 사업자의 인증서를 등록하기 위한 URL을 조회합니다.
      x-portone-error:
        $ref: '#/components/schemas/GetB2bCounterpartyCertificateRegistrationUrlError'
      tags:
      - B2b
  /b2b/counterparties/{brn}/certificate/validate:
    post:
      summary: 사업자 인증서 유효성 검증
      description: '사업자 인증서 유효성 검증


        연동 사업자가 등록한 인증서의 유효성을 검증합니다.'
      operationId: validateB2bCounterpartyCertificate
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      - name: brn
        in: path
        description: 사업자등록번호
        required: true
        schema:
          type: string
        x-portone-title: 사업자등록번호
      responses:
        '200':
          description: 성공 응답으로 유효성 검증 결과를 반환합니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateResponse'
          x-portone-description: 성공 응답으로 유효성 검증 결과를 반환합니다.
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우

            * `B2bCounterpartyNtsNotConnectedError`: 국세청에 연동되어 있지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateError'
        '404':
          description: '* `B2bCounterpartyNotFoundError`: 거래처가 존재하지 않는 경우

            * `B2bCertificateUnregisteredError`: 인증서가 등록되어 있지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 사업자 인증서 유효성 검증
      x-portone-description: 연동 사업자가 등록한 인증서의 유효성을 검증합니다.
      x-portone-error:
        $ref: '#/components/schemas/ValidateB2bCounterpartyCertificateError'
      tags:
      - B2b
  /b2b/counterparties/{brn}/certificate:
    get:
      summary: 인증서 조회
      description: '인증서 조회


        연동 사업자의 인증서를 조회합니다.'
      operationId: getB2bCounterpartyCertificate
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      - name: brn
        in: path
        description: 사업자등록번호
        required: true
        schema:
          type: string
        x-portone-title: 사업자등록번호
      responses:
        '200':
          description: 성공 응답으로 인증서 객체를 반환합니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2bCertificate'
          x-portone-description: 성공 응답으로 인증서 객체를 반환합니다.
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우

            * `B2bCounterpartyNtsNotConnectedError`: 국세청에 연동되어 있지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateError'
        '404':
          description: '* `B2bCounterpartyNotFoundError`: 거래처가 존재하지 않는 경우

            * `B2bCertificateUnregisteredError`: 인증서가 등록되어 있지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyCertificateError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 인증서 조회
      x-portone-description: 연동 사업자의 인증서를 조회합니다.
      x-portone-error:
        $ref: '#/components/schemas/GetB2bCounterpartyCertificateError'
      tags:
      - B2b
  /b2b/counterparties/{counterpartyId}:
    get:
      summary: 거래처 조회
      description: '거래처 조회


        거래처를 조회합니다.'
      operationId: getB2bCounterparty
      parameters:
      - name: counterpartyId
        in: path
        description: 거래처 ID
        required: true
        schema:
          type: string
        x-portone-title: 거래처 ID
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      responses:
        '200':
          description: 성공 응답으로 거래처 객체를 반환합니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/B2bCounterparty'
          x-portone-description: 성공 응답으로 거래처 객체를 반환합니다.
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyError'
        '404':
          description: '* `B2bCounterpartyNotFoundError`: 거래처가 존재하지 않는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartyError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 거래처 조회
      x-portone-description: 거래처를 조회합니다.
      x-portone-error:
        $ref: '#/components/schemas/GetB2bCounterpartyError'
      tags:
      - B2b
    delete:
      summary: 거래처 삭제
      description: '거래처 삭제


        거래처를 삭제합니다.'
      operationId: deleteB2bCounterparty
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      - name: counterpartyId
        in: path
        description: 거래처 ID
        required: true
        schema:
          type: string
        x-portone-title: 거래처 ID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DeleteB2bCounterpartyBody'
        required: false
      responses:
        '200':
          description: 성공 응답
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyResponse'
          x-portone-title: 성공 응답
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우

            * `B2bCounterpartyPartnerNotDeletableError`: 파트너 연동 거래처는 삭제할 수 없는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyError'
        '404':
          description: '* `B2bCounterpartyNotFoundError`: 거래처가 존재하지 않는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyError'
        '409':
          description: '* `B2bCounterpartyOngoingTaxInvoiceExistsError`: 진행 중인 세금계산서가 존재하여 거래처를 삭제할 수 없는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DeleteB2bCounterpartyError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 거래처 삭제
      x-portone-description: 거래처를 삭제합니다.
      x-portone-error:
        $ref: '#/components/schemas/DeleteB2bCounterpartyError'
      tags:
      - B2b
    patch:
      summary: 거래처 정보 수정
      description: '거래처 정보 수정


        거래처 정보를 수정합니다.'
      operationId: updateB2bCounterparty
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      - name: counterpartyId
        in: path
        description: 거래처 ID
        required: true
        schema:
          type: string
        x-portone-title: 거래처 ID
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateB2bCounterpartyBody'
        required: true
      responses:
        '200':
          description: 성공 응답
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateB2bCounterpartyResponse'
          x-portone-title: 성공 응답
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우

            * `B2bCounterpartyBrnModificationNotAllowedError`: 사업자등록번호 수정이 허용되지 않는 경우

            * `B2bCounterpartyTooManyAdditionalContactsError`: 추가 담당자가 너무 많은 경우

            * `B2bCounterpartyMissingRequiredFieldsError`: 필수 입력 항목이 누락된 경우

            * `B2bCounterpartyVerificationBrnMismatchError`: 검증 결과의 사업자등록번호가 일치하지 않는 경우

            * `B2bCounterpartyVerificationTypeMismatchError`: 검증 유형이 일치하지 않는 경우

            * `B2bCounterpartyVerificationInvalidError`: 검증 결과가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateB2bCounterpartyError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateB2bCounterpartyError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우

            * `B2bCounterpartyPartnerNotUpdatableError`: 파트너 연동 거래처는 수정할 수 없는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateB2bCounterpartyError'
        '404':
          description: '* `B2bCounterpartyNotFoundError`: 거래처가 존재하지 않는 경우

            * `B2bCounterpartyVerificationNotFoundError`: 검증 결과를 찾을 수 없는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateB2bCounterpartyError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateB2bCounterpartyError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 거래처 정보 수정
      x-portone-description: 거래처 정보를 수정합니다.
      x-portone-error:
        $ref: '#/components/schemas/UpdateB2bCounterpartyError'
      tags:
      - B2b
  /b2b/counterparties:
    get:
      summary: 거래처 검색
      description: '거래처 검색


        거래처를 검색합니다.'
      operationId: getB2bCounterparties
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      - name: requestBody
        in: query
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetB2bCounterpartiesBody'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartiesResponse'
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartiesError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartiesError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartiesError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetB2bCounterpartiesError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-portone-title: 거래처 검색
      x-portone-description: 거래처를 검색합니다.
      x-portone-error:
        $ref: '#/components/schemas/GetB2bCounterpartiesError'
      tags:
      - B2b
    post:
      summary: 거래처 생성
      description: '거래처 생성


        거래처를 생성합니다.'
      operationId: createB2bCounterparty
      parameters:
      - name: test
        in: query
        description: '테스트 모드 여부


          true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.'
        required: false
        schema:
          type: boolean
        x-portone-title: 테스트 모드 여부
        x-portone-description: true 이면 테스트 모드로 실행되며, false 이거나 주어지지 않은 경우 테스트 모드를 사용하지 않습니다.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateB2bCounterpartyBody'
        required: true
      responses:
        '200':
          description: 성공 응답
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyResponse'
          x-portone-title: 성공 응답
        '400':
          description: '* `InvalidRequestError`: 요청된 입력 정보가 유효하지 않은 경우

            * `B2bCounterpartyBrnInvalidError`: 사업자등록번호가 유효하지 않은 경우

            * `B2bCounterpartySelfOriginBrnMismatchError`: 자사 사업자등록번호와 동일한 거래처를 생성할 수 없는 경우

            * `B2bCounterpartyTooManyAdditionalContactsError`: 추가 담당자가 너무 많은 경우

            * `B2bCounterpartyMissingRequiredFieldsError`: 필수 입력 항목이 누락된 경우

            * `B2bCounterpartyVerificationBrnMismatchError`: 검증 결과의 사업자등록번호가 일치하지 않는 경우

            * `B2bCounterpartyVerificationTypeMismatchError`: 검증 유형이 일치하지 않는 경우

            * `B2bCounterpartyVerificationInvalidError`: 검증 결과가 유효하지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyError'
        '401':
          description: '* `UnauthorizedError`: 인증 정보가 올바르지 않은 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyError'
        '403':
          description: '* `B2bNotEnabledError`: B2B 기능이 활성화되지 않은 경우

            * `ForbiddenError`: 요청이 거절된 경우

            * `B2bCounterpartyPartnerNotConnectableError`: 파트너 연동 거래처는 국세청 연동이 허용되지 않는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyError'
        '404':
          description: '* `B2bCounterpartyVerificationNotFoundError`: 검증 결과를 찾을 수 없는 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyError'
        '409':
          description: '* `B2bCounterpartyIdAlreadyExistsError`: 거래처 ID가 이미 사용중인 경우

            * `B2bCounterpartyIdAlreadyExistsByPartnerError`: 파트너 연동으로 생성된 거래처 ID가 이미 사용중인 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyError'
        '502':
          description: '* `B2bExternalServiceError`: 외부 서비스에서 에러가 발생한 경우

            * `B2bCounterpartyNtsConnectionFailedError`: 국세청 연동에 실패한 경우'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateB2bCounterpartyError'
      security:
      - bearerJwt: []
      - portOne: []
      x-portone-category: b2b.counterparty
      x-porton

# --- truncated at 32 KB (252 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/portone/refs/heads/main/openapi/portone-b2b-api-openapi.yml