How to fulfill a sales order from another subsidiary's warehouse in NetSuite

Ship a sales order from a warehouse that belongs to another subsidiary, see where cost and revenue post, and generate the cross charge that settles them.

The quick answer

Edit the sales order, open the line and set Inventory Location to the other subsidiary's warehouse. Inventory Subsidiary fills with the subsidiary that owns it. Save, then Fulfill and Bill as usual. The item fulfillment posts cost of goods sold in the shipping subsidiary, and the invoice posts revenue in the selling one. To move the cost across, go to Transactions > Financial > Manage Intercompany Cross Charges and click Generate Transactions. NetSuite creates a pair of Cross Charge Journals: intercompany revenue and receivable in the shipping subsidiary, intercompany expense and payable in the selling one.

The screenshots show sample data. Person and operating-company names are fictional. Use your own subsidiaries, locations and items when you follow the steps.

Before you start

You need:

  • OneWorld, Multi-Location Inventory, Advanced Shipping, Multiple Shipping Routes and Intercompany Cross-Subsidiary Fulfillment enabled. The feature isn't compatible with NetSuite WMS Advanced.
  • A Global Inventory Relationship with the selling subsidiary as the originating subsidiary and the warehouse's subsidiary as an inventory subsidiary. Without it, the other subsidiary's warehouses don't show in Inventory Location.
  • Cross-subsidiary rules on your shipping items, if you ship with them.
  • Intercompany Framework and its preferences for the cross charge: intercompany accounts, trade currency, transfer price method and the cross charge output, plus representing entities and Automated Intercompany Management where your setup uses them.
  • A form that allows it. On standard sales order forms, Allow Cross-Subsidiary Fulfillment is hidden and checked. A custom form can show it on the Items subtab. Clear it and the line only offers the order subsidiary's own locations.

The example sells 12 CR-118 Ceramic Table Lamps at 85.00 from Brightwater Retail. Brightwater Retail's Portland Showroom has none; Brightwater Supply's Reno Warehouse has 40. Everything is in US dollars, the lamp has no lots, serials or bins, and this account creates cross charges as journals at cost, with a 0% markup.

01. Check the order that can't ship

Open sales order SO7731 for Lindqvist Interiors. It's Pending Fulfillment in Subsidiary Brightwater Retail with Location Portland Showroom, and the total is 1,020.00.

SO7731 belongs to Brightwater Retail and Portland Showroom.

On the Items subtab, the lamp line shows On Hand 0, Available 0 and Back Ordered 12. Inventory Location is blank and Inventory Subsidiary is the order's own, Brightwater Retail.

Portland has nothing, so all 12 are back ordered.

02. Point the line at the other subsidiary's warehouse

Click Edit, then click the line. In this example NetSuite warns that you have only 0 available for commitment at this location. Click OK.

The warning appears because the line still points at Portland.

Scroll the line to Inventory Location and choose Reno Warehouse. Inventory Subsidiary changes to Brightwater Supply, and the line's stock columns now read the Reno stock: 40 available, 0 back ordered.

Inventory Subsidiary follows the warehouse you pick.

Click OK on the line, then Save. The saved line shows On Hand 40 and Available 40, with Inventory Location Reno Warehouse and Inventory Subsidiary Brightwater Supply. How much NetSuite commits depends on your commitment settings. The header Location stays Portland Showroom; it classifies the sale and doesn't say where the stock ships from.

The lamps will ship from Reno.

One order can mix lines from different subsidiaries' locations. NetSuite fulfills them by location, so expect separate item fulfillments for different warehouses.

03. Ship the order

Click Fulfill. The item fulfillment is created from SO7731.

The fulfillment line ships from Reno Warehouse.

Fulfill is checked on the line and Location is Reno Warehouse. Enter Quantity 12, set Status to Shipped and click Save.

12 of the 40 at Reno.

Item fulfillment IF8842 is Shipped.

IF8842 is Shipped.

Inventory and cost post when the fulfillment is Shipped. If your account doesn't use pick, pack and ship statuses, it saves as Shipped without choosing it.

04. Read the shipment's GL impact

On IF8842, open the GL Impact subtab. Two lines post: 5100 Cost of Goods Sold debit 504.00 and 1300 Inventory credit 504.00, the cost of the 12 lamps. Both have Subsidiary Brightwater Supply and Location Reno Warehouse.

The cost lands in the subsidiary that owned and shipped the lamps.

The amount comes from the item's cost, here 42.00 a lamp, and the accounts come from the item. Yours will differ.

05. Invoice the customer

Click Sales Order #SO7731 under Created From to go back to the order, now Pending Billing, and click Bill. The invoice keeps Subsidiary Brightwater Retail and Location Portland Showroom. Nothing needs changing. Click Save.

The invoice belongs to the selling subsidiary.

On invoice INV5517, the GL Impact subtab shows 1200 Accounts Receivable debit 1,020.00 and 4000 Sales Revenue credit 1,020.00, both in Brightwater Retail.

Revenue in Brightwater Retail; the cost sits in Brightwater Supply.

Left like this, Brightwater Retail shows 1,020.00 of revenue with no cost of goods sold, and Brightwater Supply shows 504.00 of cost with no revenue. The cross charge moves the cost across.

06. Generate the cross charge

Go to Transactions > Financial > Manage Intercompany Cross Charges. The Cross Charge Workbench says automation is ready to generate new transactions. On Source Data, the row shows Source Record Item Fulfillment, Subsidiary Brightwater Supply, Partner Subsidiary Brightwater Retail, Intercompany Process Cross-Subsidiary Fulfillment and Amount 504.00, the fulfillment's cost.

One fulfillment waiting to be cross charged.

Click Generate Transactions. The band switches to say automation is generating transactions. Click Refresh until the confirmation says there is nothing to be cross charged now and Source Data shows No records to show.

Nothing left to cross charge.

If a row stays or fails, check the Message Log subtab for the error and the Audit Log subtab for the run history.

07. Review the paired cross charge journals

Cross Charge Journals have no menu entry. Go to Transactions > Sales > Create Invoices > List and change Type to Cross Charge Journal. The option depends on your role and features; if you don't see it, search transactions for that type instead.

Switch the list's Type.

The Cross Charge Journals list shows two new journals dated 09/24/2026, 23 and 24, at 504.00 each. That's the cost of the 12 lamps, because this account adds no markup. Rows 21 and 22 are an earlier cross charge.

Two new journals, one per subsidiary.

Generated cross charges are approved automatically and read-only. Open journal 23. Subsidiary is Brightwater Supply and Paired Transaction is Cross Charge Journal #24. It credits 4250 I/C Revenue 504.00 and debits 1250 I/C Accounts Receivable 504.00, both with IC Brightwater Retail, the entity that represents the selling subsidiary, and Eliminate Yes. The accounts and the Eliminate flag come from your intercompany setup.

The shipping subsidiary books intercompany revenue and a receivable.

Click Cross Charge Journal #24. Subsidiary is Brightwater Retail. It credits 2250 I/C Accounts Payable 504.00 and debits 6250 I/C Expense 504.00, with the entity IC Brightwater Supply.

The selling subsidiary books the matching expense and payable.

Check the result

  1. IF8842's GL Impact posts 504.00 of cost of goods sold in Brightwater Supply at Reno Warehouse.
  2. INV5517's GL Impact posts 1,020.00 of receivable and revenue in Brightwater Retail.
  3. Journal 23 (Brightwater Supply) and journal 24 (Brightwater Retail) are 504.00 each and name each other as the paired transaction.
  4. The Cross Charge Workbench has nothing left to cross charge.

Brightwater Supply now has a receivable from Brightwater Retail, and Brightwater Retail a matching payable. If the lines are set to eliminate, intercompany elimination removes them from consolidated results when you run it, but doesn't settle them. Netting or a payment between the subsidiaries clears the balances.

Common questions

What's the difference between Location and Inventory Location?

Location on the sales order header classifies the sale for accounting and reporting. Here it's Portland Showroom, and it stays Portland on the invoice. Inventory Location sits on each line and decides which warehouse ships the stock. With cross-subsidiary fulfillment on, the line also shows Inventory Subsidiary, the subsidiary that owns that warehouse.

Where is Allow Cross-Subsidiary Fulfillment?

On standard sales order forms it's hidden and checked, so you won't see it. A custom form can show it on the Items subtab. It only works with Multiple Shipping Routes enabled, and clearing it limits the lines to the order subsidiary's own locations.

Why doesn't the other subsidiary's warehouse show up in Inventory Location?

Start with the Global Inventory Relationship. It has to let the selling subsidiary source stock from the warehouse's subsidiary. If that's in place, check that Intercompany Cross-Subsidiary Fulfillment is enabled, the location is active, your role can see it, and the order still allows cross-subsidiary fulfillment.

Which subsidiary records the cost of goods sold?

The one that owns the warehouse. Reno Warehouse belongs to Brightwater Supply, so IF8842 posts the 504.00 of cost of goods sold and the inventory credit there.

Which subsidiary invoices the customer?

The one that took the order. Brightwater Retail booked SO7731, so INV5517 is a Brightwater Retail invoice and its 1,020.00 of receivable and revenue post in Brightwater Retail.

Do I need a transfer order or an intercompany sales order and purchase order?

Not for this. The line ships straight from the other subsidiary's warehouse, and the cross charge settles the cost afterwards. Use a transfer order when you want to move the stock into your own warehouse first, or paired intercompany orders when the subsidiaries trade with each other as buyer and seller.

Why does the cross charge equal the item cost?

This account's transfer price for cross-subsidiary fulfillment is cost with a 0% markup, so both journals equal the 504.00 on the fulfillment. The markup is the Markup Rate % on the Transfer Price Methods subtab of Intercompany Preferences. With a 10% markup, the same shipment would be charged at 554.40.

Do cross charges run automatically?

They can. In this example someone clicks Generate Transactions on the Cross Charge Workbench, but intercompany automation can also run the generation. Either way, the workbench lists what hasn't been cross charged yet, and the Message Log subtab shows anything that failed.

What happens to the intercompany balances?

Brightwater Supply ends up with a 504.00 intercompany receivable from Brightwater Retail, and Brightwater Retail with a matching payable. If the lines are set to eliminate, intercompany elimination keeps them out of consolidated results, but they stay open on each subsidiary's books until you net them or pay them.

Can one sales order ship from several warehouses?

Yes. Each line can have its own Inventory Location, including warehouses in different subsidiaries. NetSuite fulfills them by location, so check each fulfillment's GL impact and the cross charges it produces. This guide only shows one line from one warehouse.