Configuring Netsuite as the Source: A Comprehensive Guide
Overview
This guide provides a detailed walkthrough for configuring Oracle NetSuite as a data source in eZintegrations. It explains how to set up API connections, define business objects, configure pagination, and implement OAuth authentication.
By following these steps, users can establish a secure and efficient integration between NetSuite and eZintegrations.
Data Source
Step 1
On the Data Source page, select the source type as API.
Step 2
Select Oracle NetSuite as the product.
Step 3
Choose the appropriate business object based on your integration requirements.
Note: If the required product or business object is not available, select Create New in the product name field and provide the necessary configuration details.
Note: Selecting Create New requires users to enter all mandatory API configuration details.
Step 4
After selecting the business object, for example, Customer Retrieve API (Version: v1) (Method: GET), all related information for the Oracle NetSuite API is populated in the respective fields.
In this case, Headers and Pre-request Script fields are automatically populated.
If the HTTP method is configured as GET and the API endpoint URL field is populated, use the following format:
{{base_url}}/services/rest/record/{{version}}/customer/{{customer_id}}?fields=entityId,companyName,entityStatus,salesRep
Provide the following values:
- base_url: Replace
{{base_url}}with your NetSuite instance base URL
Example: https://123456.suitetalk.api.netsuite.com - version: Replace
{{version}}with the API version
Example: 2021.1 - customer_id: Replace
{{customer_id}}with the customer record ID
Example: 12345
Params
- limit: Specifies the maximum number of records to return.
{%max_num%}is interpolated from Numeric Params. - offset: Specifies the starting record position.
{%min_num%}is interpolated from Numeric Params.
Headers
- Authorization: Uses
{%signature%}. This value should not be modified. - Prefer: Set to
transientto indicate non-cached responses. - Content-Type: Set to
application/json.
Step 5: Pagination (Offset Pagination)
Offset pagination is applied when "hasMore": true is present in the API response.
- Select offset pagination from the dropdown.
- Oracle NetSuite typically uses offset pagination.
- The
hasMorekey is used as the User Key. - The Key Name to Update is set to
offset. - The Data Collection Key contains response data, for example
['items'].
Step 6: Pre-Request Script
In the Pre-request Script tab, enter the following details:
- url: Full API endpoint URL
- oauth_consumer_id: OAuth consumer ID
- oauth_consumer_key: OAuth consumer key
- oauth_consumer_secret: OAuth consumer secret
- oauth_token: OAuth token
- oauth_token_secret: OAuth token secret
- request_method: HTTP request method
Script
import datetime
import random
import string
import hashlib
import base64
import hmac
import urllib
oauth_consumer_id = ‘{{consumer_id}}’ Provide Values
oauth_consumer_key = ‘{{consumer_key}}’ Provide Values
oauth_consumer_secret ='{{consumer_secret}}’ Provide Values
oauth_token ='{{token}}’ Provide Values
oauth_token_secret ='{{token_secret}}’ Provide Values
request_method = ‘{{method}}’
url = ‘{{Endpoint URL}}’
oauth_signature_method = ‘HMAC-SHA256’
oauth_timestamp = str(int(datetime.datetime.now().timestamp()))
oauth_nonce = ”.join(random.choices(string.ascii_letters + string.digits, k = 11))
oauth_version = ‘1.0’
normalized_request_method = request_method.replace(‘ ‘, ”)
normalized_string_url = urllib.parse.quote(url, safe = ”)
normalized_params = {
‘oauth_consumer_key’: oauth_consumer_key,
‘oauth_token’: oauth_token,
‘oauth_signature_method’: oauth_signature_method,
‘oauth_timestamp’: oauth_timestamp,
‘oauth_nonce’: oauth_nonce,
‘oauth_version’: oauth_version,
‘limit’: max_num,
‘offset’: min_num
}
sorted_params = dict(sorted(normalized_params.items()))
normalized_string_parmas = [k+’=’+v for k,v in sorted_params.items()]
normalized_string_parmas = ‘&’.join([str(elem) for elem in normalized_string_parmas])
normalized_string_parmas.replace(‘ ‘,”)
normalized_string_parmas = urllib.parse.quote(normalized_string_parmas, safe = ”)
base_string = request_method + ‘&’ + normalized_string_url + ‘&’ + normalized_string_parmas
base_string = str.encode(base_string)
signature_key = oauth_consumer_secret + ‘&’ + oauth_token_secret
signature_key = str.encode(signature_key)
oauth_signature = hmac.new(signature_key, base_string, hashlib.sha256)
oauth_signature.hexdigest()
oauth_signature = base64.b64encode(oauth_signature.digest())
oauth_signature = oauth_signature.decode(‘UTF-8’)
oauth_signature = urllib.parse.quote(oauth_signature, safe = ”)
signature =’OAuth realm=”‘f'{oauth_consumer_id}”,oauth_consumer_key=”‘f'{oauth_consumer_key}”,oauth_token=”‘f'{oauth_token}”,oauth_signature_method=”‘f'{oauth_signature_method}”,oauth_timestamp=”‘f'{oauth_timestamp}”,oauth_nonce=”‘f'{oauth_nonce}”,oauth_version=”‘f'{oauth_version}”,oauth_signature=”‘f'{oauth_signature}”‘
How to Configure / How to Use
After completing all required configuration fields, headers, parameters, pagination settings, and pre-request scripts, users can test and establish the connection to Oracle NetSuite.
Once validated, the configured source can be used in integration workflows.
Troubleshooting
If the NetSuite source configuration does not work as expected, verify the following:
- Ensure the base URL and API version are correct
- Confirm OAuth credentials are valid
- Verify pagination parameters are configured properly
- Check that required headers are present
Frequently Asked Questions
What is required to configure NetSuite as a source?
Users must provide the NetSuite API endpoint, OAuth credentials, headers, parameters, and pagination settings.
Which authentication method is used?
Oracle NetSuite uses OAuth 1.0 authentication with HMAC-SHA256 signatures.
Does NetSuite support offset pagination?
Yes, Oracle NetSuite typically uses offset-based pagination with the hasMore indicator.
Can custom business objects be created?
Yes, users can create new products and business objects using the Create New option.
Where can I find my Client ID and Secret?
These credentials are available in the My Profile section of your Bizdata account.
Notes
This configuration guide is intended for users integrating Oracle NetSuite as a data source using eZintegrations.
Only the steps and features described in this document are supported.