PolyDoc (Independent Publisher) (Preview)
Convert HTML or a URL into pixel-perfect PDFs and screenshots, and generate EU-compliant hybrid e-invoices (ZUGFeRD / Factur-X). PolyDoc renders with a real browser engine, so what you see in the page is what you get in the document.
This connector is available in the following products and regions:
| Service | Class | Regions |
|---|---|---|
| Copilot Studio | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Logic Apps | Standard | All Logic Apps regions except the following: - Azure Government regions - Azure China regions - US Department of Defense (DoD) |
| Power Apps | Premium | All Power Apps regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Power Automate | Premium | All Power Automate regions except the following: - US Government (GCC) - US Government (GCC High) - China Cloud operated by 21Vianet - US Department of Defense (DoD) |
| Contact | |
|---|---|
| Name | PolyDoc |
| URL | https://polydoc.tech |
| hello@polydoc.tech |
| Connector Metadata | |
|---|---|
| Publisher | blue-d3v |
| Website | https://polydoc.tech |
| Privacy policy | https://polydoc.tech/legal/privacy-policy/ |
| Categories | Content and Files |
PolyDoc
PolyDoc turns HTML or a URL into pixel-perfect PDFs and screenshots, and generates EU-compliant hybrid e-invoices (ZUGFeRD / Factur-X). Conversions render in a real browser engine, so what you see in the page is what you get in the document.
Publisher
PolyDoc
Prerequisites
You need a PolyDoc account and an API key. The free tier is enough to evaluate the connector. Custom connectors are a premium Power Automate feature, so flows that use this connector need a Power Automate Premium plan (per-user or per-flow), the same as the built-in HTTP action.
Obtaining credentials
- Sign in at dashboard.polydoc.tech.
- Open API Keys and create a key.
- When you create the connection, paste the key into PolyDoc API key. Paste
only the key; the connector adds the
Bearerprefix for you.
Supported operations
| Operation | What it does |
|---|---|
| Convert to PDF | Render HTML, a URL, or a saved template into a PDF. Controls for page format, margins, scale, headers/footers, bookmarks, accessible (tagged) PDFs, metadata, encryption, watermarks, and PDF/A. |
| Capture screenshot | Capture a PNG, JPEG, or WebP of HTML, a URL, or a template. Full-page or clipped, with viewport and device-pixel-ratio control. |
E-invoices are produced with Convert to PDF: fill in the E-invoice
fields (standard, profile, and the structured invoice object) and PolyDoc
embeds a ZUGFeRD / Factur-X invoice in the returned PDF. See the
example-flows/ folder in the connector repository for a ready-to-use body.
Source
Every operation takes a single Source that is one of:
- a URL, e.g.
https://example.com - an inline HTML string
- a saved template reference,
[template:TEMPLATE_ID], optionally with Template data for the Liquid renderer
Delivery
By default the file is returned as binary content, ready to drop into Create file (OneDrive, SharePoint, Blob) or an email attachment. Two alternative delivery modes are available under advanced options:
- Cloud storage: provide a presigned PUT URL; PolyDoc uploads the file and the action returns JSON containing the stored URL.
- Webhook: PolyDoc delivers the file to your webhook and the action returns a JSON acknowledgement (HTTP 202 when async).
When either delivery mode is used the response is JSON rather than a binary file.
Sandbox mode
Each operation has an advanced Sandbox mode input. Set it to true to
generate watermarked output from a separate quota with a lower rate limit, which
is useful while building and testing a flow. Leave it false for production
documents.
Known issues and limitations
- The response of each action is declared as a binary file. When Cloud storage or Webhook delivery is configured, the action returns JSON instead of a file.
- Pages that load JavaScript from an external CDN can slow the converter significantly. For inline HTML, prefer self-contained markup (inline CSS, data-URI images).
- E-invoices follow EN 16931. At minimum provide a due date or payment terms
(rule BR-CO-25), the seller tax ID when a line uses VAT category
S, and consistent totals (net + tax = gross). With Verify enabled an invoice that fails validation returns an error.
Deployment instructions
This connector is defined as a standard Power Platform custom connector
(apiDefinition.swagger.json + apiProperties.json + icon.png). Deploy it
with the Power Platform Connectors CLI:
# one-time login
paconn login
# validate the definition
paconn validate --api-def apiDefinition.swagger.json
# create the connector in the selected environment
paconn create --api-def apiDefinition.swagger.json \
--api-prop apiProperties.json --icon icon.png --secret <none>
You can also import apiDefinition.swagger.json directly from the Power Automate
maker portal (Data > Custom connectors > New custom connector > Import an
OpenAPI file).
Creating a connection
The connector supports the following authentication types:
| Default | Parameters for creating connection. | All regions | Not shareable |
Default
Applicable: All regions
Parameters for creating connection.
This is not shareable connection. If the power app is shared with another user, another user will be prompted to create new connection explicitly.
| Name | Type | Description | Required |
|---|---|---|---|
| PolyDoc API key | securestring | Your PolyDoc API key. Create one at dashboard.polydoc.tech under API Keys. Paste only the key; the connector adds the 'Bearer ' prefix for you. | True |
Actions
| Capture screenshot |
Render HTML, a URL, or a saved template and capture a PNG, JPEG, or WebP screenshot. Returns the image as binary content. |
| Convert to PDF |
Render HTML, a URL, or a saved template into a PDF. Populate the E-invoice fields to embed a ZUGFeRD / Factur-X hybrid invoice instead of a plain PDF. Returns the file as binary content. |
Capture screenshot
Render HTML, a URL, or a saved template and capture a PNG, JPEG, or WebP screenshot. Returns the image as binary content.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Sandbox mode
|
X-Sandbox | string |
Run the conversion in sandbox mode. Sandbox output is watermarked and draws from a separate quota with a lower rate limit. Use false for production documents. |
|
|
Source
|
source | True | string |
A URL (https://...), an inline HTML string, or a saved template reference in the form [template:TEMPLATE_ID]. |
|
Filename
|
filename | string |
Output filename, e.g. screenshot.png. |
|
|
Template data
|
templateData | object |
Key/value data passed to the Liquid template renderer when Source is a [template:ID] reference. |
|
|
Image type
|
type | string |
Image format. Defaults to png. |
|
|
Full page
|
fullPage | boolean |
Capture the entire scrollable page. |
|
|
Quality
|
quality | integer |
Compression quality 0-100 for JPEG/WebP. |
|
|
Omit background
|
omitBackground | boolean |
Capture with a transparent background (PNG/WebP). |
|
|
Width (px)
|
width | integer | ||
|
Height (px)
|
height | integer | ||
|
Device pixel ratio
|
devicePixelRatio | number | ||
|
X
|
x | number | ||
|
Y
|
y | number | ||
|
Width
|
width | number | ||
|
Height
|
height | number | ||
|
Scale
|
scale | number | ||
|
Tag
|
tag | string |
Label for logging and analytics (max 30 characters). |
|
|
Timeout (ms)
|
timeout | integer |
Conversion timeout in milliseconds (max 600000). |
|
|
Disable JavaScript
|
disableJavascript | boolean | ||
|
Inject CSS
|
css | string |
Extra CSS injected into the page. |
|
|
Inject JavaScript
|
javascript | string |
JavaScript executed in the page before capture. |
|
|
Wait for selector
|
waitForSelector | string |
Wait until this CSS selector appears. |
|
|
Wait for function
|
waitForFunction | string |
Wait until this JS expression returns true. |
|
|
Media type
|
mediaType | string | ||
|
Block ads
|
blockAds | boolean | ||
|
User agent
|
userAgent | string | ||
|
HTTP headers
|
httpHeaders | object |
Extra HTTP headers as key/value pairs. |
|
|
Name
|
name | True | string | |
|
Value
|
value | True | string | |
|
URL
|
url | string | ||
|
Domain
|
domain | string | ||
|
Path
|
path | string | ||
|
Expires (epoch)
|
expires | number | ||
|
HTTP only
|
httpOnly | boolean | ||
|
Secure
|
secure | boolean | ||
|
SameSite
|
sameSite | string | ||
|
Type
|
type | string | ||
|
Username
|
username | True | string | |
|
Password
|
password | True | string | |
|
Webhook URL
|
url | True | string | |
|
Async
|
async | boolean |
Deliver in the background and return 202 immediately. |
|
|
Method
|
method | string | ||
|
Headers
|
headers | object |
Extra headers for the webhook request. |
|
|
Timeout (ms)
|
timeout | number | ||
|
Retries
|
retries | integer | ||
|
Retry delay (ms)
|
retryDelay | number | ||
|
Presigned URL
|
presignedUrl | True | string |
HTTP PUT presigned URL from your storage provider. |
Returns
- response
- binary
Convert to PDF
Render HTML, a URL, or a saved template into a PDF. Populate the E-invoice fields to embed a ZUGFeRD / Factur-X hybrid invoice instead of a plain PDF. Returns the file as binary content.
Parameters
| Name | Key | Required | Type | Description |
|---|---|---|---|---|
|
Sandbox mode
|
X-Sandbox | string |
Run the conversion in sandbox mode. Sandbox output is watermarked and draws from a separate quota with a lower rate limit. Use false for production documents. |
|
|
Source
|
source | True | string |
A URL (https://...), an inline HTML string, or a saved template reference in the form [template:TEMPLATE_ID]. |
|
Filename
|
filename | string |
Output filename, e.g. invoice.pdf. |
|
|
Template data
|
templateData | object |
Key/value data passed to the Liquid template renderer when Source is a [template:ID] reference. |
|
|
Tag
|
tag | string |
Label for logging and analytics (max 30 characters). |
|
|
Timeout (ms)
|
timeout | integer |
Conversion timeout in milliseconds (max 600000). |
|
|
Paper format
|
format | string |
Paper format. Defaults to A4. |
|
|
Landscape
|
landscape | boolean |
Use landscape orientation. |
|
|
Print background
|
printBackground | boolean |
Print background graphics and colors. |
|
|
Scale
|
scale | number |
Render scale, between 0.1 and 2. |
|
|
Page ranges
|
pageRanges | string |
Pages to include, e.g. "1-5, 8". Empty means all pages. |
|
|
Outline (bookmarks)
|
outline | boolean |
Generate PDF bookmarks from HTML headings. |
|
|
Tagged (accessible)
|
tagged | boolean |
Produce a tagged (accessible) PDF. |
|
|
Prefer CSS page size
|
preferCSSPageSize | boolean |
Honor the @page size declared in CSS over the Paper format. |
|
|
Omit background
|
omitBackground | boolean |
Render with a transparent background. |
|
|
Display header/footer
|
displayHeaderFooter | boolean |
Render the header and footer templates. |
|
|
Header template
|
headerTemplate | string |
HTML for the page header. Requires Display header/footer. |
|
|
Footer template
|
footerTemplate | string |
HTML for the page footer. Requires Display header/footer. |
|
|
Top
|
top | string | ||
|
Right
|
right | string | ||
|
Bottom
|
bottom | string | ||
|
Left
|
left | string | ||
|
Title
|
title | string | ||
|
Author
|
author | string | ||
|
Subject
|
subject | string | ||
|
Keywords
|
keywords | array of string | ||
|
Producer
|
producer | string | ||
|
Creator
|
creator | string | ||
|
User password
|
userPassword | string | ||
|
Owner password
|
ownerPassword | string | ||
|
Source
|
source | True | string |
Watermark text, or an image URL / data URI. |
|
Type
|
type | True | string | |
|
Options
|
options | object |
Font, opacity, rotation, scale, repeat and offset options. |
|
|
Level
|
level | True | string | |
|
Verify compliance
|
verify | boolean | ||
|
Verify compliance
|
verify | boolean |
Validate against veraPDF PDF/UA-1; returns an error if validation fails. |
|
|
Standard
|
standard | True | string |
Hybrid invoice standard. |
|
Profile
|
profile | True | string |
Data granularity profile to validate against. |
|
Verify compliance
|
verify | boolean |
Verify PDF/A and e-invoice compliance; returns an error if validation fails. |
|
|
Invoice number
|
number | True | string | |
|
Issue date
|
issueDate | True | string |
Issue date, YYYY-MM-DD. |
|
Due date
|
dueDate | string |
Due date, YYYY-MM-DD. Provide this or Payment terms (EN 16931 rule BR-CO-25). |
|
|
Currency
|
currencyCode | True | string |
ISO 4217 currency code, e.g. EUR. |
|
Name
|
name | True | string | |
|
Address line 1
|
line1 | True | string | |
|
Address line 2
|
line2 | string | ||
|
City
|
city | True | string | |
|
Postal code
|
postalCode | True | string | |
|
Country code
|
countryCode | True | string |
ISO 3166-1 alpha-2 country code, e.g. DE. |
|
Tax ID
|
taxId | string |
VAT identifier. Required for the seller when a line uses VAT category S. |
|
|
Email
|
string | |||
|
Phone
|
phone | string | ||
|
Description
|
description | True | string | |
|
Quantity
|
quantity | True | number | |
|
Unit code
|
unitCode | string |
UN/ECE unit code, e.g. C62 (piece). |
|
|
Unit price
|
unitPrice | True | number | |
|
Line total
|
lineTotal | True | number | |
|
VAT rate (%)
|
vatRate | number | ||
|
VAT category
|
vatCategoryCode | string |
VAT category code, e.g. S (standard), Z (zero), E (exempt). |
|
|
Category code
|
categoryCode | True | string | |
|
Rate (%)
|
rate | True | number | |
|
Taxable amount
|
taxableAmount | True | number | |
|
Tax amount
|
taxAmount | True | number | |
|
Payment terms
|
paymentTerms | string |
Free-text payment terms. Provide this or Due date. |
|
|
Type code
|
typeCode | True | string |
UN/ECE 4461 payment means code, e.g. 30 (credit transfer). |
|
IBAN
|
iban | string | ||
|
BIC
|
bic | string | ||
|
Account name
|
accountName | string | ||
|
Payment reference
|
paymentReference | string | ||
|
Total net
|
totalNetAmount | True | number | |
|
Total tax
|
totalTaxAmount | True | number | |
|
Total gross
|
totalGrossAmount | True | number |
Must equal net + tax. |
|
Note
|
note | string | ||
|
Buyer reference
|
buyerReference | string |
Buyer reference / Leitweg-ID for public-sector invoices. |
|
|
Disable JavaScript
|
disableJavascript | boolean | ||
|
Inject CSS
|
css | string |
Extra CSS injected into the page. |
|
|
Inject JavaScript
|
javascript | string |
JavaScript executed in the page before capture. |
|
|
Wait for selector
|
waitForSelector | string |
Wait until this CSS selector appears. |
|
|
Wait for function
|
waitForFunction | string |
Wait until this JS expression returns true. |
|
|
Media type
|
mediaType | string | ||
|
Block ads
|
blockAds | boolean | ||
|
User agent
|
userAgent | string | ||
|
HTTP headers
|
httpHeaders | object |
Extra HTTP headers as key/value pairs. |
|
|
Name
|
name | True | string | |
|
Value
|
value | True | string | |
|
URL
|
url | string | ||
|
Domain
|
domain | string | ||
|
Path
|
path | string | ||
|
Expires (epoch)
|
expires | number | ||
|
HTTP only
|
httpOnly | boolean | ||
|
Secure
|
secure | boolean | ||
|
SameSite
|
sameSite | string | ||
|
Type
|
type | string | ||
|
Username
|
username | True | string | |
|
Password
|
password | True | string | |
|
Webhook URL
|
url | True | string | |
|
Async
|
async | boolean |
Deliver in the background and return 202 immediately. |
|
|
Method
|
method | string | ||
|
Headers
|
headers | object |
Extra headers for the webhook request. |
|
|
Timeout (ms)
|
timeout | number | ||
|
Retries
|
retries | integer | ||
|
Retry delay (ms)
|
retryDelay | number | ||
|
Presigned URL
|
presignedUrl | True | string |
HTTP PUT presigned URL from your storage provider. |
Returns
- response
- binary
Definitions
binary
This is the basic data type 'binary'.