They can refuse the coins, but if they do they can't apply a late fee. They could be challenged on that part.
Just today, I went to a Walgreens to get something for my wife. The total was $16.04. The cashier wanted to know if I wanted to round up. I told her heck no, so I gave her 4 cents. She was pretty upset that she didn't get the 96 cents from a round up. The employees from some stores are getting snotty.
I tried. The customer in front of me had a sale price of 21.65 and they rounded up for 35 cents. Surely, she could have rounded my sale price for the 4 cents after she had just gotten 35 cents. I think it's a gimmick made for stores to get a little extra on each cash sale. In a 8 hour day, I bet they could round up $20 plus if customers are stupid enough to round up. My VISA bill is twice as much as it use to be because my wife and I pay with it instead of cash. I should have paid with my VISA at Walgreens.