> ## 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.

# 전자(세금)계산서 정발행

> 전체 품목의 금액 합이 발행 금액이 됩니다. `taxType`에 따라 품목의 세액(`tax`)을 전달해주세요.

자세한 금액 계산 방식은 [발행 금액 계산 가이드](/docs/api-introduction/issuance-guide), 위수탁 발행 절차는 [위수탁 발행 가이드](/docs/api-introduction/usecase-brokered)를 참고하세요.

요청의 텍스트에서 보이지 않는 문자는 자동으로 지웁니다. 탭·줄바꿈·캐리지리턴은 유지합니다. 이모지처럼 U+FFFF를 넘는 보충 문자는 `400`으로 거부합니다. [지원하지 않는 문자](/docs/api-introduction/issuance-guide#지원하지-않는-문자)를 참고하세요.




## OpenAPI

````yaml /openapi.yaml post /v1/taxInvoices/issue
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: 전자(세금)계산서의 발행 결과와 요청 처리 상태를 조회합니다.
  - name: 세금계산서 역발행
    description: >
      전자(세금)계산서 역발행 요청 및 관리. [이메일 승인
      역발행](/docs/api-introduction/usecase-reverse-email) | [간편 승인
      역발행](/docs/api-introduction/usecase-reverse-simple)
  - name: 현금영수증
    description: >
      현금영수증을 발행·취소하고 처리 상태를 조회합니다. 발행·취소의 최종 결과는 웹훅이나 상태 조회 API로 확인하세요. [현금영수증
      발행 가이드](/docs/api-introduction/cash-receipt-guide) | [현금영수증
      웹훅](/docs/api-introduction/webhook-cash-receipt)
  - 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/taxInvoices/issue:
    post:
      tags:
        - 세금계산서 발행
      summary: 전자(세금)계산서 정발행
      description: >
        전체 품목의 금액 합이 발행 금액이 됩니다. `taxType`에 따라 품목의 세액(`tax`)을 전달해주세요.


        자세한 금액 계산 방식은 [발행 금액 계산 가이드](/docs/api-introduction/issuance-guide), 위수탁
        발행 절차는 [위수탁 발행 가이드](/docs/api-introduction/usecase-brokered)를 참고하세요.


        요청의 텍스트에서 보이지 않는 문자는 자동으로 지웁니다. 탭·줄바꿈·캐리지리턴은 유지합니다. 이모지처럼 U+FFFF를 넘는 보충
        문자는 `400`으로 거부합니다. [지원하지 않는
        문자](/docs/api-introduction/issuance-guide#지원하지-않는-문자)를 참고하세요.
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TaxInvoiceIssueRequest'
            examples:
              일반 과세:
                x-parity-id: standardTaxable
                summary: 일반 과세 세금계산서 정발행
                value:
                  date: '2026-07-28'
                  purpose: CLAIM
                  taxType: TAXABLE
                  supplier:
                    identificationNumber: '1234567890'
                    organizationName: 공급자 상호
                    representativeName: 공급자대표
                    manager:
                      email: supplier@example.com
                  supplied:
                    identificationNumber: '0987654321'
                    organizationName: 공급받는자 상호
                    representativeName: 공급받는자대표
                    managers:
                      - email: recipient@example.com
                  items:
                    - date: '2026-07-28'
                      name: 과세 품목
                      supplyCost: 100000
                      tax: 10000
              외국인등록번호:
                x-parity-id: foreignSupplied
                summary: 외국인등록번호 공급받는자 정발행
                value:
                  date: '2026-05-27'
                  purpose: CLAIM
                  taxType: TAXABLE
                  supplier:
                    identificationNumber: '1234567890'
                    taxRegistrationId: null
                    organizationName: 공급자 상호
                    representativeName: 공급자대표
                    address: null
                    businessItem: 소프트웨어
                    businessType: 서비스업
                    manager:
                      email: supplier@example.com
                      name: 공급자담당자
                      telephone: null
                  supplied:
                    identificationNumber: '9001015234567'
                    taxRegistrationId: null
                    organizationName: 외국인 공급받는자
                    representativeName: 외국인대표
                    address: null
                    businessItem: null
                    businessType: null
                    managers:
                      - email: foreign@example.com
                        name: 공급받는자담당자
                        telephone: null
                  items:
                    - date: '2026-05-27'
                      name: 전자세금계산서 서비스
                      unitPrice: null
                      quantity: null
                      supplyCost: 100
                      tax: 10
                      specification: null
                      description: 외국인등록번호 정발행 테스트
                  description: null
              영세율 정발행:
                x-parity-id: zeroRate
                summary: 영세율 세금계산서 정발행
                value:
                  date: '2026-05-27'
                  purpose: CLAIM
                  taxType: ZERO_RATE
                  supplier:
                    identificationNumber: '1234567890'
                    taxRegistrationId: null
                    organizationName: 공급자 상호
                    representativeName: 공급자대표
                    address: null
                    businessItem: 소프트웨어
                    businessType: 서비스업
                    manager:
                      email: supplier@example.com
                      name: 공급자담당자
                      telephone: null
                  supplied:
                    identificationNumber: '0987654321'
                    taxRegistrationId: null
                    organizationName: 공급받는자 상호
                    representativeName: 공급받는자대표
                    address: null
                    businessItem: null
                    businessType: null
                    managers:
                      - email: recipient@example.com
                        name: 공급받는자담당자
                        telephone: null
                  items:
                    - date: '2026-05-27'
                      name: 영세율 품목
                      unitPrice: null
                      quantity: null
                      supplyCost: 100000
                      tax: 0
                      specification: null
                      description: null
                  description: null
              위수탁 과세:
                x-parity-id: brokeredTaxable
                summary: 과세 위수탁 세금계산서 정발행
                value:
                  date: '2026-07-28'
                  purpose: CLAIM
                  taxType: TAXABLE
                  supplier:
                    identificationNumber: '1234567890'
                    organizationName: 위탁자 상호
                    representativeName: 위탁자대표
                    manager:
                      email: supplier@example.com
                      name: 위탁자담당자
                  supplied:
                    identificationNumber: '0987654321'
                    organizationName: 공급받는자 상호
                    representativeName: 공급받는자대표
                    managers:
                      - email: recipient@example.com
                        name: 공급받는자담당자
                  trustee:
                    identificationNumber: '1111111111'
                    organizationName: 수탁자 상호
                    representativeName: 수탁자대표
                    manager:
                      email: trustee@example.com
                      name: 수탁자담당자
                      telephone: 010-1234-5678
                  items:
                    - date: '2026-07-28'
                      name: 위수탁 과세 품목
                      supplyCost: 100000
                      tax: 10000
              위수탁 영세율:
                x-parity-id: brokeredZeroRate
                summary: 영세율 위수탁 세금계산서 정발행
                value:
                  date: '2026-07-28'
                  purpose: CLAIM
                  taxType: ZERO_RATE
                  supplier:
                    identificationNumber: '1234567890'
                    organizationName: 위탁자 상호
                    representativeName: 위탁자대표
                    manager:
                      email: supplier@example.com
                      name: 위탁자담당자
                  supplied:
                    identificationNumber: '0987654321'
                    organizationName: 공급받는자 상호
                    representativeName: 공급받는자대표
                    managers:
                      - email: recipient@example.com
                        name: 공급받는자담당자
                  trustee:
                    identificationNumber: '1111111111'
                    organizationName: 수탁자 상호
                    representativeName: 수탁자대표
                  items:
                    - date: '2026-07-28'
                      name: 위수탁 영세율 품목
                      supplyCost: 100000
                      tax: 0
              위수탁 면세:
                x-parity-id: brokeredTaxFree
                summary: 면세 위수탁 계산서 정발행
                value:
                  date: '2026-07-28'
                  purpose: CLAIM
                  taxType: TAX_FREE
                  supplier:
                    identificationNumber: '1234567890'
                    organizationName: 위탁자 상호
                    representativeName: 위탁자대표
                    manager:
                      email: supplier@example.com
                      name: 위탁자담당자
                  supplied:
                    identificationNumber: '0987654321'
                    organizationName: 공급받는자 상호
                    representativeName: 공급받는자대표
                    managers:
                      - email: recipient@example.com
                        name: 공급받는자담당자
                  trustee:
                    identificationNumber: '1111111111'
                    organizationName: 수탁자 상호
                    representativeName: 수탁자대표
                  items:
                    - date: '2026-07-28'
                      name: 위수탁 면세 품목
                      supplyCost: 100000
                      tax: null
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  issuanceKey:
                    $ref: '#/components/schemas/IssuanceKey'
                required:
                  - issuanceKey
              example:
                issuanceKey: 8D529FAD3EBAE050B79CE943CCC7CEDE
          headers: {}
        '400':
          description: 잘못된 요청
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: 서버 내부 오류
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
components:
  schemas:
    TaxInvoiceIssueRequest:
      type: object
      properties:
        date:
          title: 작성일자
          description: 작성일자
          allOf:
            - $ref: '#/components/schemas/DateString'
        purpose:
          $ref: '#/components/schemas/IssuancePurpose'
          title: 영수/청구 구분
          description: 'RECEIPT: 영수, CLAIM: 청구'
        taxType:
          $ref: '#/components/schemas/TaxInvoiceTaxType'
        supplier:
          $ref: '#/components/schemas/TaxInvoiceSupplier'
          title: 공급자
          description: 공급자
        supplied:
          $ref: '#/components/schemas/TaxInvoiceRecipient'
          title: 공급받는자
          description: 공급받는자
        trustee:
          title: 수탁자
          description: 위수탁 발행 시 수탁사업자 정보를 입력하세요.
          anyOf:
            - $ref: '#/components/schemas/TaxInvoiceTrustee'
            - type: 'null'
        items:
          title: 품목
          description: 품목
          type: array
          items:
            $ref: '#/components/schemas/TaxInvoiceItem'
          minItems: 1
          maxItems: 16
        description:
          type:
            - string
            - 'null'
          title: 세금계산서 비고
          description: 세금계산서 비고. 공급받는자 식별번호가 외국인등록번호인 경우 `null`로 전달하거나 필드를 생략해야 합니다.
          minLength: 1
          maxLength: 150
      required:
        - purpose
        - taxType
        - supplied
        - supplier
        - items
        - date
      allOf:
        - $ref: '#/components/schemas/TaxInvoiceItemsByTaxTypeConstraint'
    IssuanceKey:
      type: string
      description: 발행 요청에 대한 식별번호. 포맷과 길이는 바뀔 수 있으므로 유의하시기 바랍니다.
      examples:
        - 8D529FAD3EBAE050B79CE943CCC7CEDE
    ErrorResponse:
      type: object
      description: API 요청 실패 시 반환되는 에러 응답
      properties:
        code:
          type: string
          description: 에러 타입 식별자
        message:
          type: string
          description: 에러 설명
        traceId:
          type: string
          description: 요청 추적 식별자
      required:
        - code
        - message
        - traceId
    DateString:
      type: string
      format: date
      examples:
        - '2024-08-24'
    IssuancePurpose:
      type: string
      description: 'RECEIPT: 영수, CLAIM: 청구'
      enum:
        - RECEIPT
        - CLAIM
    TaxInvoiceTaxType:
      type: string
      title: 과세유형
      description: >-
        TAXABLE: 과세(전자세금계산서), ZERO_RATE: 영세율(전자세금계산서), TAX_FREE: 면세(계산서).
        TAXABLE은 품목의 세액이 null일 수 없고, ZERO_RATE은 모든 품목의 세액이 0이어야 합니다. TAX_FREE는
        모든 품목의 세액이 null이거나 생략되어야 합니다.
      enum:
        - TAXABLE
        - ZERO_RATE
        - TAX_FREE
      examples:
        - TAXABLE
        - ZERO_RATE
        - TAX_FREE
    TaxInvoiceSupplier:
      type: object
      properties:
        identificationNumber:
          $ref: '#/components/schemas/BusinessRegistrationNumber'
          title: 사업자등록번호
          description: 사업자등록번호
        taxRegistrationId:
          title: 종사업장번호
          description: 종사업장번호
          anyOf:
            - $ref: '#/components/schemas/TaxRegistrationId'
            - type: 'null'
        organizationName:
          $ref: '#/components/schemas/OrganizationName'
          title: 상호명
          description: 상호명
        representativeName:
          $ref: '#/components/schemas/RepresentativeName'
          title: 대표자명
          description: 대표자명
        address:
          title: 주소
          description: 주소
          anyOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        businessItem:
          title: 종목
          description: 종목
          anyOf:
            - $ref: '#/components/schemas/BusinessItem'
            - type: 'null'
        businessType:
          title: 업태
          description: 업태
          anyOf:
            - $ref: '#/components/schemas/BusinessType'
            - type: 'null'
        manager:
          $ref: '#/components/schemas/TaxInvoiceManager'
          title: 담당자
          description: 담당자
      required:
        - identificationNumber
        - manager
        - organizationName
        - representativeName
    TaxInvoiceRecipient:
      type: object
      properties:
        identificationNumber:
          $ref: '#/components/schemas/RecipientIdentificationNumber'
          title: 식별번호(사업자등록번호, 주민등록번호, 외국인등록번호)
          description: 식별번호(사업자등록번호, 주민등록번호 형식, 외국인등록번호 형식)
        taxRegistrationId:
          title: 종사업장번호
          description: 공급받는자 식별번호가 사업자등록번호가 아닌 경우 `null`로 전달하거나 필드를 생략해야 합니다.
          anyOf:
            - $ref: '#/components/schemas/TaxRegistrationId'
            - type: 'null'
        organizationName:
          $ref: '#/components/schemas/OrganizationName'
          title: 상호명
          description: 상호명
        representativeName:
          $ref: '#/components/schemas/RepresentativeName'
          title: 대표자명
          description: 대표자명
        address:
          title: 주소
          description: 주소
          anyOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        businessItem:
          title: 종목
          description: 종목
          anyOf:
            - $ref: '#/components/schemas/BusinessItem'
            - type: 'null'
        businessType:
          title: 업태
          description: 업태
          anyOf:
            - $ref: '#/components/schemas/BusinessType'
            - type: 'null'
        managers:
          type: array
          items:
            $ref: '#/components/schemas/TaxInvoiceManager'
          title: 담당자
          description: 담당자
          minItems: 1
          maxItems: 2
      required:
        - representativeName
        - managers
        - identificationNumber
        - organizationName
    TaxInvoiceTrustee:
      type: object
      description: 위수탁 발행의 수탁사업자 정보입니다.
      properties:
        identificationNumber:
          $ref: '#/components/schemas/BusinessRegistrationNumber'
          title: 수탁자 사업자등록번호
        taxRegistrationId:
          title: 종사업장번호
          anyOf:
            - $ref: '#/components/schemas/TaxRegistrationId'
            - type: 'null'
        organizationName:
          $ref: '#/components/schemas/OrganizationName'
          title: 상호명
        representativeName:
          $ref: '#/components/schemas/RepresentativeName'
          title: 대표자명
        address:
          title: 주소
          anyOf:
            - $ref: '#/components/schemas/Address'
            - type: 'null'
        businessItem:
          title: 종목
          anyOf:
            - $ref: '#/components/schemas/BusinessItem'
            - type: 'null'
        businessType:
          title: 업태
          anyOf:
            - $ref: '#/components/schemas/BusinessType'
            - type: 'null'
        manager:
          title: 수탁자 담당자
          anyOf:
            - $ref: '#/components/schemas/TaxInvoiceTrusteeManager'
            - type: 'null'
      required:
        - identificationNumber
        - organizationName
        - representativeName
    TaxInvoiceItem:
      type: object
      properties:
        date:
          $ref: '#/components/schemas/DateString'
          title: 공급일자
          description: 공급일자
        name:
          type: string
          title: 품목명
          description: 품목명
          maxLength: 100
          minLength: 1
        unitPrice:
          type:
            - integer
            - 'null'
          title: 단가
          description: 단가
          minimum: 0
          exclusiveMinimum: 0
          examples:
            - 100
        quantity:
          type:
            - integer
            - 'null'
          title: 수량
          description: 수량
        supplyCost:
          type: integer
          title: 공급가액
          description: 공급가액
          minimum: 1
          examples:
            - 1000
        tax:
          type:
            - integer
            - 'null'
          title: 세액
          description: >-
            세액. `taxType`이 `TAXABLE`이면 `null`이 아닌 값을, `ZERO_RATE`이면 `0`을 전달합니다.
            `TAX_FREE`이면 `null`로 전달하거나 필드를 생략합니다.
          minimum: 0
          examples:
            - 0
            - 100
        specification:
          type:
            - string
            - 'null'
          title: 규격
          description: 규격
          maxLength: 60
        description:
          type:
            - string
            - 'null'
          title: 품목 비고
          description: 품목 비고
          maxLength: 100
      required:
        - date
        - name
        - supplyCost
    TaxInvoiceItemsByTaxTypeConstraint:
      type: object
      allOf:
        - if:
            properties:
              taxType:
                const: TAXABLE
          then:
            additionalProperties: true
            properties:
              items:
                items:
                  additionalProperties: true
                  properties:
                    tax:
                      type: integer
                  required:
                    - tax
        - if:
            properties:
              taxType:
                const: ZERO_RATE
          then:
            additionalProperties: true
            properties:
              items:
                items:
                  additionalProperties: true
                  properties:
                    tax:
                      const: 0
                  required:
                    - tax
        - if:
            properties:
              taxType:
                const: TAX_FREE
          then:
            additionalProperties: true
            properties:
              items:
                items:
                  additionalProperties: true
                  properties:
                    tax:
                      type: 'null'
    BusinessRegistrationNumber:
      type: string
      title: 사업자등록번호
      description: >-
        체크섬이 유효한 하이픈(-) 없는 10자리 숫자. 패턴: `^\d{10}$`. 문서의 예시 번호는 체크섬을 통과하지 않는
        자리표시자입니다. 실제 사업자등록번호를 입력하세요.
      pattern: ^\d{10}$
      examples:
        - '1234567890'
    TaxRegistrationId:
      type: string
      title: 종사업장번호
      description: '4자리 숫자, `0000` 제외. 패턴: `^(?!0{4})\d{4}$`'
      pattern: ^(?!0{4})\d{4}$
      examples:
        - '0001'
        - '0002'
      minLength: 4
      maxLength: 4
    OrganizationName:
      type: string
      title: 상호명
      description: 상호명
      maxLength: 70
      minLength: 1
    RepresentativeName:
      type: string
      title: 대표자명
      description: 대표자명
      minLength: 1
      maxLength: 30
    Address:
      type: string
      title: 주소
      description: 주소
      maxLength: 150
      minLength: 1
    BusinessItem:
      type: string
      title: 종목
      description: 종목
      maxLength: 100
      examples:
        - 소프트웨어 개발 및 공급업
      minLength: 1
    BusinessType:
      type: string
      title: 업태
      description: 업태
      maxLength: 100
      examples:
        - 정보통신업
      minLength: 1
    TaxInvoiceManager:
      type: object
      properties:
        email:
          $ref: '#/components/schemas/Email'
          title: 이메일
          description: 이메일
        name:
          type:
            - string
            - 'null'
          title: 이름
          description: 이름
          maxLength: 30
          minLength: 1
        telephone:
          type:
            - string
            - 'null'
          title: 휴대전화번호
          description: '휴대전화번호. 입력하면 담당자에게 알림톡이 발송됩니다. 패턴: `^010-\d{4}-\d{4}$`'
          maxLength: 20
          examples:
            - 010-1234-5678
          pattern: ^010-\d{4}-\d{4}$
      required:
        - email
    RecipientIdentificationNumber:
      type: string
      title: 식별번호
      description: >-
        사업자등록번호 10자리, 주민등록번호 형식 13자리, 외국인등록번호 형식 13자리. 하이픈(-) 없는 숫자. 예시 번호는
        자리표시자입니다. 실제 공급받는자의 식별번호를 입력하세요.
      pattern: ^\d{10}(\d{3})?$
      examples:
        - '1234567890'
        - '9001011234567'
        - '9001015234567'
    TaxInvoiceTrusteeManager:
      type: object
      description: '`email`, `name`, `telephone` 중 하나 이상을 입력하세요.'
      properties:
        email:
          anyOf:
            - $ref: '#/components/schemas/Email'
            - type: 'null'
        name:
          type:
            - string
            - 'null'
          maxLength: 30
          minLength: 1
        telephone:
          type:
            - string
            - 'null'
          maxLength: 20
          pattern: ^010-\d{4}-\d{4}$
      anyOf:
        - properties:
            email:
              $ref: '#/components/schemas/Email'
          required:
            - email
        - properties:
            name:
              type: string
              minLength: 1
              maxLength: 30
          required:
            - name
        - properties:
            telephone:
              type: string
              pattern: ^010-\d{4}-\d{4}$
              maxLength: 20
          required:
            - telephone
    Email:
      type: string
      title: 이메일
      description: '패턴: `^[a-zA-Z0-9.!#$%&''*+/=?^_`{|}~-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`'
      format: email
      pattern: ^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
      maxLength: 40
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: API 키를 Base64 인코딩하여 전달합니다. Username에 API 키를 입력하고 Password는 비워두세요.

````