PortOne B2b API

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

OpenAPI Specification

portone-b2b-api-openapi.yml Raw ↑
openapi: 3.0.3
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