NetSuite: SuiteQL and the Transaction Table

Published on April 24, 2024.

The most commonly asked question that I get from NetSuite developers regarding SuiteQL is something along the lines of, "What table are {some transaction type} stored in?"

A lot of developers that I speak with are expecting to find specific tables for each transaction type. However, all NetSuite transactions are stored in a generic "Transaction" table, and are categorized based on their type.

Transaction Types In Your NetSuite Instance

To see a list of all of the types of transactions that are currently stored in your NetSuite instance, you can run this query.

SELECT DISTINCT
	BUILTIN.DF( Type ) AS Name,
	Type
FROM 
	Transaction 
ORDER BY
	BUILTIN.DF( Type ) 

The results will look something like this.

Transaction Type NameTransaction Type
Assembly BuildBuild
Assembly UnbuildUnbuild
BillVendBill
Bill CreditVendCred
Bill PaymentVendPymt
Bin Putaway WorksheetBinWksht
Bin TransferBinTrnfr
Blanket Purchase OrderBlankOrd
Cash SaleCashSale
CheckCheck
Credit CardCardChrg
Credit MemoCustCred
Currency RevaluationFxReval
Customer DepositCustDep
Customer RefundCustRfnd
DepositDeposit
Deposit ApplicationDepAppl
Expense ReportExpRept
Inventory AdjustmentInvAdjst
Inventory Cost RevaluationInvReval
Inventory CountInvCount
Inventory TransferInvTrnfr
Inventory WorksheetInvWksht
InvoiceCustInvc
Item FulfillmentItemShip
Item ReceiptItemRcpt
JournalJournal
LeaseCustom
OpportunityOpprtnty
PaymentCustPymt
Purchase ContractPurchCon
Purchase OrderPurchOrd
QuoteEstimate
Request For QuoteRfq
RequisitionPurchReq
Return AuthorizationRtnAuth
Sales OrderSalesOrd
System JournalSysJrnl
Transfer OrderTrnfrOrd
Vendor PrepaymentVPrep
Vendor Prepayment ApplicationVPrepApp
Vendor Request For QuoteVendRfq
Vendor Return AuthorizationVendAuth
Work OrderWorkOrd
Work Order CloseWOClose
Work Order CompletionWOCompl
Work Order IssueWOIssue

Identifying A Transaction's Type

If you have the internal ID of a transaction, but aren't sure of its type, then you can run a query like this to determine its type.

SELECT
	TranID,
	BUILTIN.DF( Type ) AS TypeName,
	Type
FROM 
	Transaction 
WHERE
	ID = 33213

Permissions

If you're querying the Transaction table via an integration, you'll need permission to query not only the Transaction table itself, but also the specific types of transactions that you want to access.

To query the Transaction table, you'll want to assign this permission: Transactions - Find Transaction

Then assign permissions for each transaction type that you want access to. For example, to query for Sales Orders, you'd assign: Transactions - Sales Order

For a list of tables and the permissions that are needed to access them, see: SuiteQL Tables & Permissions Reference

Other Transaction Table Resources

Here are some previous posts that discuss the Transaction table:
Querying Transactions With SuiteQL
SuiteQL, the Transaction Table, Statuses, and Built-In Functions

About Me

Hello, I'm Tim Dietrich. I develop custom software for businesses that are running on NetSuite, including mobile apps, Web portals, Web APIs, and more.

I'm the developer of several popular NetSuite open source solutions, including the SuiteQL Query Tool, SuiteAPI, and more.

I founded SuiteStep, a NetSuite development studio, to provide custom software and AI solutions - and continue pushing the boundaries of what's possible on the NetSuite platform.

Copyright © 2025 Tim Dietrich.