Answer
Check whether a variable from an earlier step in the workflow (like a previously-created DiscountAmount) is being silently inferred into the later Create-operation API task alongside the values you explicitly set — this variable-inference behavior can smuggle in a conflicting value you didn't intend to pass. Either add a script task before the API task that explicitly clears/removes that inferred variable, or use the API task's "Only Explicit Parameters" option to disable automatic variable inference entirely, so only the parameters you've deliberately mapped are actually sent.