I don't know of any legislation which says that the employer is liable to pay bank charges if pay goes in late - I've had it happen as a gesture of goodwill, but I don't think they are obliged to do it.
I get paid on the 24th of the month, and for this reason I have arranged that my DDs/SOs come out from 26th onwards, just in case of delays. Could you do this, so you don't get into this situation again?
Meanwhile - contact your employer straight away and explain the position, find out why the pay was late going in and ask what their policy is on reimbursing employees under those circumstances.