Git Product home page Git Product logo

py-epc-qr's Introduction

Code style: black codecov tests lint_with_black pypi

Create QR codes for wire transfers

Sick of copy-and-pasting IBANs to forms? Why not just scan a QR code and have your favorite banking app take care of the rest?

Why not be generous and support wikipedia with EUR10? Grab your phone, open your banking app, select the QR scanner and scan the image below which was created with this tool.

Support Wikipedia with 10 €

Support Wikipedia with 10 €

The created QR code complies with the European Payments Council (EPC) Quick Response (QR) code guidelines.

1st Disclaimer: The author of this code has no affiliation with the EPC whatsoever. Henceforth, you are welcome to use the code at your own dispense, but any use is at your own (commercial) risk.

2nd Disclaimer: Currently, the EPC specifications are implemented only to work with IBAN-based consumer wire transfers within the European Economic Area (EEA), i.e. using the following pieces of information:

  • Recipient
  • IBAN
  • Amount
  • Unstructured remittance (aka reason for transfer)

Of course, any helping hand is welcome to extend the core functionality to more generic transactions.

Installation

To use the code as a standalone command line interface (CLI) tool, then use pipx as follows

pipx install py-epc-qr

You may verify the installation by calling epcqr version. The output should be identical to what pipx printed.

If you intend to use the code instead directly in your own Python projects, then install the package using pip

pip install py-epc-qr

Usage

You may use the package as a standalone command line interface (CLI) or as part of your own code.

CLI

Having installed the package with pipx (see above), you may verify the installation upon calling

>> epcqr --help
Usage: epcqr [OPTIONS] COMMAND [ARGS]...

  Create EPC-compliant QR codes for wire transfers.

Options:
  --install-completion [bash|zsh|fish|powershell|pwsh]
                                  Install completion for the specified shell.
  --show-completion [bash|zsh|fish|powershell|pwsh]
                                  Show completion for the specified shell, to
                                  copy it or customize the installation.
  --help                          Show this message and exit.

Commands:
  create   Create EPC-compliant QR code for IBAN-based wire transfer...
  version  Show version and exit.

The last lines show the available commands.

The core functionality lies behind create, for which you can call again the help.

epcqr create --help     
Usage: epcqr create [OPTIONS]

  Create EPC-compliant QR code for IBAN-based wire transfer within European
  economic area.

Options:
  --out TEXT        name of generated qr png file  [default: qr.png]
  --from-yaml TEXT  specify yaml file from which to create qr
  --help            Show this message and exit.

From interaction

If you call the create command without any options, it is started in an interactive mode. You are asked to input all relevant information. If your input is correct, an image will be created in your current directory.

From template

Alternatively, you can create the QR code from a yaml template, for which the repository contains an example.

Code

If you intend to use the source code in your own Python projects, then a minimal working example looks as follows:

from py_epc_qr.transaction import consumer_epc_qr
epc_qr = consumer_epc_qr(
    beneficiary= "Wikimedia Foerdergesellschaft",
    iban= "DE33100205000001194700",
    amount= 123.45,
    remittance= "Spende fuer Wikipedia"
    )
epc_qr.to_qr()

The relevant functions are gathered in transaction.py

py-epc-qr's People

Contributors

timueh 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.