When moving Sitefinity module builder items through the workflow, the standard method used is to call.
It is the extension method SetWorkflowStatus which allows you to state the status of each item to Published, Draft, AwaitingApproval, AwaytingPublishing, Rejected.
The case with rejected, however, doesn`t support the addition of a rejection reason when rejecting an item sent for approval through code. While this is available through the UI and the rejection reason can be added, using SetWorkflowStatus doesn`t support it.
For this purpose until this feature is implemented and SetWorkflowStatus supports addition of a rejection reason, you can use the custom class that can be downloaded from here and provides customization of the SetWorkflowStatus method.
To use the class, call the static method IWorkflowExtensionsCustom. SetWorkflowStatus
"rejection reason: fix spelling"