The ex-president was rushed to hospital, and his condition is now unknown.
Garcia, 69, was immediately taken to the Casimiro Ulloa hospital, said the source, who was not authorized to talk to the media.
Judicial orders obtained by The Associated Press said an order for Garcia's arrest had been issued.
"He is in a critical condition", said Peru's health ministry.
"Let's pray to God to give him strength", Erasmo Reyna, Garcia's lawyer, told journalists at the hospital. "Within a few minutes, a shot from a firearm was heard, and police forcibly entered the room and found Mr. Garcia sitting with a wound in his head".
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.
He is now under investigation after allegedly accepting bribes from Brazilian construction titan Odebrecht in return for contracts during his most recent spell in office.
The former President has over the years consistently denied the claims.
In November he sought refuge in the Uruguayan Embassy and applied for asylum but he left the next month after it was denied.
Authorities say Odebrecht officials shipped cash across the globe - from one shell bank account to the next - en route to politicians' pockets in a dozen countries, including Peru, Mexico, Venezuela, Colombia, Argentina, and Mozambique.
Odebrecht has admitted that it paid $29million to Peruvian officials during three Presidential tenures, but Mr Garcia maintains his innocence and has slammed the inquiry as a political smear. Some of the bribes filtered through the United States.
Ecuador suspended Vice President Jorge Glas, who was later sentenced to six years in prison in December 2017 for receiving $13.5 million in bribes from Odebrecht.
A Peruvian judge last week ordered Kuczynski's detention for 10 days as he investigates some $782,000 in previously undisclosed payments from Brazilian construction giant Odebrecht more than a decade ago.