Of course, the contractor charged too much, but
it's not cost effective to fight it now. The only way is to get a judgement in court. But due to your missing tenant's requests. The fault was on you, not tenant this time. Plus, it will cost you more money and time to appear in court, not cost effective. If I were you, I will pay it now and prevent such incident from even happening.