How it works
Detailed description of the solution
System Architecture
Our sohoQR system is designed to ensure support of QR code based payments for your merchants. It can be used with real POS terminals, soft POS applications running on smrathphones, web checkout forms and even paper bills. Our API is easy and simple, aimed at rapid implementation with minimal effort. Our system is based on a driver and plugin design, allowing a wide range of customization possibilities by creating custom drivers for terminals, payment channels, and bills. System offers multi-institution setup, where every instutution has its own set of merchants, terminals, and payment channels.
- Institutions: Top-level entities that can manage multiple merchants and payment channels.
- Merchants: Businesses under institutions that use terminals to process payments.
- Terminals: Physical devices or software used by merchants to create bills and receive callbacks when the bills are paid.
- Payment Channels: Trusted channels that can access bill information to display it to the customer and receive a notification when the bill is paid.
The functionality is exposed through two main APIs: the Terminal API and the Paychannel API:
- Terminal API: Used by terminals to create, confirm, and cancel QR code bills. QR code data is sent in response to a create bill request and can be displayed on a terminal display, web checkout screen, or printed on paper. The Terminal API also sends notifications to the terminal when the bill is paid, allowing the merchant to deliver goods or services to the customer.
- Paychannel API: Used by trusted partners such as banks or digital wallets to view and pay QR code bills. The QR code is scanned by a wallet mobile application, and the bill amount and other data can be retrieved using this API. When the customer pays the required amount using their wallet application, the trusted partner sends a notification to the sohoQR system that the bill is paid. The Paychannel API also sends notifications when a particular payment needs to be reversed or refunded.
Cross-institution payments are also supported.
Bill Payment Flow
Below is the detailed description of the typical QR bill payment flow:
- Create new bill: When a customer chooses to pay with a QR code, the merchant terminal (real POS terminal, soft POS application, web checkout screen, or another software that prepares bills) uses a Terminal API call to create a new bill in the sohoQR system. The sohoQR system responds with QR code data, which can be displayed on the terminal screen or printed on a paper bill.
- View bill: The customer scans the QR code with a supported banking or wallet mobile application. The mobile application server then uses a Paychannel API call to retrieve bill information and displays it to the customer in their mobile application.
- Pay bill: The customer pays the required amount using any method supported within the wallet mobile application. This can include debiting from their internal account, initiating Google or Apple Pay actions, or making calls to third-party services like loans or installment providers.
- Payment notification: After the customer's account is debited, the wallet application server sends a payment notification to the sohoQR server using Paychannel API call.
- Terminal callback: The sohoQR server initiates a callback to the terminal, notifying it that the bill has been successfully paid and that the merchant can proceed to deliver goods or services to the customer.
- Terminal confirmation: After the service is provided, the terminal sends a bill confirmation message to the sohoQR server, notifying the system about the final amount. If the final amount is less than the paid amount, the sohoQR system generates the necessary reversal messages to the payment channel.
- Cancellation and refund: The terminal can cancel the bill before it is confirmed or request a refund if the bill has already been finalized. In both cases, sohoQR will generate the necessary notifications to the payment channel to credit the customer's account.
- Settlement: Later, the operator of the sohoQR system can use the reports provided by the system to reconcile between payment channels and merchants.
Bill Types
The sohoQR system supports the following types of QR bills:
- Dynamic bills: Classic store bills when amount is known at the checkout. This type of bill can be used instead of card payment. This type of bills can be paid in parts, allowing for split payments.
- Static bills: Pregenerated offline bills for fixed amounts. These bills allow for printing pregenerated QR codes on billboards or stickers for offline use. Additionally, they support ranged amounts, where the exact amount is selected by the customer. This type of bill can be used to send the customer's selected amount of money to the merchant.
- Timer bills: This type of bill starts with a zero amount, and the final amount is calculated when the customer wishes to pay the bill. The amount is calculated based on flexible time period configurations, which support flat charges, free periods, and pricing per time unit. It can be used for parking lots and other time-based charges.
Use Cases
Below are some use case examples that can be supported by the sohoQR system. It is assumed that the service is provided by a bank that has its merchants and an in-house developed banking/wallet application.
- Case 1: The bank has a wide network of merchants in remote locations. Maintaining a network of POS terminals in such a large number of distant locations is costly. Therefore, the bank decided to use a mobile application instead of terminals. The mobile application connects with the sohoQR system to create QR code-based bills.
- Case 2: The bank has a wide network of mobile merchants and sales agents. These agents use their mobile phones with a POS terminal application installed, rather than carrying a physical POS terminal, to increase their mobility and reduce the amount of equipment they need to carry.
- Case 3: The bank is concerned about the risks associated with using payment cards on the web. As a solution, the bank offers its merchants a QR code-based web checkout form. With this form, bank customers don't need to enter their card details on the web, as the entire payment process is conducted within the bank's wallet application.
- Case 4: The bank aims to introduce payment options such as loans and installments for its customers. Implementing such options in a real POS terminal for card-based payments is non-standard and costly. However, it can easily be done through the bank's mobile banking application and QR code-based bills.
- Case 5: Some of the bank's merchants still use paper bills for utility payments. These merchants want to include a QR code in their printed bills so that customers can pay by simply scanning this code using the bank's wallet application.
- Case 6: A donation center serviced by the bank prints their static bill QR codes on billboards and advertising materials, allowing people to make ranged amount donations. The amount is selected by the customer when they scan the QR code with the bank's wallet application.
- Case 7: Some merchant locations offer only a limited number of services, such as fixed-price daily parking, and are not equipped with electronic payment machines. Customers can pay by scanning a printed static bill QR code.
- Case 8: A parking lot operator needs a solution for parking payments. Using sohoQR timer bills, it is possible to configure a flexible charge calculation plan and print a QR code on the customer's parking ticket. Customers can scan the ticket with the bank's wallet application or a payment machine to pay when they leave the parking lot.
Benefits
Using our system can provide the following benefits for you and your customers:
- No need for POS terminal. You can use a smartphone with internet access instead of a traditional POS terminal. The smartphone app can communicate with the sohoQR Terminal API to create bills and display the QR code to the customer.
- More payment options. You can implement various payment options in your banking or wallet app. Implementing non-card payment options in traditional POS terminals can be quite costly, while new options can be easily added to the mobile app, including third-party services like loans or installment providers.
- Secure web checkout. Your customers will not need to enter their card details on connected websites. Instead, they can make payments within their trusted banking or wallet application.
- Wide range of applications. QR code payments can be used in many more ways than traditional card-based payments, such as placing QR codes on paper bills, printed materials and receipts.
Technology Stack
The sohoQR system uses following technology stack:
- Backend: Our backend is built using the PHP Laravel framework. It is compatible with any PHP-enabled web server, such as Apache or Nginx, and does not require any additional, and sometimes expensive, third-party software.
- Frontend: Our frontend is constructed using modern JavaScript frameworks and operates as a single-page application in any modern browser.
- Database: The backend part can run on any database supported by the Laravel framework. This includes open-source solutions like MySQL or PostgreSQL, as well as commercial solutions like Oracle.
- Clustering: The application GUI and API can be split onto different machines to distribute the load. Additionally, API calls are stateless, allowing for the creation of multi-machine clusters to ensure high availability solutions.
Our technology stack is designed for rapid and cost-effective implementation, allowing a working system to be established in a matter of days.