I have code to successfully perform a REPEAT transaction against the SagePay test environment.
With this I can see that an "OK" result from https://test.sagepay.com/gateway/service/repeat.vsp is working.
But is there anyway to get SagePay to return a "NOTAUTHED" result so I can test cases where the customer cannot be billed again (maybe their account is out of funds)?
I asked SagePay support.
Their response:
You can not get Test payments to fail other than not entering one of our dummy test cards
Ie. SagePay does not provide any mechanism for testing, for example, when a customer's card no longer has sufficient funds.