Facture QR suisse à partir d'une base Airtable: générez-la, joignez-la et envoyez-la Make e-mail avec PDF4me

PDF4me Create Swiss QR-bill est un module Make qui transforme les informations de paiement en une image de facture QR suisse. Connecté à une base de données Airtable, il extrait le créancier, le débiteur et le QR-IBAN d'une ligne, ajoute le reçu final à l'enregistrement correspondant en pièce jointe et l'envoie par e-mail au débiteur.
Demandez si Airtable peut générer une facture, et la réponse est non, pas une facture payable. La plateforme gère parfaitement le créancier, le débiteur, le montant et le QR-IBAN, mais une facture QR suisse nécessite un cahier des charges précis: une mise en page définie, une ligne de séparation, une référence au bon format et un code QR compatible avec l’application bancaire. Le conseil habituel est de quitter Airtable, d’ouvrir le portail de votre banque et de ressaisir la ligne. Or, cette méthode produit l’effet inverse: les données restent stockées dans la base de données existante.
Un utilisateur ajoute une ligne à une table Airtable avec un créancier, un débiteur, un montant et un QR-IBAN, puis définit Status sur « Nouveau ». Make récupère l'entrée, PDF4me génère la facture suisse au format QR, et l'image est directement jointe à l'enregistrement. Le débiteur la reçoit par e-mail. Cinq modules, aucun portail bancaire, et les données de la facture restent dans la base de données que votre équipe modifie déjà.
Questions et réponses basées sur le pourquoi
Why keep the payment data in Airtable?Car pour de nombreuses petites équipes financières, cette information est déjà présente, à côté de la fiche client et du projet associé. L'intégrer dans un logiciel comptable pour générer un seul bordereau de paiement revient à gérer le même client dans deux systèmes. De plus, une erreur de saisie est facilement corrigible par un collègue non technicien, sans intervention extérieure.
Why put the image back on the record instead of into a folder?En effet, un fichier placé dans un dossier perd son lien avec l'élément qui l'a produit. Joindre le fichier PNG au champ Document de la même ligne permet d'associer le reçu, la quantité utilisée pour sa création et le statut, et ainsi à toute personne consultant la ligne de voir le document sans avoir à aller ailleurs.
Why filter the trigger on Status rather than watching everything?Sans cela, Watch records se déclencherait à chaque ajout de ligne, même pour les lignes incomplètes. La formule du déclencheur transforme « Nouveau » en une instruction explicite: la ligne est terminée et prête. Elle permet également de réémettre un bordereau en toute sécurité, en rétablissant le statut précédent.
Why does the QR-IBAN get cleaned before it is sent?Les utilisateurs saisissent souvent IBAN avec des espaces, alors que la spécification exige un numéro sans espaces. Le champ IBAN est donc traité par une fonction de remplacement qui supprime les espaces, ce qui explique pourquoi une application bancaire peut lire un reçu au lieu d'un reçu rejeté. Le même principe s'applique au montant, qui est formaté avec deux décimales au lieu d'être transmis en format brut.
Ce que vous obtiendrez
Entrée: une ligne Airtable contenant un créancier, un débiteur, un montant, une devise et un QR-IBAN, avec Status « Nouveau ». Sortie: une image PNG d’une facture suisse avec QR code jointe à cet enregistrement, et un courriel envoyé au débiteur avec le reçu en pièce jointe.

Une ligne par facture. Chaque colonne correspond à un champ requis par la spécification QR suisse.

Reçu à gauche, partie paiement à droite, ligne de ciseaux entre les deux.

Ce que reçoit le débiteur, entièrement constitué de la rangée.
Ce dont vous avez besoin
- A Make account.Open Make Cinq modules sur les applications standard, aucun abonnement premium requis.
- PDF4me API key.Get your API key Une seule connexion PDF4me couvre l'ensemble du scénario.
- An Airtable baseLa base de données capturée s'appelle
PDF4me Live Automationset contient une table nomméeSwiss QR Requests. Elle requiert les champs suivants: créancier, débiteur, QRIBAN, référence, Amount, devise, message, e-mail, Status et pièce jointeDocumentpour le reçu final. - A Gmail accountpour la livraison, connecté à Make.
- A real QR-IBANIl s'agit d'un IBAN spécifique délivré par votre banque. Attention: ce n'est pas un IBAN ordinaire. QR-IBAN suisses appartiennent à une plage d'IBAN dédiée aux établissements et permettent le fonctionnement d'une référence QR structurée. Votre banque vous en fournit un sur demande.
Aperçu du scénario
- Watch records (Airtable) récupèrent de nouvelles lignes dans
Swiss QR Requests. - Create Swiss QR-bill (PDF4me) génère le reçu au format PNG.
- Upload an attachment (Airtable) l'ajoute au champ
Documentde la même ligne. - Update a record (Airtable) inscrit le résultat dans la ligne correspondante.
- Send an email (Gmail) permet de transmettre le reçu au débiteur.
Aperçu complet du scénario

Trois modules Airtable, un module PDF4me et un module Gmail. La base sert à la fois de source et de destination.
Étape 1: Comment déclencher un scénario à partir d’une ligne Airtable?
Déroulement jusqu'à présent: rien pour l'instant, ceci est le déclencheur.
Une ligne marquée « prête » correspond à la requête, c'est donc ce que Make les montres.
- Ajouter Airtable > Watch records comme déclencheur.
- Configure:
- Base:
PDF4me Live Automations - Tableau:
Swiss QR Requests - Trigger field:
Created - Label field:
Title - Limite:
10 - Formule:
{Status}='New'
- Base:
Configuration Watch records

C'est la formule qui empêche le scénario de se déclencher sur des lignes à moitié terminées.
Tip.Trigger field Il doit s'agir d'un champ « Date de création » ou « Date de dernière modification », comme indiqué dans le module Make. Sans ce champ, le déclencheur ne pourra pas trier les enregistrements et son comportement sera imprévisible. Si votre table ne possède pas ce champ, ajoutez-le avant de poursuivre le développement.
Étape 2: Comment transformer une ligne en un billet QR suisse?
Déroulement jusqu'à présent: le déclencheur Airtable.
Ce module génère le bordereau. La plupart de ses champs correspondent directement à la ligne; deux d’entre eux nécessitent une expression.
- Ajouter PDF4me > Create Swiss QR-bill.
- Configure les paramètres qui déterminent le résultat:
- Format Type:
PNG - Reference Type:
QRR - Langue:
English - Separator Line:
Line With Scissor - Creditor Address Type:
S
- Format Type:
- Associez les données de paiement à partir du déclencheur:
- Amount:
formatNumber(1.Amount; 2; "."; "") - IBAN:
replace(1.QRIBAN; " "; "") - Creditor Name, rue, code postal, ville et pays (colonnes du créancier)
- Nom et adresse du Debtor (colonnes Débiteur) et Reference (ligne)
- Amount:
Create Swiss QR-bill

Le panneau défile ici. Sous le nom du créancier figurent le reste de son adresse et l'intégralité du bloc du débiteur.
Ce que chaque paramètre détermine
| Champ | Valeur ici | Ce qu'il contrôle |
|---|---|---|
| Format Type | PNG | Une image plutôt qu'un PDF, ce qui permet de l'intégrer à une cellule Airtable et d'en afficher un aperçu directement dans le tableau. |
| Reference Type | QRR | Une référence QR structurée, c'est-à-dire une référence qui nécessite un QR-IBAN. Les alternatives sont SCOR et NON |
| Separator Line | Line With Scissor | Trace la ligne de séparation entre le reçu et la partie paiement |
| Creditor Address Type | S | Adresse structurée, c'est-à-dire avec rue, code postal et ville dans des champs séparés et non en texte libre. |
| Amount | formatNumber(...) | Deux décimales et aucun séparateur de milliers, conformément aux spécifications. |
| IBAN | replace(...) | Supprime les espaces saisis dans IBAN avant la validation du compte. |
Tip.Reference Type et le compte doivent correspondre. QRR requiert un QR-IBAN et une référence QR à 27 chiffres; l’utilisation d’un IBAN classique avec une référence QRR est la principale cause d’échec de validation d’un reçu généré. Si vous ne possédez pas encore de QR-IBAN, sélectionnez NON et laissez le champ « Référence » vide jusqu’à ce que votre banque vous en fournisse un.
Étape 3: Comment remettre le bordereau sur le dossier?
Déroulement jusqu'à présent: le déclencheur plus le module PDF4me.
C'est la rangée qui a demandé le billet, donc c'est à elle de le payer.
- Ajouter Airtable > Upload an attachment.
- Configure:
- Base et Table: comme à l'étape 1
- Record ID: l'
iddu déclencheur - Attachment field:
Document - File: résultat de PDF4me - Create Swiss QR-bill
- File name:
QRBill_plus le Title de la ligne plus.png - Data: le Document de sortie du module 2
- Content type:
PNG image
Configuration Upload an attachment

Record ID provient du déclencheur, le bordereau se retrouve donc sur la ligne qui l'a demandé.
Étape 4: Comment enregistrez-vous le résultat sur la ligne?
Déroulement jusqu'à présent: tout s'est déroulé via le téléchargement de pièces jointes.
Joindre le fichier ne signifie pas que le travail est terminé. Une mise à jour distincte consignera le résultat.
- Ajouter Airtable > Update a record.
- Configure:
- Base et Table: comme à l'étape 1
- Record ID: l'
iddu déclencheur - Record: renseignez les champs à réécrire. Le Status est important, car il détermine la valeur utilisée par la formule de déclenchement. Une colonne OutputLink permet d’ajouter facilement une URL de partage.
Update a record

Le panneau affiche toutes les colonnes du tableau. Laissez vides les colonnes que vous ne souhaitez pas modifier.
Tip.Laissez tous les champs vides, sauf ceux que vous souhaitez modifier. Un champ mappé mais vide effacera la cellule, ce qui peut facilement supprimer l'adresse d'un créancier dans une situation qui, autrement, semblerait avoir fonctionné. Dans l'exemple enregistré, le panneau est défilé et tous les champs visibles sont vides; définissez donc Status intentionnellement plutôt que de copier ce qui s'affiche.
Étape 5: Comment envoyez-vous la facture au débiteur?
Déroulement jusqu'à présent: tout est passé par la mise à jour de l'enregistrement.
Le dernier module délivre le bordereau à l'adresse indiquée sur la ligne.
- Ajouter Gmail > Send an email.
- Configure:
- To: la colonne Email du déclencheur
- Subject:
Your Swiss QR billplus le Title - Body type:
Raw HTML - Content: un court corps HTML indiquant le nom du débiteur, la facture et le montant.
- Ajouter la pièce jointe:
- File: PDF4me - Create Swiss QR-bill
- File name:
QRBill_plus le Title plus.png - Data: le Document de sortie du module 2
Configuration Send an email

La pièce jointe tire ses octets du module 2, donc Airtable n'est jamais relu.
Tip.Vérifiez le montant dans le corps du courriel. Le message capturé se lit comme suit:Amount: 100.5 CHF tandis que le texte lui-même se lit comme suit100.50, car le corps du document mappe la colonne brute tandis que le ticket QR passe parformatNumber Utilisez la même expression aux deux endroits, sauf si vous aimez expliquer la différence à un client.
Exécutez le scénario et vérifiez
- Save le scénario et exécutez-le une fois.
- Ajoutez une ligne aux
Swiss QR Requestsavec un créancier, un débiteur, un montant, un QR-IBAN et StatusNew. - Observez les cinq modules s'illuminer. Chacun devrait signaler une opération.
- Ouvrez la ligne: le champ
Documentdoit contenir un fichier PNG nommé d’après le Title. - Ouvrez le document joint et vérifiez les deux parties. Le reçu et le reçu de paiement doivent indiquer le même compte, la même référence et le même montant, avec la ligne de séparation entre les deux.
- Consultez la boîte de réception dans la colonne « Courriel » pour trouver le message et sa pièce jointe.
Dans l'exécution capturée, la ligne INV-1003 a produit un bordereau payable à Muster AG à Bahnhofstrasse 1, 8001 Zuerich, sur le compte CH44 3199 9123 0008 8901 2, avec la référence 21 00000 00003 13947 14300 09017, payable par Test Kunde AG à Seestrasse 10, 8002 Zuerich, pour CHF 100.50.
What did you actually build?Un générateur de bordereaux de paiement intégré à la base de données que votre équipe utilise déjà. Plus besoin de se connecter à un portail bancaire ni de ressaisir un IBAN: le bordereau est automatiquement rattaché à l’enregistrement correspondant, ce qui vous permet, même un mois plus tard, de retrouver facilement la ligne ayant généré chaque facture.
Variantes courantes que vous pouvez ajouter sans reconstruction
Comment cela se compare-t-il aux autres méthodes de production d'un billet QR suisse?
Chaque ligne décrit une alternative. La dernière ligne correspond à ce scénario.
| Comparaison | Qui le dirige? | D'où proviennent les données? | Ce que vous entretenez |
|---|---|---|---|
| Portail bancaire vs ce scénario | Une personne, un glissement de terrain à la fois | Retapé à la main | Rien, mais chaque facture coûte des minutes à quelqu'un |
| Logiciel comptable avec exportation QR suisse comparé à ce scénario | La finance, à l'intérieur de ce produit | le registre propre au produit | Un abonnement et une résidence secondaire pour vos clients |
| Bibliothèque de développement par rapport à ce scénario | Un développeur, à l'intérieur d'une application | Votre base de données, via le code | Le code, les mises à jour des spécifications et les versions |
| Ce scénario | Toute personne capable d'ajouter une ligne Airtable | La base que l'équipe conserve déjà | Cinq modules et un QR-IBAN |
Questions fréquentes
Qu'est-ce qu'un billet QR suisse?
Le reçu QR suisse est le bordereau de paiement qui a remplacé les anciens formulaires orange et rouges en Suisse. Il comporte un code QR contenant le nom du créancier, du débiteur, le montant et la référence; le payeur le scanne donc avec son application bancaire au lieu de saisir quoi que ce soit.
Il se compose de deux parties, un reçu et un paiement, séparées par une ligne de découpe, et sa mise en page est fixée par leSwiss implementation guidelines published by SIX C’est pourquoi en générer un relève davantage d’un problème de spécification que d’un problème de conception.
Quel est le numéro QR-IBAN en Suisse?
Un QR-IBAN est un second numéro de compte émis par votre banque en plus de votre IBAN habituel. Il est reconnaissable à son identifiant d'établissement, qui se situe dans une plage réservée. Il permet à la banque de détecter qu'un paiement entrant comporte une référence QR structurée et de l'associer automatiquement à une facture.
Règle pratique dans ce cas: si vous définissez Reference Type sur QRR, vous devez utiliser l’ QR-IBAN et non votre IBAN habituel. Les mélanger génère un reçu qui semble correct mais qui ne peut pas être scanné.
Comment payer une facture suisse en QR code?
Le payeur ouvre son application bancaire, scanne le code QR dans la section paiement, vérifie le montant à l'écran et confirme. Aucune saisie n'est requise, ce qui est tout l'intérêt de ce format.
Un bordereau peut également être réglé au guichet d'un bureau de poste ou saisi manuellement à partir des champs imprimés, c'est pourquoi la partie paiement répète le compte, la référence et le montant sous forme de texte lisible à côté du code.
Airtable peut-il créer des factures?
Pas à lui seul. Airtable stocke les données et peut les présenter dans une interface ou une vue imprimable, mais il est incapable de produire un document conforme à une norme de paiement, ni de générer un code QR scannable répondant à cette spécification.
Sa principale force réside dans sa capacité à servir de source de référence. Ce scénario préserve cette séparation: Airtable conserve la ligne, PDF4me génère le document conforme, et le résultat est renvoyé à la ligne en pièce jointe.
Dépannage
Vérifiez conjointement le compte et le type de référence.QRR La référence nécessite un QR-IBAN; un IBAN ordinaire nécessiteSCOR ouNON Vérifiez ensuite que l' IBAN a bien été transmis au module sans espaces, ce qui est le cas.replace L'expression est là pour ça.
La formule de déclenchement est manquante ou ne correspond pas.{Status}='New' Le champ est sensible à la casse et doit être un champ de type sélection unique ou texte dont la valeur est exactement « Nouveau ». Veuillez également vérifier que Trigger field est un champ de type « Date de création » ou « Date de dernière modification ».
Vérifiez Record ID dans le module 3. Il doit provenir du déclencheur, et non du module PDF4me. Ensuite, vérifiez que Content type correspond Format Type: un fichier PNG du module 2, importé comme PDF, sera joint puis l'aperçu sera refusé.
Le module 4 liste tous les champs du tableau; si un champ est mappé mais vide, la cellule correspondante est effacée. Ne modifiez pas les champs que vous n’utilisez pas pour écrire.
Prochaines étapes
La base de données que vous utilisez déjà est généralement plus proche d'un document de paiement final qu'il n'y paraît. Il lui manque simplement un élément qui corresponde aux spécifications.