Accounting Period API
Manage fiscal periods. Accounting periods define the time frames used for financial reporting and determine when transactions can be posted.
Endpoints
| Method | Endpoint | Description |
|---|---|---|
| GET | /record/v1/accountingPeriod | List all accounting periods |
| GET | /record/v1/accountingPeriod/{id} | Get a specific accounting period by ID |
| POST | /record/v1/accountingPeriod | Create 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
| Field | Type | Description | Required |
|---|---|---|---|
periodName | String | Name of the accounting period (e.g., "Jan 2026") | Yes |
startDate | Date | Start date of the period (YYYY-MM-DD) | Yes |
endDate | Date | End date of the period (YYYY-MM-DD) | Yes |
Optional Fields
| Field | Type | Description | Required |
|---|---|---|---|
fiscalCalendar | Object | Associated fiscal calendar | No |
parent | Object | Parent period (for sub-periods) | No |
isQuarter | Boolean | Whether this is a quarterly period | No |
isYear | Boolean | Whether this is a yearly period | No |
closed | Boolean | Whether the period is closed | No |
isAdjust | Boolean | Whether this is an adjustment period | No |
allowNonGLChanges | Boolean | Allow non-GL changes when period is closed | No |
apLocked | Boolean | Accounts Payable locked status | No |
arLocked | Boolean | Accounts Receivable locked status | No |
payrollLocked | Boolean | Payroll locked status | No |
allLocked | Boolean | All transactions locked status | No |
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
-
Period Hierarchy: Accounting periods often have a parent-child relationship (e.g., monthly periods belong to quarterly periods, which belong to yearly periods).
-
Date Validation: Ensure that
startDateis beforeendDateand that periods don't overlap within the same fiscal calendar. -
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. -
Adjustment Periods: Adjustment periods (
isAdjust: true) are special periods used for year-end adjustments and typically come after the last regular period. -
Fiscal Calendar: In multi-subsidiary environments with different fiscal calendars, ensure you assign the correct fiscal calendar to each period.
-
Deletion Restrictions: Periods with posted transactions cannot be deleted. You can only delete empty periods.
-
Reopening Periods: To reopen a closed period, update the
closedfield tofalseand reset the appropriate lock fields. -
Permissions: Requires "Setup > Accounting Periods" permission in NetSuite.
-
Period Status: The period status affects what types of transactions can be posted. Plan your period management workflow carefully.
-
Automation: Many organizations create periods programmatically at the start of each fiscal year to ensure consistency.