Skip to main content

Oracle NetSuite API Endpoints

Oracle NetSuite API Endpoints

This document catalogs the Oracle NetSuite API endpoints the integration calls, grouped by record type. It is the reference for determining whether a NetSuite API change affects the integration, for firewall allow-listing, and for understanding the integration's data flow.

NetSuite is account-specific. The account ID appears in your NetSuite dashboard URL and is the host prefix for every API call.

Item

Value

NetSuite UI

https://{AccountID}.app.netsuite.com

API host

https://{AccountID}.suitetalk.api.netsuite.com

Replace {AccountID} with your NetSuite account ID (for example, td2819981). The account ID is the value before .app.netsuite.com in the browser address bar when you are signed in to NetSuite.

API Endpoints Intro

The integration uses the NetSuite SuiteTalk REST API plus the SuiteQL query service and a NetSuite-hosted RESTlet for webhook management. Authentication is OAuth 2.0 (Machine-to-Machine client credentials).

Throughout this document, [Base URL] is the account host:

[Base URL] = https://{AccountID}.suitetalk.api.netsuite.com

The service paths under that host are:

Service

Path prefix

Used for

Record API

[Base URL]/services/rest/record/v1

Create, read, update, delete, and transform NetSuite records. This is the value entered as the API URL in the iPaaS.com Subscription Settings.

SuiteQL query

[Base URL]/services/rest/query/v1/suiteql

Read-only queries used to look up records and related data.

OAuth 2.0 token

[Base URL]/services/rest/auth/oauth2/v1/token

Issues the access token (see Authorization Endpoint).

RESTlet

[Base URL]/app/site/hosting/restlet.nl

The iPaaS.com webhook-manager script installed in NetSuite.

Record endpoints accept expandSubResources=true to return sub-records inline, and use a q= query parameter for record searches. Listing endpoints page with limit and offset.

Table of Contents

  • Customer Endpoints

  • Customer Category Endpoints

  • Item / Product Endpoints

  • Inventory Adjustment Endpoints

  • Sales Order Endpoints

  • Return Authorization (RMA) Endpoints

  • Item Fulfillment Endpoints

  • Cash Sale Endpoints

  • Cash Refund Endpoints

  • Invoice Endpoints

  • Customer Deposit Endpoints

  • Customer Payment Endpoints

  • Gift Certificate Endpoints

  • Employee Endpoints

  • Time Bill Endpoints

  • Location Endpoints

  • Payment Method Endpoints

  • Shipping Method Endpoints

  • Subsidiary Endpoints

  • Account Endpoints

  • Currency Endpoints

  • Accounting Period Endpoints

  • Unit of Measure Endpoints

  • SuiteQL Query Endpoint

  • Webhook Management (RESTlet) Endpoints

  • iPaaS Auth Details (Custom Record) Endpoints

  • Authorization Endpoint

Customer Endpoints

Create a Customer (POST)

[Base URL]/services/rest/record/v1/customer

Update a Customer (PATCH)

[Base URL]/services/rest/record/v1/customer/{id}

Get a Customer by Id (GET)

[Base URL]/services/rest/record/v1/customer/{id}?expandSubResources=true

Find a Customer by email (GET)

[Base URL]/services/rest/record/v1/customer?q=email IS "{emailAddress}"

Used to match an existing customer (the duplicate key) before create.

Poll Customers by last-modified date (GET)

[Base URL]/services/rest/record/v1/customer?limit={limit}&offset={offset}&q=lastModifiedDate ON_OR_AFTER "{from}" AND lastModifiedDate BEFORE "{to}"

Delete a Customer (DELETE)

[Base URL]/services/rest/record/v1/customer/{id}

Customer Category Endpoints

Create a Customer Category (POST)

[Base URL]/services/rest/record/v1/customerCategory

Update a Customer Category (PATCH)

[Base URL]/services/rest/record/v1/customerCategory/{id}

Get a Customer Category by Id (GET)

[Base URL]/services/rest/record/v1/customerCategory/{id}

Find a Customer Category by name (GET)

[Base URL]/services/rest/record/v1/customerCategory?q=name IS "{name}"

List Customer Categories (GET)

[Base URL]/services/rest/record/v1/customerCategory?limit={limit}&offset={offset}

Delete a Customer Category (DELETE)

[Base URL]/services/rest/record/v1/customerCategory/{id}

Item / Product Endpoints

NetSuite has a distinct record type per item type. The integration creates and updates inventory items and reads the other item types when capturing products into iPaaS.com.

Create an Inventory Item (POST)

[Base URL]/services/rest/record/v1/inventoryItem

Update an Inventory Item (PATCH)

[Base URL]/services/rest/record/v1/inventoryItem/{id}

Get an item by Id (GET)

[Base URL]/services/rest/record/v1/inventoryItem/{id}
[Base URL]/services/rest/record/v1/assemblyItem/{id}
[Base URL]/services/rest/record/v1/kititem/{id}?expandSubResources=true
[Base URL]/services/rest/record/v1/nonInventorySaleItem/{id}
[Base URL]/services/rest/record/v1/nonInventoryresaleItem/{id}
[Base URL]/services/rest/record/v1/serviceSaleItem/{id}

List items by type (GET)

[Base URL]/services/rest/record/v1/inventoryItem?limit={limit}&offset={offset}
[Base URL]/services/rest/record/v1/kititem?limit={limit}&offset={offset}

The same ?limit={limit}&offset={offset} paging applies to the other item-type record collections when capturing products.

Get an item's price list (GET)

[Base URL]/services/rest/record/v1/{itemType}/{id}/price?expandSubResources=true

Inventory Adjustment Endpoints

Create an Inventory Adjustment (POST)

[Base URL]/services/rest/record/v1/inventoryAdjustment

Used to set on-hand quantities when transferring inventory to NetSuite.

Sales Order Endpoints

Create a Sales Order (POST)

[Base URL]/services/rest/record/v1/salesorder

Update a Sales Order (PATCH)

[Base URL]/services/rest/record/v1/salesorder/{id}

Get a Sales Order by Id (GET)

[Base URL]/services/rest/record/v1/salesorder/{id}?expandSubResources=true

Find a Sales Order by the duplicate-matching field (GET)

[Base URL]/services/rest/record/v1/salesorder?q={matchingField} IS "{transactionNumber}"

The matching field is the one named by the Sales Order Duplicate Matching Field setting (default Other Reference Number).

Poll Sales Orders by last-modified date (GET)

[Base URL]/services/rest/record/v1/salesorder?limit={limit}&offset={offset}&q=lastModifiedDate ON_OR_AFTER "{from}" AND lastModifiedDate BEFORE "{to}"

Return Authorization (RMA) Endpoints

A Return Authorization is created by transforming its originating Sales Order.

Create a Return Authorization from a Sales Order (POST)

[Base URL]/services/rest/record/v1/salesOrder/{salesOrderId}/!transform/returnAuthorization

Update a Return Authorization (PATCH)

[Base URL]/services/rest/record/v1/returnAuthorization/{id}

Get a Return Authorization by Id (GET)

[Base URL]/services/rest/record/v1/returnAuthorization/{id}?expandSubResources=true

Item Fulfillment Endpoints

Create an Item Fulfillment from a Sales Order (POST)

[Base URL]/services/rest/record/v1/salesOrder/{salesOrderId}/!transform/itemFulfillment

Get an Item Fulfillment by Id (GET)

[Base URL]/services/rest/record/v1/itemFulfillment/{id}

Cash Sale Endpoints

Create a Cash Sale (POST)

[Base URL]/services/rest/record/v1/cashSale

Update a Cash Sale (PATCH)

[Base URL]/services/rest/record/v1/cashSale/{id}

Get a Cash Sale by Id (GET)

[Base URL]/services/rest/record/v1/cashSale/{id}?expandSubResources=true

Poll Cash Sales by last-modified date (GET)

[Base URL]/services/rest/record/v1/cashSale?limit={limit}&offset={offset}&q=lastModifiedDate ON_OR_AFTER "{from}" AND lastModifiedDate BEFORE "{to}"

Cash Refund Endpoints

Create a Cash Refund (POST)

[Base URL]/services/rest/record/v1/cashRefund

Update a Cash Refund (PATCH)

[Base URL]/services/rest/record/v1/cashRefund/{id}

Get a Cash Refund by Id (GET)

[Base URL]/services/rest/record/v1/cashRefund/{id}?expandSubResources=true

Invoice Endpoints

Get an Invoice by Id (GET)

[Base URL]/services/rest/record/v1/invoice/{id}?expandSubResources=true

Invoices are read from NetSuite when capturing them into iPaaS.com.

Customer Deposit Endpoints

Create a Customer Deposit (POST)

[Base URL]/services/rest/record/v1/customerdeposit

Get a Customer Deposit by Id (GET)

[Base URL]/services/rest/record/v1/customerdeposit/{id}?expandSubResources=true

Customer Payment Endpoints

Create a Customer Payment (POST)

[Base URL]/services/rest/record/v1/customerpayment

Update a Customer Payment (PATCH)

[Base URL]/services/rest/record/v1/customerpayment/{id}

Gift Certificate Endpoints

Poll Gift Certificates by last-modified date (GET)

[Base URL]/services/rest/record/v1/giftCertificate?limit={limit}&offset={offset}&q=lastModifiedDate ON_OR_AFTER "{from}"

Employee Endpoints

Create an Employee (POST)

[Base URL]/services/rest/record/v1/employee

Update an Employee (PATCH)

[Base URL]/services/rest/record/v1/employee/{id}

Get an Employee by Id (GET)

[Base URL]/services/rest/record/v1/employee/{id}

Find an Employee (GET)

[Base URL]/services/rest/record/v1/employee?q=email IS "{email}"
[Base URL]/services/rest/record/v1/employee?q=firstName IS "{firstName}" AND lastName IS "{lastName}"
[Base URL]/services/rest/record/v1/employee?q=externalId IS "{id}"

Time Bill Endpoints

Create a Time Bill (POST)

[Base URL]/services/rest/record/v1/timeBill

Update a Time Bill (PATCH)

[Base URL]/services/rest/record/v1/timeBill/{id}

Find a Time Bill by external Id (GET)

[Base URL]/services/rest/record/v1/timeBill?q=externalId IS "{externalId}"

Location Endpoints

Get a Location by Id (GET)

[Base URL]/services/rest/record/v1/location/{id}?expandSubResources=true

Find a Location by name (GET)

[Base URL]/services/rest/record/v1/location?q=name CONTAIN "{name}"
[Base URL]/services/rest/record/v1/location?q=name IS "{name}"

List Locations (GET)

[Base URL]/services/rest/record/v1/location?limit={limit}&offset={offset}

Get a Location's Subsidiary (GET)

[Base URL]/services/rest/record/v1/location/{id}/subsidiary

Payment Method Endpoints

Get a Payment Method by Id (GET)

[Base URL]/services/rest/record/v1/paymentMethod/{id}

Find a Payment Method by name (GET)

[Base URL]/services/rest/record/v1/paymentMethod?q=name IS "{name}"

List Payment Methods (GET)

[Base URL]/services/rest/record/v1/paymentMethod?limit={limit}&offset={offset}

Shipping Method Endpoints

List Shipping Methods (GET)

[Base URL]/services/rest/record/v1/shipitem?limit={limit}&offset={offset}

Get a Shipping Method by Id (GET)

[Base URL]/services/rest/record/v1/shipitem/{id}

Subsidiary Endpoints

Get a Subsidiary by Id (GET)

[Base URL]/services/rest/record/v1/subsidiary/{id}

Find a Subsidiary by name (GET)

[Base URL]/services/rest/record/v1/subsidiary?q=name IS "{name}"

List Subsidiaries (GET)

[Base URL]/services/rest/record/v1/subsidiary

Account Endpoints

Find a GL Account by name (GET)

[Base URL]/services/rest/record/v1/account?limit=1&q=acctName='{name}'

Used to resolve the posting account for inventory adjustments.

Currency Endpoints

Find a Currency by symbol (GET)

[Base URL]/services/rest/record/v1/currency?q=symbol IS {currencyCode}

Accounting Period Endpoints

Get an Accounting Period by Id (GET)

[Base URL]/services/rest/record/v1/accountingPeriod/{id}?expandSubResources=true

Used to validate that a transaction date falls in an open posting period.

Unit of Measure Endpoints

Get a unit of measure for a units type (GET)

[Base URL]/services/rest/record/v1/unitsType/{unitsTypeId}/uom/{unit}

SuiteQL Query Endpoint

Run a SuiteQL query (POST)

[Base URL]/services/rest/query/v1/suiteql

The integration uses SuiteQL for read-only lookups of records and related data (for example, resolving matrix options, gift-certificate codes, and related records). The query is supplied in the request body.

Webhook Management (RESTlet) Endpoints

The iPaaS.com webhook-manager RESTlet, installed in NetSuite per the Oracle NetSuite Connections and Settings document, manages the NetSuite-side webhook subscriptions that drive automatic inbound (TO iPaaS.com) transfers.

Read webhook subscription configuration (GET)

[Base URL]/app/site/hosting/restlet.nl?script=customscript_otg_ipaas_webhook_manager&deploy=customdeploy_otg_ipaas_webhook_manager

Create or update a webhook subscription (POST)

[Base URL]/app/site/hosting/restlet.nl?script=customscript_otg_ipaas_webhook_manager&deploy=customdeploy_otg_ipaas_webhook_manager

iPaaS Auth Details (Custom Record) Endpoints

The iPaaS Auth Details custom record stores the iPaaS.com webhook URL and API key used by the NetSuite-side webhook scripts.

Get an iPaaS Auth Details record by Id (GET)

[Base URL]/services/rest/record/v1/customrecord_otg_ipaas_auth_details/{id}

List iPaaS Auth Details records (GET)

[Base URL]/services/rest/record/v1/customrecord_otg_ipaas_auth_details

Update an iPaaS Auth Details record (PATCH)

[Base URL]/services/rest/record/v1/customrecord_otg_ipaas_auth_details/{id}

Authorization Endpoint

The integration authenticates with OAuth 2.0 Machine-to-Machine (client credentials), exchanging a signed assertion for an access token.

Request an access token (POST)

[Base URL]/services/rest/auth/oauth2/v1/token

The token request uses the client_credentials grant. Credentials (Consumer ID, Certificate ID, and the certificate private key) are configured in the iPaaS.com Subscription Settings; see the Oracle NetSuite Connections and Settings document for the certificate generation and upload steps.

Related Documents

External References

Did this answer your question?