EDIT 04/25/2017: I got a response to the bug report. Apparently Mathematica developers have resolved the issue on a future release.
Alright, I ran the code using curl and even checked my tcp logs when executing it in Mathematica. It seems that Mathematica is taking the headers and making them lower-case when sending to the url. Normally this wouldn't matter, but some APIs (like ours) are case sensitive.
So "Content-Type" is being sent as "content-type" (cant remember if I used a hyphen). This is producing the errorThis is producing the error.
I've catalogued the problem in a bug report sent to MathematicaWolfram Support. I'm leaving the post up until they resolve the issue just in case either anyone knows a workaround or someone has a similar problem and cant figure out the cause.
EDIT 04/25/2017: I got a response to the bug report. Apparently Mathematica developers have resolved the issue on a future release.