This question keeps being asked with respect to different SharePoint versions. In my case I want copy a document from a 'working library' ( not searchable) to a published versions library, once it has been approved. I also want to ensure that the copied version preservers the major version and any history. My first thought was to do this with a web service
https://tenant.sharepoint.com/teamsite/_vti_bin/_vti_aut/author.dll
The request headers would be
X-Vermeer-Content-Type=application/x-www-form-urlencoded
Content-Type=application/x-www-form-urlencoded
The request body (POST) might look this
copy+document:15.0.0.4420&service_name=/&oldUrl='https://tenant.sharepoint.com/teamsite/lib1/doc1.doc'&newUrl='https://tenant.sharepoint.com/allcompany/lib2/doc1.doc'&url_list=[]&rename_option=findbacklinks&put_option=overwrite,migrationsemantics
Anyway, I have tried the call using an HTTP Web Service Action in Nintex Workflow for Office 365 and also the Postman tool but I am getting an access denied error ( even with a HTTP 200). If there is another way of getting my desired outcome please let me know.