I'm currently implementing SagePay for a customer of ours, and it appears that the Billing and Delivery fields in the Forms method are unavoidably required? The customer only requires the customer to enter the Invoice Number, Payment Amount and Company Name. If the customer needs to enter the payment card address at payment time fine, but they don't want (or need) to capture the Billing or Delivery address first.
I've built the AES encrypted data, but even if the field names are supplied with blank values, I get an error.
Is there a way to prevent the system from requiring both Delivery and Billing address? I've integrated other systems, such as CardSave and PayPal, and have not been required to capture this data upfront.
You could just put some dummy data in there, but take care to ensure it matches the specifications in the protocol document. Be aware, though that this approach will have some implications - AVS checks will fail (and if there are rules on the vendor account, could be rejected accordingly). Additionally, the fraud screening data that comes back from the Third Man, will also be of limited use (due to the lack of address data).