Paste a Base64-encoded PDF to open it in a new tab or download as .pdf. We detect the %PDF- header so you know the bytes are actually a valid PDF before downloading.
PDF in Base64 commonly comes from API responses that embed generated documents (invoices, receipts, reports) inside JSON. A genuine PDF always starts with %PDF- (hex 25 50 44 46 2D). Decoded PDFs are opened via a blob URL — your file never touches a server.
PDF is binary, but many APIs return data as JSON, which can only contain text. Base64 lets servers embed a generated PDF (invoice, receipt, report, signed document) inside a JSON response. The client decodes it back to binary and offers a download.
PDF files always begin with %PDF- (hex 25 50 44 46 2D), followed by the version number. The tool checks for this signature before offering a download.
Yes — the "Open in new tab" button creates a blob URL and opens it in a new browser tab using the browser's built-in PDF viewer. The blob URL is local to your browser; the PDF never leaves the page.
PDFs can have their own encryption layer (separate from Base64). If you successfully decode the Base64 but the PDF asks for a password to view, the encryption is in the PDF itself, not the encoding. Use a PDF tool with the password to unlock it.
Modern APIs almost universally use JSON for request and response bodies, but JSON is a text format — it cannot contain raw binary data like a PDF. When a service generates a document (an invoice, a contract, a tax form, a medical report) and returns it inside a JSON response, the standard pattern is to Base64-encode the PDF into a string field. The client decodes that string back into binary bytes and either displays the PDF inline or offers it as a download.
This pattern is especially common in document signing services (DocuSign, HelloSign, Adobe Sign), invoicing platforms (Stripe Invoicing, QuickBooks, Xero), healthcare APIs (lab reports, prescriptions, claim documents), and government e-filing systems (tax returns, permits, certificates). The PDF stays opaque to the API layer — services do not need to parse it, just shuttle it through.
Every valid PDF begins with the bytes %PDF- followed by a version number, like %PDF-1.7 or %PDF-2.0. After Base64 encoding, this header appears as JVBERi0 at the start of the string — a reliable signature that you have a PDF and not some other binary or text data mislabeled as PDF.
PDF files also end with the marker %%EOF on the last line. If you decode a Base64 PDF and the %%EOF marker is missing, the file is truncated — likely because the Base64 string itself was cut short during transfer. Our tool checks the header before offering a download; for end-of-file verification, you can use the bytes-summary output mode on our main decoder.
People sometimes confuse two layers of obfuscation that PDFs can use. Base64 encoding is a transport wrapper — it converts binary bytes to printable ASCII so the PDF can travel through text-only channels. Anyone can decode it without a key. PDF encryption is a separate, content-level protection that requires a password (or certificate) to view. The two are independent.
It is entirely possible to have a Base64-encoded encrypted PDF — you decode the Base64 to get the binary PDF bytes, and then the PDF viewer prompts for a password. Our tool only handles the Base64 layer. To open password-protected PDFs, use a dedicated PDF viewer with the credentials.
After decoding, this tool offers two paths. Open in new tab creates a blob URL pointing to the decoded bytes and opens it in your browser's built-in PDF viewer. The blob URL is local — the PDF never touches a server, and the URL becomes invalid as soon as you close the tab. Download saves the decoded bytes as a regular .pdf file on your computer, suitable for opening in Adobe Reader, Preview, Foxit, or any other PDF application.
If the in-browser preview shows a blank document or "failed to load" message, the bytes likely do not form a valid PDF. Common causes: the Base64 string was truncated (check that it ends with multiple = characters or the bytes-summary mode shows close to the expected length), the Base64 had whitespace that was not properly stripped, or the original file was something other than a PDF.