Most standard NetSuite records are supported by SOAP web services. The list of supported records spans all areas of the NetSuite application from ERP to CRM to customization. For a list of records that are supported in SOAP web services, see SOAP Web Services Supported Records.
In the SOAP API, the Record class is the abstract super-class of all supported records. A supported record is always a concrete sub-class of Record. Due to the neutrality required to be language agnostic, the SOAP web services classes inheritance chain remains simplistic and does not implement language-specific object-oriented concepts such as multiple inheritance and interfaces.
NetSuite records are divided into the following broad categories:
A record's standard body fields are its attributes, for example:
Customer.email, SalesOrder.salesRep. Composite attributes such as line items or sublists are structured as complex objects that contain arrays, for example:
SalesOrder.itemList, CalendarEvent.attendeeList. Custom fields within a record (if available) are also structured as composite attributes, for example:
A record element that ends with List is generally a sublist. (The exception is the customFieldList element, which represents custom fields on the record.) For information about working with sublists in SOAP web services, see Sublists in SOAP Web Services. For more general information about sublists and other form elements in NetSuite, see Forms.
In addition to standard records, SOAP web services also supports custom objects and their metadata (see Customization for more details). Using the getCustomizationId SOAP API, an application external to NetSuite can query a NetSuite account to obtain metadata about the custom objects that have been implemented in the account. This lets you build and ship generic applications that will work with any account. For example, a SOAP web services point-of-sale application can be designed to determine (during runtime) all the custom fields applied to a NetSuite CashSale record, so that it can then import CashSale records with the necessary custom fields set.