Дык, если эта же карта является средством оплаты, то наверняка можно сделать частичную оплату? Нет?
Либо, как вариант, заморочиться с проверкой суммы на карте и промежуточным итогом?
Т.е., считали карту, узнали баланс, начинаем пробивать товары и мониторим промежуточный итог, как только превысили баланс - стоп-машина!
Правда, тогда получаем проблему, типа: "этот товар замените на этот". Но это может решаться через считывание всех товаров, а потом, в случае нехватки средств, перелопатить чек.