Utility giant SSE is to be fined £10.5 million for "prolonged and extensive" mis-selling in what will be the largest ever penalty imposed on an energy provider.
Energy watchdog Ofgem said it found "failures at every stage of the sales process" across SSE's telephone, in-store and doorstep selling activities.
SSE's sales teams misled some customers into switching to the firm by telling them they were saving money when they were instead being put on to more expensive contracts, Ofgem said.
Selling agents also exaggerated the potential savings by switching to SSE and lied about rival price increases, telling customers that other suppliers were making "all sorts of false promises".
Ofgem said the level of the fine reflects the seriousness and the duration of the mis-selling, as well as the harm caused to customers and the likely gain to SSE - which has about 10 million domestic customers.
Management at SSE - one of Britain's "big six" energy suppliers - failed to pay enough attention to compliance, which allowed the mis-selling to take place, added Ofgem.
Ian Marlee, managing director for markets at Ofgem, told the BBC Radio 4 Today programme: "This is a woeful catalogue of failures by the SSE management.
"This fine represents the fact that what they were doing was allowing a culture of mis-selling to continue, they weren't doing enough to prevent sharp selling practices from their selling agents, they actually provided misleading sales scripts...
"What we need and what we expect from energy companies is they have a culture of putting consumers first and complying with the rules. Clearly SSE management were not doing that, which is why we imposed the largest fine on energy suppliers we have ever imposed."
SSE said it was "deeply regretful that breaches occurred and apologises unreservedly to any customers who have been affected by sales activity which ran counter to the values and culture of the company". It insisted its sales practices have been overhauled since Ofgem launched its investigation, but admitted that it did not move fast or far enough.