Oracle NetSuite
Keep Oracle NetSuite in step with your orders, stock and finance, with the right person approving every posting.
62 ways to read, 56 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with Oracle NetSuite, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create class (classification)
classifications.createApproval by rule - Create contact
contacts.createApproval by rule - List general ledger accounts
accounts.listRead
Example flow
- BambooHR · Read employee directory
employee_directory.listDone - Oracle NetSuite · Upsert employee by external ID
employees.upsertMaker-checker - Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches Oracle NetSuite.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to Oracle NetSuite
- Oracle NetSuite's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect your own account when you are ready to go live.
For developers
Technical detail
Adds NetSuite customers, contacts, quotes, opportunities, orders, returns, purchasing, billing, credits, journals, items, vendors, employees, accounts, reference data and SuiteQL.
Oracle API docs- Source actions
- 62
- Destination actions
- 56
- Data types
- 36
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
accounts2
- Get general ledger accountSource
A general ledger account with all body fields and custom fields.
- List general ledger accountsSource
General ledger accounts from SuiteQL, ordered by internal ID, with optional exact-match filters.
bank transactions1
- List bank transactionsSourceIncremental
Posted lines on bank accounts (deposits, checks, transfers, payments and journals that hit a bank account) from SuiteQL, ordered by transaction and line.
cash sales2
- Get cash saleSource
A cash sale with body fields, sublist lines and custom fields.
- List cash salesSourceIncremental
Cash sales from SuiteQL (transaction type CashSale), ordered by internal ID.
classifications5
- Create class (classification)DestinationNot retried automaticallyApproval before production
Creates a class (classification); the internal ID is returned from the Location header.
- Get class (classification)Source
A class (classification) with all body fields and custom fields.
- List classes (classifications)Source
Classes (classifications) from SuiteQL, ordered by internal ID.
- Update class (classification)DestinationProvider duplicate protectionApproval before production
Updates supplied fields on a class (classification) by internal ID (PATCH).
- Upsert class (classification) by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a class (classification) keyed by external ID (PUT eid:).
contacts5
- Create contactDestinationNot retried automaticallyApproval before production
Creates a contact; the internal ID is returned from the Location header.
- Get contactSource
A contact with all body fields and custom fields.
- List contactsSourceIncremental
Contacts from SuiteQL, ordered by internal ID, with optional exact-match filters.
- Update contactDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a contact by internal ID (PATCH).
- Upsert contact by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a contact keyed by external ID (PUT eid:).
credit memos3
- Create credit memoDestinationNot retried automaticallyApproval before production
Creates a customer credit memo with item lines. It posts to the general ledger like any credit memo; no refund is issued.
- Get credit memoSource
A credit memo with body fields, sublist lines and custom fields.
- List credit memosSourceIncremental
Credit memos from SuiteQL (transaction type CustCred), ordered by internal ID.
currencies2
- Get currencySource
A currency with all body fields and custom fields.
- List currenciesSource
Currencies from SuiteQL, ordered by internal ID.
customer payments5
- Create customer paymentDestinationNot retried automaticallyApproval before production
Creates a customer payment. NetSuite returns the new internal ID in the Location header.
- Get customer paymentSource
A customer payment with body fields, sublist lines and custom fields.
- List customer paymentsSourceIncremental
Customer payments from SuiteQL (transaction type CustPymt), ordered by internal ID.
- Update customer paymentDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a customer payment by internal ID (PATCH).
- Upsert customer payment by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a customer payment keyed by external ID (PUT eid:).
customers6
- Create customerDestinationNot retried automaticallyApproval before production
Creates a customer; the internal ID is returned from the Location header.
- Get customerSource
A customer with all body fields and custom fields.
- List CustomersSource
List operation for Customers.
- Search customersSourceIncremental
Customers from SuiteQL, ordered by internal ID, with optional exact-match filters.
- Update customerDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a customer by internal ID (PATCH).
- Upsert customer by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a customer keyed by external ID (PUT eid:).
departments5
- Create departmentDestinationNot retried automaticallyApproval before production
Creates a department; the internal ID is returned from the Location header.
- Get departmentSource
A department with all body fields and custom fields.
- List departmentsSource
Departments from SuiteQL, ordered by internal ID.
- Update departmentDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a department by internal ID (PATCH).
- Upsert department by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a department keyed by external ID (PUT eid:).
employees5
- Create employeeDestinationNot retried automaticallyApproval before production
Creates a employee; the internal ID is returned from the Location header.
- Get employeeSource
A employee with all body fields and custom fields.
- List employeesSourceIncremental
Employees from SuiteQL, ordered by internal ID.
- Update employeeDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a employee by internal ID (PATCH).
- Upsert employee by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a employee keyed by external ID (PUT eid:).
estimates5
- Create estimate (quote)DestinationNot retried automaticallyApproval before production
Creates a estimate (quote). NetSuite returns the new internal ID in the Location header.
- Get estimate (quote)Source
A estimate (quote) with body fields, sublist lines and custom fields.
- List estimatesSourceIncremental
Estimates from SuiteQL (transaction type Estimate), ordered by internal ID.
- Update estimate (quote)DestinationProvider duplicate protectionApproval before production
Updates supplied fields on a estimate (quote) by internal ID (PATCH).
- Upsert estimate (quote) by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a estimate (quote) keyed by external ID (PUT eid:).
invoice payments1
- Record payment against an invoiceDestinationNot retried automaticallyApproval before production
Records a customer payment already received against one open invoice, by transforming the invoice into a customer payment (record transformation). No money is collected or moved.
invoices with lines1
- List invoices with linesSourceIncremental
Invoices with their item and expense lines from one SuiteQL query (transaction type CustInvc), ordered by internal ID.
invoices5
- Create invoiceDestinationNot retried automaticallyApproval before production
Creates a invoice. NetSuite returns the new internal ID in the Location header.
- Get invoiceSource
A invoice with body fields, sublist lines and custom fields.
- List invoicesSourceIncremental
Invoices from SuiteQL (transaction type CustInvc), ordered by internal ID.
- Update invoiceDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a invoice by internal ID (PATCH).
- Upsert invoice by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a invoice keyed by external ID (PUT eid:).
item fulfillments2
- Get item fulfillmentSource
A item fulfillment with body fields, sublist lines and custom fields.
- List item fulfillmentsSourceIncremental
Item fulfillments from SuiteQL (transaction type ItemShip), ordered by internal ID.
item receipts2
- Get item receiptSource
A item receipt with body fields, sublist lines and custom fields.
- List item receiptsSourceIncremental
Item receipts from SuiteQL (transaction type ItemRcpt), ordered by internal ID.
items5
- Create inventory or non-inventory itemDestinationNot retried automaticallyApproval before production
Creates a inventory or non-inventory item; the internal ID is returned from the Location header.
- Get inventory or non-inventory itemSource
A inventory or non-inventory item with all body fields and custom fields.
- List inventory and non-inventory itemsSourceIncremental
Inventory and non-inventory items from SuiteQL, ordered by internal ID.
- Update inventory or non-inventory itemDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a inventory or non-inventory item by internal ID (PATCH).
- Upsert inventory or non-inventory item by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a inventory or non-inventory item keyed by external ID (PUT eid:).
journal entries5
- Create journal entryDestinationNot retried automaticallyApproval before production
Creates a journal entry. NetSuite returns the new internal ID in the Location header.
- Get journal entrySource
A journal entry with body fields, sublist lines and custom fields.
- List journal entriesSourceIncremental
Journal entries from SuiteQL (transaction type Journal), ordered by internal ID.
- Update journal entryDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a journal entry by internal ID (PATCH).
- Upsert journal entry by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a journal entry keyed by external ID (PUT eid:).
locations5
- Create locationDestinationNot retried automaticallyApproval before production
Creates a location; the internal ID is returned from the Location header.
- Get locationSource
A location with all body fields and custom fields.
- List locationsSource
Locations from SuiteQL, ordered by internal ID.
- Update locationDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a location by internal ID (PATCH).
- Upsert location by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a location keyed by external ID (PUT eid:).
opportunities5
- Create opportunityDestinationNot retried automaticallyApproval before production
Creates a opportunity. NetSuite returns the new internal ID in the Location header.
- Get opportunitySource
A opportunity with body fields, sublist lines and custom fields.
- List opportunitiesSourceIncremental
Opportunities from SuiteQL (transaction type Opprtnty), ordered by internal ID.
- Update opportunityDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a opportunity by internal ID (PATCH).
- Upsert opportunity by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a opportunity keyed by external ID (PUT eid:).
purchase orders with lines1
- List purchase orders with linesSourceIncremental
Purchase orders with their item and expense lines from one SuiteQL query (transaction type PurchOrd), ordered by internal ID.
purchase orders5
- Create purchase orderDestinationNot retried automaticallyApproval before production
Creates a purchase order. NetSuite returns the new internal ID in the Location header.
- Get purchase orderSource
A purchase order with body fields, sublist lines and custom fields.
- List purchase ordersSourceIncremental
Purchase orders from SuiteQL (transaction type PurchOrd), ordered by internal ID.
- Update purchase orderDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a purchase order by internal ID (PATCH).
- Upsert purchase order by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a purchase order keyed by external ID (PUT eid:).
records4
- Create recordDestinationNot retried automaticallyApproval before production
Creates a record of a supported type from record API JSON.
- Get recordSource
Any supported NetSuite record by type and internal ID, with sublists.
- Update recordDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a record by internal ID (PATCH).
- Upsert record by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a record keyed by external ID (PUT eid:).
return authorizations5
- Create return authorizationDestinationNot retried automaticallyApproval before production
Creates a return authorization. NetSuite returns the new internal ID in the Location header.
- Get return authorizationSource
A return authorization with body fields, sublist lines and custom fields.
- List return authorizationsSourceIncremental
Return authorizations from SuiteQL (transaction type RtnAuth), ordered by internal ID.
- Update return authorizationDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a return authorization by internal ID (PATCH).
- Upsert return authorization by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a return authorization keyed by external ID (PUT eid:).
sales orders with lines1
- List sales orders with linesSourceIncremental
Sales orders with their item and expense lines from one SuiteQL query (transaction type SalesOrd), ordered by internal ID.
sales orders5
- Create sales orderDestinationNot retried automaticallyApproval before production
Creates a sales order. NetSuite returns the new internal ID in the Location header.
- Get sales orderSource
A sales order with body fields, sublist lines and custom fields.
- List sales ordersSourceIncremental
Sales orders from SuiteQL (transaction type SalesOrd), ordered by internal ID.
- Update sales orderDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a sales order by internal ID (PATCH).
- Upsert sales order by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a sales order keyed by external ID (PUT eid:).
subsidiaries2
- Get subsidiarySource
A subsidiary with all body fields and custom fields.
- List subsidiariesSource
Subsidiaries from SuiteQL, ordered by internal ID.
suiteql1
- Query records with SuiteQLSourceIncremental
Selects validated columns from an allow-listed SuiteQL table with equality filters. Nexra builds the SQL; raw SQL is never accepted.
terms2
- Get payment termSource
A payment term with all body fields and custom fields.
- List payment termsSource
Payment terms from SuiteQL, ordered by internal ID.
transaction lines1
- List transaction linesSource
Item and expense lines of one transaction from SuiteQL (main line excluded).
vendor bills with lines1
- List vendor bills with linesSourceIncremental
Vendor bills with their item and expense lines from one SuiteQL query (transaction type VendBill), ordered by internal ID.
vendor bills5
- Create vendor billDestinationNot retried automaticallyApproval before production
Creates a vendor bill. NetSuite returns the new internal ID in the Location header.
- Get vendor billSource
A vendor bill with body fields, sublist lines and custom fields.
- List vendor billsSourceIncremental
Vendor bills from SuiteQL (transaction type VendBill), ordered by internal ID.
- Update vendor billDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a vendor bill by internal ID (PATCH).
- Upsert vendor bill by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a vendor bill keyed by external ID (PUT eid:).
vendor credits2
- Get vendor creditSource
A vendor credit with body fields, sublist lines and custom fields.
- List vendor creditsSourceIncremental
Vendor credits from SuiteQL (transaction type VendCred), ordered by internal ID.
vendor payments1
- List vendor paymentsSourceIncremental
Vendor payments from SuiteQL (transaction type VendPymt), ordered by internal ID.
vendors5
- Create vendorDestinationNot retried automaticallyApproval before production
Creates a vendor; the internal ID is returned from the Location header.
- Get vendorSource
A vendor with all body fields and custom fields.
- List vendorsSourceIncremental
Vendors from SuiteQL, ordered by internal ID.
- Update vendorDestinationProvider duplicate protectionApproval before production
Updates supplied fields on a vendor by internal ID (PATCH).
- Upsert vendor by external IDDestinationProvider duplicate protectionApproval before production
Creates or updates a vendor keyed by external ID (PUT eid:).
Access and limits
- Authentication
- NetSuite OAuth 2.0 access token (same credential as the built-in adapter)
- Plans and access
- All NetSuite editions with the REST Web Services feature enabled. Results follow the role of the OAuth 2.0 token; SuiteQL reads need the SuiteAnalytics Workbook permission.
- Test environment
- NetSuite sandbox accounts are purchased separately from Oracle.
- Rate limits
- Account concurrency governance; HTTP 429 when the concurrent request limit is exceeded.
- Pagination
- SuiteQL limit/offset up to 1,000 rows per page; offset must be a multiple of limit.
- Provider events
- NetSuite has no native REST webhooks; events require SuiteScript user event scripts. Flows run on demand, on a schedule, or when a scheduled check finds new or changed records.
Before you build a flow
- Customer reads, OAuth authentication and pagination implemented.
- SuiteQL column names were checked against Oracle's published SuiteQL examples; the Records Catalog requires an account login and was not available, so a column missing from an account's schema returns a provider error.
- Synchronous creates have no duplicate protection: X-NetSuite-Idempotency-Key is documented only for asynchronous (Prefer: respond-async) requests, which Nexra does not poll. Use the external ID upsert operations for duplicate-safe writes.
- lastmodifieddate filters are evaluated in the account time zone at second precision.
- SuiteQL returns at most 100,000 rows per query.
- Deletes, vendor payments and refunds are intentionally not exposed.
- Intentionally excluded: transforms that post (estimate or sales order to invoice, return authorization to credit memo or refund), approvals, vendor payment and customer refund creation, voids, closes and deletes.
- Vendor payments are list only (SuiteQL); a record API get was not added because vendorPayment REST support could not be confirmed in Oracle's public supported-records table.
- SuiteQL transaction type codes (Estimate, Opprtnty, RtnAuth, CustCred, CashSale, ItemRcpt, VendCred, VendPymt) and the term and currency columns come from account data and community references; Oracle's Records Catalog requires a login. A column missing from an account returns a provider error.
- Purchase orders, sales orders, invoices and vendor bills can be listed with their lines in one SuiteQL query (keyset paging by internal ID); writes take item lines through the lines input on the document.
- Bank transactions are the posted general ledger lines on Bank type accounts (SuiteQL TransactionAccountingLine), in the subsidiary's base currency; imported bank statement lines from bank feeds are not available through SuiteQL or the REST record API.
Developer reference
- Create the Oracle credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose Oracle NetSuite, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/oracle-netsuite and the Connections API.

