Skip to main content

Accounting Period API

Manage fiscal periods. Accounting periods define the time frames used for financial reporting and determine when transactions can be posted.

Endpoints

MethodEndpointDescription
GET/record/v1/accountingPeriodList all accounting periods
GET/record/v1/accountingPeriod/{id}Get a specific accounting period by ID
POST/record/v1/accountingPeriodCreate a new accounting period
PATCH/record/v1/accountingPeriod/{id}Update an existing accounting period
DELETE/record/v1/accountingPeriod/{id}Delete an accounting period

Key Fields

Required Fields

FieldTypeDescriptionRequired
periodNameStringName of the accounting period (e.g., "Jan 2026")Yes
startDateDateStart date of the period (YYYY-MM-DD)Yes
endDateDateEnd date of the period (YYYY-MM-DD)Yes

Optional Fields

FieldTypeDescriptionRequired
fiscalCalendarObjectAssociated fiscal calendarNo
parentObjectParent period (for sub-periods)No
isQuarterBooleanWhether this is a quarterly periodNo
isYearBooleanWhether this is a yearly periodNo
closedBooleanWhether the period is closedNo
isAdjustBooleanWhether this is an adjustment periodNo
allowNonGLChangesBooleanAllow non-GL changes when period is closedNo
apLockedBooleanAccounts Payable locked statusNo
arLockedBooleanAccounts Receivable locked statusNo
payrollLockedBooleanPayroll locked statusNo
allLockedBooleanAll transactions locked statusNo

Example: Create Accounting Period

Request

POST /record/v1/accountingPeriod
Content-Type: application/json
{
"periodName": "Jan 2026",
"startDate": "2026-01-01",
"endDate": "2026-01-31",
"fiscalCalendar": {
"id": "1"
},
"parent": {
"id": "100"
},
"isQuarter": false,
"isYear": false,
"closed": false,
"isAdjust": false
}

Response

{
"id": "456",
"periodName": "Jan 2026",
"startDate": "2026-01-01",
"endDate": "2026-01-31",
"fiscalCalendar": {
"id": "1",
"refName": "Standard Fiscal Calendar"
},
"parent": {
"id": "100",
"refName": "Q1 2026"
},
"isQuarter": false,
"isYear": false,
"closed": false,
"isAdjust": false,
"allLocked": false,
"apLocked": false,
"arLocked": false,
"payrollLocked": false,
"links": [
{
"rel": "self",
"href": "https://{accountId}.suitetalk.api.netsuite.com/services/rest/record/v1/accountingPeriod/456"
}
]
}

Example: Update Accounting Period

Request

PATCH /record/v1/accountingPeriod/456
Content-Type: application/json
{
"closed": true,
"apLocked": true,
"arLocked": true
}

Response

{
"id": "456",
"periodName": "Jan 2026",
"closed": true,
"apLocked": true,
"arLocked": true,
"links": [
{
"rel": "self",
"href": "https://{accountId}.suitetalk.api.netsuite.com/services/rest/record/v1/accountingPeriod/456"
}
]
}

Query Filters

You can filter accounting periods using query parameters:

Filter by Date Range

GET /record/v1/accountingPeriod?q=startDate ONORAFTER 2026-01-01 AND endDate ONORBEFORE 2026-12-31

Filter by Fiscal Calendar

GET /record/v1/accountingPeriod?q=fiscalCalendar.id IS 1

Filter by Closed Status

GET /record/v1/accountingPeriod?q=closed IS false

Filter by Period Type

GET /record/v1/accountingPeriod?q=isQuarter IS true

Complex Filter Example

GET /record/v1/accountingPeriod?q=fiscalCalendar.id IS 1 AND closed IS false AND isAdjust IS false

Pagination and Sorting

GET /record/v1/accountingPeriod?limit=50&offset=0&orderby=startDate DESC

Important Notes

  1. Period Hierarchy: Accounting periods often have a parent-child relationship (e.g., monthly periods belong to quarterly periods, which belong to yearly periods).

  2. Date Validation: Ensure that startDate is before endDate and that periods don't overlap within the same fiscal calendar.

  3. Closing Periods: Once a period is closed (closed: true), transactions typically cannot be posted to that period. Use the lock fields (apLocked, arLocked, etc.) for granular control.

  4. Adjustment Periods: Adjustment periods (isAdjust: true) are special periods used for year-end adjustments and typically come after the last regular period.

  5. Fiscal Calendar: In multi-subsidiary environments with different fiscal calendars, ensure you assign the correct fiscal calendar to each period.

  6. Deletion Restrictions: Periods with posted transactions cannot be deleted. You can only delete empty periods.

  7. Reopening Periods: To reopen a closed period, update the closed field to false and reset the appropriate lock fields.

  8. Permissions: Requires "Setup > Accounting Periods" permission in NetSuite.

  9. Period Status: The period status affects what types of transactions can be posted. Plan your period management workflow carefully.

  10. Automation: Many organizations create periods programmatically at the start of each fiscal year to ensure consistency.