This library helps you generate payment QR codes for Polish bank mobile applications. This is useful in invoice generators, etc to let your customers pay event faster 💸.
Makes use of endroid/qr-code for QR-code generation but you can use any library, because the QR string is available via getQrString()
method.
Please note, that this library is only suitable for Polish bank systems
Use Composer to install the library.
composer require ion-bazan/pl-qr-payment
use IonBazan\PaymentQR\Poland\QrPayment;
$payment = new QrPayment(
'4249000050026313017364142', // Account number
'Testowy odbiorca', // Recipient name
'Tytuł płatności', // Payment title
12345 // Amount in gr
);
/** @var \Endroid\QrCode\QrCode $qrCode */
$qrCode = $payment->getQrCode(); // Do anything you want with the QrCode object
header('Content-Type: '.$qrCode->getContentType());
echo $qrCode->writeString();
use IonBazan\PaymentQR\Poland\QrPayment;
$payment = new QrPayment(
'4249000050026313017364142', // Account number
'Testowy odbiorca', // Recipient name
'Tytuł płatności', // Payment title
12345, // Amount in gr
'5214349636', // Recipient NIP (optional)
'PL', // Country code (only PL is supported) (optional)
'11223344', // Customer ID for Direct Debit (optional)
'990066' // Invoobill ID (optional)
);
$qrString = $payment->getQrString(); // You can encode it using the QR library of your choice ...
echo $qrString; // ... or just print it for debug
Currently, this library does not offer any fancy validation. It tries to stop you from breaking things by stripping invalid characters but don't expect too much. You should already have your data valid before generating the QR code.
This library is a quick approach to implement so called Rekomendacja Związku Banków Polskich dotycząca kodu dwuwymiarowego („2D”), umożliwiającego realizację polecenia przelewu oraz aktywację usług bankowych na rynku polskim - wersja 1.0
According to that document, QR codes should have following parameters:
Parameter | Value |
---|---|
Type | QR |
Size | 250 px (min. 1.8 cm x 1.8 cm) |
Error Correction | Low (L) |
Encoding | UTF-8 |
This library is under the MIT license.