NEW V3.15 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.
Invoice and file summary
- Invoices shouldn't be created in SecuTix when orders are signed. Indeed, both processes (invoice creation and order signature for TicketBAI) are generating an identifier to be displayed on the document and we want to avoid that a given order gets two different identifiers.
- The file summary cannot display the required QR code because the QR code is related to an order, not to a file that may contain multiple orders. You can still provide file summaries to your customers for information purpose but they can't be used to prove that the order has been digitally signed.
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
Document type
Create a new document type belonging to document class Summary with ISR. The document must have following characteristics:
Workstation configuration
Check that an ISR printer is already defined for the workstation that will be used to prrint the QR invoices. If it isn't the case, you can declare any A4 printer as an ISR printer as illustrated below.
Document template
A document template is provided for each language supported by the QR invoice:
- fr: French
- en: English
- de: German
- it: Italian
These templates are examples that we recommend you to use to build your own customised document template.
Be carefull while customising a template
- The payment slip at the bottom of the QR invoice is fully defined by the QR invoice standards. You must never:
- Change the wording used
- Change the font. size and bold attribute of any information
- Move any piece of information
- The text Separate before paying in just above the payment slip must remain exactly at the same place. If you configure a text which is longer resp. shorter than the one proposed in the examples, you must compensate by removing resp. adding blank lines just before the mentioned text.
- Check that the generated document looks like the one displayed in the Solution section.If you foresee payments with multiple installments (and multiple payment slips), don't forget to print an example with multiple payment slips. Indeed, some small placement issues may get visible only with several payment slips.
Document template customised by the service team
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 in the past or if you want to take this opportunity to review the layout of your document, please inform the service team accordingly.
Import the payment file
Perform a full test cycle before going live
SecuTix strongly recommends to perform the whole test cycle before sending a large number of QR invoices:
- Create a sales order (for example with a voucher)
- Print the QR invoice
- Pay the invoice in your mobile banking app by scanning the QR code
- Wait for the bank to provide you the payment file
- Import the payment file
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
Order receipt
Enable the display of the TicketBAI informations
#set($showKubibai = true)
Display if the document is a duplicate or not:
#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
New interface
Create a new interface of type external manager and sub-type KUBIBAI plugin
Set the following parameters
Parameter | Value |
---|---|
URL | |
Client API key | Provided by KubiBAI on SecuTix' request |
TBAI Territory id |
● Gipuzkoa: dded8ad1-0574-4ee4-b4f7-36687cba73b |
Certificate password | Provided with the certificate |
CIF | Código de Identificación Fiscal |
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:
- It's recommended to use an automatic schedule, for example once per day
- Enter a date in the Date from field. The date has to be in the recent past. You should update this field from time to time, especially in case of heavy sales.
- You can ignore the File to upload parameter.