Intercompany Transfer Order API
Transfer inventory between different subsidiaries (OneWorld accounts only).
Endpoints
| Method | Endpoint | Description |
|---|---|---|
GET | /record/v1/intercompanyTransferOrder | List IC transfer orders |
GET | /record/v1/intercompanyTransferOrder/{id} | Get specific IC transfer |
POST | /record/v1/intercompanyTransferOrder | Create IC transfer |
PATCH | /record/v1/intercompanyTransferOrder/{id} | Update IC transfer |
DELETE | /record/v1/intercompanyTransferOrder/{id} | Delete IC transfer |
Key Fields
| Field | Type | Description | Required |
|---|---|---|---|
tranDate | string | Transfer date (YYYY-MM-DD) | Yes |
subsidiary | object | From subsidiary (source) | Yes |
toSubsidiary | object | To subsidiary (destination) | Yes |
location | object | From location | Yes |
transferLocation | object | To location | Yes |
orderStatus | object | Transfer status | Read-only |
memo | string | Memo/notes | No |
shipDate | string | Planned ship date | No |
expectedReceiptDate | string | Expected receipt date | No |
shipMethod | object | Shipping method | No |
useItemCostAsTransferCost | boolean | Use item cost for transfer pricing | No |
item | collection | Items to transfer | Yes |
Example: Create Intercompany Transfer Order
Request
POST /record/v1/intercompanyTransferOrder
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1"
},
"toSubsidiary": {
"id": "2"
},
"location": {
"id": "1"
},
"transferLocation": {
"id": "5"
},
"shipDate": "2025-12-26",
"expectedReceiptDate": "2025-12-30",
"memo": "Transfer to UK subsidiary for Q1 sales demand",
"useItemCostAsTransferCost": false,
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 100,
"rate": 30.00,
"amount": 3000.00
},
{
"item": { "id": "790" },
"quantity": 50,
"rate": 45.00,
"amount": 2250.00
}
]
}
}
Response
{
"id": "4001",
"tranId": "ICTO-10001",
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1",
"refName": "US Parent Company"
},
"toSubsidiary": {
"id": "2",
"refName": "UK Subsidiary"
},
"location": {
"id": "1",
"refName": "US Main Warehouse"
},
"transferLocation": {
"id": "5",
"refName": "UK Distribution Center"
},
"orderStatus": {
"id": "PENDING_FULFILLMENT",
"refName": "Pending Fulfillment"
},
"shipDate": "2025-12-26",
"expectedReceiptDate": "2025-12-30",
"memo": "Transfer to UK subsidiary for Q1 sales demand",
"total": 5250.00,
"links": [
{
"rel": "self",
"href": "https://ACCOUNT_ID.suitetalk.api.netsuite.com/services/rest/record/v1/intercompanyTransferOrder/4001"
}
]
}
Example: Update Intercompany Transfer Order
Request
PATCH /record/v1/intercompanyTransferOrder/4001
Content-Type: application/json
Authorization: Bearer YOUR_ACCESS_TOKEN
{
"expectedReceiptDate": "2026-01-05",
"memo": "Transfer to UK subsidiary - delayed due to customs processing"
}
Response
{
"id": "4001",
"tranId": "ICTO-10001",
"expectedReceiptDate": "2026-01-05",
"memo": "Transfer to UK subsidiary - delayed due to customs processing",
"lastModifiedDate": "2025-12-25T17:15:00Z",
"links": [
{
"rel": "self",
"href": "https://ACCOUNT_ID.suitetalk.api.netsuite.com/services/rest/record/v1/intercompanyTransferOrder/4001"
}
]
}
Sublists
Item Sublist
| Field | Type | Description | Required |
|---|---|---|---|
item | object | Item reference | Yes |
quantity | number | Quantity to transfer | Yes |
rate | number | Transfer price per unit | Conditional |
amount | number | Total line amount | No |
description | string | Line description | No |
expectedReceiptDate | string | Line-level expected receipt | No |
commitInventory | object | Commit inventory option | No |
quantityCommitted | number | Quantity fulfilled | Read-only |
quantityReceived | number | Quantity received | Read-only |
isClosed | boolean | Line closed status | No |
Query Filters
Find by Source Subsidiary
GET /record/v1/intercompanyTransferOrder?q=subsidiary='1'
Find by Destination Subsidiary
GET /record/v1/intercompanyTransferOrder?q=toSubsidiary='2'
Find by Date Range
GET /record/v1/intercompanyTransferOrder?q=tranDate BETWEEN '2025-12-01' AND '2025-12-31'
Find by Status
GET /record/v1/intercompanyTransferOrder?q=orderStatus='PENDING_FULFILLMENT'
Find Between Specific Subsidiaries
GET /record/v1/intercompanyTransferOrder?q=subsidiary='1' AND toSubsidiary='2'
Find by Location
GET /record/v1/intercompanyTransferOrder?q=location='1'
Expand Related Records
GET /record/v1/intercompanyTransferOrder/4001?expandSubResources=true
Important Notes
OneWorld Requirement
- OneWorld Only: Intercompany transfer orders require NetSuite OneWorld
- Must have multiple subsidiaries configured
- Source and destination subsidiaries must be different
- For same-subsidiary transfers, use Transfer Order
Accounting Impact
Intercompany Transactions Created:
-
Intercompany Journal Entries
- Debit/Credit between subsidiaries
- Proper intercompany accounts
- Automatic creation based on transfer
-
Elimination Entries
- Created for consolidated reporting
- Removes intercompany balances from consolidation
- Ensures accurate financial statements
-
Subsidiary-Specific Inventory Records
- Proper inventory tracking per subsidiary
- Currency conversion handling
- Location-specific inventory levels
Example Accounting:
Source Subsidiary (US):
DR: Intercompany Receivable (from UK) - $3,000
CR: Inventory Asset - $3,000
Destination Subsidiary (UK):
DR: Inventory Asset - £2,400 (converted)
CR: Intercompany Payable (to US) - £2,400
Elimination (Consolidated):
DR: Intercompany Payable - £2,400
CR: Intercompany Receivable - $3,000 (converted)
Transfer Pricing
Manual Transfer Pricing:
{
"useItemCostAsTransferCost": false,
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 100,
"rate": 30.00,
"amount": 3000.00
}
]
}
}
Use Item Cost:
{
"useItemCostAsTransferCost": true,
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 100
}
]
}
}
Transfer pricing considerations:
- Tax implications across jurisdictions
- Arm's length pricing requirements
- Internal cost allocation policies
- Currency conversion impact
Currency Handling
- Each subsidiary has its own currency
- System automatically converts amounts
- Transfer price set in source subsidiary currency
- Destination subsidiary records in its currency
- Exchange rate applied at transaction date
Example:
Source (US - USD): $30.00 per unit
Destination (UK - GBP): £24.00 per unit (at 0.80 exchange rate)
Intercompany Transfer Statuses
Same as regular transfer orders:
| Status | Description |
|---|---|
PENDING_APPROVAL | Awaiting approval |
PENDING_FULFILLMENT | Approved, ready to ship |
PARTIALLY_FULFILLED | Some items shipped |
PENDING_RECEIPT | Shipped, awaiting receipt |
PARTIALLY_RECEIVED | Partially received |
RECEIVED | Fully received |
CLOSED | Manually closed |
CANCELLED | Cancelled |
Workflow
- Create Intercompany Transfer Order
- Approval (if required by workflow)
- Item Fulfillment (from source subsidiary location)
- Item Receipt (to destination subsidiary location)
- Intercompany Journal Entries (automatically created)
Multi-Currency Example
Full example with different currencies:
{
"tranDate": "2025-12-25",
"subsidiary": {
"id": "1",
"currency": "USD"
},
"toSubsidiary": {
"id": "2",
"currency": "GBP"
},
"location": {
"id": "1"
},
"transferLocation": {
"id": "5"
},
"exchangeRate": 0.80,
"item": {
"items": [
{
"item": { "id": "789" },
"quantity": 100,
"rate": 30.00,
"amount": 3000.00
}
]
}
}
Customs and Compliance
For international transfers:
{
"memo": "CUSTOMS INFO: HS Code 8471.30.01 - Commercial Invoice attached. INCOTERMS: DDP",
"shipMethod": {
"id": "INTERNATIONAL_FREIGHT"
}
}
Consider:
- Customs documentation requirements
- Import/export regulations
- VAT/GST implications
- Trade compliance
Permissions Required
- Create: Intercompany Transfer Order > Create permission
- Edit: Intercompany Transfer Order > Edit permission
- View: Intercompany Transfer Order > View permission
- Delete: Intercompany Transfer Order > Delete permission
- Approve: Intercompany Transfer Order > Approve permission
- Access: Permissions to both source and destination subsidiaries
Subsidiary Access
- User must have access to both subsidiaries
- Source subsidiary for fulfillment
- Destination subsidiary for receipt
- Consolidation subsidiary for eliminations
Best Practices
- Transfer Pricing Policy: Establish clear transfer pricing rules
- Documentation: Maintain proper documentation for tax authorities
- Currency: Monitor exchange rate fluctuations
- Compliance: Follow international trade regulations
- Reconciliation: Regularly reconcile intercompany balances
- Approval Workflow: Use approval workflow for control
- Tax Planning: Consult tax advisors for cross-border transfers
Limitations
- Requires OneWorld account
- Cannot transfer between same subsidiary (use Transfer Order)
- Items must exist in both subsidiaries
- Location must be assigned to correct subsidiary
- Currency conversion required
- May require additional customs/compliance fields
See Also
- Transfer Order - Same-subsidiary transfers
- Subsidiary - Subsidiary management
- Intercompany Journal Entry - IC accounting
- Item Fulfillment - Ship IC transfers
- Item Receipt - Receive IC transfers
- Currency - Multi-currency setup