In addition to System Fields, the following fields are found on many objects:
In API version 12.0 and later, if your organization has set up sales teams, OwnerId fields behave the same for Account and Opportunity objects as for other objects. That is, if you update the OwnerId field in either object, any AccountShare or OpportunityShare records are kept. In API version 11.0 and earlier, the sharing records are deleted.
Record types are used to offer different business processes and subsets of picklist values to different Users based on their Profile settings. (In addition, person accounts use record types to manage a number of additional elements. For more information, see What is a Person Account? in the Salesforce online help.)
Record types are configured in the Salesforce user interface or by creating, editing, or deleting the RecordType object in the API. A client application can also retrieve the list of valid record type IDs (String) for a given object by calling query() on the RecordType object.
The RecordTypeId field in an object contains the ID of the RecordType that is associated with a standard or custom object. Client applications can set this field in create() or update() calls. If specified in a create() or update() call, the record type ID (String) must refer to a valid record type for that object. (For more information about ID fields, see ID Field Type.)
For organizations that have multicurrency enabled, the CurrencyIsoCode field contains the string representation of the currency ISO code associated with currency values in the object. Note that the User object also has a DefaultCurrencyIsoCode field, which is the default currency for that user. For example, a user in France could have a DefaultCurrencyIsoCode set to Euros, and that would be their default currency in the application. However, the User object could have currency custom fields stored in a different currency.