The addList operation is used to add one or more new instances of a record to NetSuite. If there are multiple records, they can either be of the same record type or different record types. For example, it's possible to add a customer and a contact within a single request using this operation. However, each record entered must have a unique signature. Adding two records with the same signature results in a SOAP fault. The signature consists of parameters required to identify a record as unique.

For example, in the case of entities, a record is uniquely identified by its name, its type and its parent hierarchy. So you could have two records with the same entityId (or name) belonging to two different record types as follows:

Customer (the type):
John Smith
MyCompany: John Smith
John Smith

But a second record such as the following would be invalid:

John Smith

An asynchronous equivalent is available for this operation, asyncAddList. For information about asynchronous request processing, see Synchronous Versus Asynchronous Request Processing.

Note that to prevent duplicate records, you should use the alternate upsert and upsertList operations when adding records to NetSuite.


The AddListRequest type is used for the request.

Element Name

XSD Type




Contains an array of record objects. The record type is an abstract type so an instance of a type that extends record must be used—such as Customer or Event.


The AddListResponse type is used for the response.

Element Name

XSD Type




Contains an array of WriteResponse objects, each of which contains details on the status of that add operation and a reference to that created record.


This operation can throw one of the following faults. See SOAP Fault Status Codes for more information on faults.

Sample Code

SOAP Request

In the following example, two customer records are added. When using the addList operation, you can submit two different record types in the same request.

        <platformMsgs:record xsi:type="listRel:Customer">
                <listRel:entityId>Shutter Fly</listRel:entityId>
                <listRel:companyName>Shutter Fly, Inc</listRel:companyName>
        <platformMsgs:record xsi:type="listRel:Customer">
                <listRel:companyName>GNC Corp</listRel:companyName>


SOAP Response

In the response, notice that the internal ID for each record added is returned.

<addListResponse xmlns="">
<writeResponseList xmlns="">
      <ns1:status isSuccess="true" xmlns:ns1=""/>
         <baseRef internalId="980" type="customer" xsi:type="ns2:RecordRef" 
      <ns3:status isSuccess="true" xmlns:ns3=""/>
         <baseRef internalId="981" type="customer" xsi:type="ns4:RecordRef"


Java Sample

          public void addListCustomer() throws RemoteException {
                Customer cust1 = new Customer();
                cust1.setEntityId("Shutter Fly");
                cust1.setCompanyName("Shutter Fly, Inc");
                Customer cust2 = new Customer();
                cust2.setCompanyName("GNC Corp");
                Customer[] customers = new Customer[2];
                customers[0] = cust1;
                customers[1] = cust2;
                WriteResponseList responseList = _port.addList(customers);


Related Topics

SuiteTalk SOAP Web Services Platform Overview
SOAP Web Services Development Considerations
SOAP Web Services Processing
SOAP Web Services Operations
SOAP Web Services Standard Operations
SOAP Web Services List Operations
SOAP Web Services Asynchronous Operations

General Notices