PrestaShop Tutorials

Reverse charge VAT on PrestaShop: applying 0% to eligible EU B2B customers

A German business customer places an order on your French store. If they are registered for VAT in their country and the goods are shipped to Germany, the sale is made tax-free: the buyer will account for VAT at home. This mechanism, the reverse charge, is standard in intra-Community B2B trade.

It rests on cumulative conditions. If a single one is missing, French VAT remains due, and you are the one paying it, plus penalties, several years after the sale.

The four cumulative conditions

  1. The buyer is registered for VAT in another Member State, and acts in that capacity. A German consumer does not fall under this regime, however much they buy.
  2. Their intra-Community VAT number is valid at the time of the transaction, verified against the European VIES database.
  3. The goods physically leave France for another Member State.
  4. You hold proof of that transport.

The last two are the ones that get lost in practice, and they are the ones the tax authorities check.

The domestic delivery trap

A frequent and poorly understood point: what matters is the destination of the goods, not the customer’s nationality.

A Belgian company with a valid VAT number that orders on your site with delivery to Lille remains subject to French VAT. The goods never leave the territory, so the exemption does not apply.

Technically, the consequence is clear: the calculation must never rely on the billing country alone. A store that exempts as soon as a foreign VAT number is entered makes a systematic error on every domestic delivery.

Verifying the number

Since the European measures that took effect in 2020, the validity of the buyer’s number is no longer a formality but a substantive condition of the exemption.

Verification goes through the VIES database, which queries the national administrations. Three precautions.

Keep the proof. Record the verification date, the number tested and the result returned. Without that trace, you cannot demonstrate that the number was valid at the time of sale, even if it was.

Plan for downtime. The VIES service goes down regularly, or returns a partial answer depending on the country. Your flow must handle that case: do not block the order, but do not exempt it either. The order goes through with VAT, to be adjusted later if needed.

Re-verify. A number valid in January may have been withdrawn in June. For a recurring customer, periodic re-verification avoids discovering the problem during an audit.

Intra-Community VAT VIES Validation & B2B Reverse ChargeIntra-community VAT verified, reverse charge automated, audit evidence timestamped.79.00

Proof of transport

This is the condition most often neglected, and the one that costs the most in a reassessment.

European rules provide a presumption of transport when you hold at least two non-contradictory items of evidence, issued by two parties independent of each other and of yourself.

These items fall into two groups. The first covers transport documents in the strict sense: a signed consignment note, a bill of lading, the carrier’s invoice. The second groups supporting evidence: a transport insurance policy, a bank document proving payment for the transport, an acknowledgement of receipt by the buyer, a certificate from a warehouse keeper in the country of arrival.

In practice, for shipments with a standard carrier, the carrier’s invoice and the signed proof of delivery form the easiest pair to assemble. They must be stored and linked to the order, not scattered across a mailbox.

The mandatory invoice statement

An exempt invoice must carry an explicit statement referring to the legal basis of the exemption. The wording used in France: “Exonération de TVA, article 262 ter I du CGI, autoliquidation par le preneur”, meaning VAT exemption with the reverse charge falling on the buyer.

Your intra-Community VAT number and the buyer’s must also appear. An invoice without the customer’s number cannot justify the exemption.

Check your PrestaShop invoice template before opening up this regime: the native template provides neither the exemption statement nor the display of the customer’s VAT number.

Setting it up in PrestaShop

Three elements work together.

A separate customer group for validated European businesses, which drives tax-excluded price display. A tax rule configured to apply a zero rate to the relevant zones, rather than removing the VAT line, which would prevent any accounting follow-up. And a condition on the delivery address, distinct from the billing address, to handle the domestic delivery case correctly.

The point to watch is the order of evaluation: the exemption decision must happen after the delivery address is entered, never before.

Reporting obligations

An exempt sale is not an invisible sale. Two declarations follow from it.

The French recapitulative VAT statement (the equivalent of an EC Sales List), which lists the month’s intra-Community supplies by customer and amount. It is mandatory from the very first transaction.

The statistical survey on trade in goods, which replaced the statistical part of the former goods exchange declaration, and only concerns businesses above certain thresholds or expressly requested to file.

These declarations require extracting data by customer, country and period. Plan that export at setup time, rather than rebuilding it by hand every month.

The Intra-Community VAT VIES Validation and B2B Reverse Charge module covers this whole chain on PrestaShop 8 and 9: VIES number verification with retained proof, exemption conditioned on the delivery address, the regulatory invoice statement and the export of intra-Community transactions.

Keep reading

Related articles