Garcia, 69, was rushed to the hospital in the capital Lima on Wednesday, the agency said.
“The former president made the decision to shoot himself,” his lawyer Erasmo Reyna said outside the Casimiro Ulloa hospital.
Garcia, who served as president from 1985 to 1990 and from 2006 to 2011, is under investigation for bribery in connection with a massive corruption scandal that has engulfed a number of former Latin American leaders.
Sources close to the investigation told CNN that Peruvian authorities had issued an order for his immediate arrest.
Garcia is accused of receiving kickbacks from one of Latin America’s largest construction firms — the Brazil-based company Odebrecht — during the building of an electric train for the Lima metro while he was president during his second term. He has denied the claims.
In November last year, Garcia had requested asylum at the Uruguayan embassy after a judge banned him from leaving the country for 18 months. The Uruguayan government denied the request in December.
Garcia became Peru’s youngest ever president when he was elected to the office for the first time at the age of 36.