Failure responses from your API should not simply be 500, especially if it is some sort user issue. For instance, in the case of the 0.00 example (when "" were not used for data), we spent many hours just trying to track this down because we either got a generic 500 or we got a successful 200 with a message even tho the data was not accepted or updated. It should have resulted in some sort of 400 error with an array of validation messages explaining exactly what was done wrong. We would have had our integration finished in days instead of weeks.