NetSuite WSDL and XSD Structure
Oracle NetSuite has scheduled the gradual removal of SOAP web services from the product as part of ongoing efforts to provide modern integration channels.
The 2025.2 SOAP endpoint is the last planned SOAP endpoint and any later SOAP endpoints would be released only as necessary to meet business, technical, or other significant requirements.
The support period of older endpoints is also affected and with the 2027.1 release, only the 2025.2 endpoint will be supported. With the 2028.2 release, SOAP will no longer be available in NetSuite and existing SOAP integrations with NetSuite will stop working.
For more details, see the Removal of SOAP Web Services and the SOAP Removal Plans FAQ. For a list of the currently supported endpoints, see Support for Existing WSDL Versions.
SuiteTalk REST web services is the technology intended to replace SOAP. All newly built integrations should use REST web services with OAuth 2.0 for authentication.
-
For any custom integration applications, that you have developed using SOAP, you should start planning the migration of your solution to REST as soon as possible. For a detailed guide for the migration, see SOAP Web Services To Rest Web Services Upgrade Guide.
-
If you use a partner SOAP application to integrate with NetSuite, consult with your partner to provide you with a REST-based application instead.
-
If you use an Oracle NetSuite integration application, a REST-based application will be provided by Oracle NetSuite.
SOAP web services use single WSDL file that describes all supported operations and messages. You can access that file at the following link:
https://webservices.netsuite.com/wsdl/v2025_2_0/netsuite.wsdl
You can also download a .zip version of the file at the following link:
https://content.netsuite.com/download/WSDL_v2025_2_0.zip
In these links, v2025_2_0 reflects the WSDL version.
NetSuite defines WSDL versioning, the location of schemas, namespaces, and the endpoint as follows:
WSDL: https://webservices.netsuite.com/wsdl/v2025_2_0/netsuite.wsdl
<xsd:import namespace="urn:core_2023_2_0.platform.webservices.netsuite.com"
schemaLocation="https://webservices.netsuite.com/xsd/platform/v2025_2_0/core.xsd"/>
<port name="NetSuitePort" binding="tns:NetSuiteBinding">
<soap:address location="https://webservices.netsuite.com/services/NetSuitePort_2023_2_0" />
</port>
For more information about WSDL versioning, upgrading, and testing, see NetSuite WSDL Versioning. For information about WSDLs that pre-date 2025.2, see SOAP Web Services Archives.
The WSDL includes various NetSuite-specific types defined in related XSD files. Each XSD file has a corresponding alias that serves as a shortcut to its URL. The following tables show the organization of the XSD files.
NetSuite hosts customer accounts in multiple data centers. For that reason, the correct URL for SOAP web services access varies depending on the data center hosting the account.
For more details, see Dynamic Discovery of URLs.
Your integration must incorporate logic that dynamically determines the correct URL. You should use the getDataCenterUrls operation and the The DataCenterUrls REST Service to dynamically discover the correct domain URLs.
Messaging XSD Files
These files provide descriptions for the base SOAP web services functions used by all operations. For API documentation on each operation, see SOAP Web Services Operations.
URL |
Schema Alias |
Notes |
---|---|---|
https://webservices.netsuite.com/xsd/platform/v2025_2_0/common.xsd |
platformCommon |
This file also includes descriptions for the following subrecords:
|
https://webservices.netsuite.com/xsd/platform/v2025_2_0/core.xsd |
platformCore |
Among other elements, this file includes descriptions for the following complex types, which are used for authentication:
|
https://webservices.netsuite.com/xsd/platform/v2025_2_0/faults.xsd |
platformFaults |
— |
https://webservices.netsuite.com/xsd/platform/v2025_2_0/messages.xsd |
platformMsgs |
— |
Record Type Definitions
The following XSD files provide descriptions for each record type in NetSuite. For field reference information about each record, see SuiteTalk SOAP Records Overview. For general information about working with records in SOAP web services, see Records in SOAP Web Services.
URL |
Schema Alias |
Record Types |
---|---|---|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/scheduling.xsd |
actSched |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/demandPlanning.xsd |
demandPlanning |
|
https://webservices.netsuite.com/xsd/documents/v2025_2_0/fileCabinet.xsd |
docfileCab |
|
https://webservices.netsuite.com/xsd/general/v2025_2_0/communication.xsd |
generalComm |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/accounting.xsd |
listAcct |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/accounting.xsd |
listAcct |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/employees.xsd |
listEmp |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/marketing.xsd |
listMkt |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/relationships.xsd |
listRel |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/supplyChain.xsd |
listScm |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/website.xsd |
listSite |
|
https://webservices.netsuite.com/xsd/lists/v2025_2_0/support.xsd |
listSupport |
|
https://webservices.netsuite.com/xsd/setup/v2025_2_0/customization.xsd |
setupCustom |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/bank.xsd |
tranBank |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/customers.xsd |
tranCust |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/inventory.xsd |
tranInvt |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/employees.xsd |
tranEmp |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/financial.xsd |
tranFin |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/general.xsd |
tranGeneral |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/purchases.xsd |
tranPurch |
|
https://webservices.netsuite.com/xsd/transactions/v2025_2_0/sales.xsd |
tranSales |
|
System Constants XSD Files
These files provide constant values for the corresponding types in the business records XSD files.
Example
For example, the addRequest message type has three levels of referencing.
In the WSDL file, the addRequest message is defined as:
<message name="addRequest">
<part name="parameters" element="platformMsgs:add"/>
</message>
The element called platformMsgs:add is defined in the platformMsgs XSD file. In this case, the platformMsgs alias refers to the xsd file at:
https://webservices.netsuite.com/xsd/platform/v2025_2_0/messages.xsd
In this file, the addRequest element is defined again as:
<complexType name="AddRequest">
<sequence>
<element name="record" type="platformCore:Record" />
</sequence>
</complexType>
Again there is a reference that is not contained in this XSD file called platformCore:Record. The platformCore alias refers to the XSD file at:
https://webservices.netsuite.com/xsd/platform/v2025_2_0/core.xsd
The abstract type Record is defined as:
<complexType name="Record" abstract="true">
<sequence>
<element name="nullFieldList" type="platformCore:NullField" minOccurs="0" maxOccurs="1" />
</sequence>
</complexType>
In SOAP web services, Record is the base for all other NetSuite record types.
XML Samples of Supported Variations of a SOAP Request
Here you can see 3 variations of a SOAP request that are supported by NetSuite.
Variation A
In this variation namespace aliases are always used, as suggested by the official WSDL documentation.
<soapenv:Body>
<platformMsgs:initialize>
<platformMsgs:initializeRecord>
<platformCore:type>itemReceipt</platformCore:type>
<platformCore:rference type="purchaseOrder" internalId="123"/>
</platformMsgs:initializeRecord>
</platformMsgs:initialize>
</soapenv:Body>
Variation B
In this variation namespace aliases are used only when needed.
<soapenv:Body>
<platformMsgs:initialize xmlns:platformMsgs="urn:messages_2019_1.platform.webservices.netsuite.com">
<platformMsgs:initializeRecord xmlns:platformCore="urn:core_2019_1.platform.webservices.netsuite.com">
<platformCore:type>itemReceipt</platformCore:type>
<platformCore:reference type="purchaseOrder" internalId="123"/>
</platformMsgs:initializeRecord>
</platformMsgs:initialize>
</soapenv:Body>
Variation C
In this variation, the namespace aliases are used again only when necessary.
<soapenv:Body>
<initialize xmlns="urn:messages_2019_1.platform.webservices.netsuite.com">
<initializeRecord>
<urn1:type xmlns:urn1="urn:core_2019_1.platform.webservices.netsuite.com">itemReceipt</urn1:type>
<urn2:reference intelId="123" type="purchaseOrder" xmlns:urn2="urn:core_2019_1.platform.webservices.netsuite.com:/>
</initializeRecord>
</initialize>
</soapenv:Body>