...
Table of Contents |
---|
Excerpt |
---|
The payment with the ESR payment slip is very common in Switzerland and is already provided by SecuTix. However, the ESR is intended to be replaced by the new Swiss QR invoice and won't be valid anymore after the 30th of September 2022. From now on, you can migrate to the Swiss QR invoice and benefit from following advantages:
|
Solution
Documents
Following the TicketBAI regulation, a TBAI identifier and a QR code are displayed at the bottom of the order summary and order receipt. The QR code encodes a URL redirecting to the tax authorities' fiscal system, allowing to check that the order has been properly signed and sent to the fiscal authorities.
In addition to this, each duplicate is clearly marked as such. In case of order summary, a duplicate watermark is displayed.
In case of order receipt, duplicate is printed.
Either an order summary or an order receipt must be generated systematically for each order so that the tax authorities may check the order by scanning the QR code displayed on the document. However, the order is signed independently of the document generation. As a result:
- You can display the order receipt and the order summary. The order will be signed exactly once and both documents will display the same QR code.
- If you forgot to print and hand over a document to the end customer, you can always print it later.
Info | ||
---|---|---|
| ||
|
Restricted operations after order closure
The interface to the TicketBAI system (defined by the fiscal authorities) allows mainly to create new orders and to cancel them. Modification is only possible in very specific cases that are listed exhaustively. As a result, in order to be able to send the appropriate information to the fiscal authorities, all actions modifying partially an order, like partial refunds and exchanges, must be avoided. SecuTix helps you in this task by performing following checks:
- The box office doesn't allow neither partial refunds nor exchanges
- The batch to cancel a single performance or product will only refund orders that don't contain any other performance or product
- The on-line self exchange features are disabled
Getting started
Set-up to be performed by the service team
Ask the service team to enable the QR invoice feature. The service team will perform following actions:
- Set the feature flag PRINTING_SWISS_QR_CODE_ON_BVR
- Set the following parameters concerning the QR code in the document parameter section
- Set BVR_BARCODE_POS_X to 68
- Set BVR_BARCODE_POS_Y to 43
- Set BVR_BARCODE_POS_SIZE to 46
Documents
Administrative values
QR-IBAN
The QR invoice provides basically the same features as the BVR payment slip. The only difference resides in the format of the document (used by your customers to pay their orders) and the format of the payment file received from the bank (which informs you about the payments successfully performed by your customers).
Scope
The QR invoice may be used for:
- Reservation orders: The initial order is a reservation order and will be converted to a sales order during the import of the payment file. The tickets will only be available after payment.
- Sales orders:The initial order has been paid by pending account with follow-up, using one or more installments. Each import of a payment file will (usually) pay one installment. As for any payment by pending account, the tickets are available right after order closure, i.e. before the "real" payment.
Payment methods
The QR payment process uses exactly the same payment methods as the BVR payment. You don't have to create new ones.
- A payment method by pending account with follow-up = Yes, with a default BVR/QR payment method for each instalment. This payment method is only necessary for case 2 above. Please keep in my mind that if used for online sales, you need to set a due date of the first instalment that is 1 day or more in the future.
- A BVR/QR payment method (type ISR) used when the payment file received from the bank is being imported.
QR invoice
An example of a QR invoice is given below.
View file | ||||
---|---|---|---|---|
|
This example comes from a test institution located in France. In practice, this payment method is only available for our Swiss customers.
Payment file provided by the bank
The QR invoicing is based on the camt.054 format (XML) instead of the old V11 format (CSV) that was used for BVR payments. The set-up of the import function is described in the Getting started section below.
Getting started
Please open a service case to ask for the Swiss QR invoice. This is a paid service. The service team will set it up for you, and help you test it with a complete cycle (create a reservation, generate a QR invoice, pay it, receive the camt file from the post, import it in SecuTix, check that the file has been paid).
Please note that the QR invoice does not contain an order summary. Should you need it, you will need to generate it separately. Alternatively, you can ask the service team to provide you with a special QR invoice that includes the order summary. This will be an additional paid service.
Documents
Administrative values
You need to define several administrative numbers:
- QR IBAN
- Postal account (not used actively, but needed)
- Deadline ISR (number of days for the payment)
The QR invoice uses a separate IBAN, called QR-IBAN. This number has to be stored in the corresponding administrative number as shown below. Please contact your bank if you don't have a QR-IBAN.
The "Postal account" field is a value of format xx-xxxxxx-x (x's are digits). This will in fact not be used by the QR invoice, but it's checked by the document generation, and will make it fail if not defined.
Document type
Create a new document type belonging to document class Summary with ISR. The document must have following characteristics:
...
Info | ||
---|---|---|
| ||
Since a QR invoice has to follow very strict rules (see above), you may prefer to let our service team perform this customisation. By default, our team will reuse the customisation used currently on your ESR (French: BVR, German: Einzahlungsschein). If you didn't use the BVR ESR in the past or if you want to take this opportunity to review the layout of your document, please inform the service team accordingly. The service team can provide you a customised template containing the order summary and the QR payment slip on the same page. |
Import the payment file
Create a new interface of type Payment integration and subtype BVR import:
Set the parameters in the red boxes in figure below. Of course, you are free to name the sales channel, point of sales and payment method code as you want.
Payment value date
The payment value date is determined with the following rules:
- Either it is found in the XML file using the XPath parameter called (name of the parameter)
- If not found, it is taking the day of integration + 1 day.
Warning | ||
---|---|---|
| ||
The XML file published by the bank depends heavily of the bank. The XPath parameters (framed in green in picture above) are used to indicate to the system where to find the valid information. If the default setup provided with the system does not accommodate the file format, do not hesitate to ask for help from SecuTix and support. Provide them with a valid file example. |
Warning | ||
---|---|---|
| ||
Value date (often named ValDt Camt 054 files) is not by default inside of the payment node, so make sure XML parameters are entered correctly to handle value dates even if they are not that are not inside the payment node. |
Warning | ||
---|---|---|
| ||
In the "Custom parameters", add ignorePointOfSalesRelatedToOrder=true to allow to always take the pointOfSale of the batch instead of the one of the order. This allows the batch to work if the client chose "BVR" pending account on a ticketshop. |
Create a manual schedule to launch the function Process external payments and select the file to upload (i.e. the payment file received from the bank).
Warning | ||
---|---|---|
| ||
SecuTix strongly recommends to perform the whole test cycle before sending a large number of QR invoices:
|
Order summary
Please add following information to your order summary template:
Invoice number:
{#if($document.order.invoiceNumber)}Invoice number: {$document.order.invoiceNumber}
{#else}Invoice number: Not available
{#end}
Invoice date:
Invoice date: {$document.order.orderCreationDate}
TBAI identifier and QR code:
{#if($document.order.externalIdentifier)}
{$document.order.externalIdentifier}
{#else}TBAI identifier not available
QR code not available
{#end}
A complete example of document template in English and Spanish is provided below
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
Order receipt
Enable the display of the TicketBAI informations
#set($showKubibai = true)
...
#if($showKubibai == true)
#display($orderReceipt.documentType, 17, 'LEFT')#if($orderReceipt.solutionVersion.length() > 0) #display($orderReceipt.solutionVersion, 15, 'LEFT')#end
#if($orderReceipt.isDuplicate == true)#set($duplicataStr = "DUPLICATE") #else #set($duplicataStr = 'ORIGINAL') #end
#display("Nb impressions: ", 18, 'LEFT')#display($duplicataStr,12, 'LEFT')
#end
Display TBAI identifier and QR code
#if($showKubibai == true)
#if($orderReceipt.fiscalSignatureRestitutionStr.length() > 7)
#display($orderReceipt.fiscalSignatureRestitutionStr.substring(0, 32), 32, 'LEFT')
#display($orderReceipt.fiscalSignatureRestitutionStr.substring(32, $orderReceipt.fiscalSignatureRestitutionStr.length()), 32, 'LEFT')
#else
#display('TBAI identifier not available', 32, 'LEFT')
#end
#if($orderReceipt.fiscalSignatureRestitution.length() > 0)
<QR>$orderReceipt.fiscalSignatureRestitution|6|CENTER<QR>
#else
#display('QR code not available', 32, 'LEFT')
#end
#end
A complete example of document template in English and Spanish is provided below
View file | ||||
---|---|---|---|---|
|
View file | ||||
---|---|---|---|---|
|
New interface
Create a new interface of type external manager and sub-type KUBIBAI plugin
Set the following parameters
...
- Araba: 62b26c86-352c-44e6-980a-d89c4de762a6
...
New function schedule
The schedule is only needed to check that the information have been stored successfully in TicketBAI and to recall KubiBAI in case of failures.
Schedule the Order recovery function belonging to the interface created previously with following parameters:
...
Indeed, this test will ensure that the whole setting has been done properly and that the file generated by your bank may be read by SecuTix. |
Red square problem
In some cases, the QR is printed with some red color on it, when printed directly from the BoxOffice. This red makes it not standard and refused by the Swiss Post.
Open the local configuration file C:\Users\%Username%\secutix\devicedrivers\devicedrivers.properties
and add this line to it:
TnPD.printAsImage=PrinterName
If the file does not exist, you may need to create it.
"PrinterName" needs to be replaced by the name of the logical name of the printer.
Beware that the PrinterName must not include spaces (!!...), so the client may need to rename the printer in the windows preferences (replacing for example with underscores, like HP_LJPro_MFP_M477_PCL6) and then also fix this logical name in the workstation (in SECUTIX).