Skip to main content

Subsidiary API

Manage subsidiaries in NetSuite OneWorld. Subsidiaries represent separate legal entities or business units within your organization.

Endpoints

MethodEndpointDescription
GET/record/v1/subsidiaryList all subsidiaries
GET/record/v1/subsidiary/{id}Get a specific subsidiary by ID
POST/record/v1/subsidiaryCreate a new subsidiary
PATCH/record/v1/subsidiary/{id}Update an existing subsidiary
DELETE/record/v1/subsidiary/{id}Delete a subsidiary

Key Fields

Required Fields

FieldTypeDescriptionRequired
nameStringSubsidiary nameYes
countryObjectCountry where subsidiary operatesYes

Optional Fields

FieldTypeDescriptionRequired
legalNameStringLegal name of the subsidiaryNo
currencyObjectPrimary currency for this subsidiaryNo
parentObjectParent subsidiary (for subsidiary hierarchy)No
purchaseOrderQuantityNumberPurchase order quantityNo
purchaseOrderAmountNumberPurchase order amount limitNo
purchaseOrderQuantityDiffNumberPurchase order quantity difference toleranceNo
receiptAmountNumberReceipt amount limitNo
receiptQuantityDiffNumberReceipt quantity difference toleranceNo
stateObject/StringState/province (for applicable countries)No
isInactiveBooleanWhether the subsidiary is inactiveNo
emailStringSubsidiary email addressNo
faxStringFax numberNo
urlStringWebsite URLNo
logoObjectCompany logo fileNo
taxIdNumStringTax ID number (EIN, VAT, etc.)No
federalIdNumberStringFederal ID numberNo
addr1StringAddress line 1No
addr2StringAddress line 2No
addr3StringAddress line 3No
cityStringCityNo
zipStringPostal/ZIP codeNo
addrPhoneStringPhone numberNo
returnAddr1StringReturn address line 1No
returnAddr2StringReturn address line 2No
returnCityStringReturn address cityNo
returnStateObject/StringReturn address stateNo
returnZipStringReturn address ZIPNo
returnCountryObjectReturn address countryNo
shippingAddr1StringShipping address line 1No
shippingAddr2StringShipping address line 2No
shippingCityStringShipping cityNo
shippingStateObject/StringShipping stateNo
shippingZipStringShipping ZIPNo
shippingCountryObjectShipping countryNo

Example: Create Subsidiary

Request

POST /record/v1/subsidiary
Content-Type: application/json
{
"name": "US Operations",
"legalName": "Acme Corp USA LLC",
"country": {
"id": "US"
},
"state": {
"id": "CA"
},
"currency": {
"id": "1"
},
"parent": {
"id": "1"
},
"taxIdNum": "12-3456789",
"email": "us-ops@acme.com",
"url": "https://us.acme.com",
"addr1": "123 Main Street",
"city": "San Francisco",
"zip": "94102",
"addrPhone": "+1-415-555-0100",
"isInactive": false
}

Response

{
"id": "3",
"name": "US Operations",
"legalName": "Acme Corp USA LLC",
"country": {
"id": "US",
"refName": "United States"
},
"state": {
"id": "CA",
"refName": "California"
},
"currency": {
"id": "1",
"refName": "USA"
},
"parent": {
"id": "1",
"refName": "Parent Company"
},
"taxIdNum": "12-3456789",
"email": "us-ops@acme.com",
"url": "https://us.acme.com",
"addr1": "123 Main Street",
"city": "San Francisco",
"zip": "94102",
"addrPhone": "+1-415-555-0100",
"isInactive": false,
"links": [
{
"rel": "self",
"href": "https://{accountId}.suitetalk.api.netsuite.com/services/rest/record/v1/subsidiary/3"
}
]
}

Example: Update Subsidiary

Request

PATCH /record/v1/subsidiary/3
Content-Type: application/json
{
"email": "operations@acme.com",
"addrPhone": "+1-415-555-0200",
"url": "https://www.acme.com/us"
}

Response

{
"id": "3",
"name": "US Operations",
"email": "operations@acme.com",
"addrPhone": "+1-415-555-0200",
"url": "https://www.acme.com/us",
"links": [
{
"rel": "self",
"href": "https://{accountId}.suitetalk.api.netsuite.com/services/rest/record/v1/subsidiary/3"
}
]
}

Query Filters

You can filter subsidiaries using query parameters:

Filter by Country

GET /record/v1/subsidiary?q=country.id IS US

Filter by Parent Subsidiary

GET /record/v1/subsidiary?q=parent.id IS 1

Filter by Active Status

GET /record/v1/subsidiary?q=isInactive IS false

Filter by Currency

GET /record/v1/subsidiary?q=currency.id IS 1

Search by Name

GET /record/v1/subsidiary?q=name CONTAINS Operations

Complex Filter Example

GET /record/v1/subsidiary?q=country.id IS US AND isInactive IS false AND parent.id IS 1

Pagination and Sorting

GET /record/v1/subsidiary?limit=50&offset=0&orderby=name ASC

Important Notes

  1. OneWorld Feature: Subsidiaries are only available in NetSuite OneWorld accounts. This feature must be enabled in your account.

  2. Parent-Child Hierarchy: Subsidiaries can have parent-child relationships, allowing for complex organizational structures and consolidated reporting.

  3. Currency Assignment: Each subsidiary should have a primary currency. This determines the default currency for transactions in that subsidiary.

  4. Tax Identification: Different countries require different tax identification numbers (EIN in US, VAT in EU, etc.). Use the appropriate field for your jurisdiction.

  5. Elimination: Parent subsidiaries are often used for elimination entries in consolidated financial statements.

  6. Deletion Restrictions: Subsidiaries with transactions or other records (customers, items, etc.) cannot be deleted. Mark them as inactive instead.

  7. Permissions: Creating and managing subsidiaries requires "Lists > Subsidiaries" permission and appropriate role access.

  8. Address Fields: Maintain accurate address information as it's used for tax calculations, compliance, and document generation.

  9. Multi-Book: In multi-book accounting environments, subsidiary configuration affects how transactions are recorded across different accounting books.

  10. Intercompany Transactions: Subsidiaries are central to managing intercompany transactions and eliminations in consolidated reporting.

  11. Feature Dependencies: Some NetSuite features (like Advanced Taxes, Payroll) have subsidiary-level configurations.

  12. State/Province: For countries with state-level tax requirements (US, Canada, Australia), ensure state is properly set.