I'm currently running 2.1.3 and utilizing Braintree processing at checkout. Currently, if a customer places an error with a bad credit card, wrong CVV number, or wrong address, they just get the error of

An error occurred on the server. Please try to place the order again.

What do I need to change in PaymentInformationManagement.php to override this and show the actual reason for decline? Such as card declined, cvv error, address error, etc.


1 Answer 1


Magento place order flow provides only high-level errors, it allows to make an application more secure. So it's not a good idea to show specific errors for a customer.

According to Magento Braintree implementation, it based on Hosted Fields, so all card data validation, like card number, expiration dates, CVV processes on the payment form.

  • So there's no way of showing the customer that the transaction isn't working because of card number, CVV, etc? Instead, they just see a generic message saying there was an error on the server, making them think it's the website, and not their card.
    – Eric Fox
    Feb 11, 2017 at 20:05
  • You can override default behavior but I don't recommend to do it. Also, I think it's a not particular case when a real card successfully validated on payment form but failed after authorization/sale transaction.
    – joni jones
    Feb 12, 2017 at 8:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.