Invoice line items, bogus model?


I’m nearly done with a hacked together script to migrate (on an ongoing basis) all my invoices for time created in Harvest ( into FreeAgent using the respective APIs.

What’s interesting is this shows up some impedance mismatches.

On Harvest’s side, they don’t store tax amounts per invoice item, and instead have a flax indicating which taxes apply. IMO FreeAgent has this correct with actual amounts per line, otherwise you can end up with rounding problems (as I may well during this migration).

However arguably more nasty is FreeAgent’s handling of “item-type” on invoice items.

This seems to be an odd conflation of “type of item” and units, and this seems very wrong and problematic. Harvest for example has a line item type (Service, Goods etc) and the unit is implicit because with Harvest all you can bill is for time - although you can say in the item description what your units are if you need to.

Is this “item-type” field being separated out into two in FreeAgent 2.0 API? It seems really bogus that I can’t set item-type to “Services” and “Hours”… because I am selling a service by the hour.

It feels like item-type is doing two different jobs, but can only have one value.

~ ~ ~
Marc Palmer
Freelancer (Grails/Groovy/Java)

Founder of >
Developer of >
Twitter >
Resumé >
Blog >
Grails Rocks >