BTW binnen en buiten de EU in Magento instellen

Sinds Magento 1.7 is er een krachtige BTW berekeningsfunctie toegevoegd. Het is nu mogelijk om Magento automatisch te laten bepalen of een klant wel of geen BTW moet betalen op basis van het land van herkomst in combinatie met een controle op het BTW nummer van de klant.

Hoe zit het nu eigenlijk met BTW?

  1. Particulieren en bedrijven binnen Nederland moeten BTW betalen.
  2. Particulieren buiten Nederland, maar binnen de EU moeten BTW betalen.
  3. Bedrijven buiten Nederland, maar binnen de EU hoeven geen BTW te betalen.
  4. Particulieren en bedrijven buiten de EU hoeven geen BTW te betalen.

Zo configureer je BTW in Magento zodat er rekening wordt gehouden met EU en non-EU customers:

Stel de Product Tax Classes in.

  1. Ga naar Sales->Tax->Product Tax Classes.
  2. Maak de volgende tax classes aan:
    • Hoog
    • Laag
    • Geen

Stel de Customer Tax Classes in.

  1. Ga naar Sales->Tax->Customer Tax Classes.
  2. Maak de volgende tax classes aan:
    • BTW plichtig
    • Niet BTW plichtig

Importeer de Tax Rates.

Om het makkelijk te maken heb ik een tax rates bestand gemaakt dat je kunt importeren.

  1. Ga naar Sales->Tax->Import / Export Tax Rates.
  2. Importeer dit bestand: taxrates.csv (Let op dat je je Magento backend op engelstalig hebt staan, anders werkt dit bestand niet)

Controleer of de Tax Rates goed zijn geimporteerd.

  1. Ga naar Sales->Tax->Manage Tax Rates.
  2. Controleer of de Tax Rates goed zijn geimporteerd.

Configureer de Tax Rules.

  1. Ga naar Sales->Tax->Manage Tax Rules.
  2. Koppel de Customer Tax Classes, Product Tax Classes en Tax Rates als volgt:

Configureer de controle op BTW binnen en buiten de EU.

De BTW regels zijn nu ingesteld. Je kan bij ieder product nu aangeven of het valt binnen de Hoog, Laag of Geen BTW klasse. Het automatisch bepalen of een klant wel of geen BTW moet betalen op basis van het land van bestelling in combinatie met het BTW nummer van de klant werkt nu nog niet. Daarvoor moeten nog een paar stappen meer worden ondernomen:

Configureer de Customer Groups.

  1. Ga naar Customers->Customer Groups.
  2. Maak de volgende customer groups aan:
    • BTW plichtig gekoppeld aan Tax Class BTW plichtig
    • Niet BTW plichtig gekoppeld aan Tax Class Niet BTW plichtig

Configureer de BTW controle op basis van land van herkomst en BTW nummer.

  1. Ga naar System->Configuration->Customer Configuration->Create New Account Options.
  2. Stel de waardes als volgt in:
    • Enable Automatic Assignment to Customer Group: Yes
    • Tax Calculation Based On: Billing Address
    • Default Group: BTW plichtig
    • Group for Valid VAT ID – Domestic: BTW plichtig
    • Group for Valid VAT ID – Intra-Union: Niet BTW plichtig
    • Group for Invalid VAT ID: BTW plichtig
    • Validation Error Group: BTW plichtig
    • Validate on Each Transaction: Yes, als je de BTW controle steeds opnieuw wilt laten uitvoeren / No, als je de BTW controle alleen wilt laten uitvoeren bij het ingeven van adresgegevens in het klantendashboard
    • Default Value for Disable Automatic Group Changes Based on VAT ID: No
    • Show VAT Number on Frontend: Yes
    • De rest van de waardes kan naar eigen inzicht worden ingesteld en heeft geen invloed op de BTW controle.
    • Check je Shipping Settings

    • De laatste stap die je nog moet zetten is dat je moet aangeven dat jij als merchant vanuit Nederland je pakketten verstuurd. Ga naar System->Configuration->Sales->Shipping Settings en kies voor Nederland als Land van herkomst.

Done!

Als een klant zich registreert en een geldig BTW nummer invoert voor zijn land, wordt dit BTW nummer automatisch gecontroleerd en wordt de klant op basis van deze controle aan de groep “BTW plichtig” of “niet BTW plichtig” toegevoegd. Als de klant ingelogd is en een bestelling doet, dan zal Magento automatisch bepalen of de klant wel of geen BTW moet afdragen en daarmee rekening houden in de cart en de checkout procedure.

Een BTW nummer waarmee dit te testen is, is het BTW nummer van Belgacom: 0202239951. Maak een nieuwe klant aan met als land van herkomst België en vul het BTW nummer 0202239951 in. Je zult zien dat er voor deze klant geen BTW in rekening wordt gebracht.

Let op!

In Magento zitten twee problemen:

  1. Magento houdt er standaard geen rekening mee dat je klant vaak zijn landcode voor het BTW nummer zet. Daardoor worden BTW nummers door Magento nog wel eens als ongeldig aangemerkt, terwijl dit toch echt goed is ingevoerd door de klant.
  2. Ben je een bedrijf binnen de EU, dan hoeven klanten buiten de EU geen BTW te betalen, maar in Magento moeten klanten dat wel. Dat is niet juist! 

Ik heb een module Webshops4All_ValidateEUVat ontwikkeld om beide problemen op te lossen zodat je nu makkelijk over de hele wereld je producten kan verkopen. Deze kan je hier downloaden.

Als je deze informatie nuttig vindt, zou ik een kort bedankje hieronder op prijs stellen. Wil je deze informatie voor je eigen artikel gebruiken, plaats dan een link naar dit bericht in plaats van het te kopiëren.

Deel dit met anderen

Ed de Tollenaer

46 Responses

    • Ed de Tollenaer

      Als je een Belgisch BTW nummer invoert als klant, wordt deze dan goedgekeurd?
      Zo ja, dan zou je een bestelling zonder BTW moeten kunnen doen.
      Je kan ook een land buiten de eu kiezen (bijvoorbeeld de USA). Dan zou er ook geen BTW berekend moeten worden.
      Welke versie van Magento heb je?

      • Bram

        Hoi Ed, ik heb de settings exact overgenomen, echter wordt er bij een bestelling naar een niet-EU land toch BTW in rekening gebracht… het betreft een bestelling van een particulier.

  • Kim Nauwelaers

    Ik heb alles netjes ingegeven in Magento 1.8 en bij Nederlandse klanten met BTW nummer blijft hij BTW aanrekenen. Na de bestelling en je klikt door, ga verder met winkelen, dan geeft hij steeds de melding dat het geen geldig BTW nummer is. Het is een bestaand Nederlands BTW nummer dat ik al ik verschillende formats heb ingegeven. Nog even meegeven dat wij een Belgisch bedrijf zijn.

    Alvast bedankt voor uw hulp

  • Rob

    Wat een ontzettend goede tutorial is dit, heel erg bedankt!

    Uren van proberen op testservers met al het gedoe van continue backups maken en terugzetten, gingen vooraf aan het googlen op de Nederlandse omschrijving van deze oplossing. Eigenlijk nooit gedacht dat er een goed antwoord bij zou zitten maar op deze website dus toch gevonden.

    Elke stap was goed beschreven en vooral het .csv bestand heeft ontzettend veel tijd bespaard. Ik had het bijna opgegeven om het zelf uit te voeren en het uitbesteed aan een freelancer. Blij dat het toch zelf is gelukt, ik begrijp nu namelijk ook zelf hoe het Tax systeem van Magento in elkaar steekt.

    Deze site is inmiddels al toegevoegd aan m’n bookmarks.

    Bedankt,

    Rob

  • Mike Verdugt

    Hallo,
    Alle stappen netjes doorlopen, land op Belgie gezet etc. Klopt allemaal, alleen in de checkout verschijnen nu 2 vakken.
    1 VAT Number en de 2de met BTW nummer. Enig idee ?

    Groetjes, Mike

  • Ton

    Een opmerking. Je kan maar een TAX aan een product koppelen – “De BTW regels zijn nu ingesteld. Je kan bij ieder product nu aangeven of het valt binnen de Hoog, Laag of Geen BTW – Klasse” Moet je bij dit voorbeeld dan 3 producten maken?.

  • Mike Verdugt

    Goede handleiding en werkt zoals aangegeven.
    Je moet wel oppassen bij bestaande setting dat je het voorbeeld niet toevoegd zoals ze hier gedaan hadden, want dan wordt het een hoop werk.
    In ieder geval wordt de klant met BTW toegewezen aan de juiste groep.
    Wij werken ook met resellers dus moet je een paar klantengroepen extra aanmaken en de reseller een account laten aanmaken (of zelf doen) en de reseller aan de juiste klantengroep toewijzen en niet in de default groep laten staan.
    Op deze manier krijgen de resellers de prijzen (staffel) en exclusief BTW te zien en bij de afrekening afhankelijk van land met of zonder BTW.
    Thanks voor de handleiding.
    Have fun, Mike
    Amerone bvba
    Mike

  • rutger

    Als ik naar deze stap ga

    Configureer de Customer Groups.

    Ga naar Customers->Customer Groups.
    Maak de volgende customer groups aan:
    BTW plichtig gekoppeld aan Tax Class BTW plichtig
    Niet BTW plichtig gekoppeld aan Tax Class Niet BTW plichtig

    Dan zie ik niet de class btw plichtig of niet btw plichtig

  • Ben

    Moet de tax-rule: Laag: niet de customer group: niet BTW plichtig hebben ipv BTW plichtig?

  • Marco

    Hallo,

    Bedankt voor de prima uitleg. Ik heb 1 vraagje. Ik verkoop,zowel binnen als buiten de EU. BTW wordt overal goed berekend. Echter wanneer een klant buiten EU koopt wordt deze klant toch toegevoegd aan de groep BTW Plichtig. BTW wordt echter niet berekend dat is dus prima maar zou deze klant niet in de groep Niet BTW Plichtig moeten worden gezet.

    Marco

  • René

    Hartelijk dank voor al je tips. Heb je regels precies opgevolgd. Echter om een onduidelijke reden blijft het systeem rekenen met een tarief van 17.36%. Geen idee waar die dit vandaan haalt.

  • Menno

    Mooie en nuttige handleiding. Werkt op zich goed. Ik kreeg overigens wel het verzoek van klanten uit Zwitserland of ze zonder BTW mogen kopen. Dit omdat de BTW voor invoer daar ‘slechts’ 5% is. In de table rates bij dit artikel staat de BTW op 21%.

    Wat ik nog zoek is dat ik klanten automatisch kan toewijzen aan een klantengroep op basis van het verzendadres. Ik krijg bijvoorbeeld bestellingen van klanten uit de VS. Deze mensen hoeven op basis van de instellingen geen BTW te betalen. Tot zo ver gaat het goed. Een aantal artikelen in min shop hebben echter een minimum suggested retailprijs. Voor Europese klanten proberen wij de BTW ‘pijn’ te verzachten door genoegen te nemen met een lagere marge. Dit heeft echter tot gevolg dat klanten van buiten de EU een prijs betalen die ver onder de msrp van de fabrikant ligt. Deze klanten wil ik dus toewijzen aan de klantengroep ‘niet BTW plichtig’. In Magento kun je dan voor deze klantengroep aparte prijzen instellen. Klanten die echter als gast bestellen worden niet automatisch aan een groep toegekend en krijgen dus de te lage prijs te zien.

    Ik heb van Amasty een module aangeschaft waarmee het mogelijk is om verzendopties toe te kennen aan customer groups. Nu moet ik echter nog een manier vinden om klanten na registratie met een buitenlands verzendadres automatisch aan een klantengroep toe te kennen.

    bedankt. Groet, Menno

  • Elco Jacobs

    De uitleg is uitstekend, maar de CSV file klopt niet. De BTW tarieven zijn niet correct.
    Er staan een hoop landen in onder het 21% tarief die geen lid zijn van de EU.

    Er zijn maar 28 EU landen en het lijstje bevat 48 landen.

  • Elco Jacobs

    Deze lijst bevat alleen de EU-landen voor 21 en 0%.

    “Code”,”Country”,”State”,”Zip/Post Code”,”Rate”,”Zip/Post is Range”,”Range From”,”Range To”,”default”
    BE,BE,*,,21,,,,VAT,
    BG,BG,*,,21,,,,VAT,
    CZ,CZ,*,,21,,,,VAT,
    DK,DK,*,,21,,,,VAT,
    DE,DE,*,,21,,,,VAT,
    EE,EE,*,,21,,,,VAT,
    IE,IE,*,,21,,,,VAT,
    EL,EL,*,,21,,,,VAT,
    ES,ES,*,,21,,,,VAT,
    FR,FR,*,,21,,,,VAT,
    HR,HR,*,,21,,,,VAT,
    IT,IT,*,,21,,,,VAT,
    CY,CY,*,,21,,,,VAT,
    LV,LV,*,,21,,,,VAT,
    LT,LT,*,,21,,,,VAT,
    LU,LU,*,,21,,,,VAT,
    HU,HU,*,,21,,,,VAT,
    MT,MT,*,,21,,,,VAT,
    NL,NL,*,,21,,,,VAT,
    AT,AT,*,,21,,,,VAT,
    PL,PL,*,,21,,,,VAT,
    PT,PT,*,,21,,,,VAT,
    RO,RO,*,,21,,,,VAT,
    SI,SI,*,,21,,,,VAT,
    SK,SK,*,,21,,,,VAT,
    FI,FI,*,,21,,,,VAT,
    SE,SE,*,,21,,,,VAT,
    UK,UK,*,,21,,,,VAT,
    BE,BE,*,,0,,,,VAT,
    BG,BG,*,,0,,,,VAT,
    CZ,CZ,*,,0,,,,VAT,
    DK,DK,*,,0,,,,VAT,
    DE,DE,*,,0,,,,VAT,
    EE,EE,*,,0,,,,VAT,
    IE,IE,*,,0,,,,VAT,
    EL,EL,*,,0,,,,VAT,
    ES,ES,*,,0,,,,VAT,
    FR,FR,*,,0,,,,VAT,
    HR,HR,*,,0,,,,VAT,
    IT,IT,*,,0,,,,VAT,
    CY,CY,*,,0,,,,VAT,
    LV,LV,*,,0,,,,VAT,
    LT,LT,*,,0,,,,VAT,
    LU,LU,*,,0,,,,VAT,
    HU,HU,*,,0,,,,VAT,
    MT,MT,*,,0,,,,VAT,
    NL,NL,*,,0,,,,VAT,
    AT,AT,*,,0,,,,VAT,
    PL,PL,*,,0,,,,VAT,
    PT,PT,*,,0,,,,VAT,
    RO,RO,*,,0,,,,VAT,
    SI,SI,*,,0,,,,VAT,
    SK,SK,*,,0,,,,VAT,
    FI,FI,*,,0,,,,VAT,
    SE,SE,*,,0,,,,VAT,
    UK,UK,*,,0,,,,VAT,

  • Jeffrey

    In the the screen grab from Manage Tax Rules. Doesn’t “Geen”, have to be on “Niet BTW Plichtig, instead of how it now stands on “BTW Plichtig”?

  • Jeffrey

    And also Thank you Ed for the effort you have made in doing this step by step explanation. You Have saved me days of work, maybe even weeks of headache.

  • Mike

    Beste Ed,
    Is dit nog steeds de beste methode om onderscheid te maken tussen EU en niet-EU en bedrijven en particulieren? Of zijn er inmiddels nog slimmere oplossingen? Ik werk met Magento 1.9.0. In jouw csv-bestand staan zo’n 47 landen. Dat betekent dat er nog 199 landen niet genoemd worden. Moet je die zelf toevoegen als je met een ontbrekend land zaken wilt doen?
    Verder is het een heel duidelijk verhaal. Ik ben nu bezig met het aanpassen van het csv-bestand. Een behoorlijke klus. Dus vandaar toch even deze vragen.

    Met vriendelijke groet,
    Mike

    • Ed de Tollenaer

      Het artikel dat u aanhaalt gaat over digitale diensten en niet ver het leven van producten. Voor het leveren van producten is bovenstaande aanpak nog steeds de juiste.

      Als u software levert via een virtual product aan mensen buiten Nederland, maar binnen de EU hoeft u daar geen btw over te heffen. Dit zou u kunnen oplossen door een catalog pricerule of een shopping cart pricerule toe te voegen die voor klanten buiten nederland en binnen de EU de BTW weer aftrekt van het betreffende product. Ik zal hier binnenkort een stuk over schrijven.

  • Tom van Leeuwen

    Bedankt voor de uitgebreide beschrijving. Werkte prima voor mij maar na de laatste upgrade (1.9.2.1.) wordt de groep altijd op btw plichtig gezet. Verschillende juiste btw nummers getest. Zelf als ik de groep handmatig in de admin op “niet btw plichtig” zet springt deze weer terug naar “btw plichtig”. Weet iemand hoe dit kan?

  • Mika

    Bedankt voor de helderen uitleg!
    Ik heb nog twee vragen:
    1. zover ik het heb begrepen (o.a. via de rekenhulp van de belastingdienst: http://www.belastingdienst.nl/rekenhulpen/leveren_van_goederen_naar_het_buitenland) is het afleveradres bepalend voor de vraag of er al dan niet BTW in rekening gebracht moet worden. In de uitleg staat onder het kopje “Configureer de BTW controle…” echter het volgende: “Tax Calculation Based On: Billing Address”. Er wordt hier dus uitgegaan van het factuuradres. Zou deze instelling niet gewijzigd moeten worden naar “Tax Calculation Based On: Shipping Address”?
    2. in het overzicht “Hoe zit het nu eigenlijk met BTW” bovenaan dit artikel, wordt gesteld dat er voor verkopen aan zowel praticulieren als bedrijven buiten de EU geen BTW in rekening gebracht moet worden. Dat maak ik ook op uit de uitleg van de belastingdienst mits het vervoer van de goederen naar een afleveradres buiten de EU aantoonbaar is. Mij is echter niet duidelijk hoe dit volgt uit de instellingen die hierboven beschreven zijn. Voor zover ik het kon testen, wordt er voor alle landen buiten de EU (die in het bestand taxrates.csv gespecificeerd zijn) 21% btw in rekening gebracht. Of heb ik dit niet goed begrepen? Zou je dat misschien willen uitleggen?

    • Ed de Tollenaer

      Dat laatste klopt. Dat is een fout in Magento en daar ben ik een module voor aan het schrijven.

  • Mika

    Wellicht is nog een handig toevoeging dat er voor bestaande klanten die tot een andere group behoren in de klantconfiguratie (Customers > Account Information > Group) een vinkje ingeschakeld kan worden waardoor “Automatic Group Change Based on VAT ID” voor deze klant uitgeschakeld kan worden. Wij hebben dit bijvoorbeeld gebruikt voor bestaande klanten die tot een bepaalde “discount-group” behoren. Misschien lost dit ook het probleem van Tom van Leeuwen op?

  • Han Delissen

    Dag Ed,
    Een heldere uitleg. Bedankt.
    Waar ik tegenaan loop; als ik jouw taxrates.cvs importeer krijg ik de melding: ‘Poging ongeldig bestandsformaat te uploaden’
    Heb mijn taxrates geëxporteerd en vergeleken. Jouw bestand qua benaming aangepast naar mijn geëxporteerde versie.
    Geen succes, zelfde melding.
    Ook nog even in Open Office geopend en bewaard, geen succes.
    Suggesties??
    Alvast bedankt.
    Han

  • Han Delissen

    Ha Ed,
    Iets te snel gevraagd. Na enig puzzelen met de taalinstelling van Magento accepteerde hij wel de import.
    Nu maar eens testen.

    Nogmaals bedankt.
    Han

  • Jan

    Hi,
    Wij verplichten mensen niet om in te loggen op de site. Hoe gaan we dan om met dat soort bedrijven die geen BTW hoeven en NIET ingelogged zijn

  • Bart Vandebeek

    Dag Ed,

    Bedankt voor je fijn neergeschreven uitleg.. Ik heb de ontwikkeling van een bestaande magento store overgenomen voor een klant en jouw tutorial toegepast. Deze klant had echter al klanten in zijn shop onder verschillende groepen (general, wholesale EU, wholesale België, …).. Mijn test-account stond onder general maar wanneer ik deze nu onder BTW plichtig plaats dan krijg ik bij producten geen ‘add-to-cart’ button meer te zien. Wat doe ik verkeerd of heb ik iets gemist?

  • Jan

    Mooie tutorial maar bij ons in versie 1.9.2 krijgen we t niet goed werkend. Via account dan adresboek en daar btw nummer invoeren gaat t goed en vindt er btw check plaats en assignment aan juiste klantengroep. Zodra een klant in checkout zn btw nr invuld vindt er geen controle plaats en geen klantengroep assignment. Zou graag even persoonlijk contact hebben voor advies.

  • Marco

    Hallo Ik heb een webshop gebaseerd op Magento. De BTW module werkt goed sinds een maand of twee. Echter heb ik geen goede koppeling met mijn boekhoudprogramma Asperion omdat die niet standaard bestaat. Daarom doen wij de boekhouding en dus BTW op basis van de omzet. Echter sinds twee maanden is dit dus niet correct en draag ik teveel BTW af. Hoe kan ik simpel per maand een overzicht maken met alle 0% BTW facturen zodat ik dit goed kan verwerken? Of goede koppeling met Asperion??

Geef uw reactie