# NetSuite — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/netsuite/overview

NetSuite is the leading integrated cloud business software suite, including business accounting, ERP, CRM and ecommerce software.
- Status: live
- Authentication: custom

- **account type required:** NetSuite with SuiteTalk (Web Services) and Token-Based Authentication enabled
- **apideck credentials available:** true
- **apideck credentials note:** Shared Consumer Key/Secret ship with Apideck's NetSuite SuiteBundle (ID 705521); consumers still supply their own Account ID and Token ID/Secret.
- **authentication note:** Token-Based Authentication (TBA), NetSuite's OAuth 1.0-based scheme — consumers create an integration record and credentials manually; no OAuth redirect.
- **consumer access level:** Administrator, or a custom role with access-token login, both SOAP and REST Web Services, and accounting list/setup permissions
- **costs:** No additional platform fees, and no connection limits imposed.
- **difficulty:** highly_complex
- **difficulty reason:** Custom Auth + Manual Per-Consumer Token Setup
- **environment notes:**   - **description:** NetSuite uses one credential structure everywhere — the Account ID alone determines which instance is reached, and sandbox Account IDs carry a suffix such as _SB1.
  - **environment:** General
  - **description:** Purpose: development and testing. Routes: Apideck's temporary shared sandbox or an Apideck-assisted NetSuite sandbox, both requested through Apideck Support (the shared sandbox requires an enterprise contract, and NetSuite charges its own fee for sandbox accounts); the consumer's own sandbox; or a time-limited NetSuite Partner Trial. Oracle does not offer direct trial accounts. ⚠️ Tokens do not survive a sandbox refresh — the integration record and access token must be recreated afterwards, which is expected NetSuite behavior.
  - **environment:** Sandbox
  - **description:** Purpose: live customer data. Credentials: the consumer's own Account ID plus Token ID and Token Secret (and Consumer Key/Secret on the manual route).
  - **environment:** Production
- **external guides:**   - **source:** Oracle
  - **title:** Token-Based Authentication Guide
  - **url:** https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_4247337262.html
  - **source:** Oracle
  - **title:** SuiteTalk Web Services
  - **url:** https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_1540391670.html
  - **source:** Oracle
  - **title:** OneWorld Multi-Subsidiary
  - **url:** https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/chapter_N295957.html
  - **source:** NetSuite
  - **title:** NetSuite Partner Program
  - **url:** https://www.netsuite.com/portal/partners.shtml
- **important to know:** Oracle has scheduled SOAP removal: 2025.2 is the last SOAP endpoint, release 2027.1 blocks new SOAP integrations, and 2028.2 removes SOAP entirely. Apideck already offers NetSuite REST support via Proxy.
Missing role permissions can fail silently: a filtered list the role cannot read returns 200 OK with no rows. Delete events, read from NetSuite's deleted-records log after each sync (not a resource's first), need the Deleted Records and SuiteAnalytics Workbook permissions.
Custom forms can break writes: a mandatory custom field on a standard NetSuite form makes API writes to that record type fail, blocking creates you had tested successfully.
SuiteTax accounts are supported, but the connection must declare SuiteTax via an optional connection setting — without it, tax data is served from the wrong records.
A single connection covers a whole OneWorld account: a Default Subsidiary setting scopes most list and report reads to one subsidiary (a per-request override reaches others), but delete events cover the whole account. Parents exclude children; company-info returns the root.
- **partnership note:** Partner Trial accounts are available for extended testing.
- **partnership portal name:** NetSuite Partner Program
- **partnership required:** false
- **partnership url:** https://www.netsuite.com/portal/partners.shtml
- **rate limits:** Per-account concurrency (not requests/minute): 5 Standard, 15 Premium, 20 Enterprise/Ultimate, +10 per SuiteCloud Plus license; Apideck retries automatically.
- **responsibility matrix:**   - **apideck:** Provides (enterprise contract)
  - **area:** Request Sandbox Access
  - **customer:** ✓
  - **apideck:** Instructions provided
  - **area:** Enable TBA & SuiteTalk
  - **consumer:** ✓
  - **apideck:** Instructions provided
  - **area:** Create Integration Record
  - **consumer:** ✓
  - **apideck:** Instructions provided
  - **area:** Configure Role & Permissions
  - **consumer:** ✓
  - **apideck:** Instructions provided
  - **area:** Generate Access Token
  - **consumer:** ✓
  - **apideck:** Secure connection form
  - **area:** Provide Credentials
  - **consumer:** ✓
  - **apideck:** Maintains connector
  - **area:** Build via Unified API
  - **customer:** ✓
  - **apideck:** Logs & alerts
  - **area:** Monitor Connections
  - **consumer:** Can regenerate tokens
  - **customer:** ✓ Via dashboard
- **sandbox available:** true
- **sandbox note:** Via Apideck's temporary shared sandbox (enterprise contract required — contact Apideck Support).
- **sandbox url:** https://help.apideck.com/en/articles/7774658
- **webhooks:** Virtual webhooks — created, updated and deleted events across 14 accounting resources (invoices, bills, customers and more); no deletes for tax rates.

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** false
- **downstream id:** fiscal-periods
- **downstream name:** Fiscal Periods
- **id:** fiscal-periods
- **name:** Fiscal Periods
- **status:** beta
- **custom field support:** false
- **downstream id:** trial-balance
- **downstream name:** Trial Balance
- **id:** trial-balance
- **name:** Trial Balance
- **status:** beta
- **custom field support:** true
- **downstream id:** invoices
- **downstream name:** Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** true
- **downstream id:** customers
- **downstream name:** Customers
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** false
- **downstream id:** accounts
- **downstream name:** Accounts
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** false
- **downstream id:** journals
- **downstream name:** Journals
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** true
- **downstream id:** vendorBills
- **downstream name:** Vendor Bills
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** true
- **downstream id:** creditMemos
- **downstream name:** Credit Memos
- **id:** credit-notes
- **name:** Credit Notes
- **status:** live
- **custom field support:** true
- **downstream id:** vendorCredits
- **downstream name:** Vendor Credits
- **id:** bill-credit-notes
- **name:** Bill Credit Notes
- **status:** beta
- **custom field support:** false
- **downstream id:** purchaseOrders
- **downstream name:** Purchase Orders
- **id:** purchase-orders
- **name:** Purchase Orders
- **status:** live
- **custom field support:** false
- **downstream id:** itemReceipts
- **downstream name:** Item Receipts
- **id:** goods-receipts
- **name:** Goods Receipts
- **status:** beta
- **custom field support:** true
- **downstream id:** vendors
- **downstream name:** Vendors
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** false
- **downstream id:** items
- **downstream name:** Items
- **id:** invoice-items
- **name:** Invoice Items
- **status:** live
- **custom field support:** true
- **downstream id:** customerPayments
- **downstream name:** Customer Payments
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** true
- **downstream id:** customerRefunds
- **downstream name:** Customer Refunds
- **id:** refunds
- **name:** Refunds
- **status:** beta
- **custom field support:** false
- **downstream id:** taxGroups
- **downstream name:** Tax Groups
- **id:** tax-rates
- **name:** Tax Rates
- **status:** live
- **custom field support:** false
- **downstream id:** paymentMethods
- **downstream name:** Payment Methods
- **id:** payment-methods
- **name:** Payment Methods
- **status:** beta
- **custom field support:** false
- **downstream id:** subsidiaries
- **downstream name:** Subsidiaries
- **id:** subsidiaries
- **name:** Subsidiaries
- **status:** live
- **custom field support:** false
- **downstream id:** subsidiaries-company-info
- **downstream name:** Subsidiaries Company Info
- **id:** company-info
- **name:** Company Info
- **status:** live
- **custom field support:** false
- **downstream id:** locations
- **downstream name:** Locations
- **id:** locations
- **name:** Locations
- **status:** live
- **custom field support:** false
- **downstream id:** departments
- **downstream name:** Departments
- **id:** departments
- **name:** Departments
- **status:** live
- **custom field support:** false
- **downstream id:** classifications
- **downstream name:** Classifications
- **id:** tracking-categories
- **name:** Tracking Categories
- **status:** live
- **custom field support:** false
- **downstream id:** files
- **downstream name:** Files
- **id:** attachments
- **name:** Attachments
- **status:** live
- **custom field support:** true
- **downstream id:** vendorPayments
- **downstream name:** Vendor Payments
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** false
- **downstream id:** credit-charges
- **downstream name:** Credit Charges
- **id:** expenses
- **name:** Expenses
- **status:** live
- **custom field support:** true
- **downstream id:** estimates
- **downstream name:** Estimates
- **id:** quotes
- **name:** Quotes
- **status:** beta
- **custom field support:** false
- **downstream id:** projects
- **downstream name:** Projects
- **id:** projects
- **name:** Projects
- **status:** beta
- **custom field support:** true
- **downstream id:** employees
- **downstream name:** Employees
- **id:** employees
- **name:** Employees
- **status:** beta
- **custom field support:** false
- **downstream id:** expenseCategories
- **downstream name:** Expense Categories
- **id:** expense-categories
- **name:** Expense Categories
- **status:** beta
- **custom field support:** false
- **downstream id:** expenseReports
- **downstream name:** Expense Reports
- **id:** expense-reports
- **name:** Expense Reports
- **status:** beta
- **custom field support:** false
- **downstream id:** profit-and-loss
- **downstream name:** Profit And Loss
- **id:** profit-and-loss
- **name:** ProfitAndLoss
- **status:** live
- **custom field support:** false
- **downstream id:** balance-sheet
- **downstream name:** Balance Sheet
- **id:** balance-sheet
- **name:** BalanceSheet
- **status:** live
- **custom field support:** true
- **downstream id:** bank-feed-accounts
- **downstream name:** Bank Feed Accounts
- **id:** bank-feed-accounts
- **name:** Bank Feed Accounts
- **status:** beta
- **custom field support:** false
- **downstream id:** bank-feed-statements
- **downstream name:** Bank Feed Statements
- **id:** bank-feed-statements
- **name:** Bank Feed Statements
- **status:** beta
- **custom field support:** false
- **downstream id:** companies
- **downstream name:** Companies
- **id:** companies
- **name:** Companies
- **status:** beta

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
