Court records show German Muniz admits to punching Clementine Garcia more than five times on her face.
The two met at a downtown Harlingen Stripes store around 3 a.m. last Friday.
But he also tells police that he hit her out of "panic" because she threatened to "call friends over" following a prostitution deal gone wrong, according to the report.
"Pacheco actually met this female victim at the Stripes store," Sgt. Dave Osborne said. "After speaking with her she invited him to her home, and at that point, according to the suspect, they possibly did drugs as well as exchanged sex for money."
Records show the suspect states they agreed to have sex for $20.
Things turned violent, German tells police in the report, when she tried to extort more money after they had sex.
It's a completely different story from the victim's account, who in an initial police investigation says that he "forced himself" on her after seeing him put a condom on and then she said "no."
The victim is now out of the Intensive Care Unit at Valley Baptist Medical Center in Harlingen recovering from severe injuries.
Her family says she has multiple facial fractures, a broken nose and ribs and a punctured lung.
Police are still working to figure out the true motive but want to make one thing clear to the public.
"We do know that this is not a random act of violence," the sergeant said. "This was not something that someone was targeted at a Stripes store."
The victim's family disputes the suspect's prostitution claim calling it a heartless excuse for brutality.
They say she was at the convenience store to buy lottery tickets.
Her son, who did not want his face shown on television, also believes this likely isn't the first time German has beaten another woman based on the extent of his mother's injuries.
"The way he did it just as if it was a regular situation for him like nothing," he said.
German remains locked up in a Cameron County jail on a 50-thousand dollar bond for aggravated assault.