sealdoc

n8n community node for SealDoc — convert documents to PDF/A-3, render Markdown/HTML directly to sealed PDFs, generate Factur-X 1.0 invoices from JSON, validate Factur-X / ZUGFeRD invoices, run Peppol-Ready checks, and produce PDF/UA-1 (ISO 14289-1) access

Package Information

Released: 4 mo ago
Downloads: 14 weekly / 59 monthly
Latest Version: 0.5.0
Author: FeFem Holding B.V.

Documentation

n8n-nodes-sealdoc

n8n community node for SealDoc — EU-sovereign compliance infrastructure. Convert any document to PDF/A-3, render Markdown/HTML directly to sealed PDFs, generate Factur-X invoices from structured JSON, validate Factur-X / ZUGFeRD invoices, and run Peppol-Ready checks.

Operations

Resource Operation Auth Purpose
Job Create API key Convert an existing file (PDF, Word, Excel, PowerPoint, image) to PDF/A-3. Returns a jobId.
Job Get API key Fetch the conversion result by jobId: status, download URL, evidence-pack metadata.
Document Generate API key Render Markdown or HTML directly to PDF/A-3 in one call — no separate upload step. Optional RFC 3161 timestamp + evidence pack.
Invoice Generate API key (Enterprise) Render a tenant-supplied JSON invoice (seller / buyer / lines) to Factur-X 1.0 BASIC PDF/A-3. Seller VAT must match the tenant's VAT.
Validator Check Anonymous (IP rate-limited) Validate a Factur-X / ZUGFeRD invoice — returns verdict + per-finding detail.
Peppol Check Check Anonymous (IP rate-limited) Check Peppol-Ready status by VAT number; cross-references the country mandate.

Setup

  1. Generate an API key at app.sealdoc.eu/api-keys.
  2. In n8n: Credentials → New → SealDoc API, paste the key.
  3. Drop a SealDoc node in your workflow, pick a resource + operation.

Typical flows

Existing file → PDF/A-3

[Trigger: file dropped in folder]
    → [SealDoc · Job · Create]      (uploads, returns jobId)
    → [Wait 5s]
    → [SealDoc · Job · Get]         (fetches result)
    → [HTTP: download PDF/A-3 from result.downloadUrl]
    → [Send to accounting / archive]

Data row → sealed PDF (no upload step)

[Trigger: Airtable / DB / webhook row]
    → [Set: build markdown report from row fields]
    → [SealDoc · Document · Generate]   (format=markdown, content=...)
    → [SealDoc · Job · Get]              (jobId from previous step)
    → [HTTP: download PDF/A-3 from result.downloadUrl]

The Document resource always sanitizes tenant-supplied HTML against the
ADR-0013
allowlist — script, iframe, style, external img, and CSS
url(...) are stripped server-side. Pass an Idempotency-Key if your
workflow may retry the same payload.

Billing webhook → Factur-X invoice

[Trigger: Stripe / Mollie / CRM webhook]
    → [Set: map customer + line items into seller/buyer/lines]
    → [SealDoc · Invoice · Generate]   (Idempotency-Key = stripe_event_id)
    → [SealDoc · Job · Get]
    → [HTTP: download Factur-X PDF/A-3 from result.downloadUrl]
    → [Send to customer / archive in DMS]

The Invoice resource enforces VAT-leading seller validation: the seller
VAT in the request must canonicalise to the tenant's own VAT
(Settings → Billing). Drift in seller name is logged as an audit warning
but never blocks. Set the Idempotency-Key header explicitly — invoices
deliberately do not auto-dedup on payload because two identical
recurring-billing payloads within 24h can both be legitimate.
See ADR-0014.

Rate limits

  • Authenticated (Job · *): per-tenant plan limit (Developer 50/mo, Starter 1k/mo, Growth 5k/mo, Business 25k/mo, Enterprise custom).
  • Anonymous (Validator · Peppol): 50 requests/IP/day across both tools combined.

Self-hosted Enterprise

The credential's Base URL and the public Base URL parameter both default to https://api.sealdoc.eu. Override only for self-hosted Enterprise deployments.

Support

License

MIT

Discussion