Oracle NetSuite — Extraction Guide

Data Extraction Guide
for Oracle NetSuite

Step-by-step instructions for your IT team to extract the required data files from NetSuite via SuiteQL REST API or manual export for the AuditCore security and controls assessment.

20Data Files
7Domains
45+Checks
~30 minEst. Time
All Guides
0 Before You Begin
Automated extraction recommended. AuditCore provides Extract-AuditCoreNetSuite.ps1 which uses the SuiteQL REST API to extract all 20 files automatically. No additional PowerShell modules are required — it uses pure .NET HttpClient. See Section 2.
Read-only — no changes to your NetSuite account. All extractions use SELECT SuiteQL queries. AuditCore never writes to, creates, or deletes any NetSuite records. Revoke TBA credentials after the assessment is complete.
RequirementDetailsNotes
NetSuite RoleAdministrator or Full AccessRequired for system notes, audit trail, and cross-subsidiary queries
Token-Based Auth (TBA)ConsumerKey, ConsumerSecret, TokenId, TokenSecretSetup → Integrations → Manage Authentication → Token-Based Authentication
SuiteQL FeatureEnabled in Company PreferencesSetup → Company → Enable Features → SuiteCloud → SuiteQL
Account IDNumeric or alphanumeric (e.g. 123456 or 123456-sb1)Setup → Company → Company Information → Account ID
1 Required Files (20 total)

All files are CSV format. The PowerShell script produces these exact filenames.

Identity & Access
users.csvIdentity

User Accounts

All NetSuite users: status, admin flag, department, 2FA status, IP restriction, subsidiary access, last login date

role_assignments.csvIdentity

Role Assignments

User ↔ role mappings with subsidiary scope and assigned date

role_permissions.csvIdentity

Role Permissions

Per-role permission set: permission ID, name, and level (Full/Edit/View/Create)

subsidiaries.csvIdentity

Subsidiaries

Subsidiary hierarchy: name, country, currency, parent, elimination flag

Audit & Compliance
login_audit.csvAudit

Login Audit Log

All login attempts (last 90 days): user, IP address, status (Success/Failure), failure reason

system_notes.csvAudit

System Notes / Change Log

Audit trail of changes to key records: vendor bank changes, user deletions, bulk operations

account_preferences.csvAudit

Account Preferences

System-level security settings: session timeout, HTTPS enforcement, 2FA requirement, IP rules, release preview

Financial Controls
accounting_periods.csvFinancial

Accounting Periods

Period definitions: name, start/end dates, type (Month/Quarter/Year), open/closed status

journal_entries.csvFinancial

Journal Entries

Manual journals (last 90 days): amount, created by, approved by, period, status

transactions.csvFinancial

Transactions (AP/AR)

AP bills and payments (last 90 days): type, amount, vendor, created by, status

vendors.csvFinancial

Vendor Master

All vendors: name, tax ID, bank account (masked), payment method, last modified by and date

payments.csvFinancial

Payment Transactions

Payment records (last 90 days): amount, vendor, created by, approved by, payment method

approval_history.csvFinancial

Approval History

All approval workflow events: record type, submitted by, approved by, date, status

Integration Security
integration_tokens.csvIntegration

TBA Integration Tokens

All TBA tokens: application name, linked user/role, permissions, created date, last used

oauth_tokens.csvIntegration

OAuth 2.0 Tokens

OAuth client credentials: client ID, scope, issued date, last rotated, expiry

restlet_deployments.csvIntegration

Script Deployments

RESTlet/SuiteScript deployments: name, execute-as role, audience (all roles vs. specific), status

scheduled_scripts.csvIntegration

Scheduled Scripts

Scheduled SuiteScript jobs: name, execute-as role, frequency, last run date, status

Data Security & System Config
saved_searches.csvData Sec

Saved Searches

Public/private saved searches: name, creator, access level, record type, PII content flag

custom_fields.csvData Sec

Custom Field Definitions

Custom record fields: name, type, applies to, PII flag, access level

password_policy.csvSys Config

Password & Session Policy

Password complexity, expiry, session timeout, HTTPS enforcement settings

2 Automated Extraction (Recommended)
Fastest path. Extract-AuditCoreNetSuite.ps1 uses the SuiteQL REST API with OAuth 1.0a Token-Based Authentication. No additional modules required — works on any Windows machine with PowerShell 5.1+.

Step-by-step

  1. 1Enable SuiteQL: Setup → Company → Enable Features → SuiteCloud tab → check "SuiteQL". Save.
  2. 2Create TBA credentials: Setup → Integrations → Manage Authentication → Token-Based Authentication → New. Note the ConsumerKey, ConsumerSecret, TokenId, and TokenSecret (shown only once).
  3. 3Find your Account ID: Setup → Company → Company Information → Account ID (e.g. 1234567).
  4. 4Download Extract-AuditCoreNetSuite.ps1 and run in PowerShell 5.1+:
    # Run with TBA credentials .\Extract-AuditCoreNetSuite.ps1 ` -AccountId "1234567" ` -ConsumerKey "your-consumer-key" ` -ConsumerSecret "your-consumer-secret" ` -TokenId "your-token-id" ` -TokenSecret "your-token-secret"
  5. 5All 20 CSV files will be saved to C:\AuditCore\NetSuite\.
  6. 6Upload to AuditCore → New Audit → Oracle NetSuite → Bulk Upload.
TBA best practice. Create a dedicated integration user with the Administrator role specifically for this extraction. Revoke the TBA token immediately after the assessment is complete. Do not reuse integration credentials across multiple applications.
3 Manual Extraction

Use these paths if the PowerShell script is not permitted in your environment.

FileExport Path in NetSuiteNotes
users.csvSetup → Users/Roles → Manage Users → ExportInclude all active and inactive users
role_assignments.csvSetup → Users/Roles → View Roles → select each role → Members tab; or SuiteQL queryRequires Administrator role
login_audit.csvSetup → Accounting → Accounting Preferences → Login Audit Trail tabEnable Login Audit Trail first if not active
accounting_periods.csvSetup → Accounting → Manage Accounting Periods → Export to CSVInclude all period types
journal_entries.csvReports → Accounting → General Ledger → customize last 90 days → ExportInclude CreatedBy and ApprovedBy columns
vendors.csvLists → Relationships → Vendors → Export to CSVInclude bank account and modification fields
payments.csvTransactions → Payables → Pay Bills → search & ExportFilter last 90 days; include ApprovedBy
integration_tokens.csvSetup → Integrations → Manage Authentication → Token-Based AuthenticationNo native export — copy to CSV template
saved_searches.csvReports → Saved Searches → All Saved Searches → ExportInclude Public/Private flag
account_preferences.csvSetup → Company → General Preferences → manual transcriptionUse provided CSV template
4 Uploading to AuditCore
  1. 1Log in to AuditCore and click New Audit.
  2. 2Enter an audit name (e.g. "Acme NetSuite — Q1 2026 Assessment") and select Oracle NetSuite.
  3. 3Switch to the Bulk Upload tab and drag in the C:\AuditCore\NetSuite\ folder or all 20 CSV files.
  4. 4Verify the Match Summary shows files matched (green), then click Run Assessment.
  5. 5Results appear within 2 minutes — full findings, risk score, remediation guidance, and DOCX/PDF report export.
5 Troubleshooting
IssueLikely CauseResolution
"Invalid login attempt" on SuiteQLTBA not enabled or wrong Account IDSetup → Company → Enable Features → SuiteCloud → Token-Based Authentication. Confirm Account ID (not company name).
"You do not have permission"TBA user role lacks SuiteQL accessAssign the Administrator or Full Access role to the TBA user
Empty users.csvREST endpoint or Account ID incorrectVerify Account ID format: numeric (e.g. 1234567) — found at Setup → Company → Company Information
login_audit.csv emptyLogin Audit Trail not enabledSetup → Accounting → Accounting Preferences → Login Audit Trail tab → Enable
Script returns 401 / signature errorOAuth 1.0a HMAC-SHA256 clock skewEnsure your machine clock is accurate (OAuth signatures are time-sensitive, max 5 min drift). Sync via: w32tm /resync
SuiteQL returns 0 rows on audit tablesInsufficient role permissionsAdministrator role required for SystemNotes and LoginAuditTrail tables
vendors.csv missing bank accountsBanking permission not in roleAdministrator or custom role with Transactions → Banking → Full permission required
Ready to start your NetSuite assessment?
Upload your extracted files and receive a full Oracle NetSuite security report within minutes.
Go to Dashboard