NetFlex Web Services Version 2.0.0
Along with NetSuite Version 11.0 is the release of NetFlex Web Services Version 2.0.0. Refer to the following sections for details on all updates:
*
*
*
*
*
*
 
Important: If upgrading from older endpoints to the new 2.0 endpoint, ensure that you note field renames, type changes and other backwards incompatible changes as detailed in these release notes.
New/Updated Operations
getCustomization
The new getCustomization operation can be used to dynamically retrieve and manage the metadata for Custom Fields, Lists, and Record Types in order to handle some of the custom business logic included at the record level. The following custom objects as enumerated in the coreTypes XSD are currently supported by the getCustomization operation:
*
crmCustomField
*
customList
*
customRecordType
*
entityCustomField
*
itemCustomField
*
itemOptionCustomField
*
otherCustomField
*
transactionBodyCustomField
*
transactionColumnCustomField
Asynchronous Web Services
Web services requests can now be processed synchronously or asynchronously. In asynchronous requests, your client application sends a request to the NetSuite Web Services Platform where it is placed in a processing queue and handled asynchronously with other requests. A job ID is returned in the web services response. Your client application can then check on the status and result of the request by referencing the job ID. The status of an asynchronous submission can be checked using the new checkAsyncStatus operation. The results of an asynchronous submission can be retrieved via the new getAsyncResult operation.
Asynchronous equivalents are available for the following operations:
*
addList: asyncAddList
*
updateList: asyncUpdateList
*
deleteList: asyncDeleteList
*
getList: asyncGetList
*
search: asyncSearch
 
Note: In the initial phase of NetFlex version 2.0.0, all async operations were named by appending Async to the operation name. This caused some issues with .Net so now async is prepended to the operation name as listed above.
changePasswordOrEmail
You can now change a users email or password via the changePasswordOrEmail operation.
getItemAvailability
The new getItemAvailability operation can be used to retrieve the inventory availability for a given list of items. For each item, information such as the location, quantity on hand, quantity available, quantity back ordered, quantity committed, preferred stock level, and reorder point is returned.
You can also filter the returned list using a lastQtyAvailableChange filter. If set, only items with quantity available changes recorded as of the specified date are returned.
attach/detach
The new attach and detach operations can be used to attach or detach a contact to and from a customer record. You can invoke the attach operation by passing an AttachContactReference object that has elements to specify the recordRefs for attachTo (customer), contact and contactRole. Please note that while you can specify the role relationship for contact and customer using the attach operation, you need to return the read-only CustomerContactList on the customer record in order to view the existing contact and role relationship on the customer record.
 
Important: In this release, the attach operation can only be used to attach Contacts to Customer Records. Attempting to attach contacts to any other record type will result in a user error.
Contact Roles are roles available in a user defined list at Accounting > Lists > Other Lists. This list has been exposed as ContactRole in accounting.xsd.
Other Platform Changes
Retrieving Messages and User Notes
The messagesFromJoin, messagesJoin, messagesToJoin, and userNotesJoin joined searches can be used to retrieve notes and messages for a given record.
Web Services to UI Single Login
In this version of NetFlex Web Services, you can now design for single login between Web services applications and the NetSuite UI. For example, a partner application can submit a POST to a specific wslogin page URL with credentials and a taskId identifying the desired NetSuite page. The wslogin page authenticates the request, provides a new session and redirects to the requested page.
For authentication, the following must be provided:
*
email
*
company
*
password
*
taskID
Optionally, you can also provide the role. The post URL is: /app/webservices/wslogin.nl.
Specifying PartnerId
You can now specify a partnerId in the header of a request. This new element is a NetSuite issued Partner Id that can be used to track web services activity corresponding to a specific partner application.
Use Defaults Preference Removed
You can now no longer explicitly define a web service call to ignore default values for a field. Now, if a default value needs to be changed you should override the default with the desired values.
Note: Previously, you could define an account to ignore default values in one of two ways:
*
By deselecting the Use Defaults preference at Setup > Integration > Web Services
*
By setting the preference at the request level in the SOAP header
This change reduces potential issues where default values are an integral part of the expected business logic embedded within a record and should NOT be ignored. For example, default values can be implied by requiredness, setup, and configuration.
 
Important: This change is NOT forwards compatible. When upgrading clients from a previous endpoint, you must modify your code accordingly.
New Records
 
Note: The Bin record, exposed as InventoryItemBinNumber in the accounting.xsd, has been added subsequent to the initial phase of NetFlex version 2.0.0. In the UI, the Bin record is located at Lists > Accounting > Bins. You must enable the Bin Management feature at Accounting > Bin Management to manipulate these objects.
 
Account
Checks (*binNumber list)
Classes
CRM Custom Fields
Currency
Custom Record Custom Fields
Custom Record Types
CustomerStage
Department
Entity Custom Fields
Expense Category
Inventory Adjustment (*binNumber list)
Item Custom Field
Item Fulfillment (*binNumber list)
Item Options Custom Field
Location
Other Custom field
SupportCaseIssue
SupportCaseOrigin
SupportCasePriority
SupportCaseStatus
SupportCaseType
Transaction Body Custom Fields
Transaction Column Custom Fields
Units Type
*Bins
*Contact Role
 
 
*Sales Role
*added subsequent to the initial phase of NetFlex Version 2.0.0
Search Records:
 
EntitySearchBasic
Message Search
Note Search
Known Issues
Permissions Error
In your existing Web Services applications, you may receive an INSUFFICIENT_PERMISSION error when attempting to set some custom fields in code that could be set prior to the 11.0 upgrade of your account. These custom fields cannot be set in the UI, either. To prevent this error from occurring on mandatory fields, disable the Disable Mandatory Custom Field Validation preference at Setup > Integration > Web Services. You can also make the field settable in the UI to avoid this error.
 
Note: We recommend using a dedicated Web Services custom form for your application to decouple the Web Services permissions and validation from the UI.
Type Changes
New Types:
*
AccountingTypes:
*
AccountType
*
CurrencyCurrencyPrecision
*
CurrencyLocale
*
ItemOverallQuantityPricingType
*
ItemPreferenceCriterion
*
ItemProductFeed
*
ScheduleBCode
*
CustomizationTypes:
*
CustomizationDisplayType
*
CustomizationDynamicDefault
*
CustomizationFieldType
*
CustomizationFilterCompareType
*
CustomRecordTypePermissionsPermittedLevel
*
CustomRecordTypePermissionsRestriction
*
ItemCustomFieldItemSubType
Changes Types
*
IntCustomFieldRef > LongCustomFieldRef
*
commonTypes: changed StateAbbreviation <enumeration value="_nf"/> to <enumeration value="_nl"/>
Schema Changes
The following table lists changes in the schema that correspond to previously exposed records. Any changes related to newly exposed records are not listed here. Please refer to the Web Services Records Guide for a complete list of available fields and types associated with new records.
 
Record
Changed Fields /
Removed Fields
New Fields /
Joined Searches
Type Changes
Customer
visits > long
stage > List
*creditHoldOverride > enum
state > string
New Fields:
*accessHelp
altEmail
billPay
campaignCategory
creditCardsList
daysOverdue
defaultAddress
firstName
homePhone
isPerson
lastName
middleName
mobilePhone
overdueBalance
printOnCheckAs
requirePwdChange
*salesGroup
salutation
shipComplete
thirdPartyAcct
thirdPartyCountry
thirdPartyZipcode
title
*contactList (all fields)
*downloadList (all fields)
*salesTeamList
New Types:
CustomerStatusStage
*CustomerCreditHoldOverride
Changed Types:
ContactType: removed _contact, added _otherName
Customer (cont)
 
CustomerAddressbook:
isResidential
CustomerCreditCards:
internalId
 
Customer Category
inactive > isInactive
 
 
Customer Search
Changed Fields:
hasDupes > hasDuplicates
zip > zipCode
Removed Fields:
campaign
campaignChannel
campaignPromoCode
campaignResponse
campaignResponseCode
campaignResponseDate
targetCampaign
Joined Searches:
messagesFromJoin
messagesJoin
messagesToJoin
transactionJoin
userNotesJoin
New Fields:
ccCustomerCode
contribution
creditHoldOverride
daysOverdue
firstName
isPerson
isShipAddress
lastName
manualCreditHold
middleName
onCreditHold
overdueBalance
phoneticName
resaleNumber
salesTeamMember
salesTeamRole
salutation
shipComplete
shippingItem
country > SearchEnumMultiSelectField
state > SearchStringField
Contact
companyList
New Fields:
billpay
defaultAddress
 
Contact Category
inactive > isInactive
 
 
Contact Search
Changed Fields:
hasDupes > hasDuplicates
zip > zipCode
Removed Fields:
campaign
campaignChannel
campaignPromoCode
campaignResponse
campaignResponseDate
campaignResponseCode
targetCampaign
Joined Searches:
messagesFromJoin
messagesJoin
messagesToJoin
*salutation
transactionJoin
userNotesJoin
New Fields:
phoneticName
salutation
middleName
Changed Types:
country > SearchEnumMultiSelect
state > SearchStringField
Employee
 
New Fields:
billpay
dateCreated
defaultAddress
directDeposit
inheritIPRules
IPAddressRule
lastModifiedDate
requirePwdChange
Joined Searches:
messagesFromJoin
messagesJoin
messagesToJoin
userNotesJoin
EmployeeAddressbook:
internalID
Removed Types:
EmployeePayaccruedAccrual
EmployeeAddressList:
state > string
Employee Search
Changed Fields:
zip > zipCode
Removed Fields:
campaign
campaignChannel
campaignPromoCode
campaignResponse
campaignResponseDate
targetCampaign
template
eligibleForCommission
isTemplate
isJobResource
laborCost
middleName
phoneticName
salesRole
salutation
supportRep
type
Changed Types:
country > SearchEnumMultiSelect
state > SearchStringField
Calendar Event
 
New Fields:
company
contact
supportCase
timedEvent
New Types:
CalendarEventResponse
Calendar Event Search
 
Joined Searches:
attendeeJoin
transactionJoin
userNotesJoin
New Fields:
completedDate
 
Phone Call
 
New Fields:
company
contact
milestone
reminderMinutes
reminderType
supportCase
timedEvent
New Types:
PhoneCallReminderMinutes
PhoneCallReminderType
Phone Call Search
 
Joined Searches:
transactionJoin
userNotesJoin
New Fields:
lastModifiedDate
isPrivate
 
Task
 
New Fields:
company
contact
milestone
reminderMinutes
reminderType
supportCase
timedEvent
New Types:
TaskReminderMinutes
TaskReminderType
Task Search
 
Joined Searches:
transactionJoin
userNotesJoin
New Fields:
estimatedTime
estimatedTimeOverride
isPrivate
milestone
percentComplete
percentTimeComplete
 
Messages
 
 
Changed Types:
MediaType (added _ICON)
SupportCase
Removed Fields:
SupportCaseMessage (removed entire list)
New Fields:
helpDesk
New Types:
SupportCaseStatusStage
SupportCase Search
 
Joined Searches:
messagesJoin
userNotesJoin
New Fields:
helpDesk
locked
type
module
number
product
Changed Types:
caseNumber > SearchStringField
messageType > SearchEnumMultiSelectField
Opportunity
balance (double-check)
Joined Searches:
messagesJoin
userNotesJoin
itemList:
options
*salesTeamList (all fields)
itemList:
rate > string
revRecTermInMonths > long
Opportunity Search
Changed Fields:
modified > lastModifiedDate
amount
contribution
salesTeamMember
salesTeamRole
Changed Types:
created > dateCreated
daysOpen > SearchLongField
daysToClose > SearchLongField
number > SearchLongField
probability > SearchLongField
Sales Order
 
leadSource
quantityBackOrdered
quantityBilled
quantityCommitted
quantityFulfilled
quantityPacked
quantityPicked
revRecEndDate
recRecSchedule
recRecStartDate
*salesGroup
shipComplete
salesorderItem:
commitInventory
createPo
options
line
*salesTeamList (all fields)
Changed Types
TransactionStatus (removed many possible enums)
TransactionType (added several enums)
discountRate > string
salesorderItem:
rate > string
revRecTermInMonths > long
Removed Types
OpportunityEstimatesForecastType
New Types
SalesOrderItemCommitInventory
Journal Entry
 
*amortizationEndDate
*amortizationResidual
*amortizationSched
*amortizStartDate
 
Transaction Search
Changed Fields:
dateClosed > closeDate
modified > lastModifiedDate
created > dateCreated
poNum > otherRefNum
Removed Fields:
currency
entity
itemCount
period
total
altSalesNetAmount
anyLineItem
ccCustomerCode
contribution
customForm
giftCertificate
inVsoeBundle
isShipAddress
leadSource
quantity
salesTeamMember
salesTeamRole
shipComplete
tranIsVsoeBundle
vsoeAllocation
vsoeAmount
vsoeDeferral
vsoeDelivered
vsoePermitDiscount
vsoePrice
Changed Types:
billState > SearchStringField
daysOpen > SearchLongField
daysOverdue > SearchLongField
number > SearchLongField
parent > SearchLongField
probability > SearchLongField
revRecTermInMonths > SearchLongField
shipState > SearchStringField
Item Search
Changed Fields:
modified > lastModifiedDate
onlineCustPrice > onlineCustomerPrice
prefStockLevel > preferredStockLevel
shoppingCategory > shoppingDotComCategory
Removed Fields:
autoLeadTime
autoPreferredStockLevel
autoReorderPoint
category
class
daysBeforeExpiration
demandModifier
department
feedDescription
feedName
froogleProductFeed
giftCertAuthCode
giftCertEmail
giftCertExpDate
giftCertFrom
giftCertMsg
giftCertOrigAmt
giftCertRecipient
imageUrl
isAvailable
issueProduct
isVsoeBundle
itemUrl
lastQuantityAvailableChange
leadTime
location
manufacturer
matrixChild
minimumQuantity
mpn
nexTagCategory
nexTagProductFeed
numberAllowedDownloads
overallQuantityPricingType
Changed Types:
costingMethod > SearchEnumMultiSelectField
overallQuantityPricingType > SearchEnumMultiSelectField
Item Search (cont)
 
pageTitle
preferredStockLevelDays
pricingGroup
quantityAvailable
quantityOnOrder
quantityPricingSchedule
safetyStockLevel
safetyStockLevelDays
seasonalDemand
shippingRate
shoppingCategory
shoppingProductFeed
shopzillaCategoryId
shopzillaProductFeed
stockDescription
thumbnailUrl
totalValue
trackLandedCost
urlComponent
useMarginalRates
vsoeDeferral
vsoeDelivered
vsoePermitDiscount
vsoePrice
 
Items (All)
 
 
New Types
AccountType
CurrencyCurrencyPrecision
CurrencyLocale
ItemOverallQuantityPricingType
ItemPreferenceCriterion
ItemProductFeed
ScheduleBCode
Description Item
 
class
createdDate
department
lastModifiedDate
location
 
Discount Item
 
account
class
createdDate
deferredRevenueAccount
department
lastModifiedDate
 
Inventory Item
InventoryItemLocations:
onhandvaluemli > onHandValueMli
 
*autoLeadTime
*autoPreferredStockLevel
*autoReorderPoint
class
costUnits
createdDate
*demandModifier
department
enforceMinQtyInternally
handlingCostUnits
lastModifiedDate
*leadTime
location
manufacturer
manufacturerAddr1
manufacturerCity
manufacturerState
manufacturerTariff
manufacturerTaxId
manufacturerZip
minimumQuantity
mpn
nexTagCategory
overallQuantityPricingType
preferenceCriterion
*preferredStockLevelDays
pricingGroup
producer
productFeed
quantityPricingSchedule
quantityReorderUnits
*safetyStockLevel
*safetyStockLevelDays
scheduleBCode
scheduleBNumber
scheduleBQuantity
searchKeywords
*seasonalDemand
shippingCostUnits
shoppingDotComCategory
shopzillaCategoryId
stockDescription
trackLandedCost
*translation
*useBins
useMarginalRates
weightUnits
InventoryItemLocations:
quantityAvailable
*binNumberList (all fields)
 
Markup Item
incExpAccount > account
class
createdDate
deferredRevenueAccount
department
lastModifiedDate
location
nonPosting
 
NonInventory Purchase Items
 
class
costUnits
createdDate
department
lastModifiedDate
location
 
NonInventory Resale Item
 
class
costUnits
createdDate
department
enforceMinQtyInternally
handlingCostUnits
lastModifiedDate
location
manufacturer
manufacturerAddr1
manufacturerCity
manufacturerState
manufacturerTariff
manufacturerTaxId
manufacturerZip
minimumQuantity
minimumQuantityUnits
mpn
nexTagCategory
overallQuantityPricingType
preferenceCriterion
pricingGroup
producer
productFeed
quantityPricingSchedule
scheduleBCode
scheduleBNumber
scheduleBQuantity
searchKeywords
shippingCostUnits
shoppingDotComCategory
shopzillaCategoryId
stockDescription
useMarginalRates
weightUnits
 
NonInventory Sales Items
 
class
createdDate
department
enforceMinQtyInternally
handlingCostUnits
lastModifiedDate
location
manufacturer
manufacturerAddr1
manufacturerCity
manufacturerState
manufacturerTariff
manufacturerTaxId
manufacturerZip
minimumQuantity
minimumQuantityUnits
mpn
nexTagCategory
overallQuantityPricingType
preferenceCriterion
pricingGroup
producer
productFeed
quantityPricingSchedule
scheduleBCode
scheduleBNumber
scheduleBQuantity
searchKeywords
shippingCostUnits
shippingDotComCategory
shopzillaCategoryId
stockDescription
useMarginalRates
weightUnits
 
Other Charge Purchase Items
 
class
createdDate
department
lastModifiedDate
costUnits
 
Other Charge Resale Items
 
class
createdDate
department
enforceMinQtyInternally
lastModifiedDate
location
minimumQuantity
minimumQuantityUnits
overallQuantityPricingType
pricingGroup
quantityPricingSchedule
useMarginalRates
costUnits
 
Other Charge Sale Items
 
class
createdDate
department
enforceMinQtyInternally
lastModifiedDate
location
minimumQuantity
minimumQuantityUnits
overallQuantityPricingType
pricingGroup
quantityPricingSchedule
useMarginalRates
 
Payment Item
 
class
createdDate
department
lastModifiedDate
location
 
Service Purchase Items
 
class
createdDate
department
lastModifiedDate
location
costUnits
 
Service Resale Item
 
class
createdDate
department
enforceMinQtyInternally
lastModifiedDate
location
minimumQuantity
minimumQuantityUnits
overallQuantityPricingType
pricingGroup
quantityPricingSchedule
searchKeywords
useMarginalRates
costUnits
 
Service Sale Item
 
class
createdDate
department
enforceMinQtyInternally
lastModifiedDate
location
minimumQuantity
minimumQuantityUnits
overallQuantityPricingType
pricingGroup
quantityPricingSchedule
searchKeywords
useMarginalRates
 
Subtotal Items
 
class
createdDate
department
lastModifiedDate
location
 
Note Type
*inactive > isInactive
 
 
Lead Source
*inactive > isInactive
 
 
Term
inactive > isInactive
dateDriven
daysUntilExpiry
dayOfMonthNetDue
dueNextMonthIfWithinDays
discountPercentDateDriven
dayDiscountExpires
Changed Types:
daysUntilExpiry > long
daysUntilNetDue > long
Payment Method
*inactive > isInactive
 
 
Price Level
*inactive > isInactive
 
 
Win Loss Reason
*inactive > isInactive
 
 
Custom Record
 
messagesJoin
userNotesJoin
 
Custom Record Search
ID > internalID
 
Changed Types:
internalID > SearchMulitSelectField
*added subsequent to the initial phase of NetFlex Version 2.0.0