Store application data against invoices, payments, credit notes, etc.
Allow an extra field so that the application can store data with the invoice, credit note, purchase order, payment, etc.
Other third party sites allow this in the form of an array, in Xero's case, this would be XML an data field or JSON data field.
This will enable apps to quickly access data using their own pointers, or variables, etc.
Peter Wood commented
I am looking for custom fields or tags on Invoices (and contacts, I have put a similar comment there) in order to properly integrate my medical invoicing software with Xero. I need to be able to retrieve, create & maintain them through the API. Xero users should be able to see them when viewing invoices, but I have no need for Xero users to be able to maintain them or for them to be shown on the invoice presented to users. Ideally the creator should be able to set which custom fields/tags are visible to users, as some may be required for integration only (say, sync-status or id).
This data is not for the user, and not necessarily be seen by the user.