Did NetSuite just delete that transaction? Find out why!

Written by
Sonny Spencer, BFP, ACA
Director of Finance Operations
June 11, 2023
min read

Table of Contents

View all guides


Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

This is some text inside of a div block.


Deleting transaction records in NetSuite is certainly not a new concept. A user with the “Full” role permission for a given record type has the ability to delete records of that same type. In theory, if you have granted end users in your NetSuite environment the freedom to delete transaction records it is reasonable to assume that they will do so. As such, it is generally recommended that user role permissions are limited to the “Edit” level.

Salto Tip: Ensure that you have “Deletion Reason” enabled in your NetSuite environment. This will force users who wish to delete a particular record to provide the reason why they are deleting the record. 

Deletion reason pop-up box

To enable this feature, navigate: Setup -> Company -> Enable Features -> Company -> Use Deletion Reason.

Use deletion reason feature to be enabled

So now when a NetSuite transaction record is deleted from the system, you will know why. But what if a NetSuite transaction record is deleted automatically by the system without any user intervention?

In this blog we will explore some of the common use cases where NetSuite will automatically delete a transaction record in the system. It is essential for NetSuite Administrators to understand these use cases, so they are in a position to explain to both end users and auditors when questioned on missing transaction numbers. We will also explore the reporting available in NetSuite to track such transactions.

Experience the Ease & Confidence of NetSuite Customizations with Salto

Modifying a reversing journal entry

The first use case to consider is when a journal entry is posted to NetSuite with a reversal date. When posted, NetSuite will automatically create the reversing journal entry and link it to the original journal entry. If a user subsequently modifies the original journal entry and removes the reversal date, the corresponding reversing journal entry will be automatically deleted by NetSuite.

The good news here is that if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will automatically capture the deletion reason memo as “Reversal date removed”, which can then be reported on.

This use case makes logical sense - if you remove the reversing entry from the original journal entry, the reversing entry will be deleted. The next examples are not so obvious.

Re-running the revaluation process

The next use case is centered all around foreign currency - specifically on realized gains/losses on transactions. Let’s consider a scenario where we receive a payment for an invoice in a currency that differs from our functional currency of USD:

  • Invoice Amount = CAD 1,000 (exchange rate 1.098)
  • Payment Amount = CAD 1,000 (exchange rate 1.12)

When the payment is applied, NetSuite will create a currency revaluation record to recognize the realized loss of USD 22.00 [(1.12 - 1.098) * 1,000].

If in the same (open) accounting period you realize this payment was applied to the wrong invoice, you are able to modify the payment application and apply to the correct invoice.

  • Invoice Amount = CAD 1,000 (exchange rate 1.1)
  • Payment Amount = CAD 1,000 (exchange rate 1.12)

NetSuite will automatically delete the previously created currency revaluation record for USD 22.00 and replace with a new currency revaluation record for USD 10.00  [(1.12 - 1.1) * 1,000].

Unfortunately, even if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will not capture any value for the deletion reason memo. That said, you are still able to report on this deleted transaction.  

For additional details refer to SuiteAnswer 82643 Currency Revaluation Transactions: Realized Gain/Loss

Re-running the elimination process

Another use case to consider is when running the period close checklist - specifically when running the “Eliminate Intercompany Transactions” task.

There will be occasions where you run this particular period close task and then need to run it again. Perhaps an advanced intercompany journal entry was posted with errors or the accounting period was reopened to allow for additional entries to be posted. Regardless of the reason, any time this period close task is re-run, the previous elimination journal entries will be automatically deleted and replaced with new elimination journal entries. This will result in gaps in your journal entry number sequencing.

The good news here is that if you have “Deletion Reason” enabled in your NetSuite environment, NetSuite will automatically capture the deletion reason memo as “This transaction was deleted by script or web service”, which can then be reported on. This does not point directly to the journal entries being deleted when re-running the elimination process, so this is something you will want to be aware of.

For additional details refer to SuiteAnswer 63051 Processed Intercompany Elimination Record: The Processed Records page

Reporting on deleted transactions

Fortunately, NetSuite offers several reporting options to capture deleted transactions in the system.

View Audit Trail

Navigate: Transactions -> Management -> View Audit Trail

On the resulting screen, select the “Action” as “Delete”, then adjust the other report criteria as necessary. Click on “Submit”

The downside of using this particular report is that the results cannot be customized, so the report columns displayed are the only ones available.

Audit Trail report example

Transaction Numbering Audit Log

Navigate: Transactions -> Management -> Transaction Numbering Audit Log

This particular reporting feature is a saved search, so it can be customized. As such, it has the added benefit of additional columns in the results, e.g. “Deletion Reason Memo”.

This is a great report to use to quickly obtain details about transaction records that have been deleted in the system. 

Transaction Numbering Audit Log report example

Deleted Record Saved Search

Alternatively, if you are looking to report on a broader population of deleted records in the system (not just deleted transaction records), you should create a “Deleted Record” saved search. The saved search results will capture the deletion of folders and files in addition to entity and transaction records.

As this is a saved search, you can set up a dashboard reminder to capture the number of deleted records over a given period of time to monitor how frequently users are deleting records in NetSuite. It could help to catch unexpected activity that requires a review of user role permissions.

The downside of this particular saved search is that the number of fields available to report on are limited.

Deleted Record saved search example

Final thoughts

NetSuite Administrators need to be aware of common use cases where NetSuite will automatically delete transaction records in the system. Missing transaction numbers will typically raise concerns during an audit, so be prepared with your audit trail/audit log reporting to justify the missing records.

Don’t forget, the best way to reduce the number of transactions deleted in your NetSuite environment is to lock down user role permissions; only grant “Full” level permission when it is essential!

Written by
Sonny Spencer, BFP, ACA

Sonny is a seasoned NetSuite veteran, with more than 7 years experience implementing NetSuite and architecting NetSuite solutions for a wide variety of public and private companies, on a global scale. He leverages his background both as a Chartered Accountant and Certified NetSuite Administrator to design and build NetSuite solutions that solve real world problems. Sonny is an active member of the NetSuite community, participating in local NetSuite meetups, NetSuite forums and groups focused on financial system optimization.

Written by