NetSuite: Use SuiteQL to Access Accounting Periods

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.

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.