Page 1 of 6 123 ... LastLast
Results 1 to 10 of 59
  1. #1
    Join Date
    Apr 2012
    Location
    South Africa
    Posts
    9
    Plugin Contributions
    0

    Default Digital Seller? New 2015 EU Digital VAT Affects You

    I'm not a boffin on ZenCart but have managed to use it for 2 years now for my small online digital shop. I see that there is now a new EU policy to be put into place on 1 January 2015, where all DIGITAL goods being sold online to EU (incl. UK) must now be taxed at the relevant customer's country's VAT rate, and VAT must be paid over to that country. This will mean registering at every country for VAT, or through a holding place called MOSS.

    "If you are a business making B2C digital service supplies to EU consumers and are not registered for VAT (because you are under the VAT threshold), you need to take action now as you will need to register for VAT. Under the new rules, you potentially have to register for VAT in every EU MS where you supply consumers with digital services. By opting to use VAT MOSS, you will not have to do this but will be able to make VAT declarations and payments, in respect of all of your EU supplies of digital services, to a single elected Member State on a calendar quarterly return."

    My question is, can ZC detect the country of the customer and apply that specific VAT rate to the checkout cart? Then I would also need the reporting format to indicate that somehow?

    Some guidance on the new VAT directive is here .... http://timeli.info/item/1673030/Forb...d_Services___F

    [From an old lady who is tired of all these bureaucrats looking for more money from ordinary citizens]

  2. #2
    Join Date
    Aug 2005
    Location
    Vic, Oz
    Posts
    1,850
    Plugin Contributions
    5

    Default Re: New EU digital VAT

    Quote Originally Posted by compugen View Post
    My question is, can ZC detect the country of the customer and apply that specific VAT rate to the checkout cart? Then I would also need the reporting format to indicate that somehow?
    Yes, No and Maybe!

    MaxMind can reasonably accurately find the country from the IP address of the customer
    However that probably won't always be relevant

    We find a lot of customers order using work computers of big multi nationals so they may be in Australia but it shows the IP address as the US as they are part of a big network.

    It is probably more relevent to use delivery address in calculating the VAT
    NOT where the customer is when they order it.

  3. #3
    Join Date
    Dec 2009
    Location
    Amersfoort, The Netherlands
    Posts
    2,285
    Plugin Contributions
    20

    Default Re: New EU digital VAT

    VAT is standard applied to the shipping country of a customer, you will need to set up different zones. I normally have a zone for my own country (the Netherlands), a zone for EU countries an a zone for all other countries. Each zone has its own VAT and Zen Cart will apply it accordingly.

  4. #4
    Join Date
    May 2014
    Location
    United Kingdom
    Posts
    44
    Plugin Contributions
    0

    Default Re: New EU digital VAT

    I'm in touch with some very small businesses who are using Zencart to sell digital downloads, worried that they will have to cease trading or move storefront due to the complexity of the new EU VAT rules (and a lot have only just found out, with a few weeks to go).

    To be able to use the new MOSS system, you need to be registered for VAT already and most digital sellers do not meet that threshold, by a long way! So, if they do not want to register for VAT and all the extra cost and hassle that brings, they can simply block EU countries from being able to shop (not ideal but at least it's do-able, at least in the short-term).

    If a digi seller does decide to voluntarily register for VAT, they can apply the VAT at each EU rate by setting up zones...does anyone know of any tutorials on this, and whether there are/will likely be any mods/updates to zencart that will auto update on any changes in rates across EU zones.

    Also, does PayPal apply it's fees to the total, including VAT?

    Thanks in advance, apologies if this is covered elsewhere, I did search first

  5. #5
    Join Date
    Jan 2004
    Posts
    64,748
    Blog Entries
    6
    Plugin Contributions
    214

    Default Re: New EU digital VAT

    Quote Originally Posted by enlightened View Post
    Also, does PayPal apply it's fees to the total, including VAT?
    PayPal, like any payment processor, assesses their fees on the total amount of the transaction, regardless of whether there is any tax component in the transaction.
    .

    Zen Cart - putting the dream of business ownership within reach of anyone!
    Donate to: DrByte directly or to the Zen Cart team as a whole

    Remember: Any code suggestions you see here are merely suggestions. You assume full responsibility for your use of any such suggestions, including any impact ANY alterations you make to your site may have on your PCI compliance.
    Furthermore, any advice you see here about PCI matters is merely an opinion, and should not be relied upon as "official". Official PCI information should be obtained from the PCI Security Council directly or from one of their authorized Assessors.

  6. #6
    Join Date
    Dec 2009
    Location
    Amersfoort, The Netherlands
    Posts
    2,285
    Plugin Contributions
    20

    Default Re: New EU digital VAT

    Sorry, didn't make it last night, went to bed early for a change.

    This is the sql I use for my Dutch customers. I is the most basic set-up. but easy to expand.
    There are three zones definitions
    • the first is for the country the shop is located in
    • the second for all countries in the EU (except your own)
    • the third for the rest of the world


    In this basic there is one Tax class

    For each zone definition you need a tax rate (in the Netherlands it is):

    • 21% for the Netherlands
    • 21% for all EU countries
    • 0% for the rest of the world


    If you are also selling to companies with a valid VAT number inside the EU you can use this old addon. (I will post an updated version for 1.5.x later this week)
    It will set the VAT for companies inside the EU to Zero when a valid tax number is used during registration.
    Code:
    --
    -- Table structure for table `geo_zones`
    --
    
    DROP TABLE IF EXISTS `geo_zones`;
    CREATE TABLE IF NOT EXISTS `geo_zones` (
    `geo_zone_id` int(11) NOT NULL,
      `geo_zone_name` varchar(32) NOT NULL DEFAULT '',
      `geo_zone_description` varchar(255) NOT NULL DEFAULT '',
      `last_modified` datetime DEFAULT NULL,
      `date_added` datetime NOT NULL DEFAULT '0001-01-01 00:00:00'
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    --
    -- Dumping data for table `geo_zones`
    --
    
    INSERT INTO `geo_zones` (`geo_zone_id`, `geo_zone_name`, `geo_zone_description`)
    VALUES
    (1, 'Nederland', 'Nederlandse btw'),
    (2, 'Alle landen binnen de EU', 'Intracommunicataire landen'),
    (3, 'Alle landen buiten EU', 'De rest van de wereld');
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `tax_class`
    --
    
    DROP TABLE IF EXISTS `tax_class`;
    CREATE TABLE IF NOT EXISTS `tax_class` (
    `tax_class_id` int(11) NOT NULL,
      `tax_class_title` varchar(32) NOT NULL DEFAULT '',
      `tax_class_description` varchar(255) NOT NULL DEFAULT '',
      `last_modified` datetime DEFAULT NULL,
      `date_added` datetime NOT NULL DEFAULT '0001-01-01 00:00:00'
    ) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
    
    --
    -- Dumping data for table `tax_class`
    --
    
    INSERT INTO `tax_class` (`tax_class_id`, `tax_class_title`, `tax_class_description`)
    VALUES
    (1, 'BTW Tarief hoog', 'BTW Tarief hoog');
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `tax_rates`
    --
    
    DROP TABLE IF EXISTS `tax_rates`;
    CREATE TABLE IF NOT EXISTS `tax_rates` (
    `tax_rates_id` int(11) NOT NULL,
      `tax_zone_id` int(11) NOT NULL DEFAULT '0',
      `tax_class_id` int(11) NOT NULL DEFAULT '0',
      `tax_priority` int(5) DEFAULT '1',
      `tax_rate` decimal(7,4) NOT NULL DEFAULT '0.0000',
      `tax_description` varchar(255) NOT NULL DEFAULT '',
      `last_modified` datetime DEFAULT NULL,
      `date_added` datetime NOT NULL DEFAULT '0001-01-01 00:00:00'
    ) ENGINE=MyISAM AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
    
    --
    -- Dumping data for table `tax_rates`
    --
    
    INSERT INTO `tax_rates` (`tax_rates_id`, `tax_zone_id`, `tax_class_id`, `tax_priority`, `tax_rate`, `tax_description`)
    VALUES
    (1, 1, 1, 1, 21.0000, 'Btw 21%'),
    (2, 2, 1, 2, 21.0000, 'Btw 21%'),
    (3, 3, 1, 3, 0.0000, 'Btw 0%');
    
    -- --------------------------------------------------------
    
    --
    -- Table structure for table `zones_to_geo_zones`
    --
    
    DROP TABLE IF EXISTS `zones_to_geo_zones`;
    CREATE TABLE IF NOT EXISTS `zones_to_geo_zones` (
    `association_id` int(11) NOT NULL,
      `zone_country_id` int(11) NOT NULL DEFAULT '0',
      `zone_id` int(11) DEFAULT NULL,
      `geo_zone_id` int(11) DEFAULT NULL,
      `last_modified` datetime DEFAULT NULL,
      `date_added` datetime NOT NULL DEFAULT '0001-01-01 00:00:00'
    ) ENGINE=MyISAM AUTO_INCREMENT=242 DEFAULT CHARSET=utf8;
    
    --
    -- Dumping data for table `zones_to_geo_zones`
    --
    
    INSERT INTO `zones_to_geo_zones` (`association_id`, `zone_country_id`, `zone_id`, `geo_zone_id`)
    VALUES
    (1, 150, NULL, 1),
    (2, 14, 0, 2),
    (3, 21, 0, 2),
    (4, 240, 0, 3),
    (5, 57, 0, 2),
    (6, 73, 0, 2),
    (7, 81, 0, 2),
    (8, 27, 0, 2),
    (9, 33, 0, 2),
    (10, 55, 0, 2),
    (11, 67, 0, 2),
    (12, 72, 0, 2),
    (13, 84, 0, 2),
    (14, 97, 0, 2),
    (15, 103, 0, 2),
    (16, 105, 0, 2),
    (17, 53, 0, 2),
    (18, 117, 0, 2),
    (19, 123, 0, 2),
    (20, 124, 0, 2),
    (21, 132, 0, 2),
    (22, 170, 0, 2),
    (23, 171, 0, 2),
    (24, 175, 0, 2),
    (25, 190, 0, 2),
    (26, 189, 0, 2),
    (27, 195, 0, 2),
    (28, 56, 0, 2),
    (29, 222, 0, 2),
    (30, 203, 0, 2),
    (31, 1, 0, 3),
    (32, 2, 0, 3),
    (33, 3, 0, 3),
    (34, 4, 0, 3),
    (35, 5, 0, 3),
    (36, 6, 0, 3),
    (37, 7, 0, 3),
    (38, 8, 0, 3),
    (39, 9, 0, 3),
    (40, 10, 0, 3),
    (41, 11, 0, 3),
    (42, 12, 0, 3),
    (43, 13, 0, 3),
    (44, 15, 0, 3),
    (45, 16, 0, 3),
    (46, 17, 0, 3),
    (47, 18, 0, 3),
    (48, 19, 0, 3),
    (49, 20, 0, 3),
    (50, 22, 0, 3),
    (51, 23, 0, 3),
    (52, 24, 0, 3),
    (53, 25, 0, 3),
    (54, 26, 0, 3),
    (55, 28, 0, 3),
    (56, 29, 0, 3),
    (57, 30, 0, 3),
    (58, 31, 0, 3),
    (59, 32, 0, 3),
    (60, 34, 0, 3),
    (61, 35, 0, 3),
    (62, 36, 0, 3),
    (63, 37, 0, 3),
    (64, 38, 0, 3),
    (65, 39, 0, 3),
    (66, 40, 0, 3),
    (67, 41, 0, 3),
    (68, 42, 0, 3),
    (69, 43, 0, 3),
    (70, 44, 0, 3),
    (71, 45, 0, 3),
    (72, 46, 0, 3),
    (73, 47, 0, 3),
    (74, 48, 0, 3),
    (75, 49, 0, 3),
    (76, 50, 0, 3),
    (77, 51, 0, 3),
    (78, 52, 0, 3),
    (79, 54, 0, 3),
    (80, 58, 0, 3),
    (81, 59, 0, 3),
    (82, 60, NULL, 3),
    (83, 62, 0, 3),
    (84, 63, 0, 3),
    (85, 64, 0, 3),
    (86, 65, 0, 3),
    (87, 66, 0, 3),
    (88, 68, 0, 3),
    (89, 69, 0, 3),
    (90, 70, 0, 3),
    (91, 71, 0, 3),
    (92, 75, 0, 3),
    (93, 76, 0, 3),
    (94, 77, 0, 3),
    (95, 78, 0, 3),
    (96, 79, 0, 3),
    (97, 80, 0, 3),
    (98, 82, 0, 3),
    (99, 83, 0, 3),
    (100, 85, 0, 3),
    (101, 86, 0, 3),
    (102, 87, 0, 3),
    (103, 88, 0, 3),
    (104, 89, 0, 3),
    (105, 243, 0, 3),
    (106, 90, 0, 3),
    (107, 91, 0, 3),
    (108, 92, 0, 3),
    (109, 93, 0, 3),
    (110, 94, 0, 3),
    (111, 95, 0, 3),
    (112, 96, 0, 3),
    (113, 98, 0, 3),
    (114, 99, 0, 3),
    (115, 100, 0, 3),
    (116, 101, 0, 3),
    (117, 102, 0, 3),
    (118, 244, 0, 3),
    (119, 104, 0, 3),
    (120, 106, 0, 3),
    (121, 107, 0, 3),
    (122, 245, 0, 3),
    (123, 108, 0, 3),
    (124, 109, 0, 3),
    (125, 110, 0, 3),
    (126, 111, 0, 3),
    (127, 112, 0, 3),
    (128, 113, 0, 3),
    (129, 114, 0, 3),
    (130, 115, 0, 3),
    (131, 116, 0, 3),
    (132, 118, 0, 3),
    (133, 119, 0, 3),
    (134, 120, 0, 3),
    (135, 121, 0, 3),
    (136, 122, 0, 3),
    (137, 125, 0, 3),
    (138, 126, 0, 3),
    (139, 127, 0, 3),
    (140, 128, 0, 3),
    (141, 129, 0, 3),
    (142, 130, 0, 3),
    (143, 131, 0, 3),
    (144, 133, 0, 3),
    (145, 134, 0, 3),
    (146, 135, 0, 3),
    (147, 136, 0, 3),
    (148, 137, 0, 3),
    (149, 138, 0, 3),
    (150, 139, 0, 3),
    (151, 140, 0, 3),
    (152, 141, 0, 3),
    (153, 142, 0, 3),
    (154, 242, 0, 3),
    (155, 143, 0, 3),
    (156, 144, 0, 3),
    (157, 145, 0, 3),
    (158, 146, 0, 3),
    (159, 147, 0, 3),
    (160, 148, 0, 3),
    (161, 149, 0, 3),
    (162, 151, 0, 3),
    (163, 152, 0, 3),
    (164, 153, NULL, 3),
    (165, 154, 0, 3),
    (166, 155, 0, 3),
    (167, 156, 0, 3),
    (168, 157, NULL, 3),
    (169, 158, 0, 3),
    (170, 159, 0, 3),
    (171, 161, 0, 3),
    (172, 162, 0, 3),
    (173, 163, 0, 3),
    (174, 241, 0, 3),
    (175, 164, 0, 3),
    (176, 165, 0, 3),
    (177, 166, 0, 3),
    (178, 167, 0, 3),
    (179, 168, 0, 3),
    (180, 169, 0, 3),
    (181, 172, 0, 3),
    (182, 173, 0, 3),
    (183, 174, 0, 3),
    (184, 176, 0, 3),
    (185, 177, 0, 3),
    (186, 178, 0, 3),
    (187, 181, 0, 3),
    (188, 182, 0, 3),
    (189, 183, 0, 3),
    (190, 184, 0, 3),
    (191, 185, 0, 3),
    (192, 236, 0, 3),
    (193, 186, 0, 3),
    (194, 187, 0, 3),
    (195, 188, 0, 3),
    (196, 191, 0, 3),
    (197, 192, 0, 3),
    (198, 193, 0, 3),
    (199, 194, 0, 3),
    (200, 246, 0, 3),
    (201, 196, 0, 3),
    (202, 197, 0, 3),
    (203, 198, 0, 3),
    (204, 199, 0, 3),
    (205, 200, 0, 3),
    (206, 201, 0, 3),
    (207, 202, 0, 3),
    (208, 204, 0, 3),
    (209, 205, 0, 3),
    (210, 206, 0, 3),
    (211, 207, 0, 3),
    (212, 208, 0, 3),
    (213, 209, 0, 3),
    (214, 61, 0, 3),
    (215, 210, 0, 3),
    (216, 211, 0, 3),
    (217, 212, 0, 3),
    (218, 213, 0, 3),
    (219, 214, 0, 3),
    (220, 215, 0, 3),
    (221, 216, 0, 3),
    (222, 217, 0, 3),
    (223, 218, 0, 3),
    (224, 219, 0, 3),
    (225, 220, 0, 3),
    (226, 221, 0, 3),
    (227, 223, 0, 3),
    (228, 224, 0, 3),
    (229, 225, 0, 3),
    (230, 226, 0, 3),
    (231, 227, NULL, 3),
    (232, 228, 0, 3),
    (233, 229, 0, 3),
    (234, 230, 0, 3),
    (235, 231, 0, 3),
    (236, 232, 0, 3),
    (237, 233, 0, 3),
    (238, 234, 0, 3),
    (239, 235, 0, 3),
    (240, 238, 0, 3),
    (241, 239, 0, 3);

  7. #7
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    6,979
    Plugin Contributions
    63

    Default Re: New EU digital VAT

    Thanks, Design75!

  8. #8
    Join Date
    Oct 2005
    Posts
    59
    Plugin Contributions
    0

    Default Re: New EU digital VAT

    Quote Originally Posted by enlightened View Post
    I'm in touch with some very small businesses who are using Zencart to sell digital downloads, worried that they will have to cease trading or move storefront due to the complexity of the new EU VAT rules (and a lot have only just found out, with a few weeks to go).

    To be able to use the new MOSS system, you need to be registered for VAT already and most digital sellers do not meet that threshold, by a long way! So, if they do not want to register for VAT and all the extra cost and hassle that brings, they can simply block EU countries from being able to shop (not ideal but at least it's do-able, at least in the short-term).
    I sell such a small amount on my zencart site that dealing with VAT is not even remotely worth messing with. I would like to be able to block selling to the EU, or will have to shut my personal store down. Does anyone know of a way to do this?

  9. #9
    Join Date
    Dec 2009
    Location
    Amersfoort, The Netherlands
    Posts
    2,285
    Plugin Contributions
    20

    Default Re: New EU digital VAT

    Quote Originally Posted by clikchic View Post
    I sell such a small amount on my zencart site that dealing with VAT is not even remotely worth messing with. I would like to be able to block selling to the EU, or will have to shut my personal store down. Does anyone know of a way to do this?
    Just disable all EU countries, so people from those countries can not create an account.

  10. #10
    Join Date
    Sep 2009
    Location
    Stuart, FL
    Posts
    6,979
    Plugin Contributions
    63

    Default Re: New EU digital VAT

    Quote Originally Posted by Design75 View Post
    Just disable all EU countries, so people from those countries can not create an account.
    Especially easy with Zen Cart v1.5.3, where the "Selectable Countries" plugin has been incorporated. If you're running an earlier version of Zen Cart, just install that plugin and you can selectively disable a country.

 

 
Page 1 of 6 123 ... LastLast

Similar Threads

  1. v153 Digital Seller? How are you dealing with #VATMOSS?
    By enlightened in forum Currencies & Sales Taxes, VAT, GST, etc.
    Replies: 5
    Last Post: 5 Jan 2015, 08:30 AM
  2. Replies: 0
    Last Post: 2 Jun 2010, 06:14 PM
  3. Digital Downloads Working? / Pay What You Want?
    By sywp in forum General Questions
    Replies: 2
    Last Post: 10 Oct 2008, 02:50 AM
  4. Can you enable shipping with digital downloads?
    By davestrand in forum Built-in Shipping and Payment Modules
    Replies: 2
    Last Post: 26 Mar 2008, 12:26 AM
  5. Replies: 0
    Last Post: 13 Sep 2007, 08:23 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
disjunctive-egg
Zen-Cart, Internet Selling Services, Klamath Falls, OR