A Virginia teen who bought lunch for his friends and paid the bill with coins has been shamed by the restaurant on social media, sparking a backlash.

Cohen Naulty, 17, was eating lunch with his friends at Beer 88 in Lynchburg recently when he decided to pick up the US$45 tab.

Cohen gave his waiter a US$20 bill and paid the balance with coins, even throwing in a US$10 tip, but was stunned to later find the restaurant had mocked him about it to their Facebook page.

"We'll just caption this… 'How NOT to pay at a restaurant', 'cause that's the nicest thing we can say about this ridiculousness," the post read.

It was accompanied by the hashtag #nohometraining.

One of Cohen's friends have slammed the post as "dirty", with his mother expressing disbelief at the jab.

"If anybody met Cohen or knows Cohen, (they would know) that couldn't be the farthest thing from the truth… he's a good kid," she told CNN.

Cohen reportedly paid using mostly coins which he himself had earned as a waiter at another restaurant.

Beer 88's owner Yao Liu said she has subsequently received several threats about the post, with many Facebook users uniting to condemn the business for shaming their own customer.

Ms Liu has apologised but has refused to take down the post.

"I was going to delete it, then after all that they said, you know what, we're not backing down, because, originally, we never mean anything bad to them," she said.

The restaurant's Facebook page as of today appears to have been removed.

Cohen has since launched a fundraiser on Facebook to pay for other people who can't afford a meal – using quarters.

"Paying for someone's meal can change a really bad day around in just one moment of kindness," he wrote.

"I would like to keep this going and make it fun.

"I am sure there are places out there that wouldn't mind being paid in quarters and perhaps you can help me out by donating a little to help me pay for their meals!"