Hi SmileJV and LaCrews,
Some fields are not meant to be populated by users. An example of this is the RecordID field of the contacts table. This field is an identity field that is automatically populated when a new record is added. This is probably where your insert is failing.
Following up on LaCrew's point. Some fields are linked....think like a foreign key.... Where you can only populate them with values that exist. An example of this is the Entity field of the contact table. The entity must exist before you can use it.
The flags SupportsAdd and SupportsEdit refer to what modifications your accounting software supports via their sdk. Some fields may allow adding/editing but the fields may become readonly after a sync occurs.
These settings can not be modified by users.
Dave