Integrate iPaaS.com with NetSuite to enable seamless data synchronization for customers, products and inventory, transactions, and related records. This article is the ongoing reference for the connection — what each setting does, how authentication works, and what is required. For the first-time, step-by-step setup (including the NetSuite bundle, certificate generation, and the supporting customizations), see NetSuite Installation Instructions.
How to Connect
Prerequisites
Before you can connect to NetSuite, the prerequisite IPaaS webhooks bundle must be installed in your NetSuite account — see The NetSuite iPaaS.com Bundle. The bundle provisions the webhook scripts, custom fields, and custom records the integration relies on.
Configuration Details
You will need the following to connect (all are produced during the NetSuite setup described in NetSuite Installation Instructions):
Account ID: your NetSuite account identifier, taken from your NetSuite dashboard URL.
API URL: the base URL for NetSuite REST access, in the format
https://{AccountID}.suitetalk.api.netsuite.com/services/rest/record/v1.Consumer ID: generated during NetSuite OAuth 2.0 Machine-to-Machine (M2M) authentication setup.
Certificate ID: generated when you create and upload your OpenSSL certificate in NetSuite.
Certificate Private Key: the private key from your OpenSSL certificate.
Environment: only Production is supported.
Configure Subscription Settings
Configure your subscription in iPaaS.com using the fields below. The connection fields at the top are required to establish the NetSuite connection. The remaining fields are optional operational presets — they ship with the integration and only need to be set (or changed from their shipped value) when you use the feature each one controls. Fields are grouped by area: connection, inventory, product and pricing, transactions, and gift certificates.
Field | Description | Required | Example |
Name | A unique name for the subscription. | Yes | NetSuite - Production |
Versions | Select the latest version from the dropdown. | Yes | v1.0 |
API URL | Base URL for NetSuite REST access. | Yes | |
Account ID | Unique identifier for your NetSuite account. | Yes | td2819981 |
Consumer ID | Client (consumer) ID from NetSuite OAuth 2.0 Machine-to-Machine (M2M) setup. | Yes | Provided after setup |
Certificate ID | ID of the OpenSSL certificate you created and uploaded in NetSuite. | Yes | Provided after setup |
Certificate Private Key | Private key from your OpenSSL certificate. | Yes | Provided after setup |
Environment | Deployment environment. Only Production is currently supported. | No | Production |
Inventory Search Days | Polling window, in days, used when checking NetSuite for inventory updates. | No | 1 |
Inventory SuiteQL Table Name | Name of the NetSuite SuiteQL table the integration queries for inventory balances. Required if you synchronize inventory — inventory transfers fail with an error when it is blank. | Conditional (required to sync inventory) | InventoryBalance |
Compare With QtyOnHand | Set to true to compare quantities against NetSuite's Quantity On Hand before applying an inventory update. | No | true |
USE BINS (TRUE/FALSE) | Set to true to process bin-level inventory for bin-managed items. | No | false |
Poll Time Adjustment | A whole number of hours to shift the inventory polling window back, correcting for a time-zone difference between your NetSuite account and iPaaS.com. iPaaS.com records each inventory poll in UTC, while NetSuite records an item's last inventory-change time in your NetSuite account's time zone; when the two differ, a recent change can fall just outside the window a poll checks and be missed until the item changes again. Set it to the number of hours your NetSuite account time is behind UTC. Leave blank unless inventory updates are being missed. See Correcting missed inventory updates below. | No | 4 |
CATEGORY LIST ID | Internal ID of the NetSuite custom list that holds your product categories. Set it to capture product categories (and their parent categories) onto products. | No | customlist_ag_commerce_categories_list |
CHECK PRODUCT DUPLICATION BY | How an incoming product is matched to an existing NetSuite item. Leave blank to match by SKU only; set it to combine SKU and name (for example Sku+Name, or a value beginning with Name+ to match on name first). | No | Sku+Name |
Customer Pricing Source | Controls whether an individual customer's NetSuite pricing group, price level, or one-then-the-other is captured into iPaaS.com customer categories: PRICE_GROUP_ONLY (default) uses the pricing group only; PRICE_LEVEL_ONLY uses the price level only (with the Default Price Level fallback below); GROUP_THEN_LEVEL uses the pricing group, otherwise the price level; LEVEL_THEN_GROUP uses the price level, otherwise the pricing group. See NetSuite Customer To iPaaS.com Mapping Documentation. | No | PRICE_GROUP_ONLY |
Customer Company Pricing Source | The same pricing-source choice, applied to company (organization) customers. | No | GROUP_THEN_LEVEL |
Default Price Level | Price level captured as a fallback when a customer has no specific price level; used with the price-level pricing sources above. | No | Base Price |
Price List Field Separator | Character that separates the fields within a single price entry when price lists are formatted. | No | , |
Price List Record Delimiter | Character that separates one price entry from the next when price lists are formatted. | No | | |
Sales Order Duplicate Matching Field | The NetSuite Sales Order field the integration queries to find an existing order by its transaction number, preventing duplicate orders. Set it to a queryable field such as otherRefNum. Leave blank to rely only on the stored external-ID link. | No | otherRefNum |
Gift Certificate Poll Search Days | Polling window, in days, used when checking NetSuite for gift-certificate updates. Defaults to 5 when left blank. | No | 5 |
Exclude RMA lines by Internal Item IDs | A comma-separated list of NetSuite internal item IDs to leave off a Return Merchandise Authorization (RMA). When an order is returned, the integration adds the order's non-returned items to the RMA as zero-quantity lines so it reflects the full original order; some item types (for example certain non-inventory or service items) cannot be sent with a quantity of zero and would cause the RMA to fail. List those items' internal IDs here so they are omitted from the RMA instead. An item's Internal ID is shown on the item record in NetSuite under Lists → Items → Items. Leave blank if no items need to be excluded. | No | 12724, 8180 |
Most of these presets ship with a starter value in the integration template. Review the ones for the features you use — inventory, product categories, pricing, and duplicate matching in particular — and replace any placeholder value with the value for your NetSuite account before go-live. If you are unsure of a setting's effect, consult your MiSP (Managed Integration Service Provider) or implementation partner before changing it on a live subscription.
Correcting missed inventory updates
If inventory changes in NetSuite are not consistently reflected in iPaaS.com, the cause is usually a time-zone difference between your NetSuite account and iPaaS.com. iPaaS.com timestamps each inventory poll in UTC, while NetSuite timestamps an item's last inventory-change in your NetSuite account's time zone. When those clocks differ, a change made shortly before a poll can fall just outside the window the poll checks and be skipped until the item changes again. The Poll Time Adjustment setting corrects this by shifting the polling window back by a fixed number of hours.
To determine and confirm the correct value:
Find your NetSuite time zone. In NetSuite, the account default is under Setup → Company → General Preferences → Time Zone. Each user's own time zone is under Home → Set Preferences → General → Time Zone — inventory-change times are read in the time zone of the user connected to iPaaS.com.
Compare it to UTC. The adjustment is the number of whole hours your NetSuite time is behind UTC — for example, US Eastern is about 4–5 hours and US Pacific about 7–8 hours behind UTC (the exact figure depends on daylight saving time).
Confirm it with your own data (optional). Add a formula mapping to your inventory Update To iPaaS.com mapping collection whose formula returns the current UTC time —
return DateTime.UtcNow.ToString("yyyy-MM-dd HH:mm");— and map it to a field you can view in iPaaS.com. After an inventory sync, compare that UTC value to the same item's Last Quantity Available Change time in NetSuite; the whole-hour difference between them is your Poll Time Adjustment.Set the value in Poll Time Adjustment, then confirm the previously missed changes now transfer.
Because the value is a fixed whole number of hours, revisit it whenever daylight saving time changes your offset from UTC.
Authentication Methods
NetSuite authentication uses OAuth 2.0 Client Credentials (Machine-to-Machine) with a client certificate:
A NetSuite integration record is created with Client Credentials (M2M) Grant, RESTlets, and REST Web Services enabled.
An OpenSSL certificate is generated and uploaded to NetSuite's OAuth 2.0 Client Credentials (M2M) Setup, mapped to the integration application and an Administrator role.
NetSuite returns a Consumer ID, Certificate ID, and Certificate Private Key, which are entered into the iPaaS.com Subscription Settings above. iPaaS.com uses them to obtain an access token for each NetSuite REST call.
The complete, step-by-step certificate generation and upload procedure (with screenshots) is in NetSuite Installation Instructions. To rotate credentials, generate a new certificate, upload it in NetSuite, and update the Certificate ID and Certificate Private Key in the Subscription Settings.
Initialization Support
The following reference data types support initialization and can be transferred in bulk:
Alternate Id Type TO iPaaS.com
Customer Category TO iPaaS.com
Location TO iPaaS.com
Payment Method TO iPaaS.com
Shipping Method TO iPaaS.com
Other record types — customers, products and the other item types, and transactions — are not bulk-initialized; they transfer on demand from the Manual Sync page or on their create/update events. See NetSuite Known Limitations for details.
Throttling
Throttling ensures NetSuite's API is not overwhelmed by excessive API calls, preserving system performance during heavy data transfers. The throttling fields are required, but their values are pre-populated by the integration settings. For more details, see Subscription Configuration – Edit.

