RE: Changing Paid Invoice Status
Hello Partner ,
Ideally there is no out of box way of doing it , However if you wish you can try exploring the webapi or plugin side. I have not tried web Api but from console application if you have Guids of the impacted records you consider doing it . However be aware there might be lot of discrepencies as showed in the Earlier blog which you have posted .
Code that i am using :
//Retrive Invoice and update :
Guid Id = new Guid("3CF19224-03CB-EA11-A812-000D3A3E14AF"); // This is the Guid of the Record that I am using to check
Entity invoice = service.Retrieve("invoice", Id, new ColumnSet(true));
invoice["statecode"] = new OptionSetValue(0); //Status
invoice["statuscode"] = new OptionSetValue(4); //Status reason
service.Update(invoice);
Before executing the Code through Console:

After Executing the Code through Console:

Warning Please simulate this in test instance first and take a call.
Regards,
Pradeep Gowda