Period End Journal Entry
A Period End Journal is a transaction record that posts subsidiary consolidation and year end closing to the general ledger. Period end journals are generated automatically when you complete the Create Period End Journals task on the Period Close Checklist. For help working with this record in the user interface, see Period End Journal Entries.
You can use SOAP Web Services to update the already generated Period End Journals, but not to add new records.
For the Period End Journal record to be available, you need to have a NetSuite OneWorld account. Also, you need to enable the Accounting Periods and the Period End Journal Entries features in Setup > Company > Setup Tasks > Enable Features, Accounting subtab.
For more information, see Setup for Period End Journal Entries.
To update period end journals, you must have the permission Period End Journals, Edit level or higher. You must also have access to both the Subsidiary to which the period end journal posts and the Source Subsidiary for the period end journal entry.
To review the access level of a specific role, go to Setup > Users/Roles > User Management > Manage Roles and click the role you want to review. In the Subsidiary Restrictions Field Group, you can see which subsidiaries this role can access. On the Permissions subtab, under Transactions you can see the level of the Period End Journals permission.
For information about assigning permissions to roles, see Customizing or Creating NetSuite Roles.
The Source Subsidiary is the child subsidiary when posting consolidation, income statement closing and balance sheet closing journals for the child subsidiary in the parent subsidiary. The child subsidiary does not need to have the Period End Journal Entries feature enabled. The Subsidiary is the same as the Source Subsidiary only when posting non-consolidated income statement closing and balance sheet closing journals for each subsidiary's year end.
Supported Operations
The following operations can be used with period end journal entry records:
get | getDeleted | getList | getSavedSearch | getSelectValue | search | update | updateList |
Field Definitions
The SOAP Schema Browser includes definitions for all body fields, sublist fields, search filters, and search joins available to this record. For details, see the SOAP Schema Browser’s Period End Journal reference page.
For more information on the header and journal line fields, see Period End Journal Header Fields and Period End Journal Line Fields.
For information on using the SOAP Schema Browser, see SOAP Schema Browser.
Usage Notes
Consider the following when you work with Period End Journal records.
-
Editing of period end journals is permitted when the period is open or when the Allow Non-G/L Changes box is checked on the period record. When Allow Non-G/L Changes is checked, users with the Setup permission Allow Non-G/L Changes can make edits that do not affect the general ledger .
-
From standard fields on period end journals, you can update only the Memo fields on each journal line and in the header.
-
From custom fields or segments, you can update only those that do not affect the general ledger.
-
You can’t update any other fields and especially those affecting the general ledger.
Code Sample
In the following example, an existing Period End Journal is updated.
Java
public void UpdatePeriodEndJournal() throws RemoteException {
PeriodEndJournal pejr = new PeriodEndJournal();
pejr.setInternalId("575");
pejr.setMemo("Memo updated");
CustomFieldList customBodyFields = new CustomFieldList();
StringCustomFieldRef bodyField = new StringCustomFieldRef();
bodyField.setScriptId("custbody2");
bodyField.setValue("Some value updated");
customBodyFields.setCustomField(new CustomFieldRef[]{bodyField});
pejr.setCustomFieldList(customBodyFields);
PeriodEndJournalLineList lineList = new PeriodEndJournalLineList();
lineList.setReplaceAll(false);
PeriodEndJournalLine line1 = new PeriodEndJournalLine();
line1.setLine(1L);
line1.setMemo("Line 1 memo updated");
CustomFieldList line1CustomFieldList = new CustomFieldList();
StringCustomFieldRef line1CustomField = new StringCustomFieldRef();
line1CustomField.setScriptId("custcol_line_field");
line1CustomField.setValue("Line 1 custom field updated");
line1CustomFieldList.setCustomField(new CustomFieldRef[]{line1CustomField});
line1.setCustomFieldList(line1CustomFieldList);
lineList.setPeriodEndJournalLine(new PeriodEndJournalLine[]{line1});
pejr.setLineList(lineList);
client.updateRecord(pejr);
}
SOAP Request
<soapenv:Body>
<update xmlns="urn:messages_2019_1.platform.webservices.netsuite.com">
<record internalId="575" xsi:type="ns7:PeriodEndJournal" xmlns:ns7="urn:general_2019_1.transactions.webservices.netsuite.com">
<ns7:memo xsi:type="xsd:string">Memo updated</ns7:memo>
<ns7:lineList replaceAll="false" xsi:type="ns7:PeriodEndJournalLineList">
<ns7:periodEndJournalLine xsi:type="ns7:PeriodEndJournalLine">
<ns7:memo xsi:type="xsd:string">Line 1 memo updated</ns7:memo>
<ns7:line xsi:type="xsd:long">1</ns7:line>
<ns7:customFieldList xsi:type="ns8:CustomFieldList" xmlns:ns8="urn:core_2019_1.platform.webservices.netsuite.com">
<ns8:customField scriptId="custcol_line_field" xsi:type="ns8:StringCustomFieldRef">
<ns8:value xsi:type="xsd:string">Line 1 custom field updated</ns8:value>
</ns8:customField>
</ns7:customFieldList>
</ns7:periodEndJournalLine>
</ns7:lineList>
<ns7:customFieldList xsi:type="ns9:CustomFieldList" xmlns:ns9="urn:core_2019_1.platform.webservices.netsuite.com">
<ns9:customField scriptId="custbody2" xsi:type="ns9:StringCustomFieldRef">
<ns9:value xsi:type="xsd:string">Some value updated</ns9:value>
</ns9:customField>
</ns7:customFieldList>
</record>
</update>
</soapenv:Body>
SOAP Response
<soapenv:Body>
<updateResponse xmlns="urn:messages_2019_1.platform.webservices.netsuite.com">
<writeResponse>
<platformCore:status isSuccess="true" xmlns:platformCore="urn:core_2019_1.platform.webservices.netsuite.com">
<platformCore:statusDetail>
<platformCore:afterSubmitFailed>false</platformCore:afterSubmitFailed>
</platformCore:statusDetail>
</platformCore:status>
<baseRef internalId="575" type="periodEndJournal" xsi:type="platformCore:RecordRef" xmlns:platformCore="urn:core_2019_1.platform.webservices.netsuite.com"/>
</writeResponse>
</updateResponse>
</soapenv:Body>