What you can retrieve
Download a tax invoice issued through the Open API as a PDF. The PDF uses the same layout as the one in the Bolta dashboard.Requirements
- Standard issuance (
issue), reverse issuance (issueRequest), and amended tax invoices (amend) are all supported. - The issuance must be finished. Call this API after you receive the issuance result webhook (
TAX_INVOICE_ISSUANCE_SUCCESS) or after Retrieve Tax Invoice reports the issuance as complete. - For reverse issuance, the PDF is available after the supplier approves and issuance finishes. If the supplier has not approved yet or has rejected the request, the API returns
400 TAX_INVOICE_RETRIEVE_NOT_AVAILABLE. - The PDF of an amended tax invoice marks the title as an amendment or cancellation and includes the amendment reason.
- Call it with the API key that requested the issuance. If you rotate or revoke a key, you can no longer retrieve PDFs for invoices issued with that key, so download the PDFs you need before you change keys.
Pricing
This API does not deduct points.Retrieving the PDF
Request
issuanceKey to the value from the issuance response.
Response
The first call starts generating the PDF. While the PDF is being generated, the API returns202 Accepted with a Retry-After header. Wait that many seconds and send the same request again.
200 OK with a download URL. Bolta does not regenerate a PDF once it exists, so later calls get 200 right away.
downloadUrl, downloadUrlExpiresAt, and filename have values only when the status is READY. When the URL expires, send the same request again to get a new one. The URL contains a signature, so do not write the full URL to logs or analytics tools.
The file name is {type}_{write date}_{supplied party name}_{approval number}.pdf. The download URL sends the same name in the Content-Disposition header. Clients that do not support Korean file names receive a name that keeps only ASCII letters and digits.
Test key
Issuances made with a test key have no real tax invoice. Instead, the API returns200 and a sample PDF URL right away. The sample has the same content for every issuance. The URL lifetime (5 minutes), retrieving again after expiry, and the file name delivery work the same as with a live key, so use a test key to check your download integration.
Test keys never return 202. Check the logic that calls again after Retry-After with a live key.
Rate limits
When 10 PDFs are being generated for the same business, or 20 PDFs are being generated for the same API key, the API returns429 TOO_MANY_IN_FLIGHT with a Retry-After header. The limit applies only to PDFs that need to be generated. Calls for PDFs that you already requested or that are ready are not blocked.
To download many PDFs at once, split your requests so that no more than 10 per business and 20 per key are in progress. Request the next one after an earlier PDF is ready.
Errors
If you call again before
Retry-After after receiving PDF_GENERATION_FAILED, you get the same error.
