Skip to main content

Advanced Intercompany Journal Entry API

Create, read, update, and delete advanced intercompany journal entries with multiple subsidiaries using the NetSuite REST API (OneWorld only).


Endpoints​

MethodEndpointDescription
GET/record/v1/advIntercompanyJournalEntryList all advanced IC journal entries
GET/record/v1/advIntercompanyJournalEntry/{id}Get specific advanced IC journal entry
POST/record/v1/advIntercompanyJournalEntryCreate new advanced IC journal entry
PATCH/record/v1/advIntercompanyJournalEntry/{id}Update advanced IC journal entry
DELETE/record/v1/advIntercompanyJournalEntry/{id}Delete advanced IC journal entry

Key Fields​

Header Fields​

FieldTypeDescriptionRequired
idstringInternal ID (read-only)-
tranIdstringTransaction numberAuto-generated
tranDatestringTransaction date (ISO 8601)Yes
postingPeriodobjectAccounting periodAuto-calculated
subsidiaryobjectPrimary subsidiaryYes
currencyobjectTransaction currencyYes
exchangeRatenumberExchange rateAuto-calculated
approvedbooleanApproval statusRead-only
reversalDatestringReversal dateNo
reversalDeferbooleanDefer reversalNo
memostringMemo/descriptionNo
tranStatusobjectTransaction statusRead-only

Classification Fields​

FieldTypeDescriptionRequired
departmentobjectDefault departmentNo
classobjectDefault classificationNo
locationobjectDefault locationNo

Sublists​

FieldTypeDescriptionRequired
linecollectionJournal entry linesYes (min 2)

Example: Create Advanced Intercompany Journal Entry​

POST /record/v1/advIntercompanyJournalEntry
Content-Type: application/json
{
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"currency": {
"id": "1"
},
"memo": "Multi-subsidiary allocation - Corporate overhead Q4 2025",
"line": {
"items": [
{
"subsidiary": {
"id": "1"
},
"account": {
"id": "150"
},
"debit": 3000.00,
"memo": "Corporate overhead - Parent Company",
"department": {
"id": "1"
}
},
{
"subsidiary": {
"id": "2"
},
"account": {
"id": "250"
},
"credit": 2000.00,
"memo": "Allocated to UK Subsidiary"
},
{
"subsidiary": {
"id": "3"
},
"account": {
"id": "250"
},
"credit": 1000.00,
"memo": "Allocated to Asia Subsidiary"
}
]
}
}

Response​

{
"links": [
{
"rel": "self",
"href": "https://1234567.suitetalk.api.netsuite.com/services/rest/record/v1/advIntercompanyJournalEntry/9801"
}
],
"id": "9801",
"refName": "Advanced Intercompany Journal Entry #AICJ-9801",
"tranId": "AICJ-9801",
"tranDate": "2025-12-25",
"postingPeriod": {
"id": "12",
"refName": "Dec 2025"
},
"subsidiary": {
"id": "1",
"refName": "Parent Company"
},
"currency": {
"id": "1",
"refName": "USA"
},
"memo": "Multi-subsidiary allocation - Corporate overhead Q4 2025",
"approved": false,
"tranStatus": {
"id": "APPROVED",
"refName": "Approved"
}
}

Example: Update Advanced Intercompany Journal Entry​

PATCH /record/v1/advIntercompanyJournalEntry/9801
Content-Type: application/json
{
"memo": "Updated: Multi-sub allocation - Q4 2025 corporate overhead (revised)",
"reversalDate": "2026-01-01"
}

Line Item Fields​

Each item in the line.items array supports:

FieldTypeDescriptionRequired
subsidiaryobjectLine-level subsidiaryYes
accountobjectGL account referenceYes
debitnumberDebit amountConditional
creditnumberCredit amountConditional
memostringLine memoNo
entityobjectCustomer/Vendor/EmployeeNo
departmentobjectDepartmentNo
classobjectClassificationNo
locationobjectLocationNo
Line-Level Subsidiary

Unlike standard journal entries, each line in an advanced IC journal entry must specify a subsidiary. This allows transactions to span multiple subsidiaries in a single entry.

Debit or Credit

Each line must have either a debit OR a credit amount, not both. The line cannot have both fields populated.


Balancing Requirements​

Must Balance​

The advanced intercompany journal entry must balance:

Total Debits = Total Credits

If the journal entry does not balance, NetSuite will reject the transaction with an error.

Example: Balanced Multi-Subsidiary Entry​

{
"subsidiary": {"id": "1"},
"line": {
"items": [
{"subsidiary": {"id": "1"}, "account": {"id": "150"}, "debit": 3000.00},
{"subsidiary": {"id": "2"}, "account": {"id": "250"}, "credit": 2000.00},
{"subsidiary": {"id": "3"}, "account": {"id": "250"}, "credit": 1000.00}
]
}
}

Total Debits: 3,000.00 Total Credits: 3,000.00 Status: Balanced Subsidiaries Involved: 3 (Parent, UK, Asia)


Query Filters​

Find by Date Range​

GET /record/v1/advIntercompanyJournalEntry?q=tranDate BETWEEN '2025-01-01' AND '2025-12-31'

Find by Primary Subsidiary​

GET /record/v1/advIntercompanyJournalEntry?q=subsidiary='1'

Find by Line Subsidiary​

GET /record/v1/advIntercompanyJournalEntry?q=line.subsidiary='2'

Find Unapproved Entries​

GET /record/v1/advIntercompanyJournalEntry?q=approved=false

Find by Account​

GET /record/v1/advIntercompanyJournalEntry?q=line.account='150'

Find Multi-Subsidiary Entries​

GET /record/v1/advIntercompanyJournalEntry?q=tranDate >= '2025-12-01'

Important Notes​

OneWorld Requirement​

Advanced intercompany journal entries are only available in NetSuite OneWorld accounts. This feature is not available in standard NetSuite accounts.

Key Difference from Standard IC Journal Entries​

FeatureIntercompany JEAdvanced IC JE
Subsidiaries2 (from/to)Multiple (3+)
Line-level subsidiaryNoYes (required)
Use caseSimple 2-party transactionsComplex multi-party allocations
ComplexitySimplerMore flexible

Accounting Impact​

Advanced intercompany journal entries:

  • Post to multiple subsidiaries in a single transaction
  • NetSuite automatically creates elimination entries for consolidation
  • All subsidiaries must be in compatible accounting periods
  • Handles complex multi-entity transactions efficiently

Subsidiary Restrictions​

  • User must have access to all subsidiaries used in the entry
  • All subsidiaries must use compatible currencies or have exchange rates defined
  • Cannot mix subsidiaries with incompatible fiscal calendars
  • Each line must specify a subsidiary

Intercompany Accounts​

Best practice:

  • Use dedicated intercompany accounts (e.g., "Intercompany Receivable", "Intercompany Payable")
  • These accounts typically have account type "Intercompany"
  • Essential for multi-subsidiary reconciliation and elimination reporting
  • Consider using different IC accounts for different subsidiary pairs

Approval Workflow​

  • If approval workflow is enabled, entries require approval before posting
  • Unapproved entries do not impact financial statements
  • Use the approved field to check approval status (read-only)

Elimination Entries​

NetSuite automatically handles elimination entries:

  • Creates offsetting entries for all subsidiary pairs
  • Elimination entries remove intercompany balances from consolidated financials
  • View elimination entries in consolidation reports
  • More complex than 2-party IC entries due to multiple subsidiaries

Multi-Currency Considerations​

When subsidiaries use different currencies:

  • Exchange rates are applied automatically to each line
  • Unrealized gains/losses may be generated for each subsidiary pair
  • Exchange rate variances appear in elimination entries
  • Consider using a common currency for simplified reporting

Common Use Cases​

1. Corporate Overhead Allocation​

Allocate corporate costs to multiple subsidiaries:

{
"tranDate": "2025-12-31",
"subsidiary": {"id": "1"},
"memo": "Q4 corporate overhead allocation",
"line": {
"items": [
{
"subsidiary": {"id": "1"},
"account": {"id": "600"},
"debit": 50000.00,
"memo": "Total corporate overhead"
},
{
"subsidiary": {"id": "2"},
"account": {"id": "250"},
"credit": 20000.00,
"memo": "40% to UK Sub"
},
{
"subsidiary": {"id": "3"},
"account": {"id": "250"},
"credit": 15000.00,
"memo": "30% to Asia Sub"
},
{
"subsidiary": {"id": "4"},
"account": {"id": "250"},
"credit": 15000.00,
"memo": "30% to EMEA Sub"
}
]
}
}

2. Shared Services Center Billing​

Bill multiple subsidiaries from a shared services center:

{
"tranDate": "2025-12-25",
"subsidiary": {"id": "5"},
"memo": "Shared services billing - IT and HR December 2025",
"line": {
"items": [
{
"subsidiary": {"id": "5"},
"account": {"id": "120"},
"debit": 100000.00,
"memo": "IC receivable - Shared Services Center"
},
{
"subsidiary": {"id": "1"},
"account": {"id": "250"},
"credit": 40000.00,
"memo": "Parent - IT/HR allocation"
},
{
"subsidiary": {"id": "2"},
"account": {"id": "250"},
"credit": 30000.00,
"memo": "UK Sub - IT/HR allocation"
},
{
"subsidiary": {"id": "3"},
"account": {"id": "250"},
"credit": 30000.00,
"memo": "Asia Sub - IT/HR allocation"
}
]
}
}

3. Complex Multi-Party Settlement​

Settle balances between multiple subsidiaries:

{
"tranDate": "2025-12-20",
"subsidiary": {"id": "1"},
"memo": "Intercompany settlement - multiple subsidiaries",
"line": {
"items": [
{
"subsidiary": {"id": "1"},
"account": {"id": "250"},
"debit": 25000.00,
"memo": "Clear IC payable - Parent"
},
{
"subsidiary": {"id": "2"},
"account": {"id": "120"},
"debit": 15000.00,
"memo": "IC receivable - UK Sub"
},
{
"subsidiary": {"id": "3"},
"account": {"id": "250"},
"credit": 20000.00,
"memo": "IC payable - Asia Sub"
},
{
"subsidiary": {"id": "4"},
"account": {"id": "250"},
"credit": 20000.00,
"memo": "IC payable - EMEA Sub"
}
]
}
}

4. Transfer Pricing Adjustment​

Record transfer pricing adjustments across multiple subsidiaries:

{
"tranDate": "2025-12-31",
"subsidiary": {"id": "1"},
"memo": "Transfer pricing adjustment - year-end true-up",
"line": {
"items": [
{
"subsidiary": {"id": "1"},
"account": {"id": "700"},
"debit": 12000.00,
"memo": "TP adjustment income"
},
{
"subsidiary": {"id": "2"},
"account": {"id": "700"},
"credit": 7000.00,
"memo": "TP adjustment expense - UK"
},
{
"subsidiary": {"id": "3"},
"account": {"id": "700"},
"credit": 5000.00,
"memo": "TP adjustment expense - Asia"
}
]
}
}

See Also​