Pular para o conteúdo principal

Fatura QR suíça a partir de uma base Airtable: gere, anexe e envie por e-mail no Make com PDF4me

· 25 min para ler
SEO and Content Writer

PDF4me Create Swiss QR-bill é um módulo Make que transforma os detalhes de pagamento em uma imagem de fatura QR suíça. Apontado para uma base Airtable, ele lê o credor, o devedor e o QR-IBAN de uma linha, adiciona o comprovante finalizado como anexo ao mesmo registro e o envia por e-mail ao devedor.

Pergunte se Airtable consegue gerar uma fatura e a resposta honesta é não, não uma fatura pagável. Ele armazena perfeitamente o credor, o devedor, o valor e o QR-IBAN, mas uma fatura QR suíça é uma especificação: um layout definido, uma linha de corte, uma referência no formato correto e um código QR que o aplicativo do banco realmente aceite. A recomendação usual é sair Airtable, abrir o portal do seu banco e digitar a linha novamente. Este cenário faz o oposto, e os dados nunca saem do banco de dados onde já estão armazenados.

O cenário em resumo
1. Watch records
Airtable. Identifica linhas em Swiss QR Requests onde Status é "Novo".
2. Create Swiss QR-bill
PDF4me. Gera o comprovante a partir do credor, devedor e QR-IBAN na linha correspondente.
3. Upload an attachment
Airtable. Coloca o PNG de volta no mesmo registro, no campo Document.
4. Update a record
Airtable. Reescreve o resultado para que a linha indique o que aconteceu.
5. Send an email
Gmail. Envia o comprovante para o endereço na linha.
A versão curta

Alguém adiciona uma linha a uma tabela Airtable com um credor, um devedor, um valor e um QR-IBAN e define Status como Novo. Make reconhece a linha, PDF4me gera a fatura com QR Code suíço e a imagem é adicionada diretamente ao registro como um anexo. O devedor a recebe por e-mail. Cinco módulos, sem portal bancário, e os dados da fatura permanecem na base que sua equipe já edita.

Perguntas e respostas baseadas no "porquê".​

Why keep the payment data in Airtable?Porque para muitas pequenas equipes de finanças, essa informação já está lá, ao lado do registro do cliente e do projeto ao qual pertence. Transferi-la para um sistema de contabilidade para gerar um único comprovante de pagamento significa manter o mesmo cliente em dois sistemas. Além disso, uma linha é algo que um colega sem conhecimento técnico pode corrigir sem precisar pedir a opinião de ninguém.

Why put the image back on the record instead of into a folder?Porque um arquivo em uma pasta perde a conexão com o documento que o gerou. Anexar o PNG ao campo Document na mesma linha significa que o comprovante, a quantidade utilizada e o status ficam todos juntos, e qualquer pessoa que visualize a linha pode ver o documento sem precisar ir a outro lugar.

Why filter the trigger on Status rather than watching everything?Porque, caso contrário, Watch records seriam acionados em todas as linhas adicionadas, incluindo as incompletas. A fórmula no gatilho torna "Novo" uma instrução explícita: a linha está completa e pronta. Ela também oferece uma maneira segura de reemitir um comprovante, que é redefinir o status.

Why does the QR-IBAN get cleaned before it is sent?Como as pessoas digitam IBAN com espaços, e a especificação exige que a conta seja preenchida sem eles, o campo IBAN passa por uma função de substituição que remove os espaços. Essa é a diferença entre um comprovante lido pelo aplicativo do banco e um rejeitado. O mesmo princípio se aplica ao valor, que é formatado com duas casas decimais em vez de ser passado sem formatação.


O que você receberá​

Entrada: uma linha Airtable com um credor, um devedor, um valor, uma moeda e um QR-IBAN, com Status definido como "Novo". Saída: uma fatura suíça em formato PNG com o código QR anexada ao mesmo registro e um e-mail para o devedor com o comprovante em anexo.

Airtable base PDF4me Live Automations with the Swiss QR Requests table open, showing rows INV-1001 to INV-1004 with CreditorName Muster AG, Bahnhofstrasse 1, 8001 Zuerich CH, a QRIBAN beginning CH4431999123, a structured Reference, DebtorName Test Kunde AG at Seestrasse 10 in 8002 Zuerich, Amount 100.50, Currency CHF, a Message column reading Rechnung INV-1001 and a Status column reading Generated

Uma linha por conta. Cada coluna aqui corresponde a um campo exigido pela especificação QR suíça.

The generated Swiss QR bill for INV-1003: a Receipt half and a Payment part separated by a scissor line, both showing account CH44 3199 9123 0008 8901 2 payable to Muster AG at Bahnhofstrasse 1, 8001 Zuerich, reference 21 00000 00003 13947 14300 09017, additional information Rechnung INV-1003, payable by Test Kunde AG at Seestrasse 10, 8002 Zuerich, currency CHF and amount 100.50, with the QR code in the payment part

Recibo à esquerda, comprovante de pagamento à direita, linha de corte entre eles.

Gmail showing the received message with subject Your Swiss QR bill INV-1003, the body reading Hello Test Kunde AG, Please find your Swiss QR bill INV-1003 attached, Amount 100.5 CHF, and one attachment previewing the QR bill

O que o devedor recebe, construído inteiramente a partir da fileira.


Do que você precisa​

  • A Make account.Open Make Cinco módulos em aplicativos padrão, sem necessidade de assinatura premium.
  • PDF4me API key.Get your API key Uma única conexão PDF4me abrange todo o cenário.
  • An Airtable baseA base capturada chama-se PDF4me Live Automations e possui uma tabela denominada Swiss QR Requests. Ela precisa dos campos credor, devedor, QRIBAN, Referência, Amount, Moeda, Mensagem, E-mail, um campo Status e um campo de anexo chamado Document para o comprovante finalizado.
  • A Gmail accountPara entrega, conectado ao Make.
  • A real QR-IBANdo seu banco. Este não é um IBAN comum: QR-IBAN suíços pertencem a uma faixa institucional dedicada e são o que permite o funcionamento de uma referência QR estruturada. Seu banco emite um mediante solicitação.

Visão geral do cenário​

  1. Watch records (Airtable) detecta novas linhas em Swiss QR Requests.
  2. Create Swiss QR-bill (PDF4me) renderiza o comprovante como um arquivo PNG.
  3. Upload an attachment (Airtable) o anexa ao campo Document na mesma linha.
  4. Update a record (Airtable) grava o resultado de volta na linha.
  5. Send an email (Gmail) entrega o comprovante ao devedor.

Visão geral completa do cenário​

The Make scenario canvas showing five connected modules in order: Airtable Watch records with a clock icon, PDF4me Create Swiss QR-bill, Airtable Upload an attachment, Airtable Update a record, and Gmail Send an email, each marked with a green tick and one operation

Três módulos Airtable, um módulo PDF4me e um módulo Gmail. A base serve tanto como origem quanto como destino.


Passo 1: Como acionar um cenário a partir de uma linha Airtable?​

Fluxo até agora: nada ainda, este é o gatilho.

Uma linha marcada como pronta é a solicitação, e é isso que Make monitora.

  1. Adicione Airtable > Watch records como gatilho.
  2. Configurar:
    • Base: PDF4me Live Automations
    • Mesa: Swiss QR Requests
    • Trigger field: Created
    • Label field: Title
    • Limite: 10
    • Fórmula: {Status}='New'

Configuração Watch records​

Make Airtable Watch records module with Base set to PDF4me Live Automations, Table Swiss QR Requests, Trigger field Created, Label field Title, Limit 10, View left empty and Formula braces Status equals New

A fórmula é o que impede que o cenário seja acionado em linhas incompletas.

Tip.Trigger field Deve haver um campo de Data de Criação ou Data da Última Modificação, e o módulo Make indica isso. Sem um campo desse tipo, o gatilho não poderá classificar os registros e se comportará de maneira imprevisível. Se sua tabela não tiver esse campo, adicione um antes de prosseguir com o restante do código.


Passo 2: Como transformar uma linha em uma nota QR suíça?​

Fluxo até o momento: o gatilho Airtable.

Este é o módulo que gera o comprovante. A maioria dos seus campos são um mapeamento direto da linha; dois deles precisam de uma expressão.

  1. Adicionar PDF4me > Create Swiss QR-bill.
  2. Configure as definições que definem o resultado:
    • Format Type: PNG
    • Reference Type: QRR
    • Linguagem: English
    • Separator Line: Line With Scissor
    • Creditor Address Type: S
  3. Mapeie os dados de pagamento a partir do gatilho:
    • Amount: formatNumber(1.Amount; 2; "."; "")
    • IBAN: replace(1.QRIBAN; " "; "")
    • Creditor Name, rua, código postal, cidade e país, conforme indicado nas colunas de credores.
    • Nome e endereço Debtor, obtidos da coluna "Devedor", e a Reference da linha.

Create Swiss QR-bill​

Make PDF4me Create Swiss QR-bill module showing Format Type PNG, a Currency dropdown, Reference Type QRR, Language English, Separator Line Line With Scissor, Amount set to a formatNumber expression over the Amount column, IBAN set to a replace expression over the QRIBAN column, Creditor Address Type S and the start of the Creditor Name field

O painel está rolado aqui. Abaixo do nome do credor, encontram-se o restante do endereço do credor e todo o bloco do devedor.

O que cada configuração decide.​

CampoValor aquiO que ele controla
Format TypePNGTrata-se de uma imagem em vez de um PDF, o que permite anexá-la a uma célula Airtable e visualizá-la diretamente na página.
Reference TypeQRRUma referência QR estruturada, que é o tipo que precisa de um QR-IBAN. As alternativas são SCOR e NON
Separator LineLine With ScissorDesenha a linha de corte entre o recibo e a parte do pagamento.
Creditor Address TypeSEndereço estruturado, ou seja, rua, código postal e cidade em campos separados, em vez de texto livre.
AmountformatNumber(...)Duas casas decimais e nenhum separador de milhares, conforme especificado.
IBANreplace(...)Remove os espaços digitados pelos usuários nos IBAN antes da validação da conta.

Tip.Reference Type e a conta devem coincidir. QRR exige um QR-IBAN e uma referência QR de 27 dígitos; um IBAN comum com uma referência QRR é o motivo mais comum para a falha na validação de um comprovante gerado. Se você ainda não possui um QR-IBAN, use NON e deixe o campo de referência em branco até que seu banco emita um.


Passo 3: Como você coloca o comprovante de volta no registro?​

Fluxo até o momento: o gatilho mais o módulo PDF4me.

A fila pediu a conta, então a fila deve pagá-la.

  1. Adicionar Airtable > Upload an attachment.
  2. Configurar:
    • Base e Table: como na etapa 1
    • Record ID: o id do gatilho
    • Attachment field: Document
    • File: resultado do PDF4me - Create Swiss QR-bill
    • File name: QRBill_ mais o Title da linha mais .png
    • Data: o Document de saída do módulo 2
    • Content type: PNG image

Upload an attachment​

Make Airtable Upload an attachment module with Base PDF4me Live Automations, Table Swiss QR Requests, Record ID mapped from the trigger id, Attachment field Document, File set to the PDF4me Create Swiss QR-bill output, File name QRBill_ plus the Title token plus .png, Data set to the module 2 Document output and Content type PNG image

Record ID vem do gatilho, então o formulário é inserido na linha que o solicitou.


Passo 4: Como você registra o resultado na linha?​

Fluxo até o momento: tudo feito através do upload de anexos.

Anexar o arquivo não significa que o trabalho está concluído. Uma atualização separada descreve o resultado.

  1. Adicionar Airtable > Update a record.
  2. Configurar:
    • Base e Table: como na etapa 1
    • Record ID: o id do gatilho
    • Record: preencha os campos que deseja que sejam exibidos. O Status é o mais importante, pois é o que a fórmula do gatilho lê, e uma coluna OutputLink é um local conveniente para um URL compartilhável.

Update a record​

Make Airtable Update a record module with Base PDF4me Live Automations, Table Swiss QR Requests, Record ID mapped from the trigger, and the Record section listing the table fields Title, CreditorName, CreditorStreet, CreditorPostalCode, CreditorCity, CreditorCountry, QRIBAN, Reference, DebtorName, DebtorStreet and DebtorPostalCode as empty inputs

O painel lista todas as colunas da tabela. Deixe em branco tudo o que você não quiser que seja sobrescrito.

Tip.Deixe todos os campos em branco, exceto aqueles que você realmente pretende alterar. Um campo mapeado, mas vazio, limpará a célula, o que é uma maneira fácil de apagar o endereço de um credor em um cenário que, de outra forma, parece ter funcionado. Na execução capturada, o painel está rolado e os campos visíveis estão todos vazios; portanto, defina Status deliberadamente em vez de copiar o que você vê.


Passo 5: Como enviar a fatura ao devedor?​

Fluxo até o momento: tudo até a atualização do registro.

O último módulo entrega o comprovante no endereço da linha.

  1. Adicionar Gmail > Send an email.
  2. Configurar:
    • To: a coluna Email do gatilho
    • Subject: Your Swiss QR bill mais o Title
    • Body type: Raw HTML
    • Content: um breve corpo HTML com o nome do devedor, a fatura e o valor.
  3. Anexe o arquivo:
    • File: PDF4me - Create Swiss QR-bill
    • File name: QRBill_ mais o Title mais .png
    • Data: o Document de saída do módulo 2

Send an email​

Make Gmail Send an email module with the recipient mapped from the Email column, Subject Your Swiss QR bill plus the Title token, Body type Raw HTML, an HTML content block greeting the debtor and stating the amount and currency, and one attachment taking the PDF4me module output with the file name QRBill_ plus Title plus .png

O anexo obtém seus bytes do módulo 2, portanto Airtable nunca é lido de volta.

Tip.Observe o valor no corpo do e-mail. A mensagem capturada diz:Amount: 100.5 CHF enquanto o próprio comprovante diz100.50 porque o corpo mapeia a coluna bruta enquanto a fatura QR passa porformatNumber Use a mesma expressão em ambos os casos, a menos que goste de explicar a diferença ao cliente.


Execute o cenário e verifique.​

  1. Save o cenário e execute-o uma vez.
  2. Adicione uma linha às Swiss QR Requests com um credor, um devedor, um valor, um QR-IBAN e Status New.
  3. Observe os cinco módulos acenderem. Cada um deve reportar uma operação.
  4. Abra a linha: o campo Document deve conter um arquivo PNG com o nome do Title.
  5. Abra o anexo e verifique ambas as metades. O recibo e o comprovante de pagamento devem mostrar a mesma conta, referência e valor, com a linha de corte separando-os.
  6. Verifique a caixa de entrada na coluna E-mail para encontrar a mensagem e seu anexo.

Na transação capturada, a linha INV-1003 gerou um comprovante pagável à Muster AG localizada em Bahnhofstrasse 1, 8001 Zuerich, na conta CH44 3199 9123 0008 8901 2, com referência 21 00000 00003 13947 14300 09017, pagável pela Test Kunde AG, localizada em Seestrasse 10, 8002 Zuerich, no valor de CHF 100,50.

What did you actually build?Um gerador de comprovantes de pagamento que funciona dentro do banco de dados que sua equipe já utiliza. Ninguém precisa acessar o portal do banco, ninguém precisa digitar novamente um IBAN, e o comprovante fica vinculado ao registro que o gerou, permitindo que, mesmo um mês depois, você ainda veja qual linha corresponde a qual fatura.


Variações comuns que você pode adicionar sem reconstruir​

Cole o comprovante em uma página da fatura.
Altere Format Type para PDF e adicione uma etapa de mesclagem para inserir a fatura abaixo da sua nota fiscal.overlay merge scenario aborda esse padrão em detalhes.
Fatura em euros e francos.
A especificação permite apenas CHF e EUR. Mapeie a coluna Moeda para o campo Moeda em vez de fixá-la e adicione uma visualização de validação no Airtable que sinalize qualquer outra moeda.
Enviar lembretes da mesma base
Adicione uma coluna de data de pagamento e um cenário agendado que reenvie o anexo existente para qualquer pagamento não efetuado após trinta dias. O comprovante já está registrado, portanto, não é necessário regenerá-lo.
Fatura para mais de uma entidade
O bloco de credores já vem das colunas, então uma base pode emitir para duas empresas. Atribua a cada uma seu próprio QR-IBAN na linha e nada mais muda.

Como isso se compara às outras formas de produzir uma nota QR suíça?​

Cada linha descreve a alternativa. A última linha representa este cenário.

ComparaçãoQuem o dirige?De onde vêm os dados?O que você mantém
Portal bancário versus este cenárioUma pessoa, um deslize de cada vez.Redigitado à mãoNada, mas cada conta custa minutos a alguém.
Pacote de contabilidade com exportação para QR Code suíço versus este cenárioFinanças, dentro desse produtoO próprio livro-razão do produtoUma assinatura e um segundo lar para seus clientes.
Biblioteca de desenvolvedor versus este cenárioUm desenvolvedor, dentro de um aplicativoSeu banco de dados, por meio de código.O código, as atualizações de especificações e os lançamentos.
Este cenárioQualquer pessoa que possa adicionar uma linha AirtableA base que a equipe já mantémCinco módulos e um QR-IBAN

Perguntas frequentes​

O que é uma nota QR suíça?​

A fatura QR suíça é o comprovante de pagamento que substituiu os antigos formulários de pagamento laranja e vermelho na Suíça. Ela contém um código QR com o nome do credor, do devedor, o valor e a referência, permitindo que o pagador o escaneie em seu aplicativo bancário em vez de digitar qualquer coisa.

É composto por duas metades, uma para o recibo e outra para o pagamento, separadas por uma linha de corte, e o layout é fixo por...Swiss implementation guidelines published by SIX É por isso que gerar um é um problema de especificação, e não um problema de projeto.

Qual é o número QR-IBAN na Suíça?​

Um QR-IBAN é um segundo número de conta que seu banco emite juntamente com seu IBAN comum, reconhecível porque seu identificador de instituição está em um intervalo reservado. Ele existe para que o banco possa identificar que um pagamento recebido contém uma referência QR estruturada e associá-lo automaticamente a uma fatura.

A regra prática para este cenário é a seguinte: se você definir Reference Type como QRR deverá usar o QR-IBAN, e não o seu IBAN normal. Misturá-los é o que produz um comprovante que parece correto, mas não será lido pelo leitor.

Como pagar uma fatura QR suíça?​

O pagador abre o aplicativo do banco, escaneia o código QR na área de pagamento, verifica o valor na tela e confirma. Nada é digitado, que é exatamente a proposta do formato.

O pagamento também pode ser feito no balcão dos correios ou preenchido manualmente a partir dos campos impressos, razão pela qual a parte do pagamento repete a conta, a referência e o valor como texto legível ao lado do código.

Airtable consegue criar faturas?​

Não por si só. Airtable armazena os dados e pode organizá-los em uma interface ou em uma visualização para impressão, mas não tem como gerar um documento que atenda a um padrão de pagamento, nem como renderizar um código QR legível de acordo com essa especificação.

O que ele faz bem é ser a fonte da verdade. Este cenário mantém essa divisão: Airtable armazena a linha, PDF4me produz o artefato compatível e o resultado retorna à linha como um anexo.


Solução de problemas​

O aplicativo do banco não irá ler o código.

Verifique a conta e o tipo de referência em conjunto. AQRR É necessário um QR-IBAN para referência; um IBAN comum é necessário.SCOR ouNON Em seguida, verifique se o IBAN realmente chegou ao módulo sem espaços, que é o que oreplace A expressão está aí para...

O cenário é acionado em linhas que não estão prontas.

A fórmula de ativação está ausente ou não corresponde.{Status}='New' O campo diferencia maiúsculas de minúsculas e precisa ser um campo de seleção única ou um campo de texto cujo valor seja exatamente "Novo". Além disso, confirme se Trigger field é um campo de data de criação ou data da última modificação.

O anexo nunca aparece no registro.

Verifique Record ID no módulo 3. Ele deve vir do gatilho, não do módulo PDF4me. Em seguida, verifique se Content type corresponde Format Type: um PNG do módulo 2 carregado como um arquivo PDF será anexado e, em seguida, a visualização será recusada.

Uma coluna foi apagada após uma execução.

O Módulo 4 lista todos os campos da tabela, e um campo mapeado, mas vazio, limpa a célula. Deixe intocado qualquer campo que você não esteja escrevendo deliberadamente.


Próximos passos​

O banco de dados que você já possui geralmente está mais próximo de um documento de pagamento finalizado do que aparenta. Ele só precisa de algo que atenda às especificações.