Passa al contenuto principale

Fattura QR svizzera da un elenco di SharePoint: genera e invia via email ogni fattura QR in Power Automate con PDF4me

· 27 minuti di lettura
SEO and Content Writer

PDF4me Create SwissQR Bill è un'azione di Power Automate che trasforma i dettagli di pagamento in una ricevuta QR conforme agli Swiss Payment Standards. Collegata a un elenco di SharePoint, genera una ricevuta QR per ogni richiesta ricevuta, archivia l'immagine in una raccolta documenti, la collega alla riga corrispondente e la invia via e-mail al debitore.

Cercando fattura QR svizzera si ottengono due tipi di risposte. Una spiega lo standard: cosa devono contenere la ricevuta e la parte relativa al pagamento, quali formati di riferimento esistono e perché la ricevuta ha sostituito le vecchie bollette di pagamento nel 2022. L'altra è una libreria di codice, in PHP, JavaScript o Python, per gli sviluppatori che creano software di fatturazione. Tra queste due opzioni si colloca l'azienda che deve semplicemente inviarne una. I dettagli di pagamento sono già presenti in un elenco che qualcuno mantiene aggiornato, e ciò che manca è la parte in cui la ricevuta viene generata, archiviata e inviata. Ecco il flusso, in cinque passaggi e senza codice.

Il flusso in sintesi
1. When an item is created
Trigger di SharePoint sull'elenco denominato Swiss QR Requests. Ogni riga corrisponde a una fattura QR.
2. Barcode - Create SwissQR Bill
PDF4me Barcode. Output Format Type PNG, riferimento QRR, debitore e importo dalla riga.
3. Create file
Salva la ricevuta nella libreria QR Bills, denominata con il numero della fattura.
4. Update item
Status dei timbri Generated e OutputLink di nuovo sulla stessa riga.
5. Send an email (V2)
Invia la ricevuta all'indirizzo indicato nella riga, allegandola come file PNG.
La versione breve

Qualcuno aggiunge una riga a un elenco di SharePoint con il debitore, l'importo, la valuta e un messaggio. Circa trentacinque secondi dopo, la fattura con codice QR è disponibile come file PNG in una raccolta documenti, la riga contiene un link ad essa e lo stato Generated, e il debitore la trova nella sua casella di posta elettronica pronta per essere scansionata. Cinque azioni, connettori standard, e nessuno apre un portale bancario.

Domande e risposte basate sul perché​

Perché conservare i dettagli di pagamento in un elenco di SharePoint? Perché le persone che li conoscono non sono quelle che eseguirebbero uno script. Una riga di elenco è un modulo che chiunque nel reparto finanziario può compilare, conserva la cronologia delle richieste e le sue colonne sono quelle che determinano la ricevuta: l'importo, la valuta, il messaggio sulla parte relativa al pagamento e persino la lingua in cui sono stampate le etichette.

Perché generare un file PNG anziché un PDF? Perché non c'è una fattura a cui allegare la ricevuta. Con Output Format Type impostato su PDF, l'azione si aspetta un documento di origine e vi aggiunge la parte relativa al pagamento. Con il formato PNG, invece, viene restituita la ricevuta da sola, che è la soluzione ideale quando la fattura tramite codice QR costituisce l'intero messaggio: può essere visualizzata in anteprima in SharePoint e aperta nell'e-mail senza bisogno di scaricarla.

Perché il riferimento QRR? Perché è il riferimento che riconcilia automaticamente il pagamento. QRR è il riferimento numerico svizzero a 27 cifre con cifra di controllo e funziona solo con un QR-IBAN, ovvero un IBAN il cui numero di istituto rientra nell'intervallo QR. Quando il debitore scansiona e paga, il riferimento viene restituito con l'accredito e la fattura si chiude automaticamente. SCOR e NON sono le alternative quando questa funzionalità non è necessaria.

Perché scrivere il link alla riga? Perché la richiesta dovrebbe essere in grado di rispondere autonomamente alla domanda "è stata inviata?". Il flusso imposta lo stato su Generated e memorizza un link all'immagine, quindi l'elenco funge sia da coda che da record, e nessuno deve andare a cercare nella libreria per scoprire cosa è successo.


Cosa riceverai​

Input: una riga in un elenco di SharePoint contenente il numero di fattura, il nome e l'indirizzo del debitore, l'importo, la valuta, il messaggio, la lingua e l'indirizzo e-mail. Output: una fattura QR svizzera in formato PNG nella libreria QR Bills, la stessa riga aggiornata con lo stato e un link, e un'e-mail al debitore con la ricevuta allegata.

Elenco SharePoint Richieste QR svizzere con colonne Titolo, Numero fattura, Nome debitore, Via, Numero edificio, Codice postale, Città, Importo, Valuta, Lingua, Messaggio, Email, Stato e Collegamento output, contenente una riga: QR di prova 001, INV-1001, Max Muster, Musterstrasse, 1, 8000, Zurigo, 1,005,00, CHF, Inglese, Fattura di prova INV-1001, con stato Generato e un collegamento al PNG generato

Una riga corrisponde a una fattura QR. Status e OutputLink vengono scritti dal flusso, non dalla persona che compila la richiesta.

Raccolta di fatture QR di SharePoint che mostra SwissQR_INV-1001.png con un'anteprima della fattura QR svizzera: parte di incasso e pagamento, conto CH44 3199 9123 0008 8901 2 per Var Schneider AG a Biel, riferimento 21 00000 00003 13947 14300 09017, pagabile da Max Muster a Zurigo, CHF 1 005.00

La ricevuta in biblioteca, denominata con il numero della fattura.

Outlook mostra l'e-mail "La tua fattura QR svizzera dall'account Pdf4me Flow con SwissQR_INV-1001.png allegato e aperto nel riquadro di anteprima", e il corpo del messaggio che invita il destinatario a scansionare il codice QR con la propria app bancaria per pagare.

Lo stesso scontrino nella casella di posta del debitore, pronto per essere scansionato.


Di cosa hai bisogno​

  • Power Automate. Apri Power Automate. Un flusso cloud automatizzato su connettori standard. SharePoint, Office 365 Outlook e PDF4me non richiedono un piano premium.
  • Chiave API di PDF4me. Ottieni la tua chiave API. Questo flusso utilizza una connessione a PDF4me, PDF4me Barcode.
  • Un elenco SharePoint per le richieste. L'elenco acquisito si chiama Swiss QR Requests e contiene le colonne InvoiceNumber, DebtorName, Street, BuildingNo, PostalCode, City, Amount, Currency, Language, Message ed Email, oltre a una colonna di scelta Status e una colonna OutputLink in cui il flusso scrive.
  • Una libreria di documenti per le ricevute. Il flusso acquisito scrive in una libreria denominata QR Bills.
  • I dati del tuo creditore e un QR-IBAN. Il conto su cui viene effettuato il versamento, con il relativo indirizzo. Il QR-IBAN è richiesto per i riferimenti QRR e le specifiche Swiss Payment Standards limitano il conto agli emittenti svizzeri o del Liechtenstein e la valuta a CHF o EUR.

Il flusso in sintesi​

  1. When an item is created, SharePoint monitora l'elenco Swiss QR Requests.
  2. Barcode - Create SwissQR Bill (PDF4me Barcode) converte la ricevuta in un PNG.
  3. Create file (SharePoint) e salvalo nella cartella /QR Bills come SwissQR_<invoice number>.png.
  4. Update item (SharePoint) imposta Status su Generated e compila OutputLink.
  5. Send an email (V2) (Office 365 Outlook) invia la ricevuta al debitore.

Panoramica completa del flusso​

Cronologia di esecuzione di Power Automate che mostra cinque azioni completate con successo in ordine: Creazione di un elemento in 0,3 secondi, Creazione di un codice a barre per fattura SwissQR in 31 secondi, Creazione di un file in 2 secondi, Aggiornamento di un elemento in 0,8 secondi e Invio di un'e-mail V2 in 0,4 secondi.

Il rendering della schermata iniziale rappresenta l'intero costo di questo flusso: 31 secondi su 35. Tutto ciò che segue consiste nello spostamento di un piccolo file PNG da parte di SharePoint e Outlook.


Passaggio 1: Come si attiva l'invio di un codice QR per la fatturazione quando arriva una richiesta?​

Flusso finora: ancora niente, questo è il trigger.

La lista rappresenta la coda delle richieste, quindi la creazione di una riga costituisce il segnale.

  1. Crea un Automated cloud flow e seleziona SharePoint > When an item is created.
  2. Configura:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • List Name: Swiss QR Requests

When an item is created: configurazione​

SharePoint Quando viene creato un elemento, attiva il trigger con l'indirizzo del sito PDF4me Support all'indirizzo ynoox1.sharepoint.com/sites/PDF4meSupport e il nome dell'elenco Swiss QR Requests, senza parametri avanzati impostati.

Ogni colonna della nuova riga è disponibile come token nelle quattro azioni successive.


Passaggio 2: Cosa include l'azione Create SwissQR Bill?​

Flusso finora: il trigger di SharePoint.

Questa è l'azione che svolge il lavoro e ha più campi di tutto il resto del flusso messo insieme. Si dividono in due gruppi: il lato del creditore, che è il tuo conto e indirizzo e non cambia mai, e il lato del debitore, che proviene dalla riga.

  1. Aggiungi Barcode - Create SwissQR Bill tramite la connessione PDF4me Barcode.
  2. Configurare l'output e il creditore (valori statici):
    • Output Format Type: PNG
    • IBAN: CH4431999123000889012
    • Creditor Name: Var Schneider AG
    • Creditor Address Type: S
    • Via del creditore, edificio, PostalCode, City: Bahnhofstrasse, 23, 2501, Biel
    • Reference Type: QRR
    • Seperator Line: LineWithScissor
  3. Mappa il debitore e il pagamento a partire dall'evento scatenante:
    • Amount, Currency, Ultimate Debtor Name, Street, Building Number, PostalCode, City, Unstructured Message e Language Type prendono tutti il loro valore dalla colonna dell'elenco corrispondente.
    • Ultimate Debtor AddressType: S
    • Billing Info, AV1 Parameters e Av2 Parameters: lasciati vuoti

Barcode - Create SwissQR Bill: configurazione​

PDF4me Azione Crea fattura SwissQR con codice a barre e formato di output PNG, IBAN CH4431999123000889012, importo dall'elenco, creditore Var Schneider AG presso Bahnhofstrasse 23, 2501 Biel, tipo di indirizzo S, valuta e nome del debitore finale, via, numero civico, codice postale e città mappati dalle colonne dell'elenco, tipo di riferimento QRR con un riferimento di 27 cifre, messaggio non strutturato e tipo di lingua dall'elenco e linea di separazione impostata su LineWithScissor

Il tipo di indirizzo S indica un indirizzo strutturato: campi separati per via, numero civico, codice postale e città. Il tipo K, invece, prevede due righe di testo libero.

Da dove proviene ciascun campo​

CampoValore nel flusso catturatoFonte
Output Format TypePNGStatico, lo slittamento da solo
IBANCH4431999123000889012Statico, il tuo QR-IBAN
Blocco del creditoreVar Schneider AG, Bahnhofstrasse 23, 2501 BielStatico, il tuo indirizzo
Amount, Currency1,005.00, CHFColonne Amount e Currency
Blocco debitore definitivoMax Muster, Musterstrasse 1, 8000 ZurichDebtorName, Street, BuildingNo, PostalCode, City
Reference Type, ReferenceQRR, 210000000003139471430009017In questo flusso è presente una condizione statica; vedere l'avviso riportato di seguito
Unstructured MessageTest invoice INV-1001Colonna Message
Language TypeEnglishColonna Language
Seperator LineLineWithScissorStatico

Prima di andare in produzione, assegna a ogni fattura un riferimento univoco. Il flusso acquisito invia lo stesso riferimento QRR di 27 cifre su ogni ricevuta, il che va bene per un test ma è errato in produzione: il riferimento è ciò che indica alla banca a quale fattura appartiene un pagamento, quindi un valore condiviso fa sì che tutti i pagamenti in entrata appaiano identici. Genera il riferimento per ogni fattura, nell'elenco o nel flusso, e mantieni corretta la cifra di controllo modulo 10. Il riferimento è anche l'unico campo che il debitore non deve mai digitare, quindi non c'è motivo di renderlo breve o facile da ricordare.

Suggerimento: QRR funziona solo con un QR-IBAN, ovvero un IBAN il cui numero di istituto rientra nell'intervallo QR. Il conto utilizzato in questo caso, CH4431999123000889012, ha 31999 in queste posizioni, quindi è idoneo. Se la tua banca ti ha fornito un IBAN ordinario, utilizza SCOR o NON come Reference Type, oppure richiedi alla banca il QR-IBAN corrispondente al conto.


Passaggio 3: Dove viene salvata l'immagine della fattura tramite codice QR?​

Flusso finora: il trigger più Create SwissQR Bill.

L'azione restituisce l'immagine, che viene poi pubblicata su SharePoint.

  1. Aggiungi SharePoint > Create file.
  2. Configura:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • Folder Path: /QR Bills
    • File Name: SwissQR_ seguito dal token InvoiceNumber e .png
    • File Content: il token Body dal Barcode - Create SwissQR Bill

Create file: configurazione​

Azione di creazione file di SharePoint con indirizzo del sito Supporto PDF4me, percorso cartella /QR Bills, nome file SwissQR_ seguito dal token InvoiceNumber e .png, e contenuto file impostato sul token Body dall'azione del codice a barre PDF4me

Assegnare al file lo stesso nome del numero di fattura è ciò che consente di effettuare ricerche nella libreria in un secondo momento. Per la fattura INV-1001 il nome sarà SwissQR_INV-1001.png.


Passaggio 4: Come si registra il risultato della richiesta?​

Flusso finora: il trigger, Create SwissQR Bill e Create file.

La riga in cui è stata richiesta la fattura è anche il luogo corretto per registrare la sua esistenza.

  1. Aggiungi SharePoint > Update item.
  2. Configura:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • List Name: Swiss QR Requests
    • ID: il token ID del trigger
    • Title: il token Title dal trigger
    • Status Value (avanzato): Generated
    • OutputLink (avanzato): l'URL del sito seguito dal token Path dal Create file

Update item: configurazione​

Aggiornamento elemento SharePoint con supporto PDF4me indirizzo sito, richieste QR svizzere per il nome elenco, ID e titolo presi dal trigger e parametri avanzati Valore stato impostato su Generato e collegamento output creato dall'URL del sito più il token percorso da Crea file

Title viene trasmesso direttamente dal trigger. Il connettore lo gestisce come richiesto e l'invio del valore corrente è ciò che lo mantiene invariato.

Suggerimento: apri il link salvato una volta dopo la prima esecuzione. La libreria si chiama QR Bills, con uno spazio, quindi il percorso restituito da Create file contiene quello spazio e il browser deve codificarlo. Se il link non si apre correttamente, racchiudi l'espressione in encodeUriComponent oppure rinomina la libreria con un nome senza spazi.


Passaggio 5: Come si invia la fattura tramite codice QR al debitore?​

Flusso finora: tutto tramite Update item.

L'ultima operazione trasforma la ricevuta in qualcosa su cui il debitore può agire, che è poi lo scopo principale di una fattura con codice QR.

  1. Aggiungi Office 365 Outlook > Send an email (V2).
  2. Configura:
    • A: il token Email dal trigger
    • Oggetto: Your Swiss QR bill
    • Body: Hello, please find your Swiss QR bill attached. Scan the QR code with your banking app to pay.
  3. Apri Advanced parameters e aggiungi un allegato:
    • Name Attachments - 1: il token Name dal Create file
    • Contenuto Attachments - 1: il token File Content dal Barcode - Create SwissQR Bill
    • Importance: Normal

Send an email (V2): configurazione​

Azione di invio di posta elettronica V2 di Office 365 Outlook con A preso dalla colonna E-mail, oggetto La tua fattura QR svizzera, un corpo che chiede al destinatario di scansionare il codice QR con la propria app bancaria, un allegato il cui nome proviene dal token Nome file creato e il cui contenuto proviene dal token Contenuto file PDF4me e Importanza Normale

L'allegato prende il nome dal file appena creato e i suoi byte dall'azione che lo ha generato, quindi non è necessario leggere nulla da SharePoint.


Esegui il flusso e verifica​

  1. Save il flusso.
  2. Aggiungi una riga alle Swiss QR Requests con il debitore, l'importo, la valuta, la lingua e l'indirizzo email che puoi verificare.
  3. Apri la cronologia delle esecuzioni. Tutte e cinque le azioni dovrebbero essere verdi, con Create SwissQR Bill che richiede la maggior parte del tempo.
  4. Apri la libreria QR Bills e verifica che il file PNG sia presente e venga visualizzato in anteprima come ricevuta di pagamento.
  5. Torna alla riga: Status dovrebbe essere Generated e OutputLink dovrebbe aprire l'immagine.
  6. Apri l'email e scansiona il codice QR con l'app della tua banca per verificare che l'importo, il conto e il riferimento siano corretti come li hai inseriti.

Nella registrazione, l'intera operazione ha richiesto circa trentacinque secondi, di cui trentuno per la sola ricevuta. Il file di output, SwissQR_INV-1001.png, riporta la ricevuta a sinistra e la parte relativa al pagamento a destra: conto CH44 3199 9123 0008 8901 2 per Var Schneider AG a Biel, riferimento 21 00000 00003 13947 14300 09017, pagabile da Max Muster a Zurich, CHF 1 005.00, con Test invoice INV-1001 nel blocco informazioni aggiuntive.

Cosa avete effettivamente realizzato? Un sistema di gestione delle fatture tramite codice QR che funziona con un elenco. Il team finanziario inserisce i dati che già conosce, la ricevuta viene restituita nel formato previsto dalle banche svizzere, viene archiviata insieme al resto della documentazione e il debitore la riceve senza che nessuno debba aprire un portale bancario o utilizzare un programma di progettazione.


Varianti comuni che puoi aggiungere senza dover ricostruire​

Eseguilo invece in modalità batch
Sostituisci il trigger con Recurrence più Get items filtrati per le righe ancora in attesa e inserisci le quattro azioni rimanenti all'interno di Apply to each. La colonna Status mantiene la coda in ordine.
Allega la ricevuta alla fattura
Imposta Output Format Type su PDF e inserisci la fattura nel campo File Content avanzato; in questo modo, la parte relativa al pagamento verrà aggiunta al documento anziché essere separata. La versione di Dropbox di questo flusso illustra questa variante.
Stampare la ricevuta nella lingua del debitore
Language Type è già presente nell'elenco, quindi è sufficiente impostarlo per ciascun debitore e le etichette verranno stampate in tedesco, francese, italiano o inglese senza interrompere il flusso di lavoro.
Utilizzare invece un riferimento del creditore
Se il conto è un IBAN ordinario, impostare Reference Type su SCOR e fornire un riferimento del creditore ISO 11649, oppure su NON per omettere completamente il riferimento dalla ricevuta.

Come si confronta questo con i metodi tradizionali di creazione di una fattura con codice QR?​

Ogni riga descrive l'alternativa. L'ultima riga rappresenta questo flusso.

ConfrontoChi può produrre una fattura?Da dove provengono i datiConsegna e registrazione
Generatore del portale bancario vs questo flussoChiunque abbia le credenziali di accesso all'e-bankingDigitato a mano, una banconota alla voltaScaricalo e allegalo tu stesso a un'email
Libreria per sviluppatori vs questo flussoUno sviluppatore, all'interno di un'applicazioneIl tuo database, tramite il codice che gestisciQualunque cosa tu costruisca intorno ad essa
Modulo ERP o di fatturazione rispetto a questo flussoChiunque, all'interno di quel prodottoI registri propri dell'ERPAll'interno di quel prodotto, se include la funzionalità
Questo flussoChiunque sia in grado di aggiungere una riga a un elencoUn elenco SharePoint che il team già conservaArchiviato, collegato alla riga e inviato automaticamente via e-mail

Domande frequenti​

Che cos'è una banconota QR svizzera?​

La ricevuta QR svizzera è la distinta di pagamento che ha sostituito le vecchie ricevute arancioni e rosse in Svizzera. Presenta una ricevuta a sinistra e una parte di pagamento a destra, con un codice QR a forma di croce svizzera che contiene tutte le informazioni necessarie alla banca: conto e indirizzo del creditore, debitore, importo, valuta e riferimento. Scansionandolo, il pagamento diventa questione di pochi tocchi anziché dover digitare il numero di conto.

Il formato è definito dagli Swiss Payment Standards, pubblicati da SIX, e il volantino ufficiale della fattura QR ne illustra il layout in una pagina. L'aspetto pratico per l'automazione è che il contenuto è fisso: basta inserire i campi correttamente e qualsiasi app bancaria svizzera leggerà il risultato.

Come si paga una bolletta con codice QR svizzero?​

Apri l'app della tua banca, seleziona l'opzione di scansione e inquadra il codice QR della Croce Svizzera con la fotocamera. L'app compilerà automaticamente i campi relativi al conto, all'importo, alla valuta e al riferimento, e tu dovrai confermare. Non è necessario digitare nulla, che è poi il motivo principale per cui esiste questo standard.

La carta funziona ancora allo stesso modo. La ricevuta è tua, il pagamento va alla banca o all'ufficio postale e i numeri stampati corrispondono al codice.

Come si genera una fattura con codice QR in Svizzera?​

Esistono tre percorsi comuni. Le banche offrono un generatore all'interno dei servizi di e-banking, ideale per le aziende che inviano poche fatture al mese. I prodotti di fatturazione e i sistemi ERP generano la ricevuta come parte integrante della fattura. Gli sviluppatori, infine, utilizzano una libreria e la integrano nel proprio software.

Questo flusso rappresenta una quarta opzione: conservate i dettagli di pagamento in un elenco già gestito dal vostro team e lasciate che Create SwissQR Bill generi la ricevuta ogni volta che compare una riga. Nessun portale, nessun codice, e il risultato è un'immagine conforme agli standard che potete archiviare, allegare o stampare.

Come si invia un'email con un allegato in Power Automate?​

Utilizza la Send an email (V2) del connettore Office 365 Outlook, apri Advanced parameters e aggiungi un allegato con due campi: un nome e il contenuto. Il nome è solo testo, quindi un token di un'azione precedente è sufficiente. Il contenuto deve corrispondere ai byte del file, che in genere si riferiscono all'output dell'azione che ha prodotto o recuperato il file.

In questo flusso, il nome proviene da Create file, quindi l'e-mail corrisponde a quella presente in SharePoint e il contenuto proviene direttamente dall'azione PDF4me. Se l'allegato arriva vuoto o l'invio dell'e-mail non va a buon fine, il campo Contenuto punta quasi sempre a qualcosa che non sono byte di file.


Risoluzione dei problemi​

L'azione rifiuta l' IBAN o la valuta

Le specifiche Swiss Payment Standards consentono solo conti emessi in Svizzera o Liechtenstein, con un massimo di 21 caratteri, e la valuta deve essere CHF o EUR. Un IBAN di qualsiasi altro paese, o un campo valuta compilato con USD, non è valido in questa fase e non successivamente.

QRR è impostato ma il riferimento è stato rifiutato

Un riferimento QRR è composto da 27 cifre, termina con una cifra di controllo modulo 10 e richiede un QR-IBAN. Se il conto è un IBAN ordinario, oppure se il riferimento è stato abbreviato o modificato manualmente, impostare il Reference Type su SCOR o NON finché non vengono inseriti il conto e il riferimento corretti.

L'e-mail arriva senza allegati

Controlla il campo Content dell'allegato. Richiede i byte del file, ovvero l'output File Content dell'azione del codice a barre. Un token che restituisce un percorso, un nome o l'intero corpo dell'azione produce un'e-mail che viene inviata correttamente ma non contiene informazioni utili.

Status è Generated, ma il link non si apre

OutputLink viene creato a partire dall'URL del sito e dal percorso del nuovo file. Un nome di libreria con uno spazio, una barra mancante tra le due parti o una barra finale nell'URL del sito producono un collegamento apparentemente corretto ma in realtà inesistente. Confronta il valore memorizzato con quello visualizzato nella barra degli indirizzi quando apri il file manualmente.


Prossimi passi​

Lo stesso schema in cinque fasi (arriva una riga, viene prodotto un documento, viene archiviato, la riga viene timbrata, il cliente viene informato) si adatta a qualsiasi piccolo documento che può essere descritto in un elenco: promemoria, bolle di consegna, tessere associative e biglietti.