Peppol validation for VAT exemption

I’m attempting my first Peppol invoice submission. Peppol and Peppyrus appear to be correctly configured, but I’m encountering validation errors during the sending process.

Fatal Validation Errors:

  • [BR-CO-15] Invoice total amount with VAT (BT-112) must equal Invoice total amount without VAT (BT-110) + Invoice total VAT amount (BT-110).
  • [BR-CO-18] An invoice must include at least one VAT breakdown group (BG-23).
  • [BR-CO-04] Each invoice line (BG-25) must specify an Invoiced Item VAT Category Code (BT-151).
  • [UBL-SR-48] Invoice lines must have exactly one classified tax category.
  • [PEPPOL-EN16931-R053] Only one tax total with tax subtotals is allowed.

The company is a non-profit professional training organization (ASBL) in Belgium. Our services are VAT-exempt under Article 44. However, tryton does not seem to support this exemption scenario in the VAT configuration options.

How can I correctly configure the invoice to reflect VAT exemption under Article 44 in Belgium? Are there specific settings or codes I should use to ensure compliance with Peppol validation rules?

Thanks for your help

Peppol requires that you always have a VAT tax even if the VAT amount is 0.

You may look at Add UNECE code to Belgian taxes (!2872) · Merge requests · Tryton / Tryton · GitLab which adds a 0% VAT for selling services (but you have to check if your case the UNECE category code is well Z).

Thanks for your answer.
It seems the code in my case should be E (exempted).

Would it be advisable to simply manually add this tax to the list based on your merge request, as shown below?

<record model="account.tax.template" id="tva_vente_services_exempted">
    <field name="name" lang="fr">T.V.A. Vente de services 0% (Art44)</field>
    <field name="name" lang="nl">BTW 0% Verkoop van diensten (Art44)</field>
    <field name="description">T.V.A. 0% exempted</field>
    <field name="group" ref="group_tva_vente_services"/>
    <field name="rate" eval="Decimal('0')"/>
    <field name="type">percentage</field>
    <field name="invoice_account" ref="451"/>
    <field name="credit_note_account" ref="451"/>
    <field name="account" ref="root"/>
    <field name="unece_code" depends="edocument_unece">VAT</field>
    <field name="unece_category_code" depends="edocument_unece">E</field>
</record>

Alternatively, should I update the Docker image I’m using to include your merge request?

Are there any risks or best practices I should consider when choosing between these approaches?

Here is my actual list:

We do not plan to add such taxes in standard because it is not an obligation for bodies without VAT requirement to use Peppol.
So we let users makes their own setup.
And it is one of the goal of Tryton to let users customize the accounting to match their use case.

I would not see any benefit and on contrario you will have to manage this patch for ever.

1 Like