Saltar al contenido principal

Factura QR suiza desde una lista de SharePoint: Genera y envía por correo electrónico todas las facturas QR en Power Automate con PDF4me

· 28 min de lectura
SEO and Content Writer

PDF4me Create SwissQR Bill es una acción de Power Automate que convierte los detalles de pago en un código QR que cumple con los Swiss Payment Standards. Al conectarse a una lista de SharePoint, genera una factura QR para cada solicitud recibida, guarda la imagen en una biblioteca de documentos, la vincula a la fila correspondiente y la envía por correo electrónico al deudor.

Si buscas una factura QR suiza, encontrarás dos tipos de respuesta. Una explica el estándar: qué deben contener el recibo y la parte del pago, qué formatos de referencia existen y por qué el comprobante reemplazó a los antiguos recibos de pago en 2022. La otra es una biblioteca de código, en PHP, JavaScript o Python, para desarrolladores que crean software de facturación. Entre ambas se encuentra la empresa que simplemente necesita enviar una. Los detalles del pago ya están en una lista que alguien mantiene actualizada, y lo que falta es la parte donde se genera, almacena y envía el comprobante. Ese es el flujo, en cinco pasos y sin código.

El flujo de un vistazo
1. When an item is created
Activador de SharePoint en la lista denominada Swiss QR Requests. Cada fila corresponde a una factura QR.
2. Barcode - Create SwissQR Bill
PDF4me Barcode. Output Format Type PNG, referencia QRR, deudor y importe de la fila.
3. Create file
Guarda el comprobante en la biblioteca QR Bills, cuyo nombre coincide con el número de factura.
4. Update item
Status de los sellos Generated y el OutputLink volvió a aparecer en la misma fila.
5. Send an email (V2)
Envía el comprobante por correo a la dirección que figura en la fila, adjunto como archivo PNG.
La versión corta

Alguien agrega una fila a una lista de SharePoint con el deudor, el importe, la moneda y un mensaje. Unos treinta y cinco segundos después, el código QR de la factura aparece como un archivo PNG en una biblioteca de documentos, la fila incluye un enlace y el estado Generated, y el deudor lo tiene en su bandeja de entrada listo para escanear. Cinco acciones, conectores estándar, y nadie abre un portal bancario.

Preguntas y respuestas basadas en el porqué​

¿Por qué guardar los detalles de pago en una lista de SharePoint? Porque quienes los conocen no son quienes ejecutarían un script. Una fila de la lista es un formulario que cualquier persona del departamento financiero puede completar; guarda un historial de las solicitudes realizadas y sus columnas son las que definen el comprobante: el importe, la moneda, el mensaje en la parte del pago e incluso el idioma en el que se imprimen las etiquetas.

¿Por qué generar un PNG en lugar de un PDF? Porque no hay una factura a la que adjuntar el comprobante. Con Output Format Type configurado como PDF, la acción espera un documento fuente y le añade la información del pago. Con PNG, devuelve el comprobante directamente, que es lo que se necesita cuando el código QR es el mensaje completo: se puede previsualizar en SharePoint y se abre en el correo electrónico sin necesidad de descargarlo.

¿Por qué el tipo de referencia QRR? Porque es la referencia que concilia el pago automáticamente. QRR es la referencia numérica suiza de 27 dígitos con un dígito de control, y solo funciona con un QR-IBAN, es decir, un IBAN cuyo número de institución se encuentra dentro del rango QR. Cuando el deudor escanea y paga, la referencia confirma el crédito y la factura se cierra automáticamente. SCOR y NON son las alternativas cuando no se requiere esta función.

¿Por qué escribir el enlace de vuelta a la fila? Porque la solicitud debería poder responder por sí sola a la pregunta "¿se envió esto?". El flujo establece el estado en Generated y almacena un enlace a la imagen, de modo que la lista es tanto la cola como el registro, y nadie tiene que buscar en la biblioteca para averiguar qué sucedió.


Lo que obtendrás​

Entrada: una fila en una lista de SharePoint que contiene el número de factura, el nombre y la dirección del deudor, el importe, la moneda, el mensaje, el idioma y la dirección de correo electrónico. Salida: una factura QR suiza en formato PNG en la biblioteca QR Bills, la misma fila actualizada con el estado y un enlace, y un correo electrónico al deudor con el comprobante adjunto.

Lista de SharePoint "Solicitudes QR suizas" con columnas Título, Número de factura, Nombre del deudor, Calle, Número de edificio, Código postal, Ciudad, Importe, Moneda, Idioma, Mensaje, Correo electrónico, Estado y Enlace de salida, que contiene una fila: Prueba QR 001, INV-1001, Max Muster, Musterstrasse, 1, 8000, Zúrich, 1.005,00, CHF, Inglés, Factura de prueba INV-1001, con estado Generado y un enlace al PNG generado.

Cada fila corresponde a un código QR. Status y OutputLink los genera el flujo, no la persona que completa la solicitud.

Biblioteca de facturas QR de SharePoint que muestra SwissQR_INV-1001.png con una vista previa de la factura QR suiza: parte de recibo y pago, cuenta CH44 3199 9123 0008 8901 2 para Var Schneider AG en Biel, referencia 21 00000 00003 13947 14300 09017, pagadera por Max Muster en Zúrich, CHF 1 005.00

El recibo en la biblioteca, que lleva el nombre del número de factura.

Outlook muestra el correo electrónico "Your Swiss QR bill from the Pdf4me Flow account with SwissQR_INV-1001.png" adjunto y abierto en el panel de vista previa, y el cuerpo indica al destinatario que escanee el código QR con su aplicación bancaria para pagar.

El mismo comprobante en la bandeja de entrada del deudor, listo para ser escaneado.


Lo que necesitas​

  • Power Automate. Abre Power Automate. Un flujo automatizado en la nube con conectores estándar. SharePoint, Office 365 Outlook y PDF4me no requieren un plan premium.
  • Clave API de PDF4me. Obtenga su clave API. Este flujo utiliza una conexión de PDF4me, PDF4me Barcode.
  • Una lista de SharePoint para las solicitudes. La lista capturada se llama Swiss QR Requests, con columnas InvoiceNumber, DebtorName, Street, BuildingNo, PostalCode, City, Amount, Currency, Language, Message y Email, además de una columna de selección Status y una columna OutputLink a la que escribe el flujo.
  • Una biblioteca de documentos para los recibos. El flujo capturado escribe en una biblioteca llamada QR Bills.
  • Los datos de su acreedor y un QR-IBAN. La cuenta a la que se enviará el dinero, con su dirección. El QR-IBAN es necesario para las referencias QRR, y la especificación Swiss Payment Standards limita la cuenta a emisores suizos o de Liechtenstein y la moneda a CHF o EUR.

El flujo de un vistazo​

  1. When an item is created, SharePoint supervisa la lista Swiss QR Requests.
  2. Barcode - Create SwissQR Bill (PDF4me Barcode) genera el recibo como un PNG.
  3. Create file (SharePoint) lo guarda en /QR Bills como SwissQR_<invoice number>.png.
  4. Update item (SharePoint) establece Status en Generated y rellena OutputLink.
  5. Send an email (V2) (Office 365 Outlook) envía el comprobante al deudor.

Descripción general del flujo completo​

Historial de ejecución de Power Automate que muestra cinco acciones que se completaron con éxito en orden: Cuando se crea un elemento a los 0,3 segundos, Crear código de barras SwissQR Bill a los 31 segundos, Crear archivo a los 2 segundos, Actualizar elemento a los 0,8 segundos y Enviar un correo electrónico V2 a los 0,4 segundos.

La generación del documento representa el costo total de este proceso: 31 de los 35 segundos. Todo lo que sucede después consiste en SharePoint y Outlook moviendo una pequeña imagen PNG.


Paso 1: ¿Cómo se genera una factura con código QR cuando llega una solicitud?​

Flujo hasta ahora: nada todavía, este es el detonante.

La lista es la cola de solicitudes, por lo que crear una fila es la señal.

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

When an item is created: configuración​

SharePoint Cuando se crea un elemento, se activa con la dirección del sitio PDF4me Support en ynoox1.sharepoint.com/sites/PDF4meSupport y el nombre de la lista Swiss QR Requests, sin parámetros avanzados configurados.

Cada columna de la nueva fila está disponible como token en las cuatro acciones siguientes.


Paso 2: ¿Qué información se incluye en la acción Create SwissQR Bill?​

Flujo hasta ahora: el desencadenador de SharePoint.

Esta es la acción que realiza el trabajo y tiene más campos que el resto del flujo junto. Se dividen en dos grupos: el lado del acreedor, que es su propia cuenta y dirección y nunca cambia, y el lado del deudor, que proviene de la fila.

  1. Agregar Barcode - Create SwissQR Bill a partir de la conexión PDF4me Barcode.
  2. Configure la salida y el acreedor (valores estáticos):
    • Output Format Type: PNG
    • IBAN: CH4431999123000889012
    • Creditor Name: Var Schneider AG
    • Creditor Address Type: S
    • Calle del acreedor, edificio, PostalCode, City: Bahnhofstrasse, 23, 2501, Biel
    • Reference Type: QRR
    • Seperator Line: LineWithScissor
  3. Mapea el deudor y el pago desde el desencadenante:
    • Amount, Currency, Ultimate Debtor Name, Street, Building Number, PostalCode, City, Unstructured Message y Language Type toman su valor de la columna de lista coincidente.
    • Ultimate Debtor AddressType: S
    • Billing Info, AV1 Parameters y Av2 Parameters: dejar vacío

Barcode - Create SwissQR Bill: configuración​

PDF4me Código de barras Crear acción de factura SwissQR con formato de salida PNG, IBAN CH4431999123000889012, importe de la lista, acreedor Var Schneider AG en Bahnhofstrasse 23, 2501 Biel, tipo de dirección S, moneda y nombre del deudor final, calle, número de edificio, código postal y ciudad asignados a partir de las columnas de la lista, tipo de referencia QRR con una referencia de 27 dígitos, mensaje no estructurado y tipo de idioma de la lista, y línea separadora establecida en LineWithScissor

El tipo de dirección S significa estructurada: campos separados para calle, número de edificio, código postal y ciudad. La dirección K, en cambio, requeriría dos líneas de texto libre.

De dónde proviene cada campo​

CampoValor en el flujo capturadoFuente
Output Format TypePNGEstático, el deslizamiento por sí solo
IBANCH4431999123000889012Estático, su QR-IBAN
Bloqueo de acreedoresVar Schneider AG, Bahnhofstrasse 23, 2501 BielEstático, tu propia dirección
Amount, Currency1,005.00, CHFColumnas Amount y Currency
Bloqueo de deudores definitivoMax Muster, Musterstrasse 1, 8000 ZurichDebtorName, Street, BuildingNo, PostalCode, City
Reference Type, ReferenceQRR, 210000000003139471430009017Estático en este flujo, consulte la advertencia a continuación
Unstructured MessageTest invoice INV-1001Columna Message
Language TypeEnglishColumna Language
Seperator LineLineWithScissorEstático

Antes de la puesta en marcha, asigne una referencia individual a cada factura. El flujo actual envía la misma referencia QRR de 27 dígitos en cada comprobante, lo cual es aceptable para una prueba, pero incorrecto en producción: la referencia indica al banco a qué factura corresponde un pago, por lo que un valor compartido hace que todos los pagos entrantes parezcan idénticos. Genere la referencia por factura, ya sea en la lista o en el flujo, y asegúrese de que el dígito de control módulo 10 sea correcto. Además, la referencia es el único campo que el deudor nunca tiene que escribir, por lo que no es necesario que sea corta o fácil de recordar.

Consejo: QRR solo funciona con un QR-IBAN, es decir, un IBAN cuyo número de institución se encuentra dentro del rango QR. La cuenta utilizada aquí, CH4431999123000889012, tiene 31999 en esas posiciones, por lo que cumple con los requisitos. Si su banco le proporcionó un IBAN ordinario, utilice SCOR o NON como Reference Type, o solicite al banco el QR-IBAN correspondiente a la cuenta.


Paso 3: ¿Dónde se guarda la imagen del código QR del billete?​

Flujo hasta ahora: el disparador más Create SwissQR Bill.

La acción devuelve la imagen, y SharePoint es donde se almacena.

  1. Agregar SharePoint > Create file.
  2. Configurar:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • Folder Path: /QR Bills
    • File Name: SwissQR_ seguido del token InvoiceNumber y .png
    • File Content: el token Body del Barcode - Create SwissQR Bill

Create file: configuración​

Acción de creación de archivo de SharePoint con la dirección del sitio PDF4me Support, ruta de carpeta /QR Bills, nombre de archivo SwissQR_ seguido del token InvoiceNumber y .png, y contenido del archivo establecido en el token Body de la acción de código de barras de PDF4me.

Nombrar el archivo según el número de factura es lo que permite realizar búsquedas en la biblioteca posteriormente. Para INV-1001 esto genera SwissQR_INV-1001.png.


Paso 4: ¿Cómo se registra el resultado de la solicitud?​

Flujo hasta ahora: el disparador, Create SwissQR Bill y Create file.

La fila donde se solicitó la factura es también el lugar adecuado para dejar constancia de su existencia.

  1. Agregar SharePoint > Update item.
  2. Configurar:
    • Site Address: PDF4me Support - https://ynoox1.sharepoint.com/sites/PDF4meSupport
    • List Name: Swiss QR Requests
    • Id: el token ID del disparador
    • Title: el token Title del disparador
    • Status Value (avanzado): Generated
    • OutputLink (avanzado): la URL del sitio seguida del token Path del Create file

Update item: configuración​

Acción de actualización de elemento de SharePoint con Dirección del sitio PDF4me Support, Nombre de la lista Swiss QR Requests, Id y Título tomados del desencadenador, y parámetros avanzados Valor de estado establecido en Generado y OutputLink creado a partir de la URL del sitio más el token de ruta de Crear archivo

Title se devuelve directamente desde el disparador. El conector lo trata como necesario, y el hecho de que se le proporcione el valor actual es lo que lo mantiene sin cambios.

Consejo: Abra el enlace guardado una vez después de la primera ejecución. La biblioteca se llama QR Bills, con un espacio, por lo que la ruta que devuelve Create file contiene ese espacio y el navegador debe codificarla. Si el enlace no se abre correctamente, envuelva la expresión en encodeUriComponent o cambie el nombre de la biblioteca a uno sin espacios.


Paso 5: ¿Cómo se envía la factura con código QR por correo electrónico al deudor?​

Flujo hasta ahora: todo a través Update item.

La última acción convierte el comprobante en algo sobre lo que el deudor puede actuar, que es precisamente el objetivo de una factura QR.

  1. Agregar Office 365 Outlook > Send an email (V2).
  2. Configurar:
    • Para: el token Email del activador
    • Asunto: Your Swiss QR bill
    • Body: Hello, please find your Swiss QR bill attached. Scan the QR code with your banking app to pay.
  3. Abra Advanced parameters y añada un archivo adjunto:
    • Name Attachments - 1: el token Name del Create file
    • Contenido Attachments - 1: el token File Content del Barcode - Create SwissQR Bill
    • Importance: Normal

Send an email (V2): configuración​

Office 365 Outlook Enviar un correo electrónico Acción V2 con Para tomado de la columna Correo electrónico, asunto Su factura QR suiza, un cuerpo que solicita al destinatario que escanee el código QR con su aplicación bancaria, un archivo adjunto cuyo nombre proviene del token Nombre de archivo de creación y cuyo contenido proviene del token Contenido de archivo de PDF4me, e Importancia Normal

El archivo adjunto toma su nombre del archivo que se acaba de crear y sus bytes de la acción que lo generó, por lo que no es necesario leer nada desde SharePoint.


Ejecuta el flujo y verifica​

  1. Save el flujo.
  2. Agregue una fila a Swiss QR Requests con el deudor, el importe, la moneda, el idioma y la dirección de correo electrónico que puede consultar.
  3. Abre el historial de ejecución. Las cinco acciones deberían aparecer en verde, y Create SwissQR Bill debería ser la que consuma más tiempo.
  4. Abra la biblioteca QR Bills y compruebe que el archivo PNG esté presente y se muestre como una vista previa de un recibo de pago.
  5. Vuelva a la fila: Status debería indicar Generated y OutputLink debería abrir la imagen.
  6. Abre el correo electrónico y escanea el código QR con una aplicación bancaria para confirmar que el importe, la cuenta y la referencia aparecen tal como los introdujiste.

En la ejecución capturada, todo el proceso duró unos treinta y cinco segundos, de los cuales treinta y uno correspondieron al recibo en sí. La salida, SwissQR_INV-1001.png, muestra el recibo a la izquierda y la parte del pago a la derecha: cuenta CH44 3199 9123 0008 8901 2 para Var Schneider AG en Biel, referencia 21 00000 00003 13947 14300 09017, pagadera por Max Muster en Zurich, CHF 1 005.00, con Test invoice INV-1001 en el bloque de información adicional.

¿Qué fue exactamente lo que creaste? Un sistema de pago con código QR que funciona con una lista. El equipo de finanzas ingresa la información que ya conoce, el comprobante se recibe en el formato que esperan los bancos suizos, se archiva junto con el resto de la documentación y el deudor lo recibe sin necesidad de acceder a un portal bancario ni utilizar ninguna herramienta de diseño.


Variaciones comunes que puedes agregar sin reconstruir​

Ejecútalo como un proceso por lotes en su lugar
Cambia el activador por Recurrence más Get items filtrados a las filas que aún esperan, y coloca las cuatro acciones restantes dentro de Apply to each. La columna Status mantiene la cola correcta.
Coloque el comprobante en la factura
Configure Output Format Type como PDF e introduzca la factura en el campo avanzado File Content. De esta forma, la información de pago se añadirá al documento en lugar de aparecer por separado. La versión de Dropbox de este flujo explica esta variante.
Imprima el recibo en el idioma del deudor
Language Type ya viene de la lista, así que configúrelo para cada deudor y las etiquetas se imprimirán en alemán, francés, italiano o inglés sin modificar el flujo.
Utilice una referencia del acreedor en su lugar
Si la cuenta es un IBAN ordinario, establezca Reference Type en SCOR y proporcione una referencia de acreedor ISO 11649, o en NON para omitir la referencia por completo en el comprobante.

¿Cómo se compara esto con las formas habituales de generar un billete QR?​

Cada fila describe la alternativa. La última fila muestra este flujo.

Comparación¿Quién puede presentar una factura?De dónde provienen los datosEntrega y registro
Generador de portal bancario frente a este flujoQuien tenga el acceso a la banca electrónicaEscrito a mano, factura por facturaDescárgalo y adjúntalo tú mismo a un correo electrónico
Biblioteca del desarrollador frente a este flujoUn desarrollador, dentro de una aplicaciónTu base de datos, a través del código que mantienesLo que sea que construyas a su alrededor
Módulo ERP o de facturación frente a este flujoCualquiera, dentro de ese productoLos propios registros del ERPDentro de ese producto, si incluye la función
Este flujoCualquiera que pueda agregar una fila a una listaUna lista de SharePoint que el equipo ya mantieneArchivado, vinculado en la fila y enviado automáticamente por correo electrónico

Preguntas frecuentes​

¿Qué es un billete QR suizo?​

El comprobante QR suizo es el recibo de pago que sustituyó a los antiguos comprobantes naranjas y rojos en Suiza. Incluye un recibo a la izquierda y la parte del pago a la derecha, con un código QR de la Cruz Suiza que contiene toda la información que necesita el banco: la cuenta y dirección del acreedor, el deudor, el importe, la moneda y la referencia. Escanearlo permite pagar con tan solo unos toques, en lugar de introducir el número de cuenta.

El formato está definido por las Swiss Payment Standards, publicadas por SIX, y el folleto oficial de la factura QR explica el diseño en una página. La ventaja práctica para la automatización es que el contenido es fijo: basta con introducir correctamente los campos y cualquier aplicación bancaria suiza leerá el resultado.

¿Cómo pagar una factura con código QR en Suiza?​

Abre tu aplicación bancaria, selecciona la opción de escaneo y apunta la cámara al código QR de Swiss Cross. La aplicación completará automáticamente la cuenta, el importe, la moneda y la referencia, y tú confirmarás. No es necesario escribir nada, que es precisamente la razón de ser de este estándar.

El papel sigue funcionando igual. El recibo es tuyo, el pago va al banco o a la oficina de correos, y los números impresos reflejan el código.

¿Cómo se genera una factura con código QR en Suiza?​

Existen tres métodos habituales. Los bancos ofrecen un generador integrado en la banca electrónica, ideal para empresas que emiten pocas facturas al mes. Los sistemas de facturación y los planes de gestión de recursos empresariales (ERP) generan el comprobante como parte de la factura. Los desarrolladores también pueden utilizar una biblioteca y adaptarla a su propio software.

Este flujo es el cuarto: guarda los detalles de pago en una lista que tu equipo ya mantiene y deja que Create SwissQR Bill genere el comprobante cada vez que aparezca una fila. Sin portal, sin código, y el resultado es una imagen que cumple con los estándares y que puedes archivar, adjuntar o imprimir.

¿Cómo se envía un correo electrónico con un archivo adjunto en Power Automate?​

Utilice la opción Send an email (V2) del conector Office 365 Outlook, abra Advanced parameters y agregue un archivo adjunto con dos campos: un nombre y el contenido. El nombre es solo texto, por lo que un token de una acción anterior es suficiente. El contenido debe ser la información del archivo, que generalmente corresponde a la salida de la acción que generó o recuperó el archivo.

En este flujo, el nombre proviene de Create file, por lo que el correo coincide con el contenido de SharePoint, y el contenido proviene directamente de la acción PDF4me. Si el archivo adjunto llega vacío o el correo falla, el campo Contenido casi siempre apunta a algo que no son bytes de archivo.


Solución de problemas​

La acción rechaza el IBAN o la moneda

La especificación Swiss Payment Standards solo permite cuentas emitidas en Suiza o Liechtenstein, con un máximo de 21 caracteres, y la moneda debe ser CHF o EUR. Un IBAN de cualquier otro país, o una casilla de moneda rellenada con USD, no será aceptado.

QRR está configurado pero la referencia es rechazada

Una referencia QRR tiene 27 dígitos, termina con un dígito de control módulo 10 y requiere un QR-IBAN. Si la cuenta es un IBAN ordinario o la referencia se acortó o editó manualmente, cambie el Reference Type a SCOR o NON hasta que la cuenta y la referencia correctas estén configuradas.

El correo electrónico llega sin archivo adjunto

Verifique el campo Content del archivo adjunto. Necesita los bytes del archivo, que corresponden al File Content generado por la acción de código de barras. Un token que devuelve una ruta, un nombre o el cuerpo completo de la acción genera un correo electrónico que se envía correctamente pero no contiene información útil.

Status es Generated pero el enlace no se abre

OutputLink se genera a partir de la URL del sitio y la ruta del nuevo archivo. Un nombre de biblioteca con un espacio, una barra diagonal faltante entre las dos partes o una barra diagonal al final de la URL del sitio producen un enlace que parece correcto pero que no lleva a ninguna parte. Compare el valor almacenado con la barra de direcciones al abrir el archivo manualmente.


Próximos pasos​

El mismo patrón de cinco pasos (llega una fila, se genera un documento, se archiva, se sella la fila, se informa al cliente) se adapta a cualquier documento pequeño que pueda describirse en una lista: recordatorios, albaranes, tarjetas de socio y entradas.