Hi Paul,
IMHO the logic you're trying to implement does not fit Object[SAVE] launch point but should rather be implemented in form of at least Attribute[ACTION] to set related attributes (non-)required depending on current PAYBYPCARD state, preferably complemented with Attribute[INIT] to do the same as Attribute[ACTION] but at the time of record init.
When you do it on Object[SAVE] then this is already too late so what you eventually can get is actually to enforce data validation (you will not be able to save without required attr. values) but you will never get it reflected properly on the UI.
------------------------------
Andrzej Więcław
Maximo Technical Consultant
AFRY
Wrocław, Poland
------------------------------