Police in the western German town of Sankt Augustin found the body in a shelter that houses both asylum-seekers and homeless people on Sunday evening after an extensive search of the area.
Police had earlier located her clothes and handbag on the banks of a lake near the asylum center. They used dogs, divers and helicopters to aid in the search.
The girl's parents in nearby Unkel had reported her missing on Friday. Local media reported that she told her parents she would meet a female friend in Bonn. Police say, however, that she went to see the suspect in the shelter instead.
Victim found in suspect's flat
The 19-year-old man who was taken into custody is a German national who also holds a Kenyan passport, police said on Monday. When they questioned him as part of the search effort for the girl, the man confessed to killing her after an argument and told officers on the scene that the victim was dead in his small apartment in the shelter.
"The accused admits to exercising violence against her," Bonn's Chief Public Prosecutor Robin Fassbender told German news agency DPA. "We are therefore assuming a deliberate homicide."
According to public broadcaster WDR, the victim and the suspect had met a little over a week earlier at a bar in Bonn. Police were initially tipped off as to the identity of the suspect based on social media posts the victim had made, including pictures of the two of them together.
In the girl's hometown of Unkel, Mayor Gerhard Hausen said: "We're all deeply shocked here. Our thoughts are with the family, and our flag is at half-mast."