Unfortunately it looks like you’ve found a bug in our API on the Invoice object. We’ll fix this, you’ll see it in the next public release. Until then, if you want to grab the user by name, you can use the list object (this is used in the UI).
// Get all jobs
StockingLocationList jobs = StockingLocationList.GetJobsites(false, JobTreeNodeDisplayType.Name, Guid.Empty);
// Populate list with guid's of jobs
List<Guid> locations = new List<Guid>();
foreach (StockingLocationListItem job in jobs)
locations.Add(job.StockingLocationID);
// Fetch all invoices
InvoiceList invoices = InvoiceList.GetInvoiceList(locations, InvoiceSyncStatus.All, InvoiceExportStatus.All, Guid.Empty);
foreach (InvoiceListItem inv in invoices)
{
System.Diagnostics.Debug.Print(inv.InvoiceNumber + " created by: " + inv.CreatedBy);
}