Skip to main content

Add a Swiss QR Bill to Any Invoice PDF in Power Automate: A 4-Action Dropbox Workflow

· 20 min read
SEO and Content Writer

Every Swiss invoice must carry a Swiss QR Bill so banks and accounting software can scan and process the payment automatically. With Power Automate and PDF4me the addition is a four-action flow: Manually trigger, Dropbox Get file content, PDF4me Barcode - Create SwissQR Bill, Dropbox Create file. The screenshots below walk through the exact run captured in the canvas. A 10-page invoice in /pdf4metest/sample becomes a Swiss-compliant invoice with the payment slip appended and uploaded to /pdf4meoutput with a unique file name. Production-ready in under 10 minutes.

The flow at a glance
1. Manually trigger a flow
Manual trigger for testing. Swap for SharePoint When a file is created or any storage trigger in production.
2. Dropbox Get file content
Reads the 10-page invoice from /pdf4metest/sample/10 page.pdf with Infer Content Type Yes.
3. PDF4me Barcode - Create SwissQR Bill
Appends the QR payment slip with CHF, QRR reference, English labels, custom Paging Options to land on page 3.
4. Dropbox Create file
Writes the populated PDF to /pdf4meoutput with a unique guid()+headers/FileName so re-runs do not collide.
The short version

Four Power Automate actions. Manually trigger starts the flow. Dropbox Get file content reads /pdf4metest/sample/10 page.pdf with Infer Content Type set to Yes. PDF4me Barcode - Create SwissQR Bill appends a Swiss Payment Standards compliant QR-bill page (Output Format Type PNG in this run; switch to PDF for hybrid output, IBAN CH4431999123000889012, Amount 5253531, Currency CHF, Reference Type QRR, Language English, Seperator Line LineWithScissor, Creditor Var Schneider AG, Ultimate Debtor Pia-Maria Rutschmann-Schnyder, Reference 210000000003139471430009017, Paging Options custom, Page Number 3, File Name abc.pdf). Dropbox Create file writes to /pdf4meoutput with File Name built from guid() + headers/FileName for uniqueness. The output is a Swiss-bank-scannable file in the archive folder.

Two things that decide whether your output is bank-scannable

First, the IBAN must start with CH or LI and be 21 characters maximum. For a QRR Reference Type the IBAN must be a QR-IBAN, not a standard IBAN. Second, when Reference Type is QRR, the Reference field is a 27-digit numeric string with a mod-10 check digit. If you do not have one, switch Reference Type to SCOR (ISO 11649) or NON and leave Reference empty. Banks reject mis-typed reference values, not the QR image.

Common real-world questions this solves

People search this exact problem with phrasings like:

  • "How do I add a Swiss QR bill to my PDF invoice automatically in Power Automate?" This 4-action flow does it: drop a PDF in Dropbox, trigger the flow, QR-bill-enhanced file lands in the output folder.
  • "Can Power Automate generate a Swiss QR-bill from an existing invoice?" Yes, via the PDF4me Barcode - Create SwissQR Bill action. Output is the same PDF with the slip appended at first / last / a specific page.
  • "Do I need a QR-code library or Swiss QR generator subscription?" No. The PDF4me action hides QR generation, mod-10 reference math, and the full Swiss Payment Standards layout behind a single Power Automate step.
  • "What if I do not have a source PDF, can I generate a standalone QR slip?" Yes. Skip the File Content and File Name fields under Advanced parameters; the action returns a standalone QR-bill in the chosen Output Format Type (PDF / PNG / JPEG / Tiff).
  • "Will Swiss banks accept this output?" The action produces an ISO 20022 Swiss Payment Standards compliant slip. Every Swiss bank's mobile-banking app can scan it for payment initiation.

What you are building

A reusable 4-action Power Automate flow. Trigger fires, the source invoice is pulled from Dropbox (or SharePoint / OneDrive / Outlook), the PDF4me action appends the QR-bill, and the populated file is uploaded with a guid-prefixed name. Same pattern works for outgoing customer invoices, scheduled batch runs, or event-driven AR processing.

Power Automate flow canvas with four actions: Manually trigger a flow, Dropbox Get file content, Barcode - Create SwissQR Bill, Dropbox Create file.

Four actions, top to bottom. Manual trigger keeps the flow easy to test; swap for any storage trigger in production.


What you need

  • Power Automate account with a flow open. Open Power Automate.
  • PDF4me API key. Get your API key. Sign in to the PDF4me Connect connector the first time you drop the action.
  • Dropbox with a source folder (e.g. /pdf4metest/sample) and an output folder (/pdf4meoutput). Any storage works: SharePoint, OneDrive, or Dataverse map the same way.
  • An invoice PDF. Download the 10-page sample used in the screenshots to follow along exactly.
  • Swiss payment data: a CH or LI IBAN, amount, currency (CHF or EUR), and creditor + debtor name/address blocks. Full field reference in the action docs.

Quick reference: key parameters

Output Format Type
PDF (hybrid), PNG / JPEG / Tiff (standalone images).
IBAN
CH or LI prefix, max 21 chars. QR-IBAN required for QRR references.
Reference Type
QRR (27-digit + mod-10), SCOR (ISO 11649), or NON.
Address Type
S = structured (separate Postal Code + City). K = combined.
Paging Options
first, last, add at end, or custom (uses Page Number). PDF only.
Page Number
1-based page index. Required only when Paging Options is custom.

Build the flow

Action 1: Manually trigger a flow

Manual trigger is the fastest way to test. In production swap for Dropbox When a file is created, SharePoint When a file is created, OneDrive When a file is created, Outlook When a new email arrives, Recurrence, or Webhooks depending on your AR pipeline.

Action 2: Dropbox - Get file content

Pull the source invoice from your input folder.

FieldValue used in this run
File/pdf4metest/sample/10 page.pdf
Infer Content TypeYes
Power Automate Dropbox Get file content action with File /pdf4metest/sample/10 page.pdf and Advanced parameter Infer Content Type Yes.

Action 3: PDF4me Barcode - Create SwissQR Bill

Search for PDF4me and pick Barcode - Create SwissQR Bill. The action exposes the payment fields in the main panel and 4 fields under Advanced parameters (Paging Options, Page Number, File Content, File Name). Configure:

GroupFieldValue
OutputOutput Format TypePNG
PaymentIBANCH4431999123000889012
PaymentAmount5253531
PaymentCurrencyCHF
PaymentReference TypeQRR
PaymentLanguage TypeEnglish
PaymentSeperator LineLineWithScissor
CreditorCreditor NameVar Schneider AG
CreditorCreditor Address TypeS
CreditorCreditor: Address Line 1Var Schneider AG
CreditorCreditor: Address Line 223
CreditorCreditor PostalCode2501
CreditorCreditor Citybiel
DebtorUltimate Debtor NamePia-Maria Rutschmann-Schnyder
DebtorUltimate Debtor AddressTypeS
DebtorUltimate Debtor: Address Line 1Grosse Marktgasse
DebtorUltimate Debtor: Address Line 233
DebtorUltimate Debtor PostalCode9400
DebtorUltimate Debtor Citybiel
Ref/MsgReference210000000003139471430009017
Ref/MsgUnstructured MessageInstruction of 15.09.2019
Ref/MsgBilling InfoS1/01/20170309/11/10201409/20/14000000/22/36958/30/CH106017086/40/1020/41/3010
Ref/MsgAV1 ParametersName AV1: UV;UltraPay005;12345
Ref/MsgAv2 ParametersName AV2: XY;XYService;54321
AdvancedPaging Optionscustom
AdvancedPage Number3
AdvancedFile ContentFile Content (from Action 2)
AdvancedFile Nameabc.pdf

Action 4: Dropbox - Create file

Save the populated file to the output folder. Build a unique File Name with guid() so re-runs do not collide.

FieldValue used in this run
Folder Path/pdf4meoutput
File Nameguid() + headers/FileName (concat expression for a unique-per-run name)
File ContentFile Content (from Action 3, dynamic content)
Power Automate Dropbox Create file action with Folder Path /pdf4meoutput, File Name built from guid() + headers/FileName expression, and File Content dynamic content from the PDF4me Create SwissQR Bill action.

The guid() expression in File Name guarantees a unique name on every run. Dropping it next to headers/FileName from the PDF4me output preserves the original invoice name in the filename.

Save and click Test. The Swiss-bank-scannable file lands in /pdf4meoutput.


Troubleshooting

QR-bill page is blank or unreadable
IBAN is invalid (must start with CH or LI, max 21 chars) or Currency is something other than CHF / EUR. Both are hard requirements of the Swiss Payment Standards.
Bank rejects a QRR reference
QRR references must be 27 digits with a mod-10 check digit. If you do not have one, switch Reference Type to SCOR (ISO 11649) or NON and leave Reference empty.
QR-bill landed on the wrong page
Adjust Paging Options under Advanced. first puts the slip as the new page 1. last appends it after the last page. custom uses Page Number for a specific 1-based position.
Creditor or Debtor address looks wrong on the slip
Mismatched Address Type. With S, fill Postal Code + City and use Address Line 1/2 for street. With K, leave Postal Code + City empty and put the full address into Address Line 1 + Address Line 2.
Create file writes an empty file
File Content on Action 4 is not bound to the PDF4me File Content output. Click the field and re-pick the dynamic content from Action 3.
Want a standalone QR slip without a source invoice
Skip Action 2 (Get file content). On Action 3, leave File Content and File Name empty under Advanced parameters and the action returns a standalone Swiss QR-bill in the chosen Output Format Type.

When to use this pattern

Outgoing customer invoices
Bills that need to be Swiss-payable directly from a banking app via QR scan.
Subscription billing
QR-IBAN + 27-digit QRR reference identifies the customer or contract on every recurring run.
Bulk invoice retrofitting
When an existing PDF invoice template does not yet carry the payment slip, append it.
e-Bill fallbacks
For customers who prefer paper or in-app QR-scan over electronic Bill.


FAQ

Do I need a special Swiss QR library or font?+
No. The PDF4me Create SwissQR Bill action bundles QR-code generation, the QR-bill fonts (Liberation Sans), mod-10 reference math, and the Swiss Payment Standards layout. Configure the fields, save the flow, and the output is a Swiss-compliant file.
What is the difference between QRR, SCOR, and NON references?+
QRR is the Swiss 27-digit numeric reference with a mod-10 check digit; it requires a QR-IBAN. SCOR is the international ISO 11649 creditor reference; it works with a standard IBAN. NON means no reference is shown on the slip, useful for ad-hoc one-off payments where the debtor adds their own reference at payment time.
Can I generate a Swiss QR-bill without an existing PDF invoice?+
Yes. Skip Action 2 (Get file content). On Action 3, leave File Content and File Name empty under Advanced parameters; the action returns a standalone Swiss QR-bill in the chosen Output Format Type (PDF, PNG, JPEG, or Tiff).
My IBAN starts with DE / FR / IT, can I still use this?+
No, Swiss QR-bills are scoped to CH and LI IBANs only. For European SEPA payments with non-Swiss IBANs, use the Generate EPC QR Code for SEPA action instead.
Address Type S vs K, which one should I pick?+
S (Structured) is the modern default: PostalCode and City go in separate fields; Address Line 1/2 carries the street. K (Combined) puts the full address in two free-text Address Line fields and ignores PostalCode/City. New integrations should use S unless you are importing legacy data.
Does the output work with mobile banking apps?+
Yes. Every Swiss bank app that supports payments via QR-bill (every major bank since 2022) can scan the output to pre-fill the payment form. Test by opening UBS, PostFinance, Raiffeisen, or any Swiss banking app and scanning the QR code.
How do I change where the QR-bill page lands?+
Click Show all on Advanced parameters. Set Paging Options to first / last / add at end / custom. For custom, also fill Page Number with the 1-based page index. Only applies when Output Format Type is PDF.
Same scenario in Make, Zapier, or n8n?+
Yes. The same PDF4me Create Swiss QR Bill action is available on all four platforms with identical parameters. See the cross-platform comparison at the bottom of the Create SwissQR Bill action page.

Get started