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