I have a public REST API for creating new business profile records in my system. The request itself looks similar to this:
{
"BusinessName" : "AName",
"CurrencyCode" : "USD"
}
You can see the CurrencyCode property on the request is set to "USD" and our REST API documentation incorrectly asserts that we support "USD" or "EUR" as values to this property.
Here's the problem, in recent talks with the busisness it became clear that while we may support multiple currency codes in the future today we only support "USD", and on top of that we will never support changing the CurrencyCode on the request since it's a limitation in our industry. Our existing code ignores the value of "CurrencyCode" on the request and hardcodes it to "USD" throughout our system (legacy code).
So due to the fact that we will never support CurrencyCode being passed on the request the decision was made to remove it. So going forward if "CurrencyCode" is provided on the request we will continue to ignore it so the user wont get an error and processing will continue as expected as long as they are passing "USD". If however they coded against our current API documentation and expected that support to be in place then they will encounter problems when their software attempts to use "EUR" for currency code.
Granted today's users of the API do not have any way of using the "Eur" currency code because our applicaiton is ignoring this value. However, I would argue that this is a bug and that the removal of this value without any kind of versioning of the api is a bad practice. I assert this should be considered a breaking change.
So the question, "Is removing the "CurrencyCode" property from the request a breaking change even though we don't support it today(bug) and will never support it in the future?"