I\'m trying to update the status of open opportunity by using the WinOpportunityRequest & LoseOpportunityRequest API provided in the MSDN. I\'ve f
You are right. State & Status are conjoined twins. You cannot update only one of them, always go in pair.
State = StateCode
Status Reason = StatusCode (field with Padlock)
More read
In your answer code, this is framed correctly in SetStateRequest req.
req.State = new OptionSetValue(0);
req.Status = new OptionSetValue(2);
But in OP, you set only Status not State.
Per MSDN, LoseOpportunityRequest with OpportunityClose entity has to close it without issues when you pass only Status. But you are not alone.
Ref: Opportunity & OpportunityClose