We have had a few issues with details being passed to our Gateway (SagePay) causing transactions to fail.
An example is here (delivery surname field too long) ...
==================================================
Callback Failure: VendorTxCode: XXXXXX<br/>Status: INVALID<br/>Status Detail: 3119 : The DeliverySurname value is too long.<br/>Amount: 56.18 GBP<br/>VPSTxId: {XXXXXXXXXXXXXXXXXXXXXXXXX}<br/>TxAuthNo: <br/>Address: , Post Code: , CV2: <br/>Gift Aid: No<br/>3DSecureStatus: &CardType=&Last4Digits=<br/>CAVV: <br/>
==================================================
Could these fields be checked before being passed to the gateway so the customer can correct them? I assume this would need to be done for each gateway?