"We cannot. If we do that we will get prosecuted. It is not from [Costa policy], it is from the security at the station and the police."
After branding the situation "ridiculous", Mr Pinsent asked another member of staff to sell him the sandwich and was again refused.
Mr Pinsent claimed that the argument went on for "about five minutes" and the staff never spoke directly to the homeless man in that time.
Eventually he slammed the money down on the counter and handed the food to the man.
He told MailOnline: "I had to get the last train so when I put the money down I gave him the food.
"[The staff] didn't speak to him, but he did ask me 'what about your change' as I left, and I said forget about it as I had to get last train.
"He then went to the counter, but I don't know what was said. He seemed concerned for me, and not about getting my change, I want to emphasise that.
"Until that point none of the staff spoke to him."
Mr Pinsent was repeatedly told that could not be sold the food because Costa would be "prosecuted".
"I knew it was utter rubbish as a journalist myself", added Mr Pinsent.
"What I am curious about is who told the barista this was the case as he really seemed to believe it to be true."
A spokesman for Network Rail said there was no train station policy stating customers could not buy goods for the homeless.
He said: "We do not have a policy against passengers buying food in our stations and giving the food to anyone who is homeless.
"We will be asking our retailers to remind their staff of this, so we can avoid any incidents such as this in the future."
A spokeswoman for Costa added: "We do not have a policy that restricts customers purchasing food for anyone who is homeless.
"We believe the store was given misinformation, which has now been corrected."
Lambeth, the London borough in which Waterloo sits, has one of the highest rates of homelessness in the capital, with some 23,000 people on the waiting list for social housing.
In May Lambeth police were criticised for "demonising" anti-begging signs that were placed outside the station run by Network Rail.
The signs encouraged people not to give money to 'beggars'.
After hundreds of people branded the signs "weird" and "offensive", Lambeth police released a statement claiming they were put up 'following concerns raised by the local community'.
British Transport Police said "of course" they would not prosecute anyone for buying food for a homeless person.