Marty Zigman Marty Zigman
Prolecto Labs Accelerator Templates

NetSuite SearchFilter Transaction Internal Status List

NetSuite Technical

Tags: , ,


If you  develop in SuiteScript and you are trying to search on the transaction ‘status’, you may be frustrated because the values you need are not documented.  By parsing NetSuite’s JavaScript in the Saved Search Interface, I found the ‘Transaction_Status’ array which contains a list of the display values and the corresponding underlying filter reference codes.

To use this list, create a NetSuite nlobjSearchFilter with syntax that looks as follows:

filters[2] = new nlobjSearchFilter(‘status’, ‘applyingtransaction’, ‘noneof’, [‘CashSale:C’,’CashSale:B’,’CustInvc:B’]);

NetSuite Transaction Internal Status List

This list is valid as of the time of this article posting.  It will likely grow as NetSuite enhances its API and transaction capacity:

Status SearchFilter
 Cash Sale:Unapproved Payment  CashSale:A
 Cash Sale:Not Deposited  CashSale:B
 Cash Sale:Deposited  CashSale:C
 Check:Voided  Check:V
 Check:Online Bill Pay Pending Accounting Approval  Check:Z
 Commission:Pending Payment  Commissn:A
 Commission:Overpaid  Commissn:O
 Commission:Pending Accounting Approval  Commissn:P
 Commission:Rejected by Accounting  Commissn:R
 Commission:Paid in Full  Commissn:X
 Statement Charge:Open  CustChrg:A
 Statement Charge:Paid In Full  CustChrg:B
 Credit Memo:Open  CustCred:A
 Credit Memo:Fully Applied  CustCred:B
 Customer Deposit:Not Deposited  CustDep:A
 Customer Deposit:Deposited  CustDep:B
 Customer Deposit:Fully Applied  CustDep:C
 Invoice:Open  CustInvc:A
 Invoice:Paid In Full  CustInvc:B
 Payment:Unapproved Payment  CustPymt:A
 Payment:Not Deposited  CustPymt:B
 Payment:Deposited  CustPymt:C
 Customer Refund:Voided  CustRfnd:V
 Quote:Open  Estimate:A
 Quote:Processed  Estimate:B
 Quote:Closed  Estimate:C
 Quote:Voided  Estimate:V
 Quote:Expired  Estimate:X
 Expense Report:In Progress  ExpRept:A
 Expense Report:Pending Supervisor Approval  ExpRept:B
 Expense Report:Pending Accounting Approval  ExpRept:C
 Expense Report:Rejected by Supervisor  ExpRept:D
 Expense Report:Rejected by Accounting  ExpRept:E
 Expense Report:Approved by Accounting  ExpRept:F
 Expense Report:Approved (Overridden) by Accounting  ExpRept:G
 Expense Report:Rejected (Overridden) by Accounting  ExpRept:H
 Expense Report:Paid In Full  ExpRept:I
 Inventory Count:Open  InvCount:A
 Inventory Count:Started  InvCount:B
 Inventory Count:Completed/Pending Approval  InvCount:C
 Inventory Count:Approved  InvCount:D
 Item Fulfillment:Picked  ItemShip:A
 Item Fulfillment:Packed  ItemShip:B
 Item Fulfillment:Shipped  ItemShip:C
 Journal:Pending Approval  Journal:A
 Journal:Approved for Posting  Journal:B
 Payroll Liability Check:Voided  LiabPymt:V
 Opportunity:In Progress  Opprtnty:A
 Opportunity:Issued Estimate  Opprtnty:B
 Opportunity:Closed – Won  Opprtnty:C
 Opportunity:Closed – Lost  Opprtnty:D
 Paycheck:Undefined  Paycheck:A
 Paycheck:Pending Tax Calculation  Paycheck:C
 Paycheck:Pending Commitment  Paycheck:D
 Paycheck:Committed  Paycheck:F
 Paycheck:Preview  Paycheck:P
 Paycheck:Reversed  Paycheck:R
 Purchase Order:Pending Supervisor Approval  PurchOrd:A
 Purchase Order:Pending Receipt  PurchOrd:B
 Purchase Order:Rejected by Supervisor  PurchOrd:C
 Purchase Order:Partially Received  PurchOrd:D
 Purchase Order:Pending Billing/Partially Received  PurchOrd:E
 Purchase Order:Pending Bill  PurchOrd:F
 Purchase Order:Fully Billed  PurchOrd:G
 Purchase Order:Closed  PurchOrd:H
 Return Authorization:Pending Approval  RtnAuth:A
 Return Authorization:Pending Receipt  RtnAuth:B
 Return Authorization:Cancelled  RtnAuth:C
 Return Authorization:Partially Received  RtnAuth:D
 Return Authorization:Pending Refund/Partially Received  RtnAuth:E
 Return Authorization:Pending Refund  RtnAuth:F
 Return Authorization:Refunded  RtnAuth:G
 Return Authorization:Closed  RtnAuth:H
 Sales Order:Pending Approval  SalesOrd:A
 Sales Order:Pending Fulfillment  SalesOrd:B
 Sales Order:Cancelled  SalesOrd:C
 Sales Order:Partially Fulfilled  SalesOrd:D
 Sales Order:Pending Billing/Partially Fulfilled  SalesOrd:E
 Sales Order:Pending Billing  SalesOrd:F
 Sales Order:Billed  SalesOrd:G
 Sales Order:Closed  SalesOrd:H
 Tax Liability Cheque:Voided  TaxLiab:V
 Sales Tax Payment:Voided  TaxPymt:V
 Sales Tax Payment:Online Bill Pay Pending Accounting Approval  TaxPymt:Z
 Tegata Payable:Endorsed  TegPybl:E
 Tegata Payable:Issued  TegPybl:I
 Tegata Payable:Paid  TegPybl:P
 Tegata Receivables:Collected  TegRcvbl:C
 Tegata Receivables:Discounted  TegRcvbl:D
 Tegata Receivables:Endorsed  TegRcvbl:E
 Tegata Receivables:Holding  TegRcvbl:H
 Transfer Order:Pending Approval  TrnfrOrd:A
 Transfer Order:Pending Fulfillment  TrnfrOrd:B
 Transfer Order:Rejected  TrnfrOrd:C
 Transfer Order:Partially Fulfilled  TrnfrOrd:D
 Transfer Order:Pending Receipt/Partially Fulfilled  TrnfrOrd:E
 Transfer Order:Pending Receipt  TrnfrOrd:F
 Transfer Order:Received  TrnfrOrd:G
 Transfer Order:Closed  TrnfrOrd:H
 Vendor Return Authorization:Pending Approval  VendAuth:A
 Vendor Return Authorization:Pending Return  VendAuth:B
 Vendor Return Authorization:Cancelled  VendAuth:C
 Vendor Return Authorization:Partially Returned  VendAuth:D
 Vendor Return Authorization:Pending Credit/Partially Returned  VendAuth:E
 Vendor Return Authorization:Pending Credit  VendAuth:F
 Vendor Return Authorization:Credited  VendAuth:G
 Vendor Return Authorization:Closed  VendAuth:H
 Bill:Open  VendBill:A
 Bill:Paid In Full  VendBill:B
 Bill:Cancelled  VendBill:C
 Bill:Pending Approval  VendBill:D
 Bill:Rejected  VendBill:E
 Cash Payment:Voided  VendPymt:V
 Cash Payment:Online Bill Pay Pending Accounting Approval  VendPymt:Z
 Work Order:Planning  WorkOrd:A
 Work Order:Pending Build  WorkOrd:B
 Work Order:Cancelled  WorkOrd:C
 Work Order:In Process  WorkOrd:D
 Work Order:Built  WorkOrd:G
 Work Order:Closed  WorkOrd:H

Related Articles

  1. NetSuite SearchFilter Internal Transaction Type Codes
  2. NetSuite SearchFilter Internal Account Type Codes
  3. How To: Script to Automate NetSuite Journal Entries
  4. Showing NetSuite Internal IDs and Field Names
  5. Use Custom Logic to Drive NetSuite General Ledger Posting Accounts

Get Help

If you find the list is outdated, let me know. I will refresh it.  If you want help to optimize your NetSuite account, contact us.

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

More Posts - Website - Twitter - Facebook - LinkedIn - YouTube

About Marty Zigman

Marty Zigman

Holding all three official certifications, Marty is regarded as the top NetSuite expert and leads a team of senior professionals at Prolecto Resources, Inc. He is a former Deloitte & Touche CPA and has held CTO roles. For over 30 years, Marty has produced leadership in ERP, CRM and eCommerce business systems. Contact Marty to set up a conversation.

Biography • Website • X (Twitter) • Facebook • LinkedIn • YouTube

10 thoughts on “NetSuite SearchFilter Transaction Internal Status List

  1. Agop says:

    Very valuable information.

    When you fetch a transaction record in SuiteScript, you get something similar to this (in this case, an item fulfillment):


    "shipstatus": {
    "name": "Shipped",
    "internalid": "C"
    }

    So, surely, a search filter with shipstatus, anyof, and [“C”], should find this same record, right?

    Nope.

    Not only do you have to use status in place of shipstatus, but you also have to use ItemShip:C in place of C.

    Even clicking on the field in NetSuite tells you that the internal ID of the field is shipstatus.

  2. Rob Grier says:

    This works for searching but not always for changing status from script.

    I’m trying to start, complete, and approve an inventory count from script and it just ignores the change. Any hints to help?

  3. Marty Zigman says:

    Hi Rob,

    Status can not always be changed via script. Many times, it is calculated from other related records.

    Marty

  4. Darren R says:

    I find it astonishing that five years later this information is *still* not documented anywhere by NetSuite (that I’ve been able to find). Thank you for this excellent resource!

  5. Dylan Sprague says:

    Thank you for this! It applies to the SuiteTalk SOAP API as well.

  6. Clay Roper says:

    I’ve got this page bookmarked for good reason – thanks for providing this resource Marty!

    I’d like to add a note for anyone who encounters this obstacle related to transaction statuses and SuiteQL:

    SELECT DISTINCT status
    FROM transaction
    WHERE type = 'Opprtnty'
    AND status NOT IN ('C', 'D')
    ORDER BY status

    /* results
    STATUS
    A
    B
    C
    D
    */

    You may notice that the statuses (‘C’,’D’) still appear in that list even though I ruled them out. Taking a cue from the composed status as listed in Marty’s article (Opprtnty:C, Opprtnty:D), the approach should be

    SELECT DISTINCT status
    FROM transaction
    WHERE type = 'Opprtnty'
    AND status NOT IN (type||':C', type||':D')
    ORDER BY status

    /* results
    STATUS
    A
    B
    */

    This isn’t readily apparent from inspecting the results of a query returning the status column, but a query filtering by status must concatenate the transaction type and the status as shown above.

    I hope this helps someone else that runs into a similar situation in the future!

  7. Marty Zigman says:

    Thank you Clay. That’s quite helpful.

    Marty

Leave a Reply

Your email address will not be published. Required fields are marked *