NetSuiteFree referencePDF, Excel, Word exportNetSuite

NetSuite Transaction Type Codes Reference

NetSuite shows friendly names in the UI, but queries and integrations need the short type code or the record id. This table lists the common ones side by side so you can filter a SuiteQL query or call the right REST endpoint without guessing.

Download:
Type codeRecord idTransactionArea
SalesOrd
salesorder
Sales Order
Order to cash
Estimate
estimate
Quote (Estimate)
Order to cash
Opprtnty
opportunity
Opportunity
Order to cash
ItemShip
itemfulfillment
Item Fulfillment
Order to cash
CustInvc
invoice
Invoice
Order to cash
CashSale
cashsale
Cash Sale
Order to cash
CustPymt
customerpayment
Customer Payment
Order to cash
CustCred
creditmemo
Credit Memo
Order to cash
RtnAuth
returnauthorization
Return Authorization
Order to cash
PurchOrd
purchaseorder
Purchase Order
Procure to pay
ItemRcpt
itemreceipt
Item Receipt
Procure to pay
VendBill
vendorbill
Bill
Procure to pay
VendPymt
vendorpayment
Bill Payment
Procure to pay
VendCred
vendorcredit
Bill Credit
Procure to pay
VendAuth
vendorreturnauthorization
Vendor Return Authorization
Procure to pay
WorkOrd
workorder
Work Order
Manufacturing
WOIssue
workorderissue
Work Order Issue
Manufacturing
WOCompl
workordercompletion
Work Order Completion
Manufacturing
WOClose
workorderclose
Work Order Close
Manufacturing
Build
assemblybuild
Assembly Build
Manufacturing
Unbuild
assemblyunbuild
Assembly Unbuild
Manufacturing
InvAdjst
inventoryadjustment
Inventory Adjustment
Inventory
InvTrnfr
inventorytransfer
Inventory Transfer
Inventory
TrnfrOrd
transferorder
Transfer Order
Inventory
InvCount
inventorycount
Inventory Count
Inventory
Journal
journalentry
Journal Entry
General ledger
Check
check
Check
Banking
Deposit
deposit
Deposit
Banking

Codes are the values stored in transaction.type and used in SuiteQL and saved search filters. Record ids are the script ids used by record.Type and REST record URLs. Confirm in your own account before relying on a code in production, since feature settings change which records exist.

Need a cleaner NetSuite reporting layer?

Ask for a short review of how your transaction data could be queried safely in plain English.

Optional. The tool and every export work without this. No spam.

How to use the table

Use the search box to filter by code, record id or name. Copy the type code into a SuiteQL filter such as t.type = 'WorkOrd' or into a saved search criterion. Copy the record id into a REST path such as /services/rest/record/v1/workorder or into record.load as the type. The Area column helps you scan one process at a time.

Type code versus record id

The two identifiers serve different layers. The type code is a data value stored on each transaction row and used for filtering. The record id is the name of the record type in the scripting and REST layers. They are related but not derivable from each other, which is why people mix them up and get empty results.

  • Query filters use the short code like Build
  • record.load and REST paths use the record id like assemblybuild
  • Display names in the UI can be renamed by the account
  • Item Receipt code is ItemRcpt, not ItemReceipt

Manufacturing flow in codes

A typical discrete manufacturing flow creates a WorkOrd, optionally issues components with WOIssue, then records output with WOCompl or a Build, and finishes with WOClose to release remaining commitments. Whether you use Build or the work order issue and completion chain depends on whether the Work Orders and Assemblies setup uses the routing based manufacturing features. Mapping this in your reporting avoids counting the same output twice.

Common mistakes

Most errors come from a typo in the case of the code, from assuming the code equals the record id, or from filtering only on type when status matters as well. Also remember that transaction type does not tell you whether a document is void or closed, so combine it with status.

Frequently Asked Questions

Where is the transaction type code stored?

It is stored on each row of the transaction table in the type column, and saved searches expose it as Type. Use the short code in SuiteQL filters. The display name in the UI is separate and can be changed by customization.

Why does my REST call to itemreceipt work but my query on ItemReceipt returns nothing?

The REST path takes the record id, while the query needs the type code ItemRcpt. They are different identifiers for the same transaction. Swap the value in each place and the results will match.

Does every account have all of these types?

No. Records such as work orders, assembly builds and transfer orders depend on the features enabled for the account and the edition. If a record is missing in your sandbox, check Setup, Company, Enable Features.

Is this list complete?

No. It covers the common transactions used in manufacturing, distribution and finance reporting. NetSuite has more types, including ones added by SuiteApps. Use the Records Catalog in your account for a full, current view.

If you keep a list like this in a spreadsheet for your integrations, we can help you wire it into a read-only assistant that explains NetSuite data to planners and finance.