А если сделать так (в RK6):

1. На кассе разрешаем ручной ввод номера карты.
2. Кассир вводит номер телефона, он уходит в ПДС.
3. ПДС, получив набор цифр, ищет карту с таким номером (не находит), далее ищет карту с таким телефоном (находит), отправляет СМС с кодом. Если возможно, на кассу отправляется сообщение о том что СМС послано. ПДС запоминает во временной таблице что на карту № YYYY был отправлен СМС код ХХХХ. У кода есть некий срок жизни (например 15 мин)
4. Получили СМС-ку. Код должен быть не 4-х значный (что бы не попасть случайно в другую карту), а больше, или что бы у него префикс был, например 123456ХХХХ. Кассир вводит код.
5. ПДС получает набок цифр, ищет карту с таким номером (не находит), далее ищет карту с таким телефоном (не находит), далее ищет в таблице отправленных СМС кодов (находит). Если время ожидания не истекло, то ПДС возвращает на кассу скидку которая положена этой карте и удаляет СМС код из временной таблицы.