pdfRest n8n Node Tutorial: Automate PDFs (OCR, Redaction, ZUGFeRD E-Invoicing)
Introduction
PDF work is the unglamorous middle of most document automations. Scanned contracts arrive as flat images, support tickets attach invoices that need extracting, and compliance teams want permanent redaction before anything is shared. Until recently, doing this in n8n meant wiring generic HTTP Request nodes by hand, configuring multipart uploads, polling request IDs, and mapping raw API responses. On October 9, 2026, pdfRest (by Datalogics) released an official verified community node, @pdfrest/n8n-nodes-pdfrest, that puts 40+ PDF operations directly on the n8n canvas, plus a dedicated ZUGFeRD and Factur-X e-invoicing workflow template for France and Germany. This tutorial walks through installing the node, wiring credentials, and building two production-style pipelines: OCR for scanned documents and permanent redaction for compliance, followed by running the e-invoicing template.
Quick answer
Install @pdfrest/n8n-nodes-pdfrest from Settings > Community Nodes, create a pdfRest API credential, then use the pdfRest API Toolkit node to run 40+ PDF operations like OCR, redaction, and ZUGFeRD e-invoicing inside any workflow.
Evidence: why a first-class PDF node matters
The numbers set the stakes. The node exposes more than 40 PDF operations across every major category, powered by the Adobe PDF Library and Adobe PDF Converter, the same engine underlying Adobe Acrobat and Distiller, according to the official launch announcement. Version 0.2.0 of the package is published on npm and ships under the MIT license, with stable releases published only by GitHub Actions after static and live integration checks pass, which the repository README documents as its verification policy.
The pricing economics matter for planning. pdfRest meters API usage rather than charging per seat: the free tier includes 100 API calls per month with watermarked output, and paid Cloud plans start at $8.99 per month billed annually with 600 included API calls, according to the official pricing page. That means a document-heavy workflow can be prototyped on the free tier and moved to production without rebuilding the canvas.
Eric Shore, Chief Innovation Officer at Datalogics, framed the gap this node closes this way: “What they have not had until now is a first-class PDF node that matches the quality of those other integrations.” Teams were already connecting cloud storage, language models, ERP systems, and communication platforms on the n8n canvas, but PDF processing was the detour that needed custom HTTP code. The official repository and the Cloud getting-started guide are the primary references used throughout this tutorial.
Prerequisites
- n8n 1.x or 2.x, self-hosted or n8n Cloud. The node is tested against n8n 2.34.5, and self-hosted installs need Node.js 22 or 24 (odd-numbered Node releases are not supported).
- A pdfRest account. Sign up free to get an API key for the Cloud API, or have a self-hosted pdfRest container deployment reachable from n8n.
- Basic familiarity with the n8n canvas: adding nodes, connecting them, and running executions.
Step 1: Install the community node
The official package is a single node called the pdfRest API Toolkit, which accepts file, resource-ID, and URL inputs depending on the operation. Installation differs by deployment.
Self-hosted n8n. Open Settings > Community Nodes in your n8n instance and enter the package name exactly:
@pdfrest/n8n-nodes-pdfrest
Confirm the installation. n8n will restart the node process, and the pdfRest API Toolkit appears in the Nodes panel. If your deployment restricts community node installation, follow n8n’s community-node installation guidance for the requirements and restrictions of your environment.
n8n Cloud. The node is available directly in the Nodes panel. Search for “pdfRest API Toolkit” and add it to a workflow, then create the credential described in Step 2.
Once installed, the node groups its operations by task: Create and modify, Convert, Extract and analyze, Forms, Optimize, Secure, and Files. You pick the operation first, and the node shows only the fields that operation supports, which is the main reason this beats a hand-rolled HTTP Request node.
Step 2: Create the pdfRest API credential
Add a new pdfRest API credential in n8n and match it to your deployment. The credential form offers two paths, documented in the official README.
Cloud deployment. Select the API Base URL for your region and enter your API Key:
| Deployment | API Key | API Base URL |
|---|---|---|
| Cloud (USA) | pdfRest API key | https://api.pdfrest.com |
| Cloud (EU, GDPR-compliant) | pdfRest API key | https://eu-api.pdfrest.com |
Pick the EU base URL if your documents fall under GDPR data residency requirements.
Self-hosted or container deployment. Choose Self-Hosted or Container Deployment and enter the Deployment URL of your pdfRest container. Self-hosted deployments do not need an API key, and the credential does not send an Api-Key header to them. Two hard rules from the README: deployment URLs must use HTTP or HTTPS with no embedded credentials, query string, or fragment, and if you are on n8n Cloud, the pdfRest deployment must have a public URL, otherwise n8n Cloud cannot reach it.
Keep API keys in n8n credentials only. Never paste them into workflow JSON, expressions, ordinary node fields, or deployment URLs.
Step 3: Build an OCR pipeline (scanned PDF to searchable PDF)
A common automation: a scanner, inbox, or cloud folder drops image-only PDFs, and you need them searchable before indexing. The workflow is a trigger, a file source, the pdfRest node, and a destination.
- Add a trigger that supplies the file, such as an IMAP trigger, Google Drive trigger, or a webhook that accepts uploads. Any node that produces binary file data works.
- Add the pdfRest API Toolkit node. Select the operation that makes PDFs searchable with OCR (under Extract and analyze).
- Choose the Input Source. For a file, set Input Source to Input File and set Input File Data Field Name to the field carrying the binary data. The default field name is
data. This default is a common tripwire: if your upstream node stores the file under a different field name, the pdfRest node sees nothing until you change this value. - Configure the OCR options the operation exposes and run a test execution. Completed processing operations return their JSON response by default.
- Enable Download Output Files so the node also returns the processed PDF as binary data. The default Output File Data Field Name is
data, so the next node can read it without remapping. When the operation can produce multiple files, this value is used as a prefix: the first file usesdata, thendata_1,data_2, and so on in response order. - Connect the destination node, for example an email, Google Drive upload, or S3 upload node, reading from the same data field.
For the URL input path, any URL you pass must be publicly reachable by the configured pdfRest service. A presigned S3 or storage URL works; a localhost URL against the pdfRest Cloud API does not, because the cloud service cannot dial back into your machine.
Step 4: Build a redaction compliance pipeline
Redaction is one of the operations where a dedicated node genuinely outperforms a generic HTTP call, because the flow is preview-then-apply. The pdfRest node supports previewing and applying text redactions under the Secure group.
- Add the pdfRest API Toolkit node and select the redaction operation.
- Feed it the source document and configure the redaction criteria (text patterns or search terms, depending on the operation’s fields). Run a preview operation first: the API returns a preview showing what would be redacted.
- Review the preview in a human-in-the-loop step if compliance requires it. A simple pattern is a Gmail or Slack approval node before the apply step.
- Run the apply operation to burn the redactions permanently into the PDF, then store the output. Note the README’s data-handling reminder: documents, URLs, and parameters are sent to the API Base URL configured in your credential, so review the data-handling, retention, and regional requirements of that pdfRest deployment before running sensitive documents through it.
Step 5: Run the ZUGFeRD and Factur-X e-invoicing template
Alongside the node, pdfRest published ready-to-import template workflows on its n8n Creator Page, and the headline one is the ZUGFeRD and Factur-X e-invoicing workflow. These hybrid invoices matter for Germany and France: each invoice is a human-readable PDF/A-3 document with embedded machine-readable CII XML, and the template automates creating and validating that package from CII XML data.
- Import the template from the pdfRest Creator Page on n8n.io into your instance.
- Open the imported canvas and find the configuration placeholders the template ships with: input data format, credential selection, and delivery destination. Templates come with canvas setup notes, so read those before changing anything.
- Select your pdfRest API credential on every pdfRest node in the canvas.
- Feed the workflow your CII XML invoice data. The flow assembles the hybrid PDF/A-3 plus embedded XML, validates every layer of compliance, and routes the finished file to delivery or archival.
- Run a test execution with a sample invoice first. Validate the output with the node’s ZUGFeRD/Factur-X validation operation before wiring the template into a production invoicing flow.
The other published templates follow the same pattern and are worth browsing: an automated document splitting and review workflow that routes pages through AI models, and an intelligent document classification workflow that runs email attachments through OCR and classification. Each ships with setup notes and placeholders so import, authenticate, and launch takes minutes.
Step 6: Handle long-running operations with polling
Many pdfRest operations can return a request ID instead of waiting for completion. This is the correct design for large documents or heavy operations, but it confuses first-time users who expect an output file and get JSON with an ID instead.
The supported pattern, straight from the README:
- Configure the operation to return a request ID.
- Add a Poll for an Async Request Result node with the request ID. The node waits for the operation to finish.
- Add a Retrieve Resource or Its URL by ID node to download the finished output file or get its URL.
Operations configured for inline JSON return that JSON without a file download, so check the operation’s output mode before assuming binary data will appear.
Troubleshooting
Community node installation fails on self-hosted n8n. Cause: n8n self-hosted deployments have restrictions on community node installation, including Node version and npm access. The README states supported Node.js versions are 22 and 24, and odd-numbered releases are not supported. Fix: confirm your n8n container runs Node 22 or 24, check that the instance can reach the npm registry, and follow n8n’s community-node installation guidance for your deployment’s requirements. The package adds no external runtime dependencies, so the install footprint is small.
The node runs but reports no input file.
Cause: the Input File Data Field Name does not match the upstream binary field. The default is data, and many trigger nodes use that, but some use different names. Fix: open the upstream node’s output, read the actual binary field name, and set Input File Data Field Name to it.
URL input returns an error about the file being unreachable. Cause: the URL is not publicly reachable by the configured pdfRest service. Fix: use a publicly reachable URL (a presigned storage URL works). If both n8n and pdfRest are self-hosted on the same private network, either expose the file via a public URL or switch the input source to a direct file upload.
n8n Cloud cannot reach a self-hosted pdfRest container. Cause: the container has no public URL. This is documented in the README’s support note: n8n Cloud requires the pdfRest deployment to be publicly reachable. Fix: put the container behind a public HTTPS endpoint, or move to the pdfRest Cloud API for the n8n Cloud instance.
Output files come back watermarked. Cause: the free tier (100 API calls per month) produces watermarked output. Fix: this is expected, not a bug. Move to a paid plan for production documents. The README also notes that availability and usage may depend on the configured pdfRest deployment and plan, so check your plan limits if an operation is unavailable.
FAQ
Is the pdfRest n8n node free to use? The node package itself is free and MIT-licensed. API usage is metered by pdfRest: the free tier includes 100 API calls per month with watermarked output, and paid plans start at $8.99 per month billed annually with 600 included calls, as shown on the official pricing page.
Does the pdfRest node work with self-hosted n8n? Yes. Install the package from Settings > Community Nodes with the package name @pdfrest/n8n-nodes-pdfrest. For credentials, choose the Self-Hosted or Container Deployment option and enter your deployment URL instead of an API key. Node.js 22 and 24 are supported for self-hosted installs.
Can I use the node with a self-hosted pdfRest container for data residency? Yes. The node supports pdfRest Cloud in US and EU regions, including a GDPR-compliant EU endpoint, as well as self-hosted container deployments. Keep in mind that n8n Cloud can only reach a self-hosted pdfRest deployment that has a public URL.
What is ZUGFeRD and why does the node have a dedicated template for it? ZUGFeRD and Factur-X are hybrid e-invoicing standards used in Germany and France. Each invoice is a PDF/A-3 document with embedded machine-readable CII XML. pdfRest publishes a ready-to-import n8n workflow template that assembles, validates, and routes these hybrid invoices from CII XML data.
How do I handle long-running operations in the workflow? Many pdfRest operations can return a request ID instead of waiting for completion. Configure the node to return the request ID, then chain a Poll for an Async Request Result node and a Retrieve Resource or Its URL by ID node to download the finished output file.
Conclusion
The pdfRest node turns PDF processing from custom HTTP plumbing into configured canvas steps: install from Community Nodes, add one credential, and pick from 40+ operations. Start with the OCR pipeline on the free tier, add the preview-then-apply redaction flow for compliance work, and import the ZUGFeRD template if you invoice in France or Germany. If your document automations need language understanding on top of extracted text, continue with the n8n AI Agent tutorial, which shows how to connect extracted document content to retrieval pipelines like those in the n8n LangChain RAG tutorial. For hosting the whole stack yourself, the n8n on Ubuntu VPS guide covers the self-hosted setup this node was verified against.
Frequently asked questions
Is the pdfRest n8n node free to use?
The node package itself is free and MIT-licensed. API usage is metered by pdfRest: the free tier includes 100 API calls per month with watermarked output, and paid plans start at $8.99 per month billed annually with 600 included calls, as shown on the official pricing page.
Does the pdfRest node work with self-hosted n8n?
Yes. Install the package from Settings > Community Nodes with the package name @pdfrest/n8n-nodes-pdfrest. For credentials, choose the Self-Hosted or Container Deployment option and enter your deployment URL instead of an API key. Node.js 22 and 24 are supported for self-hosted installs.
Can I use the node with a self-hosted pdfRest container for data residency?
Yes. The node supports pdfRest Cloud in US and EU regions, including a GDPR-compliant EU endpoint, as well as self-hosted container deployments. Keep in mind that n8n Cloud can only reach a self-hosted pdfRest deployment that has a public URL.
What is ZUGFeRD and why does the node have a dedicated template for it?
ZUGFeRD and Factur-X are hybrid e-invoicing standards used in Germany and France. Each invoice is a PDF/A-3 document with embedded machine-readable CII XML. pdfRest publishes a ready-to-import n8n workflow template that assembles, validates, and routes these hybrid invoices from CII XML data.
How do I handle long-running operations in the workflow?
Many pdfRest operations can return a request ID instead of waiting for completion. Configure the node to return the request ID, then chain a Poll for an Async Request Result node and a Retrieve Resource or Its URL by ID node to download the finished output file.