Belastingtarieven en zones instellen

Martijn null

Martijn

5 min lezen , ~4 ~uur om te bouwen

Dit artikel vertelt je hoe je de belastingtarieven in Vendure op de juiste manier kunt instellen voor verkoop binnen en buiten de EU.

Belastingtarieven en zones instellen

Nu je technische installatie compleet is, is het tijd om je shop te configureren voor real-world gebruik. Dit artikel behandelt de best practices met betrekking tot belastingen, die wij gebruiken bij Pinelab.studio. De voorbeelden in dit artikel zijn voornamelijk voor webwinkels in Europa, maar het geeft je ook een goed inzicht in hoe je de flexibele belastingtarieven en -zones van Vendure voor jouw regio kunt gebruiken.

Landen instellen in Vendure

Als het goed is, heeft je Vendure instance al landen ingesteld. Zo niet, dan kun je Vendure's populate utility en deze lijst met landen gebruiken om de landen in Vendure in te vullen.

Je storefront moet de GraphQL query availableCountries gebruiken om de landen weer te geven die beschikbaar zijn voor je klanten. Als je niet aan alle landen goederen of diensten levert, kun je de landen die je niet toestaat uitschakelen. (Het is gemakkelijker om ze allemaal te importeren en uit te schakelen, zodat je ze later gemakkelijk kunt inschakelen)

Belastingcategorieën aanmaken

In de meeste gevallen wil je de belastingcategorieën Nul, Verlaagd en Standaard aanmaken. Sommige landen, zoals België of Frankrijk, hebben ook een Verder Verlaagd belastingcategorie. Je kunt deze categorieën maken via de Vendure Admin UI: Instellingen > Belastingcategorieën.

Voorbeeld 1: Je blijft onder de drempel van €10.000 in verkoop aan andere EU-landen

Ons eerste voorbeeld maakt gebruik van de EU-regelgeving: Je bent gevestigd in Nederland en verkoopt aan andere EU-landen, maar de totale omzet naar andere EU-landen blijft onder de €10.000. Hetzelfde geldt voor andere landen van de Europese Unie.

In dit geval moet je nog steeds de Nederlandse belastingtarieven toepassen, 21% of 9%, wanneer je levert aan andere landen in de Europese Unie.

Voor deze opzet moet je het volgende doen:

  1. Maak zone EU aan en voeg alle landen in de EU-regio toe.
  2. Maak zone Other aan, met alle andere landen erin.
  3. Maak belastingtarief EU Verlaagd, voor zone EU, belastingcategorie Verlaagd en tarief 9%.
  4. Maak belastingtarief EU Standaard, voor zone EU, belastingcategorie Standaard en tarief 21%.
  5. Creëer belastingtarief EU Nul, voor zone EU, belastingcategorie Standaard en tarief 0%.
  6. Voor zone Other maak je de tarieven Other Zero, Other reduced en Other standard, maar allemaal met een tarief van 0%.

Configureer de AddressBasedTaxZoneStrategy, zodat belastingen worden berekend op basis van het land van de bestelling.

Voorbeeld 2: Je verkoopt aan andere EU-landen voor meer dan €10.000 per jaar

Als je in Nederland gevestigd bent, maar verwacht dat je totale omzet naar andere EU-landen de drempel van €10.000 overschrijdt, moet je de btw-tarieven van het land van verzending van je klant in rekening brengen. Als je bijvoorbeeld goederen naar een Duitse klant verzendt, moet je 19% btw in rekening brengen in plaats van de Nederlandse 21%.

  1. Maak een zone aan voor elk land binnen de EU. Maak bijvoorbeeld de zone BE aan, die alleen het land België als lid heeft.
  2. Maak belastingtarieven voor elk land, voor elk belastingtarief. Bijvoorbeeld BE Standaard en BE Verlaagd, met tarieven 21% en 6%.
  3. Maak een andere zone Overig voor alle landen buiten de EU.
  4. Voor zone Other kun je de tarieven Other reduced en Other standard maken, maar beide zullen een tarief van 0% hebben.

Je moet opnieuw de AddressBasedTaxZoneStrategy gebruiken om Vendure de juiste zones te laten gebruiken.

Je kunt op internet zoeken naar "EU VAT One Stop Shop" voor meer informatie over deze belastingregels.

Voorbeeld 3: BTW verleggen bij verkoop aan andere bedrijven (B2B)

Voor verkoop tussen bedrijven moet je de BTW verleggen. Dit betekent dat de verantwoordelijkheid voor de belastingregistratie bij de ontvangende partij ligt.

Je moet een geldig BTW-nummer van de klant hebben en dat BTW-nummer moet ook worden weergegeven op de factuur die je naar de klant stuurt.

  1. Maak een zone EU Reverse Tax Charge aan, die alle EU-landen bevat.
  2. Maak de tarieven Nul, Verlaagd en Standaard voor deze zone. Alle tarieven zijn 0%.
  3. Implementeer je eigen TaxZoneStrategy die de zone instelt op EU Reverse Tax Charge, als de bestelling een geldige BTW-ID heeft en wordt geplaatst in een land binnen de EU.

Verzendmethode belasting

In Nederland worden verzendkosten belast tegen hetzelfde btw-tarief als de goederen in de bestelling, en als er meerdere btw-tarieven van toepassing zijn, moet de belasting op de verzending naar rato worden berekend op basis van de waarde van de artikelen tegen elk tarief.

Voorbeeld: Als een bestelling €100 aan 21% btw-goederen bevat en €50 aan 9% btw-goederen, en de verzendkosten bedragen €15, dan wordt €10 van de verzendkosten belast met 21% en €5 met 9%. De totale btw op de verzendkosten is dan €2,10 (21% van €10) + €0,45 (9% van €5) = €2,55.

Je kunt je eigen ShippingCalculator implementeren om deze berekening uit te voeren.

Alternatieve optie: Prijzen incl. belasting hetzelfde houden voor alle klanten, ongeacht land

Het bovenstaande voorbeeld implementeert lokale belastingtarieven voor klanten, maar houdt de prijzen exclusief belasting voor iedereen gelijk. Dit betekent dat de prijs inclusief belasting per land verschilt. Bijvoorbeeld:

  1. Een product kost €121,- inclusief 21% belasting in Nederland. De prijs exclusief belasting is dus €100,-.
  2. Een klant selecteert Duitsland in de kassa. Het belastingtarief dat wordt gebruikt op de bestelling is nu 19%.
  3. Vendure berekent de nieuwe prijs inclusief btw voor dit product in Duitsland. Dit wordt €119, want €100 ex. belasting, plus €19 BTW.

Als je wilt dat de prijs altijd €121 is, ongeacht het toegepaste belastingtarief, kun je de volgende ProductVariantPriceCalculationStrategy implementeren:

import {
  PriceCalculationResult,
  ProductVariantPriceCalculationArgs,
  ProductVariantPriceCalculationStrategy,
} from "@vendure/core";

/**
 * Zorg ervoor dat de brutoprijs hetzelfde is voor alle klanten, ongeacht hun land.
 *
 * @example
 * Een product is €121 inclusief 21% btw in Nederland
 * Hetzelfde product is ook €121 inclusief 19% btw in Duitsland. Dit betekent dat de nettoprijs €101,68 is.
 */
export class SameGrossPriceForEveryoneCalculationStrategy
  implements ProductVariantPriceCalculationStrategy
{
  async calculate(
    args: ProductVariantPriceCalculationArgs,
  ): Promise<PriceCalculationResult> {
    const { inputPrice, ctx } = args;
    return {
      price: inputPrice,
      priceIncludesTax: ctx.channel.pricesIncludeTax,
    };
  }
}

Dit waren enkele voorbeelden van hoe je belastingtarieven en zones kunt instellen in Vendure. Heb je hulp nodig of wil je meer weten? Neem contact met ons op!