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 |
|
API host |
|
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.comThe service paths under that host are:
Service | Path prefix | Used for |
Record API |
| 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 |
| Read-only queries used to look up records and related data. |
OAuth 2.0 token |
| Issues the access token (see Authorization Endpoint). |
RESTlet |
| 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=trueFind 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=trueInventory 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=trueFind 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/returnAuthorizationUpdate 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=trueItem Fulfillment Endpoints
Create an Item Fulfillment from a Sales Order (POST)
[Base URL]/services/rest/record/v1/salesOrder/{salesOrderId}/!transform/itemFulfillmentGet 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=truePoll 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=trueInvoice Endpoints
Get an Invoice by Id (GET)
[Base URL]/services/rest/record/v1/invoice/{id}?expandSubResources=trueInvoices 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=trueCustomer 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=trueFind 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}/subsidiaryPayment 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=trueUsed 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
