NetSuite
API documentation
Installation​
NetSuite service (integration) is provided by Rossum.ai in the form of webhook. To start using NetSuite (either imports or exports), follow these steps:
- Login to your Rossum account.
- Navigate to Extensions → My extensions.
- Click on Create extension.
- Fill the following fields:
- Name:
SB1 NetSuite: Import/Export
- Trigger events:
Manual
(later alsoScheduled
) - Extension type:
Webhook
- URL (see below)
- Name:
- Click Create the webhook.
- Fill
Configuration
andSecrets
fields (see Integration Configuration and Import configuration or Export configuration. - (Optional) Disable retries for export webhooks (see: Considerations & Limitations)
- (Optional) Set hook
secrets_schema
value (see below)
Import endpoints​
Environment | Webhook URL |
---|---|
EU1 Ireland | https://elis.rossum.ai/svc/netsuite-v3/api/v1/import |
EU2 Frankfurt | https://shared-eu2.rossum.app/svc/netsuite-v3/api/v1/import |
US east coast | https://us.app.rossum.ai/svc/netsuite-v3/api/v1/import |
Japan Tokyo | — |
Export endpoints​
Environment | Webhook URL |
---|---|
EU1 Ireland | https://elis.rossum.ai/svc/netsuite-v3/api/v1/export |
EU2 Frankfurt | https://shared-eu2.rossum.app/svc/netsuite-v3/api/v1/export |
US east coast | https://us.app.rossum.ai/svc/netsuite-v3/api/v1/export |
Japan Tokyo | — |
Setting hook secrets_schema
value​
By default, all hooks have the following JSON schema of their secrets:
{
"type": "object",
"additionalProperties": { "type": "string" }
}
Consider changing it to the following value to clearly outline what values are supported:
{
"type": "object",
"properties": {
"consumer_key": { "type": "string", "minLength": 1 },
"consumer_secret": { "type": "string", "minLength": 1 },
"token_key": { "type": "string", "minLength": 1 },
"token_secret": { "type": "string", "minLength": 1 },
"rossum_username": { "type": "string", "minLength": 1 },
"rossum_password": { "type": "string", "minLength": 1 }
},
"additionalProperties": false
}
Probably the easiest way to achieve this is updating the hook configuration using prd
tool
System context diagram​
Useful links​
NetSuite main navigation can sometimes be very confusing as it is very customizable. Use the following paths to quickly access NetSuite resources:
- Accounts:
/app/accounting/account/accounts.nl
- Currencies:
/app/common/multicurrency/currencylist.nl
- File Cabinet
/app/common/media/mediaitemfolders.nl
- Items:
/app/common/item/itemlist.nl
- Purchase Orders:
/app/accounting/transactions/transactionlist.nl?Transaction_TYPE=PurchOrd
- Roles:
/app/setup/rolelist.nl
- Subsidiaries:
/app/common/otherlists/subsidiarylist.nl
- Vendor Bills:
/app/accounting/transactions/transactionlist.nl?Transaction_TYPE=VendBill
- Vendor Credits:
/app/accounting/transactions/transactionlist.nl?Transaction_TYPE=VendCred
- Vendors:
/app/common/entity/vendorlist.nl
Available configuration options​
The following configuration options are available:
{
// Determines whether or not NetSuite should run the configuration asynchronously. Typically,
// imports are asynchronous (since they can take hours) and exports are synchronous (they should
// take minutes).
"run_async": true,
"netsuite_settings": {
// Case sensitive NetSuite account:
"account": "XXX_SB1",
// How many concurrent operations through API can run at the same time:
"concurrency_limit": 4,
"wsdl_url": "https://XXX-sb1.suitetalk.api.netsuite.com/wsdl/v2024_1_0/netsuite.wsdl",
"service_url": "https://XXX-sb1.suitetalk.api.netsuite.com/services/NetSuitePort_2024_1",
"service_binding_name": "{urn:platform_2024_1.webservices.netsuite.com}NetSuiteBinding"
},
// Configures imports (cannot be used together with `export_configs`):
"import_configs": [
{
// Name of the dataset in Master Data Hub:
"master_data_name": "NS_SB1_Currency_v1",
// Optional configurations of the asynchronous behavior (makes sense only when
// `run_async` is true):
"async_settings": {
"retries": 5,
"max_run_time_s": 36000
},
// The actual payload of NetSuite request (closely follows NetSuite API docs):
"payload": {
"method_name": "getAll",
"method_args": [
{
"_ns_type": "GetAllRecord",
"recordType": "currency"
}
],
// Optional headers for NetSuite API request:
"method_headers": {
// NetSuite request-level search preferences (https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4170181850.html):
"searchPreferences": {
"pageSize": 100,
"bodyFieldsOnly": false,
"returnSearchColumns": false
},
// Other NetSuite request-level preferences (https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4170181850.html):
"preferences": {
"runServerSuiteScriptAndTriggerWorkflows": false
// …
}
}
}
}
// …
],
// Configures exports (cannot be used together with `import_configs`):
"export_configs": [
// Same with `import_configs`
]
}