craftcms/commerce-sagepay

Gateway Message "3125 : The DeliveryCity field is required."

goodmixer opened this issue · 2 comments

Hi I'm getting a failed payment notice on an order when the Shipping Address and Billing Address are different with the following response from SagePay

Gateway Message "3125 : The DeliveryCity field is required."

Gateway Response { "VPSProtocol": "3.00", "Status": "MALFORMED", "StatusDetail": "3125 : The DeliveryCity field is required."

Could this be that the Shipping Address is not being mapped correctly in the plugin?

Found an old similar issue here with SagePay and Drupal https://www.drupal.org/project/commerce_sagepay/issues/2660602

Currently Running

  • Craft version:
  • Commerce 3.3.1.1
  • Sage Pay for Craft Commerce 3.0.0
  • PHP version 7.3.27

Did this get resolved?
I am seeing similar with Country Value.
Getting error 3410 Country Value Invalid

Is shipping mandatory for SagePay as we are offering collection, so there is no shipping address?
Surely SagePay only requires a billing address?

@pdaleramirez @nfourtythree @lukeholder can you confirm?

Hi @goodmixer

Thank you for your message.

DeliveryCity is required by the API so it is worth making sure this is being set correctly. We haven't had any other reports about this not working and a recent test did not throw up any issues. Could you look to see on the Order Edit screen for the cart with the issue that the city is actually being set on the address?


Hi @terryupton

According to the API (https://developer-eu.elavon.com/docs/opayo-server/api-reference/transaction-registration) both billing and shipping addresses are required (mandatory in their terms). This means both will need to be provided.

In your case, if you are only offering collection you can simply have the shipping address set to the same as the billing address and that will mean you meet Sagepay's criteria. You can do this by adding the "shipping same as billing" input field as a hidden form element to your address form on the site.

Hope this helps, thanks!