Dès le 1er janvier 2008, une taxe de 12 francs par tonne d'émissions de CO2 sera perçue par la Direction générale des douanes sur les combustibles fossiles importés. Elle correspond à une taxe d'environ 3 centimes par litre d'huile de chauffage et de 2,5 centimes par mètre cube de gaz. La taxe ne sera pas perçue sur le bois ni la biomasse, car ceux-ci ont un bilan CO2 neutre. Lors de leur croissance, ils stockent du CO2 qui est restitué lors de leur combustion. A partir de 2009, la taxe s'élèvera à 24 francs par tonne de CO2, soit 6 centimes par litre d'huile de chauffage, si les émissions ont baissé de moins de 10 % en 2007 par rapport à 1990. A partir de 2010 : une taxe de 36 francs par tonne de CO2, soit 9 centimes par litre d'huile de chauffage, si les émissions ont baissé de moins de 13,5 % en 2008 par rapport à 1990 ou si elles ont baissé de moins de 14,25 % au cours d'une année consécutive.
Comme la taxe n'est pas un impôt mais une mesure incitative, les recettes seront redistribuées à chaque personne - par le biais des caisses maladie - et aux entreprises proportionnellement à la masse salariale. La redistribution des recettes de 2008 sera effectuée en 2010, ajoute l'Ofev. Les entreprises qui prennent des mesures pour utiliser plus efficacement les combustibles fossiles et diminuer leurs émissions de CO2 peuvent être exemptées de la taxe en 2008 si elles s'engagent auprès de la Confédération suisse à diminuer leurs émissions. La Suisse s'est fixée dans la loi sur le CO2, entrée en vigueur le 1er mai 2000, un objectif de réduction de10% des gaz à effet de serre d'ici 2010 par rapport à 1990 avec l'introduction d'une taxe sur le CO2 pour les combustibles, la perception d'un centime climatique sur les carburants par les milieux privés (Fondation pour le centime climatique) et la défiscalisation des carburants biogènes.