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

# Retrieve Tax Invoice PDF

> Retrieve the PDF download URL for a tax invoice that finished issuing through standard issuance, reverse issuance, or amendment. Call it with the API key that requested the issuance. This API does not deduct points. The first call starts generating the PDF. When you get `202`, wait the number of seconds in `Retry-After` and send the same request again. When the PDF is ready, the API returns `200` and a URL that is valid for 5 minutes. When the URL expires, call the API again to get a new one. Test keys return `200` and a sample PDF URL right away. [Tax invoice PDF guide](/en/api-introduction/tax-invoice-pdf)




## OpenAPI

````yaml /openapi.en.yaml get /v1/taxInvoices/{issuanceKey}/pdf
openapi: 3.1.0
info:
  title: Bolta API
  description: >
    The Bolta e-tax invoice API. [API Overview](/en/api-introduction/overview) |
    [Authentication guide](/en/api-introduction/authentication) | [Use
    cases](/en/api-introduction/usecase-b2b)
  version: 1.0.0
servers:
  - url: https://xapi.bolta.io
    description: Bolta API server
security:
  - basicAuth: []
tags:
  - name: Tax Invoice Issuance
    description: >
      Issue and amend e-tax invoices. [Calculating the issuance
      amount](/en/api-introduction/issuance-guide) | [Amendment
      types](/en/api-introduction/amendment-guide)
  - name: Tax Invoice Retrieval
    description: >
      Retrieve e-tax invoice results and request processing status, and download
      the PDF of an issued tax invoice. [Tax invoice PDF
      guide](/en/api-introduction/tax-invoice-pdf)
  - name: Reverse Issuance
    description: >
      Request and manage reverse issuance of e-tax invoices. [Email-approval
      reverse issuance](/en/api-introduction/usecase-reverse-email) |
      [Simple-approval reverse
      issuance](/en/api-introduction/usecase-reverse-simple)
  - name: Cash Receipt
    description: >
      Issue, cancel, and check the status of cash receipts. [Cash receipt
      guide](/en/api-introduction/cash-receipt-guide) | [Cash receipt
      webhooks](/en/api-introduction/webhook-cash-receipt)
  - name: Business Registration Status
    description: >
      Check the registration status and tax type of a business registration
      number. Look up one number or up to 100 numbers at once. This API requires
      no issuer registration and no certificate. [Business registration status
      guide](/en/api-introduction/business-registration-status)
  - name: Bank Account Transactions
    description: >
      Retrieve the bank accounts and transactions connected to your own business
      in Bolta, and request a sync. You need a Standard plan or higher, and the
      calls deduct no points. Connect bank accounts in the Bolta dashboard
      first. [Bank account transactions
      guide](/en/api-introduction/bank-account-transactions)
  - name: Bank Account Holder
    description: >
      Look up account holder names with a bank code and an account number. One
      path takes a single account and the other takes up to 100 accounts at
      once. Each account that returns a holder name deducts 50 points. [Bank
      account holder guide](/en/api-introduction/bank-account-holder)
  - name: Document Issuance
    description: >
      Issue National Tax Service certificates from Hometax or a certified copy
      of corporate registry, and download the original PDF. Hometax documents
      are issued only for the business that owns the API key, and you must
      register a joint certificate in the Bolta dashboard. A corporate registry
      is issued for the corporation in `corporationNumber` and needs no joint
      certificate. Supported corporation types are stock company, limited
      company, general partnership company, limited partnership company, limited
      liability company, incorporated association, incorporated foundation,
      medical corporation, cooperative (including social cooperative), and other
      corporate entity (such as a patent corporation). Each document deducts 500
      points for Hometax documents, 1,000 points for a corporate registry view
      copy, and 1,500 points for a submission copy. [Document issuance
      guide](/en/api-introduction/document-issuance)
  - name: Issuer
    description: >
      Register and manage businesses that act as tax invoice issuers.
      Certificate requirements depend on the issuance type.
      [Glossary](/en/api-introduction/glossary) | [Delegated
      issuance](/en/api-introduction/usecase-delegated) | [Brokered Tax Invoice
      Issuance](/en/api-introduction/usecase-brokered)
  - name: Certificate
    description: >
      Register and manage issuer certificates. [Certificate
      registration](/en/api-introduction/certificate-registration)
paths:
  /v1/taxInvoices/{issuanceKey}/pdf:
    get:
      tags:
        - Tax Invoice Retrieval
      summary: Retrieve Tax Invoice PDF
      description: >
        Retrieve the PDF download URL for a tax invoice that finished issuing
        through standard issuance, reverse issuance, or amendment. Call it with
        the API key that requested the issuance. This API does not deduct
        points. The first call starts generating the PDF. When you get `202`,
        wait the number of seconds in `Retry-After` and send the same request
        again. When the PDF is ready, the API returns `200` and a URL that is
        valid for 5 minutes. When the URL expires, call the API again to get a
        new one. Test keys return `200` and a sample PDF URL right away. [Tax
        invoice PDF guide](/en/api-introduction/tax-invoice-pdf)
      parameters:
        - name: issuanceKey
          in: path
          description: '`issuanceKey` from the issuance response'
          required: true
          schema:
            type: string
      responses:
        '200':
          description: PDF ready
          headers:
            Cache-Control:
              description: Do not cache the response
              schema:
                type: string
                example: no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxInvoicePdf'
              examples:
                Ready:
                  x-parity-id: ready
                  summary: Response with a downloadable 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 is being generated. Send the same request again after the number
            of seconds in `Retry-After`.
          headers:
            Retry-After:
              description: Seconds to wait before calling again
              schema:
                type: integer
                example: 2
            Cache-Control:
              description: Do not cache the response
              schema:
                type: string
                example: no-store
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxInvoicePdf'
              examples:
                Pending:
                  x-parity-id: pending
                  summary: Response while the PDF is being generated
                  value:
                    issuanceKey: 8D529FAD3EBAE050B79CE943CCC7CEDE
                    status: PENDING
                    downloadUrl: null
                    downloadUrlExpiresAt: null
                    filename: null
        '400':
          description: >
            The PDF is not available for this issuance. The `code` is
            `TAX_INVOICE_RETRIEVE_NOT_AVAILABLE` when issuance has not finished
            or has failed. For reverse issuance, this also applies when the
            supplier has not approved or has rejected the request.
            `INVALID_DOCUMENT` means the PDF cannot be generated from the
            document data stored in Bolta. Contact Bolta with the `issuanceKey`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: API key authentication failed. The response has no body.
        '403':
          description: >-
            The API key is not the one that requested the issuance. This also
            applies when you retrieve an issuance made with a key you have since
            rotated or revoked. The response `code` is `FORBIDDEN`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Unknown `issuanceKey`. The response `code` is `NOT_FOUND`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '429':
          description: >-
            10 PDFs are being generated for the same business, or 20 PDFs are
            being generated for the same API key. Calls for PDFs that you
            already requested or that are ready do not count. The response
            `code` is `TOO_MANY_IN_FLIGHT`. Call again after the `Retry-After`
            interval.
          headers:
            Retry-After:
              description: Seconds to wait before calling again
              schema:
                type: integer
                example: 60
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: >-
            Internal server error. The response `code` is
            `INTERNAL_SERVER_ERROR`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '503':
          description: >
            The `code` is `PDF_GENERATION_FAILED` when the PDF could not be
            generated after several attempts. Send the same request after the
            number of seconds in `Retry-After` and the API generates the PDF
            again. Calls before then return the same error. If it keeps failing,
            contact Bolta with the `issuanceKey`. A temporary internal API
            communication error returns `SERVICE_UNAVAILABLE`.
          headers:
            Retry-After:
              description: >-
                Seconds to wait before the PDF can be generated again. Sent only
                with `PDF_GENERATION_FAILED`.
              schema:
                type: integer
                example: 600
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
      deprecated: false
components:
  schemas:
    TaxInvoicePdf:
      type: object
      description: Tax invoice PDF status and download URL
      properties:
        issuanceKey:
          type: string
          description: The requested `issuanceKey`
        status:
          type: string
          description: >-
            PDF status. `PENDING` means the PDF is being generated and `READY`
            means it is ready.
          enum:
            - PENDING
            - READY
        downloadUrl:
          type:
            - string
            - 'null'
          format: uri
          description: >-
            PDF URL. Set only when `READY` and valid for 5 minutes. It contains
            a signature, so do not log the full URL. Test keys return a sample
            PDF URL.
        downloadUrlExpiresAt:
          type:
            - string
            - 'null'
          format: date-time
          description: '`downloadUrl` expiry time (UTC)'
        filename:
          type:
            - string
            - 'null'
          description: >-
            File name saved on download, in the form `{type}_{write
            date}_{supplied party name}_{approval number}.pdf`.
      required:
        - issuanceKey
        - status
        - downloadUrl
        - downloadUrlExpiresAt
        - filename
    ErrorResponse:
      type: object
      description: The error response returned when an API request fails
      properties:
        code:
          type: string
          description: Error type identifier
        message:
          type: string
          description: Error description
        traceId:
          type: string
          description: Request trace identifier
      required:
        - code
        - message
        - traceId
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Append a colon to your API key, Base64-encode it, and put it in the
        header. Enter the API key as the username and leave the password empty.

````