SWITZERLAND - QR-Rechnung / QR-Bill

Modified on: Fri, 22 Nov, 2024 at 1:20 PM

Print

In Switzerland, it is mandatory for invoices paid by bank (part of AR) to have a printed QR code containing information about the document, as well as the merchant's bank account. To comply with this requirement, we will add a custom print template.

Setup

Swiss fiscal policy must be applied to the account. Contact Support at [email protected] to double-check if it selected.

Fiscal settings

You should also configure the fiscal setting from menu: All Settings -> Fiscalization -> Swiss Fiscalization Settings

Example:

  • IBAN/QR-IBAN must be ISO 7064 valid.
  • Only IBANs with a CH or LI country code may be used.
  • Reference type: "QRR" - must only be used together with QR-IBAN.
  • Reference type: "NON" - only usable if you do now own QR-IBAN

Finally, make sure that the required details are filled out in menu Settings-> All Settings->Documents -> Billing Info

  • Name
  • Country
  • City
  • Zip code

Note: QR code (require for payment) will shown when the balance of the folio is positive, if is balanced QR will NOT showing.

Folio template

Once the above is completed you must create custom folio print template (fully custom or based on our ready-to-use template) from menu Settings-> All Settings-> Documents-> Folio Print Template and add the following in the footer of the template.

Code only for footer

  • Code just for the footer which you can add to your custom folio template:

Important: You must fill out your IBAN manually in rows 6 and 40 of the code.

<div class="container" style="border-top: 1px dashed #000; position: relative; margin: 10px 0">
    <div class="row">
      <div class="col-xs-4" style="border-right: 1px dashed #000;">
        <b>Empfangsschein</b>
        <h2>Konto / Zahlbar an</h2>
        <p>CH26 1234 5678 1234 5678 0</p>
        <p>{{ folio.issuer_billing_info.name }}</p>
        <p>{{ folio.issuer_billing_info.address }}</p>
        <p>Referenz</p>
        {% assign referenz = folio.fiscalization_details[1] | remove: 'QRR' | remove: 'EPD' | remove: ' ' %}
        <p>{{ referenz }}</p>
        <div style="display: flex; justify-content: space-between;">
          <h2>Währung</h2>
          <h2>Betrag</h2>
        </div>
        <div style="display: flex; justify-content: space-between;">
          <p>{{ folio.currency }}</p>
          <p>{{ folio.value }}</p>
        </div>
        <div style="display: flex; justify-content: flex-end;">
          <b>Annahmestelle</b>
        </div>
      </div>
      <div class="col-xs-4">
        <b>Zahlteil</b>
        <div>
          {{folio.qr_code_svg}}
        </div>
        <div style="display: flex; justify-content: space-between;">
          <h2>Währung</h2>
          <h2>Betrag</h2>
        </div>
        <div style="display: flex; justify-content: space-between;">
          <p>{{ folio.currency }}</p>
          <p>{{ folio.value }}</p>
        </div>
      </div>
      <div class="col-xs-4">
        <h2>Konto / Zahlbar an</h2>
        <p>CH26 1234 5678 1234 5678 0</p>
        <p>{{ folio.issuer_billing_info.name }}</p>
        <p>{{ folio.issuer_billing_info.address }}</p>
        <p>Referenz</p>
        <p>{{ folio.contragent_billing_info.second_identification }}</p>
        <p>Zusätzliche Informationen</p>
        <p>Rechnungs-Nr. {{folio.invoice_number}} Kunden-Nr {{folio.contragent_billing_info.vat}}</p>
        <p>Zahlbar durch</p>
        <p>{{ folio.contragent_billing_info.name }}</p>
        <p>{{ folio.contragent_billing_info.person_name }}</p>
        <p>{{ folio.contragent_billing_info.address }}</p>
      </div>
    </div>
  </div>
</div>

The resulting document footer will look like this:

Code for a whole folio template including footer

Code of a full ready-to-use folio template including the code added in the footer:

Important: You must fill out your IBAN manually in rows 80 and 114 of the code.

<div class="make_fonts_smaller_v2" style="page-break-after:always">
  <h5 class="text-center">This is example header</h5>
  <hr />
  <div class="row">
    <div class="col-xs-6"><img class="img-responsive" src="{{folio.folio_logo.url}}" /></div>
    <div class="col-xs-6">
      <h4>Hotel Test</h4>
      <p>Test Contact information</p>
      <p>Phone, Skype, e-mail</p>
    </div>
  </div>
  <hr />
  <div class="row">
    <div class="col-xs-12">
      {% if folio.voided? %}
      <h3 class="text-danger">Voided / {{folio.voided_at|date: "%F"}}, {{folio.user_updated.name}}</h3>
      {% endif %}
      <h1>{{folio.display_name}} #{{folio.invoice_number|default: folio.number }} / {{folio.closed_at|date: "%F"}}</h1>
      {% if folio.open? %}
      <h3 class="text-danger">This is not a final Folio/Invoice!</h3>
      {% endif %}
      {% if folio.correction? %}
      <h3>Correction to: {{folio.master.display_name}} #{{folio.master.invoice_number|default: folio.master.number }} / {{folio.master.closed_at|date: "%F"}}</h3>
      {% endif %}
    </div>
  </div>
  <div class="row">
    <div class="col-xs-6">
      <h4>ISSUER:</h4>
      <p><b>{{folio.issuer_billing_info.name}}</b></p>
      <p>{{folio.issuer_billing_info.country}}, {{folio.issuer_billing_info.address}}, {{folio.issuer_billing_info.person_name}}</p>
      <p>VAT ID: {{folio.issuer_billing_info.vat}}</p>
    </div>
    <div class="col-xs-6">
      <h4>INVOICE TO:</h4>
      <p><b>{{folio.contragent_billing_info.name}}</b></p>
      <p>{{folio.contragent_billing_info.country}}, {{folio.contragent_billing_info.address}}, {{folio.contragent_billing_info.person_name}}</p>
      <p>VAT ID: {{folio.contragent_billing_info.vat}}</p>
    </div>
  </div>
  {{charges_table_html}}
  <div class="row">
    <div class="col-xs-5">
      {% unless folio.correction? %}
      <div class="well well-sm">
        <h3>#{{folio.number}} Balance:</h3>
        <h4>Total: {{folio.value|currency}}</h4>
        <h4>(-) Corrections: {{folio.corrections_value|currency}}</h4>
        <h4>(-) Payments: {{folio.credit_items_value|currency}}</h4>
        {{ payments_table_html }}
        <h2>For payment: {{folio.balance|currency}}</h2>
        <h4>Payment term : {{folio.payment_terms_date | date: "%d %b %y"}}</h4>
      </div>
      {% endunless %}
    </div>
    <div class="col-xs-5 col-xs-offset-2">
      {{taxes_table_html}}
      {% if folio.open? %}
      <h3 class="text-danger text-right">This is not a final Folio/Invoice!</h3>
      {% endif %}
      <h1 class="text-right">Total: {{folio.value|currency}}</h1>
      {% if folio.local_currency != folio.currency %}
      <div>
        <h3 class="text-right">({{folio.local_value|currency}})</h3>
      </div>
      {% endif %}
    </div>
  </div>
  <div class="row">
    <div class="col-xs-12"><br />
      <b>{{folio.notes}}</b>
    </div>
  </div>
  <hr />
  <div class="container" style="border-top: 1px dashed #000; position: relative; margin: 10px 0">
    <div class="row">
      <div class="col-xs-4" style="border-right: 1px dashed #000;">
        <b>Empfangsschein</b>
        <h2>Konto / Zahlbar an</h2>
        <p>CH26 1234 5678 1234 5678 0</p>
        <p>{{ folio.issuer_billing_info.name }}</p>
        <p>{{ folio.issuer_billing_info.address }}</p>
        <p>Referenz</p>
        {% assign referenz = folio.fiscalization_details[1] | remove: 'QRR' | remove: 'EPD' | remove: ' ' %}
        <p>{{ referenz }}</p>
        <div style="display: flex; justify-content: space-between;">
          <h2>Währung</h2>
          <h2>Betrag</h2>
        </div>
        <div style="display: flex; justify-content: space-between;">
          <p>{{ folio.currency }}</p>
          <p>{{ folio.value }}</p>
        </div>
        <div style="display: flex; justify-content: flex-end;">
          <b>Annahmestelle</b>
        </div>
      </div>
      <div class="col-xs-4">
        <b>Zahlteil</b>
        <div>
          {{folio.qr_code_svg}}
        </div>
        <div style="display: flex; justify-content: space-between;">
          <h2>Währung</h2>
          <h2>Betrag</h2>
        </div>
        <div style="display: flex; justify-content: space-between;">
          <p>{{ folio.currency }}</p>
          <p>{{ folio.value }}</p>
        </div>
      </div>
      <div class="col-xs-4">
        <h2>Konto / Zahlbar an</h2>
        <p>CH26 1234 5678 1234 5678 0</p>
        <p>{{ folio.issuer_billing_info.name }}</p>
        <p>{{ folio.issuer_billing_info.address }}</p>
        <p>Referenz</p>
        <p>{{ folio.contragent_billing_info.second_identification }}</p>
        <p>Zusätzliche Informationen</p>
        <p>Rechnungs-Nr. {{folio.invoice_number}} Kunden-Nr {{folio.contragent_billing_info.vat}}</p>
        <p>Zahlbar durch</p>
        <p>{{ folio.contragent_billing_info.name }}</p>
        <p>{{ folio.contragent_billing_info.person_name }}</p>
        <p>{{ folio.contragent_billing_info.address }}</p>
      </div>
    </div>
  </div>
</div>

QR code validation tool

You can use THIS tool to validate the QR codes. The tool indicates if everything is in order with the code.

Did you find it helpful? Yes No

Send feedback
Sorry we couldn't be helpful. Help us improve this article with your feedback.

On this page