Published on March 18, 2021.
I'm working on a custom NetSuite API that involves postings vendor bills, payments, and so on. One of the requirements is the ability to specify alternate (non-default) accounting periods when creating transactions.
To present users of the external system with a list of accounting periods, I created this simple SuiteQL query.
SELECT AccountingPeriod.ID, AccountingPeriod.PeriodName, ParentPeriod.ID AS ParentPeriodID, ParentPeriod.PeriodName AS ParentPeriodName, AccountingPeriod.StartDate, AccountingPeriod.EndDate, AccountingPeriod.IsPosting, AccountingPeriod.IsAdjust, AccountingPeriod.AllLocked, AccountingPeriod.ARLocked, AccountingPeriod.APLocked, AccountingPeriod.AllowNonGLChanges, AccountingPeriod.LastModifiedDate, AccountingPeriod.Closed, AccountingPeriod.ClosedOnDate FROM AccountingPeriod INNER JOIN AccountingPeriod AS ParentPeriod ON ( ParentPeriod.ID = AccountingPeriod.Parent ) WHERE ( AccountingPeriod.IsInactive = 'F' ) AND ( AccountingPeriod.IsPosting = 'T' ) AND ( AccountingPeriod.IsQuarter = 'F' ) ORDER BY AccountingPeriod.StartDate
The query returns all active, posting periods that are not quarterly summaries. Information about the accounting period, as well as its parent period, are returned. Note that you can filter the list further by excluding locked periods, closed periods, and so on.
If you have any questions about the query shared in this post, please feel free to contact 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.