Major release which updates the library to be compliant with the revised Swiss Implementation Guidelines QR-bill version 2.0 (QRIN-11).
Release Date: 23.10.2024
SIX released updated the "Swiss Implementation Guidelines for the QR-bill" in version 2.3. On one side there are several clarifications in the specification and on the other side there are two relevant changes:
Removal of the option for combined address fields (only fully structured ones are supported)
Extended Charset Support
Please note: The version 2.3 of the Implementation Guidelines are valid from 21. November 2025. Thus, we recommend to use extended charset support after and switch to the structured address type at least 2 prior to this date.
See example in QrInvoiceBuilder on how to switch between the IG 2.2 and IG 2.3 explicitly or implicitly.
New Feature: QRIN-121 Extend SPC charset according IG 2.3 (Implementation Guidelines 2.3)
New Feature: QRIN-122 DEPRECATED Combined Address Types (Implementation Guidelines 2.3)
Improvement: QRIN-125 Improved Performance for PDF Rendering (PDF Document Parsing)
Improvement: QRIN-132 Add of Country Code XK - Kosovo
Release Date: 16.01.2024
Improvement: QRIN-112 write corner marks slightly different to resolve a PDF/A-3b validation issue
Improvement: QRIN-113 print LI in front of postal code. only CH will not be prepended
Improvement: Dependency Version Updates:
Apache POI 5.2.2 → 5.2.5
Apache PDFBox 2.0.26 → 2.0.30
Jackson 2.13.4 → 2.13.5
OpenCSV 5.7.0 → 5.9
OpenPDF 1.3.29 → 1.3.36
Spring Boot 2.7.3 → 2.7.18
springdoc-openapi 1.6.11 → 1.7.0
Swagger Annotations 2.2.2 → 2.2.20
ZXing 3.5.0 → 3.5.2
Release Date: 06.02.2023
Improvement: QRIN-108 translations of validation messages added. Added locale to corresponding Java API
Release Date: 11.10.2022
Improvement: PDF document scanning / Swiss QR Code recognition improved by introducing different ScanningEffortLevels and integrating BoofCV as additional QR Code detection library. See both Maven Dependencies and How to Scan Documents for Swiss QR Codes
Release Date: 16.09.2022
Improvement: PDF document scanning / Swiss QR Code recognition improved by increasing PDF page rendering resolution to 216 DPI (3 times 72)
Improvement: Improved OpenAPI documentation by providing additional general description
Improvement: Finalized initial version of "Invoice Document" (complete QR-Bill document) feature
Improvement: Dependency Version Updates:
Apache POI 5.2.0 → 5.2.2
Apache PDFBox 2.0.25 → 2.0.26
iText5 5.5.13.2 → 5.5.13.3
Jackson 2.13.1 → 2.13.4
OpenCSV 5.5.2 → 5.7.0
OpenPDF 1.3.26 → 1.3.29
Slf4j API 1.7.33 → 1.7.36
Spring Boot 2.6.2 → 2.7.3
springdoc-openapi 1.6.4 → 1.6.11
Swagger Annotations 2.1.12 → 2.2.2
ZXing 3.4.1 → 3.5.0
Release Date: 24.04.2022
Improvement: QRIN-101 - Improved String Normalization
Improvement: QRIN-103 - Do not deliver StrdBkgInf-element if empty
Improvement: QR Invoice REST Standalone Application: exposes SSL and log file configuration (Spring Boot standard way)
Release Date: 17.01.2022
Improvement: QRIN-101 - Improved String Normalization
Improvement: QRIN-100 - Prevent empty or blanks strings as AltPmts written to SPC
Improvement: PDF document scanning always parses images extracted from PDF page as well as rendered PDF page
Improvement: Dependency Version Updates:
Apache POI 4.1.2 → 5.2.0
Apache PDFBox 2.0.19 → 2.0.25
iText5 5.5.13.1 → 5.5.13.2
Jackson 2.11.1 → 2.13.1
OpenCSV 5.1 → 5.5.2
OpenPDF 1.3.22 → 1.3.26
Slf4j API 1.7.25 → 1.7.33
Spring Boot 2.3.2 → 2.6.2
springdoc-openapi 1.4.3 → 1.6.4
Swagger Annotations 2.1.4 → 2.1.12
Release Date: 18.07.2021
New Feature: QRIN-90 - Normalize String Inputs
Release Date: 28.07.2020
New Feature: Extract QR Invoice from PDF documents and images. See How to Scan Documents for Swiss QR Codes
(Commercial License Java Solutions Professional & Enterprise)
New Feature: QRIN-82 - PDF - Option to Choose Whether to Embed Fonts or Not / Embed Helvetica in PDF as well
Improvement: QRIN-83 - Update 3rd Party Libraries
Bugfix: QRIN-78 - AddressLine2 required for Combined Addresses
Bugfix: QRIN-77 - FontManager - ConcurrentModificationException
Bugfix: QRIN-80 - REST: Accept-Language should accept Subtags
Bugfix: QRIN-81 - REST: Multipart Charset Not Supported
Release Date: 14.07.2020
New Feature: QRIN-67 - Add Frutiger Support
New Feature: QRIN-70 - Support DIN_LANG output without print margins (cropped)
New Feature: QRIN-72 - QR-bill «DO NOT USE FOR PAYMENT»
Improvement: QRIN-68 - Migration to Springdoc
Improvement: QRIN-73 - Logging - Change To Date Format To ISO8601 (REST API)
Improvement: QRIN-74 - Logging - JSON Output Format On Demand (REST API)
Bugfix: QRIN-69 - QrInvoiceCodeCreator: Null pointer exception when generating a PDF QR-Code with desiredQrCodeSize
Bugfix: QRIN-71 - Failed validations for /v2/swiss-qr-code/validate and /v2/v2/swiss-payments-code/validate should return HTTP response 422
Release Date: 04.06.2020
New Feature: QRIN-65 - Generate Payment Part & Receipt to an existing Document (REST API)
New Feature: QRIN-53 - QR Reference Number - Support for Customer ID
New Feature: QRIN-55 - Print Margins Option for Boundary Lines
New Feature: QRIN-59 - Additional Print Margins
Bugfix: QRIN-46 - Validation bug when using umlaut
Bugfix: QRIN-52 - NullPointer when determining the default payment days
Bugfix: QRIN-57 - Whitespaces in Reference Numbers
Release Date: 20.04.2020
Improvement: QRIN-50 verify Bill Information prefix
Improvement: REST API - Added raster graphics and PDF scanning / Swiss QR Code extraction endpoint via /v2/swiss-qr-code/parse
Improvement: REST API - Added endpoints in order to create references /v2/qr-reference/create & /v2/creditor-reference/create
Improvement: Core - Create Creditor and QR Reference numbers including checksums from simple input (e.g. invoice number). See Reference Creation
Bugfix: QRIN-51 - Fix NullPointerException during validation when reference type is missing
Release Date: 23.02.2020
Improvement / New Feature: Revised REST API as version 2 with new endpoints - version 1 is deprecated but is still supported
Improvement: REST API - updated Spring Boot Version to 2.2.4
Improvement: REST API - enabled Spring Boot Actuator for improved monitoring
Improvement: REST API - Standalone application writes out qrinvoice.pid / qrinvoice.port
New Feature: QRIN-47 - Added PDF Merge Operations
Bugfix: QRIN-49 - CH IBAN Validation is missing length limitation
Improvement: QRIN-25 - Update QR Invoice Core Library to meet Style Guide QR-bill (16.01.2019)
Please note:
Support for Swiss Payments Code version 1.0 has been completely dropped, as this version will never be used in production.
Although this version comes with some API incompatibilities compared to the 0.x versions, upgrading to this version is an easy task.
New Feature: QRIN-10 - Create a way to pre-initialize the library (see How to Eager Initialize the QR Invoice Library )
Improvement: QRIN-7 - Update OpenPDF to 1.1.0 (optional BouncyCastle dependency)
Improvement: QRIN-8 - Update Maven Plugin Versions
Bugfix: QRIN-9 - TTF Scanning on Windows does not look into default font directory
Starting with this version, all artifacts are published to Central Repository. Furthermore, all QR Invoice Solutions are dual licensed under the AGPLv3 as well as our commercial licenses.
New Feature: QRIN-2 - Add Arial Support (feature requested by client)
Bugfix: Set correct box corner line width for freeTextBox (amount / debtor) in OpenPdf implementation
New Feature: QR Invoice REST Standalone Application - Demo WebApp
New Feature: QR Invoice REST Standalone Application - Swagger UI updated
Bugfix: QRIN-3 - Amount format issue for round sums
New Feature: Standalone application "qrinvoice-rest-standalone implemented, which exposes REST API with swagger documentation
New Feature: QR Code - rendering support for PDF, JPEG and BMP added
New Feature: Payment part - rendering support for JPEG and BMP added
Bugfix: Wrong line widths when printing free text fields without printing the boundary line
New Feature: Payment part - rendering support for GIF, TIFF and PNG added (feature requested by client)
Improvement: Performance optimizations, mainly affecting SwissQrCode creation
Bugfix: Adjusted free text field corner sizes and line thickness in order to match exact dimensions from the specification / example file
New Feature: QrInvoiceCodeParser is capable of scanning QR Codes from images
New Feature: QR Code can be created as GIF, TIFF and PNG
Improvement: Validation considers max length of the Swiss Payments Code to be encoded in QR Code / Validates max supported QR version 25
Improvement: Warns if inputs are not trimmed
Improvement: Added detailed page on Specification Requirements Fulfillment
Improvement: Better layouting of the payment part depending on the payload
Improvement: Increased test coverage
Bugfix: Invalid character written to the SPC
Bugfix: Line ending (element separator) on last line of the SPC lead to more than 30 lines
Bugfix: Missing reference number in the information section (payment part)
Bugfix: Exception when attempting to create huge rasterized QR Code. Now a maximum of 10'000 pixels is validated.