Ok, I agree that it is complete ... You can make it work. But I would not be comfortable running fully automated. For example, if they add a new error code and I miss handling it, my code will break. I expect API to be explicit. OrderRejected ( orderID, errorCode, reason) ... You know exactly...