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

# 세금계산서 PDF 조회

> 발행 완료한 세금계산서(정발행, 역발행, 수정세금계산서)의 PDF 다운로드 주소를 조회합니다. 발행을 요청한 API 키로 호출하세요. 포인트를 차감하지 않습니다. 첫 호출이 PDF 생성을 시작합니다. `202`를 받으면 `Retry-After` 초 뒤 같은 요청을 다시 보내세요. 준비되면 API가 `200`과 5분 동안 유효한 주소를 반환합니다. 주소가 만료되면 다시 호출해 새 주소를 받으세요. 테스트 키는 바로 `200`과 샘플 PDF 주소를 반환합니다. [세금계산서 PDF 조회 가이드](/docs/api-introduction/tax-invoice-pdf)




## OpenAPI

````yaml /openapi.yaml get /v1/taxInvoices/{issuanceKey}/pdf
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건 일괄로 조회합니다. 발급자 등록과 공동인증서가 필요 없습니다.
      [사업자등록 상태 조회 가이드](/docs/api-introduction/business-registration-status)
  - 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/taxInvoices/{issuanceKey}/pdf:
    get:
      tags:
        - 세금계산서 조회
      summary: 세금계산서 PDF 조회
      description: >
        발행 완료한 세금계산서(정발행, 역발행, 수정세금계산서)의 PDF 다운로드 주소를 조회합니다. 발행을 요청한 API 키로
        호출하세요. 포인트를 차감하지 않습니다. 첫 호출이 PDF 생성을 시작합니다. `202`를 받으면 `Retry-After` 초 뒤
        같은 요청을 다시 보내세요. 준비되면 API가 `200`과 5분 동안 유효한 주소를 반환합니다. 주소가 만료되면 다시 호출해 새
        주소를 받으세요. 테스트 키는 바로 `200`과 샘플 PDF 주소를 반환합니다. [세금계산서 PDF 조회
        가이드](/docs/api-introduction/tax-invoice-pdf)
      parameters:
        - name: issuanceKey
          in: path
          description: 발행 요청 응답의 `issuanceKey`
          required: true
          schema:
            type: string
      responses:
        '200':
          description: PDF 준비 완료
          headers:
            Cache-Control:
              description: 응답을 캐시하지 마세요
              schema:
                type: string
                example: no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxInvoicePdf'
              examples:
                준비 완료:
                  x-parity-id: ready
                  summary: PDF를 내려받을 수 있는 응답
                  value:
                    issuanceKey: 8D529FAD3EBAE050B79CE943CCC7CEDE
                    status: READY
                    downloadUrl: >-
                      https://example.com/tax-invoice-pdfs/8D529FAD3EBAE050B79CE943CCC7CEDE.pdf
                    downloadUrlExpiresAt: '2026-09-24T03:05:00Z'
                    filename: 전자세금계산서_20260924_공급받는자 상호_20260924-10000000-00000001.pdf
        '202':
          description: PDF 생성 중. `Retry-After` 초 뒤 같은 요청을 다시 보내세요.
          headers:
            Retry-After:
              description: 다시 호출하기까지 기다릴 시간(초)
              schema:
                type: integer
                example: 2
            Cache-Control:
              description: 응답을 캐시하지 마세요
              schema:
                type: string
                example: no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxInvoicePdf'
              examples:
                생성 중:
                  x-parity-id: pending
                  summary: PDF를 만드는 중인 응답
                  value:
                    issuanceKey: 8D529FAD3EBAE050B79CE943CCC7CEDE
                    status: PENDING
                    downloadUrl: null
                    downloadUrlExpiresAt: null
                    filename: null
        '400':
          description: >
            PDF를 받을 수 없는 발행 건입니다. 발행 완료 전이거나 발행에 실패했으면
            `TAX_INVOICE_RETRIEVE_NOT_AVAILABLE`입니다. 역발행은 공급자가 승인하기 전이거나 거절한 경우도
            해당합니다. `INVALID_DOCUMENT`는 볼타에 저장된 문서 정보로 PDF를 만들 수 없는 경우입니다.
            `issuanceKey`와 함께 볼타에 문의하세요.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: API 키 인증 실패. 응답 본문이 없습니다.
        '403':
          description: >-
            발행을 요청한 API 키가 아닙니다. 키를 교체하거나 폐기한 뒤 이전 키로 발행한 건을 조회해도 같습니다. 응답의
            `code`는 `FORBIDDEN`입니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: 없는 `issuanceKey`입니다. 응답의 `code`는 `NOT_FOUND`입니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: >-
            같은 사업자에서 만드는 중인 PDF가 10건이거나, 같은 API 키로 만드는 중인 PDF가 20건입니다. 이미 요청했거나
            준비된 PDF를 다시 조회하는 호출은 해당하지 않습니다. 응답의 `code`는 `TOO_MANY_IN_FLIGHT`입니다.
            `Retry-After` 이후에 다시 호출하세요.
          headers:
            Retry-After:
              description: 다시 호출하기까지 기다릴 시간(초)
              schema:
                type: integer
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: 서버 내부 오류. 응답의 `code`는 `INTERNAL_SERVER_ERROR`입니다.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: >
            여러 번 시도했지만 PDF를 만들지 못했으면 `code`가 `PDF_GENERATION_FAILED`입니다.
            `Retry-After` 초 뒤 같은 요청을 보내면 API가 PDF를 다시 만듭니다. 그 전에 호출하면 같은 오류를
            받습니다. 계속되면 `issuanceKey`와 함께 볼타에 문의하세요. 일시적인 내부 API 통신 오류는
            `SERVICE_UNAVAILABLE`입니다.
          headers:
            Retry-After:
              description: PDF를 다시 만들기까지 기다릴 시간(초). `PDF_GENERATION_FAILED`에만 있습니다.
              schema:
                type: integer
                example: 600
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
components:
  schemas:
    TaxInvoicePdf:
      type: object
      description: 세금계산서 PDF 준비 상태와 다운로드 주소
      properties:
        issuanceKey:
          type: string
          description: 요청한 `issuanceKey`
        status:
          type: string
          description: PDF 준비 상태. `PENDING`은 생성 중, `READY`는 준비 완료입니다.
          enum:
            - PENDING
            - READY
        downloadUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            PDF 주소. `READY`일 때만 채우며 5분 동안 유효합니다. 서명값이 들어 있으니 로그에 전체를 남기지 마세요.
            테스트 키는 샘플 PDF 주소입니다.
        downloadUrlExpiresAt:
          type:
            - string
            - 'null'
          format: date-time
          description: '`downloadUrl` 만료 시각(UTC)'
        filename:
          type:
            - string
            - 'null'
          description: 내려받을 때 저장되는 파일 이름. `{종류}_{작성일자}_{공급받는자 상호}_{승인번호}.pdf` 형식입니다.
      required:
        - issuanceKey
        - status
        - downloadUrl
        - downloadUrlExpiresAt
        - filename
    ErrorResponse:
      type: object
      description: API 요청 실패 시 반환되는 에러 응답
      properties:
        code:
          type: string
          description: 에러 타입 식별자
        message:
          type: string
          description: 에러 설명
        traceId:
          type: string
          description: 요청 추적 식별자
      required:
        - code
        - message
        - traceId
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        API 키 뒤에 콜론을 붙여 Base64로 인코딩해 헤더에 넣으세요. Username에 API 키를 입력하고 Password는
        비워두세요.

````