Программно защитить? А что программно можно сделать?
Можно использовать возможности протокола (в тех протоколах, в которых есть предупреждение о попытке мошенничества - cheating), можно несколько оттянуть момент начисления кредита - после stacked подождать еще чуток, отслеживая билл - не появилось ли вдруг ejecting, можно сигнализировать, когда несколько раз подряд пихается неопознанная купюра (считая ее фальшивкой)... но в основном-то все зависит от самого билла. Если он тупой и попросту не обрабатывает, например, срабатывание датчиков в обратном порядке после укладки купюры - так фик чего сделаешь.
С каждой конкретной моделью надо экспериментировать (да еще и с разными прошивками)...