It seems that in order to set a field through the REST API the field must appear on the screen for creating an issue. Otherwise you get this type of error:
Field 'fixVersions' cannot be set. It is not on the appropriate screen, or unknown.
It seems strange to me that the API should be limited by the UI since often the purpose of using the API is to perform things that the UI is not capable of.
Is it possible to access a field without it being visible to users? For example if I want to have a custom field that is only accessible through the API but hidden from users (for cosmetic rather than security reasons), is it possible to achieve this?