I started with this code below, but soon found out this will not work after envelope has already sent out.
Document contractPdfDocument = new Document
{
DocumentBase64 = contractPdf, //contract document
Name = contractId.ToString() + "_" + versionNumber.ToString() + "_" + DateTime.Now.ToString("ddMMyyyyHHmmss"),
FileExtension = "pdf", //file extension
DocumentId = contractId.ToString() //source document id
};
var updatedDocumentResult = envelopesApi.UpdateDocuments(
GetAccountID(), envelopeId, new EnvelopeDefinition() { Documents = new List<Document> { contractPdfDocument } });