> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bolta.io/llms.txt
> Use this file to discover all available pages before exploring further.

# 사업자 프로필 검색

> 상호, 대표자명, 사업자등록번호로 사업자를 검색합니다. 발급자 등록과 공동인증서가 필요 없고, 요청자 관리번호도 쓰지 않습니다. 돌려준 결과 한 건마다 9포인트를 차감하고, 결과가 없으면 차감하지 않습니다.

`hasMore`가 `true`이면 `nextCursor`를 `cursor`에 넣어 이어 받으세요. 받은 결과가 `limit`보다 적어도 `hasMore`가 `true`일 수 있으니 `hasMore`를 보고 이어 호출하세요. 한 검색어로 앞 1,000건까지 받을 수 있습니다. 테스트 키는 가이드에 안내한 모의 사업자에서만 찾습니다. [사업자 프로필 조회 가이드](/docs/api-introduction/business-profile)




## OpenAPI

````yaml /openapi.yaml get /v1/businessProfiles:search
openapi: 3.1.0
info:
  title: 볼타 API
  description: >
    볼타 전자세금계산서 API입니다. [API 소개](/docs/api-introduction/overview) | [인증
    가이드](/docs/api-introduction/authentication) | [사용
    사례](/docs/api-introduction/usecase-b2b)
  version: 1.0.0
servers:
  - url: https://xapi.bolta.io
    description: 볼타 API 서버
security:
  - basicAuth: []
tags:
  - name: 세금계산서 발행
    description: >
      전자(세금)계산서를 정발행하거나 수정발행합니다. [발행 금액
      계산](/docs/api-introduction/issuance-guide) | [수정발행
      유형](/docs/api-introduction/amendment-guide)
  - name: 세금계산서 조회
    description: >
      전자(세금)계산서의 발행 결과와 요청 처리 상태를 조회하고, 발행 완료한 세금계산서의 PDF를 내려받습니다. [세금계산서 PDF 조회
      가이드](/docs/api-introduction/tax-invoice-pdf)
  - name: 세금계산서 역발행
    description: >
      전자(세금)계산서 역발행 요청 및 관리. [이메일 승인
      역발행](/docs/api-introduction/usecase-reverse-email) | [간편 승인
      역발행](/docs/api-introduction/usecase-reverse-simple)
  - name: 현금영수증
    description: >
      현금영수증을 발행하거나 취소하고 처리 상태를 조회합니다. [현금영수증 발행
      가이드](/docs/api-introduction/cash-receipt-guide) | [현금영수증
      웹훅](/docs/api-introduction/webhook-cash-receipt)
  - name: 사업자등록 상태 조회
    description: >
      사업자등록번호의 등록 상태와 과세유형을 단건 또는 최대 100건 일괄로 조회합니다. 발급자 등록과 공동인증서가 필요 없습니다. 상태를
      확인한 번호마다 10포인트를 차감합니다. [사업자등록 상태 조회
      가이드](/docs/api-introduction/business-registration-status)
  - name: 사업자등록증 인식과 진위확인
    description: >
      사업자등록증 파일에서 사업자등록번호, 상호, 대표자명, 개업일, 주소, 업종을 읽고 국세청 진위확인 결과를 함께 돌려줍니다. 발급자
      등록과 공동인증서가 필요 없습니다. 진위확인 결과가 `MATCHED`나 `NOT_MATCHED`인 문서마다 100포인트를 차감합니다.
      [사업자등록증 인식과 진위확인
      가이드](/docs/api-introduction/business-registration-certificate)
  - name: 사업자 프로필 조회
    description: >
      상호, 대표자명, 사업자등록번호로 사업자를 검색하고 사업자등록번호 한 건의 상세 프로필을 조회합니다. 발급자 등록과 공동인증서가 필요
      없습니다. 검색은 돌려준 결과 한 건마다 9포인트, 상세 조회는 조회 성공마다 90포인트를 차감합니다. [사업자 프로필 조회
      가이드](/docs/api-introduction/business-profile)
  - name: 매출/매입 내역 조회
    description: >
      볼타에 쌓인 내 사업자의 매출과 매입 세금계산서를 바뀐 순서로 조회하고 수집을 요청합니다. 볼타에서 발행한 문서와 홈택스에서 수집한
      문서가 모두 실립니다. 스탠다드 플랜 이상을 구독해야 하며 포인트는 차감하지 않습니다. 홈택스 연동은 볼타 대시보드에서 먼저 하세요.
      [매출/매입 내역 조회 가이드](/docs/api-introduction/revenue-expense)
  - name: 입출금 내역 조회
    description: >
      볼타에 연결한 내 사업자의 입출금 계좌와 입출금 내역을 조회하고 동기화를 요청합니다. 스탠다드 플랜 이상을 구독해야 하며 포인트는
      차감하지 않습니다. 계좌는 볼타 대시보드에서 먼저 연결하세요. [입출금 내역 조회
      가이드](/docs/api-introduction/bank-account-transactions)
  - name: 예금주 조회
    description: >
      은행코드와 계좌번호로 예금주명을 조회합니다. 한 계좌씩 묻는 경로와 최대 100개를 한 번에 묻는 경로가 있습니다. 예금주를 돌려준
      계좌마다 50포인트를 차감합니다. [예금주 조회
      가이드](/docs/api-introduction/bank-account-holder)
  - name: 서류 발급
    description: >
      홈택스 국세 증명 서류와 법인등기사항전부증명서를 발급하고 원본 PDF를 내려받습니다. 홈택스 서류는 API 키가 속한 사업자의 서류만
      발급하며, 볼타 대시보드에 공동인증서를 등록해야 합니다. 법인등기는 `corporationNumber`의 법인 등기부를 발급하고
      공동인증서가 필요 없습니다. 지원하는 법인 종류는 주식회사, 유한회사, 합명회사, 합자회사, 유한책임회사, 사단법인, 재단법인,
      의료법인, 협동조합(사회적협동조합 포함), 기타법인(특허법인 등)입니다. 한 건에 홈택스 서류 500포인트, 법인등기 열람용
      1,000포인트, 제출용 1,500포인트를 차감합니다. [서류 발급
      가이드](/docs/api-introduction/document-issuance)
  - name: 발급자
    description: >
      세금계산서 발행 주체인 발급자를 등록하고 관리합니다. 발행 방식에 따라 공동인증서 필요 여부가 다릅니다. [용어
      정리](/docs/api-introduction/glossary) | [대리
      정발행](/docs/api-introduction/usecase-delegated) | [위수탁
      발행](/docs/api-introduction/usecase-brokered)
  - name: 인증서
    description: >
      발급자 공동인증서 등록 및 관리. [인증서
      등록](/docs/api-introduction/certificate-registration)
paths:
  /v1/businessProfiles:search:
    get:
      tags:
        - 사업자 프로필 조회
      summary: 사업자 프로필 검색
      description: >
        상호, 대표자명, 사업자등록번호로 사업자를 검색합니다. 발급자 등록과 공동인증서가 필요 없고, 요청자 관리번호도 쓰지 않습니다.
        돌려준 결과 한 건마다 9포인트를 차감하고, 결과가 없으면 차감하지 않습니다.


        `hasMore`가 `true`이면 `nextCursor`를 `cursor`에 넣어 이어 받으세요. 받은 결과가 `limit`보다
        적어도 `hasMore`가 `true`일 수 있으니 `hasMore`를 보고 이어 호출하세요. 한 검색어로 앞 1,000건까지
        받을 수 있습니다. 테스트 키는 가이드에 안내한 모의 사업자에서만 찾습니다. [사업자 프로필 조회
        가이드](/docs/api-introduction/business-profile)
      parameters:
        - name: keyword
          in: query
          description: >-
            검색어. 상호, 이전 상호, 영문 상호, 대표자명, 상호 초성 3자 이상, 사업자등록번호 10자리로 찾습니다. 앞뒤 공백을
            뺀 100자 이하, 공백과 기호를 뺀 2글자 이상으로 입력하세요. 사업자등록번호로 찾으면 그 사업자 한 건을 돌려줍니다.
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: 한 번에 받을 결과 수. 한 번에 차감하는 포인트는 최대 `limit` × 9포인트입니다.
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 50
            default: 20
        - name: cursor
          in: query
          description: >-
            이전 응답의 `nextCursor`. 받은 값을 그대로 보내세요. cursor는 받을 때의 `keyword`,
            `excludeStatuses`, 키 모드(테스트, 라이브)에 묶입니다. 조건이나 키 모드를 바꿨다면 cursor 없이
            처음부터 다시 검색하세요.
          required: false
          schema:
            type: string
        - name: excludeStatuses
          in: query
          description: >-
            결과에서 뺄 사업자 등록 상태. 쉼표로 구분하세요. 휴업이나 폐업으로 확인된 사업자를 빼고, 볼타가 상태를 확인하지 않은
            사업자는 남깁니다.
          required: false
          style: form
          explode: false
          schema:
            type: array
            minItems: 1
            uniqueItems: true
            items:
              type: string
              enum:
                - SUSPENDED
                - CLOSED
      responses:
        '200':
          description: 검색 성공. 결과가 없으면 `items`가 빈 배열이고 포인트를 차감하지 않습니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BusinessProfileSearchResponse'
              examples:
                첫 페이지:
                  x-parity-id: first-page
                  summary: 테스트 키로 keyword=테스트상사, limit=3을 보낸 결과
                  value:
                    items:
                      - businessRegistrationNumber: '1000000014'
                        organizationName: 테스트상사 주식회사
                        representativeName: 김*타
                        registration:
                          status: ACTIVE
                        region: 서울특별시 강남구
                      - businessRegistrationNumber: '1000000028'
                        organizationName: 테스트상사 간이점
                        representativeName: 이*스
                        registration:
                          status: ACTIVE
                        region: 서울특별시 마포구
                      - businessRegistrationNumber: '1000000106'
                        organizationName: 테스트상사 세금계산서점
                        representativeName: 박*의
                        registration:
                          status: ACTIVE
                        region: 부산광역시 해운대구
                    nextCursor: djE6MDotOjM6MzFmN2UxZGI0NjJkMzVhMQ
                    hasMore: true
                마지막 페이지:
                  x-parity-id: last-page
                  summary: 상태를 확인한 적 없고 지역을 모르는 사업자 한 건
                  value:
                    items:
                      - businessRegistrationNumber: '1000000111'
                        organizationName: 테스트상사 신규점
                        representativeName: 한*의
                        registration: null
                        region: null
                    nextCursor: null
                    hasMore: false
                결과 없음:
                  x-parity-id: empty
                  summary: 맞는 사업자가 없는 검색어
                  value:
                    items: []
                    nextCursor: null
                    hasMore: false
          headers: {}
        '400':
          description: >
            요청을 받을 수 없습니다. 응답의 `code`로 원인을 구분하세요.

            `INVALID_REQUEST`: `keyword`가 없거나 검색어 규칙에 맞지 않습니다. `limit`이 1 이상 50
            이하의 정수가 아니거나, `excludeStatuses`에 빈 값, 중복, `SUSPENDED`와 `CLOSED`가 아닌
            값이 있어도 같은 응답입니다.

            `INVALID_CURSOR`: `cursor`의 형식이 틀렸거나, 받을 때와 검색 조건이나 키 모드가 다르거나,
            오래됐습니다. cursor 없이 처음부터 다시 검색하세요.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: API 키 인증 실패. 응답 본문이 없습니다.
        '402':
          description: 포인트 잔액이 부족합니다. 응답의 `code`는 `PAYMENT_REQUIRED`입니다. 개발자센터에서 충전하세요.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '409':
          description: >-
            진행 중인 다른 요청 때문에 지금 쓸 수 있는 포인트가 모자랍니다. 응답의 `code`는
            `AVAILABLE_POINTS_INSUFFICIENT`입니다. 충전하거나 그 요청이 끝난 뒤 다시 요청하세요.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: >-
            호출 한도인 1분에 120회를 넘었습니다. 응답의 `code`는 `RATE_LIMITED`입니다. `Retry-After`
            이후에 다시 시도하세요.
          headers:
            Retry-After:
              description: 재시도까지 남은 시간(초)
              schema:
                type: integer
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: 서버 내부 오류. 응답의 `code`는 `INTERNAL_SERVER_ERROR`입니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: >
            지금은 검색할 수 없습니다. 응답의 `code`는 `LOOKUP_UNAVAILABLE`입니다. 잠시 후 다시 시도하세요.
            일시적인 내부 API 통신 오류일 때는 `SERVICE_UNAVAILABLE`입니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
components:
  schemas:
    BusinessProfileSearchResponse:
      type: object
      description: 사업자 프로필 검색 결과
      properties:
        items:
          type: array
          description: 검색 결과. 관련도가 높은 순입니다.
          items:
            $ref: '#/components/schemas/BusinessProfileSearchItem'
        nextCursor:
          type:
            - string
            - 'null'
          description: 다음 결과를 받을 cursor. 마지막이면 `null`입니다.
        hasMore:
          type: boolean
          description: 다음 결과가 있으면 `true`입니다.
      required:
        - items
        - nextCursor
        - hasMore
    ErrorResponse:
      type: object
      description: API 요청 실패 시 반환되는 에러 응답
      properties:
        code:
          type: string
          description: 에러 타입 식별자
        message:
          type: string
          description: 에러 설명
        traceId:
          type: string
          description: 요청 추적 식별자
      required:
        - code
        - message
        - traceId
    BusinessProfileSearchItem:
      type: object
      description: 검색 결과 한 건. 사업자를 가려낼 값만 담습니다.
      properties:
        businessRegistrationNumber:
          type: string
          description: 하이픈 없는 10자리 사업자등록번호
        organizationName:
          type:
            - string
            - 'null'
          description: 상호
        representativeName:
          type:
            - string
            - 'null'
          description: 가운데를 가린 대표자명. 실명은 상세 조회로 받으세요.
        registration:
          description: 볼타가 마지막으로 확인한 사업자 등록 상태. 확인한 적이 없으면 `null`입니다.
          oneOf:
            - $ref: '#/components/schemas/BusinessProfileSearchItemRegistration'
            - type: 'null'
        region:
          type:
            - string
            - 'null'
          description: 시도와 시군구 이름. 시군구를 모르면 시도만 담습니다.
      required:
        - businessRegistrationNumber
        - organizationName
        - representativeName
        - registration
        - region
    BusinessProfileSearchItemRegistration:
      type: object
      description: 사업자 등록 상태
      properties:
        status:
          $ref: '#/components/schemas/BusinessRegistrationStatusRegistrationState'
      required:
        - status
    BusinessRegistrationStatusRegistrationState:
      type: string
      title: 사업자 등록 상태
      description: >-
        `ACTIVE` 계속사업자, `SUSPENDED` 휴업자, `CLOSED` 폐업자, `NOT_REGISTERED` 미등록 번호,
        `UNKNOWN` 기타 등록 상태입니다. 통신 실패는 `UNKNOWN`이 아니라 `503`입니다.
      enum:
        - ACTIVE
        - SUSPENDED
        - CLOSED
        - NOT_REGISTERED
        - UNKNOWN
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        API 키 뒤에 콜론을 붙여 Base64로 인코딩해 헤더에 넣으세요. Username에 API 키를 입력하고 Password는
        비워두세요.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.