Skip to content

Reverse charge (Section 13b UStG) in e-invoices

With the tax mode "Reverse Charge (§ 13b UStG)", invoices are created without VAT because the recipient of the service owes the tax. The e-invoice automatically contains everything the EN 16931 standard requires for this procedure – calculation, ZUGFeRD data and the mandatory note match, without amounts or tax codes having to be set by hand.


When does reverse charge apply?

Under Section 13b of the German VAT Act (UStG), the tax liability for certain services shifts from the supplier to the recipient. Typical domestic cases:

  • Construction services (Section 13b (2) No. 4) supplied to businesses that themselves regularly provide construction services – for example when trades businesses invoice each other.
  • Building cleaning (Section 13b (2) No. 8) supplied to businesses that themselves provide building cleaning services.

Whether the procedure applies depends on the recipient (often evidenced by the tax office certificate USt 1 TG). This decision is made when the invoice is created – Pantarey does not check it. If in doubt, a tax advisor should be consulted.


Setting the tax mode on the invoice

The tax mode is chosen per invoice in the field "Steuerart" (app_tax_mode):

Value Label Effect
standard Standard Normal calculation with 0 %, 7 % and 19 % (default)
reverse_charge_13b Reverse Charge (§ 13b UStG) Invoice without VAT, VAT category AE
  • The field is included from version 1.5.0 of the template "Rechnungen (Datenstrukturen)". Existing installations receive it by updating the template.
  • With custom data structures, a field tax_mode or app_tax_mode with the value reverse_charge_13b is sufficient – alternatively, the value can be set through the inbound mapping of the service task.
  • If the field is missing or empty, the invoice is calculated as a standard invoice, exactly as before.

What changes on the invoice

Calculation (Calculate invoice amounts):

  • All line items are calculated at 0 % – including articles that carry 19 % or 7 %. The stored VAT rate is kept; when the tax mode is switched back to "Standard", the normal calculation applies again.
  • Gross equals net, VAT is 0.
  • app_has_reverse_charge is set to true and app_net_reverse_charge holds the net amount. The fields app_has_vat_nineteen, app_has_vat_seven and app_has_vat_zero stay false.

E-invoice (Map invoice data to ZUGFeRD):

Element Content
VAT category of line items and VAT breakdown (BT-151, BT-118) AE (reverse charge), rate 0 %
Exemption reason (BT-120) "Steuerschuldnerschaft des Leistungsempfängers"
Exemption reason code (BT-121) VATEX-EU-AE
Invoice note (BT-22) "Steuerschuldnerschaft des Leistungsempfängers (§ 13b UStG)"
Buyer VAT ID (BT-48) from the contact, see below

VAT ID of the recipient

The VAT ID is maintained in the CRM on the organization in the field "Umsatzsteuer-ID" (vat_id). It is taken over into the invoice when the recipient is selected. If it is added to the contact later, the recipient has to be selected again in the invoice.

  • In the e-invoice it is output as BT-48 – on every invoice, not only with reverse charge.
  • Spaces and dots are removed (de 123 456 789 becomes DE123456789).
  • Entries that do not look like a VAT ID (country code plus number), such as a tax number, are not taken over.

Is the VAT ID mandatory?

  • Under German tax law, the recipient's VAT ID is not a mandatory invoice detail for domestic Section 13b cases.
  • The e-invoicing standard EN 16931, however, requires the buyer's VAT ID or a registration number for VAT category AE (rule BR-AE-02). If both are missing, the e-invoice is still created, but a validator reports an error – depending on the recipient's software, a warning is shown or the invoice is rejected.

It is therefore recommended to ask reverse-charge customers for their VAT ID and store it on the contact.


Adjusting the PDF template

The visible invoice must carry the note "Steuerschuldnerschaft des Leistungsempfängers" (Section 14a (5) UStG) and must not show any VAT. The HTML template of the service task is not adjusted automatically. The following snippet covers the three affected places – line items, totals and the note. The invoice wording stays German, as required on German invoices:

<table class="positionen">
  {{#each app_invoice_items_custom}}
  <tr>
    <td>{{app_description}}</td>
    <td>{{app_amount}}</td>
    <td>{{currency_eur app_item_price_net}}</td>
    <td>{{#if @root.app_has_reverse_charge}}–{{else}}{{app_vat_percentage}} %{{/if}}</td>
    <td>{{currency_eur app_items_total_sum_net}}</td>
  </tr>
  {{/each}}
  {{#each app_invoice_items_articles}}
  <tr>
    <td>{{app_article.app_article_name}}</td>
    <td>{{app_amount}}</td>
    <td>{{currency_eur app_article.app_net_price}}</td>
    <td>{{#if @root.app_has_reverse_charge}}–{{else}}{{app_article.app_vat_percentage}} %{{/if}}</td>
    <td>{{currency_eur app_items_total_sum_net}}</td>
  </tr>
  {{/each}}
</table>

<table class="summen">
  <tr><td>Nettobetrag</td><td>{{currency_eur app_net_total}}</td></tr>
  {{#if app_has_reverse_charge}}
  <tr><td>Rechnungsbetrag</td><td>{{currency_eur app_gross_total}}</td></tr>
  {{else}}
  {{#if app_has_vat_nineteen}}<tr><td>zzgl. Umsatzsteuer 19 %</td><td>{{currency_eur app_vat_nineteen}}</td></tr>{{/if}}
  {{#if app_has_vat_seven}}<tr><td>zzgl. Umsatzsteuer 7 %</td><td>{{currency_eur app_vat_seven}}</td></tr>{{/if}}
  {{#if app_has_vat_zero}}<tr><td>zzgl. Umsatzsteuer 0 %</td><td>{{currency_eur app_vat_zero}}</td></tr>{{/if}}
  <tr><td>Gesamtbetrag</td><td>{{currency_eur app_gross_total}}</td></tr>
  {{/if}}
</table>

{{#if app_has_reverse_charge}}
<p class="hinweis">
  Steuerschuldnerschaft des Leistungsempfängers (§ 13b UStG).
  {{#if app_recipient.vat_id}}<br>USt-IdNr. des Leistungsempfängers: {{app_recipient.vat_id}}{{/if}}
</p>
{{/if}}

Explanation:

  • @root.app_has_reverse_charge reads the invoice field from inside the line item loop. With reverse charge, a dash is shown instead of the stored VAT rate.
  • In the totals block, the VAT lines are dropped for reverse charge; the invoice amount equals the net amount. Without reverse charge, the existing layout stays unchanged.
  • The note and the recipient's VAT ID only appear with reverse charge.
  • With custom data structures, the field names are adjusted accordingly. All available helpers are described in the Handlebars helper reference.

Notes

  • The tax mode applies to the whole invoice. Invoices that mix line items with and without reverse charge are not supported.
  • Other special VAT cases – such as small businesses (Section 19 UStG), intra-community supplies or exports – are currently not covered by the tax mode.
  • The tax mode is supported by the services Complete e-invoice, Calculate invoice amounts and Map invoice data to ZUGFeRD.