It’s not quite the same as a checkout at a supermarket.
At the supermarket, the amount is final, and you authorise through PIN/contactless, the bank then authorises that amount, and you’re all good.
At a pump, there’s a dilemma.
The petrol station doesn’t want to give you the ability to put out petrol without already having your card details - so you can’t just drive away. So you give them your card beforehand. This issue here is, they don’t know how much they’re going to charge you yet - you haven’t filled up.
But they’re got the card details at the end, why don’t they just put through a normal transaction then? Well if they did, they run the risk of you not having enough money, and your bank declining them. So to avoid this happening, they put the transaction through as an offline transaction - which the bank should accept, and leave you negative.
Obviously this then creates the issue we have now. There are alternatives that the pumps could use - preselected amounts (£5/£10/£20/£30/£40/£50) or a second enter of card + pin to pay at the end. But these would require reletively major changes (I’m talking major to the supermarkets) to their POS systems.