Coder Social home page Coder Social logo

qrbill's Introduction

qrbill Go package

The qrbill package implements generating QR-bill QR codes, which is a Swiss 🇨🇭 payment standard:

These QR codes fill in details of a bank wire transfer, either all fields or just some of them.

Recipients can scan the QR code with their mobile banking app, or with their online banking web site’s mobile scan functionality, making it much easier to send a wire transfer.

An example use case is for an association or club: you can send out payment instructions to your members to collect membership fees (“Einzahlungsschein”).

Validity

The SIX QR-bill validation portal successfully confirms that e.g. the code at the top right is valid.

qrbill API (Example program)

To install the program:

go install github.com/stapelberg/qrbill/cmd/...

To run the program, run qrbill-api in the terminal. You will see an output like this:

% qrbill-api
2020/06/25 23:32:52 QR Bill generation URL: http://localhost:9933/qr?format=html

You can append the URL parameters on the left to customize the code. E.g.:

http://localhost:9933/qr?format=html&udname=Mary+Jane&udaddr1=Artikel+19b

When you open the URL in your web browser, you should see the following debug output:

When you scan the resulting QR code with your eBanking app, you should see a form like this:

Once you are happy with the code parameters, change the format parameter from html to png, e.g.:

http://localhost:9933/qr?format=png&udname=Mary+Jane&udaddr1=Artikel+19b

Auto-starting qrbill on macOS

See also Script management with launchd in Terminal on Mac for more details from Apple.

  1. Copy qrbill-api to /Applications
  2. Copy launchd/net.zekjur.qrbill.plist to –/Library/LaunchAgents
  3. Restart your computer, or run launchctl load –/Library/LaunchAgents/net.zekjur.qrbill.plist

Crowd-sourced compatibility testing

To build confidence in our implementation, please help us verify that the codes scan as expected!

qrbill v0.1.5 (2020-Nov-07)

Scan each of the following 3 QR codes in your eBanking app, program or web interface, then file an issue (or send a pull request) with your test results! Thank you very much.

donation invoice invoice without amount
expected message: Spende 420 expected sender address Mary Jane, expected amount 23.42 CHF (without amount)
donation parameters invoice parameters invoice without amount parameters
QR code scanned with paid via Notes
donation SIX QR-bill validation
invoice SIX QR-bill validation
invoice without amount SIX QR-bill validation
donation ZKB eBanking (iOS) ZKB
invoice ZKB eBanking (iOS)
invoice without amount ZKB eBanking (iOS)
donation Revolut (iOS)
invoice Revolut (iOS) message replaced with revolut text!
invoice without amount Revolut (iOS) message replaced with revolut text!

qrbill v0.1.4 (2020-Sep-21)

Scan each of the following 3 QR codes in your eBanking app, program or web interface, then file an issue (or send a pull request) with your test results! Thank you very much.

donation invoice invoice without amount
expected message: Spende 420 expected sender address Mary Jane, expected amount 23.42 CHF (without amount)
donation parameters invoice parameters invoice without amount parameters
QR code scanned with paid via Notes
donation SIX QR-bill validation
invoice SIX QR-bill validation
invoice without amount SIX QR-bill validation
donation ZKB eBanking (iOS) ZKB
invoice ZKB eBanking (iOS)
invoice without amount ZKB eBanking (iOS)
donation Revolut (iOS)
invoice Revolut (iOS) message replaced with revolut text!
invoice without amount Revolut (iOS) message replaced with revolut text!
donation UBS (iOS)
invoice UBS (iOS)
invoice without amount UBS (iOS)
donation Postfinance (Android)
invoice Postfinance (Android)
invoice without amount Postfinance (Android)
donation Raiffeisen (Android)
invoice Raiffeisen (Android)
invoice without amount Raiffeisen (Android)
donation UBS (Android)
invoice UBS (Android)
invoice without amount UBS (Android)
donation Credit Suisse (iOS)
invoice Credit Suisse (iOS)
invoice without amount Credit Suisse (iOS)
donation ZKB eBanking (Android)
invoice ZKB eBanking (Android)
invoice without amount ZKB eBanking (Android)
donation Zak - Bank Cler (Android)
invoice Zak - Bank Cler (Android) no mention of "Mary Jane" or "Artikel 19b"
invoice without amount Zak - Bank Cler (Android) no mention of "Mary Jane" or "Artikel 19b"

qrbill v0.1.3 (2020-Sep-10)

donation invoice invoice without amount
donation parameters invoice parameters invoice without amount parameters
QR code scanned with paid via Notes
donation SIX QR-bill validation
invoice SIX QR-bill validation
invoice without amount SIX QR-bill validation
donation ZKB eBanking (iOS) ZKB
invoice ZKB eBanking (iOS)
invoice without amount ZKB eBanking (iOS)
donation Revolut (iOS)
invoice Revolut (iOS) message replaced with revolut text!
invoice without amount Revolut (iOS) message replaced with revolut text!
donation Zak - Bank Cler (Android) no mention of "Mary Jane" or "Artikel 19"
invoice Zak - Bank Cler (Android) no mention of "Mary Jane" or "Artikel 19"
invoice without amount Zak - Bank Cler (Android) no mention of "Mary Jane" or "Artikel 19"
donation Bank Linth (iOS)
invoice Bank Linth (iOS)
invoice without amount Bank Linth (iOS)

qrbill's People

Contributors

benschs avatar l4r-s avatar mritzmann avatar nliechti avatar qbarrand avatar stapelberg avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.