The 31-year-old Chilean will call time on a 12-year professional career which has yielded 11 ATP titles and three Olympic medals after competing at the Miami Masters from March 21.
"I decided to end my career as a professional at the tournament in Miami," he said at a press conference. "I decided to step down and retire from professional tennis out of respect for my career.
"It's 100% personal. I realised that I no longer have the energy I need to performance how I want. In 2009 I played in pain.
"I always said I was going to play until the age of 30 and, in recent months, I thought about the actual decision and I made it about three weeks ago.
"It was very difficult to play at Vina del Mar last week."
Gonzalez will compete at the Brasil Open in Sao Paulo next week and then the Copa Claro in Buenos Aires the following week before heading to Miami next month.
The 2007 Australian Open runner-up has seen his career blighted by injuries in recent years, undergoing hip surgery in 2010 which kept him out of action for several months and then sitting out most of last year with a knee injury.