Thanks for posting; it’s a great question!
You’re absolutely right that it’s based on the good/service being bought or sold, and also the country of the contact.
Sometimes you may have clients for whom you may or may not need to add VAT to the invoice, depending on where you are delivering services to the client. So you have the option to charge VAT only if the client is based in the UK, which is the default, or always charge VAT, or never charge VAT.
For example, if you’re selling goods to this contact and they are outside the UK but inside the EU, you would set the “Charge VAT” option to “Always” (because VAT is being charged, just at a rate of 0%), however if you’re selling services to this contact the “Charge VAT” option would be “Only if contact is based in the United Kingdom” or “Never” because the sales are outside the scope of UK VAT.
In theory this cold be modelled a different way where these choices were made at an individual invoice/bill line item level, but in FreeAgent it is the contacts VAT option, their country, and the EC Status of the invoice/bill that powers the accounting output.
FreeAgent doesn’t currently support having items on the same invoice that are VATable and out of the scope of UK VAT (such as disbursements).
I hope that helps,
Core Services:API Product Manager