You are not specifying how does it break, so there's options.
There are two differences in the screenshots you provided, and both can cause misbehaviour depending on how receiving end is handling things:
- Passphrases are different in those provided examples - is it purposeful or is this why your call fails?
- Role names: Does it make a difference if role name is "Integrator" (in your serialized JSON example) vs "Integrate" (in debug screenshot)?
I'd start by checking those two, and then checking how the structure is serialized and what is actually sent in the call using debugger (preferably at OnBeforeRequest event).