🧾 QR-bill

Designing an API capable of handling large volumes of QR-Bills

Java 8
Spring Boot 2.1
PostgreSQL
Maven
Liquibase
GitLab
Confluence

What is a Swiss QR-Bill?

The Swiss QR-Bill is a standardized billing system introduced in 2020 in Switzerland to replace old billing methods such as the orange and red payment slips (BVR).

It utilizes QR code technology to simplify the payment process. By scanning the QR code on the bill, all the necessary information for payment is automatically extracted, including the creditor's details, the amount due, and the payment reference. This eliminates input errors and facilitates payment tracking.

QR-Bills have been mandatory in Switzerland since June 30, 2020, for newly issued invoices.

Thanks to this API, we were able to integrate the new QR-Bill payment method into our internal systems.

ReceiptAccount / Payable toCH52 0483 5012 3456 7100 0Dominique RoduitHowth Road 1IE - 1950 ClontarfPayable by (name/address)CurrencyCHFAmount8 500.00Acceptance pointPayment partCurrencyCHFAmount8 500.00Account / Payable toCH52 0483 5012 3456 7100 0Dominique RoduitHowth Road 1IE - 1950 ClontarfAdditional informationYour order from 07/06/2023Payable by (name/address)

Key Role of the API in QR-Bill Management

As a member of the "Finance and Billing" team, we were responsible for receiving and issuing QR-Bills within the Groupe Mutuel.

My role involved designing and implementing a robust API capable of receiving and storing the thousands of QR-Bills we would receive daily. The goal was to establish an automated and efficient system to manage these bills, eliminating tedious manual tasks and reducing potential errors.


Designing a Robust API

The design of our API was a meticulous process. We first analyzed the specifications of the Swiss QR-Bill in detail to understand the key information required for payment processing. Then, we created a suitable architecture with well-defined endpoints to receive, validate, and store the data in our database.

Load Testing to Ensure Performance

Given the high volume of invoices received by the insurance company on a daily basis, it was crucial to test the API's ability to handle massive loads without compromising performance. I conducted rigorous and well-documented load tests, simulating realistic scenarios that helped identify and address any performance issues.

Comprehensive Documentation: An Essential Guide for Developers

In parallel with the API design, I authored documentation specifically for developers, providing detailed insights into the API's architecture, explaining various requests and responses, and offering a comprehensive list of error messages that the API might return, along with their meanings and recommended actions.

Utility Tools: Simplifying the Generation of Valid QR-Bill Data

As part of the documentation efforts, I developed utility tools that enable the easy generation of valid QR-Bill data accepted by the API. These tools streamlined the creation of QR-Bill examples compliant with the API specifications, simplifying testing procedures and ensuring seamless integration.


Here's an example of a utility tool developed for generating valid test data:

Valid Data Generator for Testing