NetSuite TMS integration
Starts in NetSuite. Ends in NetSuite.
Your orders come in. Tracking, cost and status go back. Nobody types a tracking number again.
- Reads
- Orders
- Item fulfillments or sales orders that are ready to ship.
- Writes back
- Tracking and cost
- Tracking numbers, package weights and sizes, shipping cost and ship status.
- Connects with
- Token-based auth
- Your keys are encrypted and never shown again.
- Setup
- Under 10 minutes
- Connect NetSuite, connect your carriers, ship.
Interactive demo
Try the Ship button
A sample Item Fulfillment, sample rates and a sample label. Nothing here is sent to NetSuite or to a carrier.
Live demoYour team can also ship right from the Item Fulfillment. Click Ship.
NesoTMS
/ Ready to ship
Demo data- Pick an order
- 2Choose a rate
- 3Buy the label
Pick a rate, then click Buy.
IF-1042 · 2 × Trail Pack 30L
Harbor & Pine Outfitters
2140 NW Alder St, Portland, OR 97209
Box
16 × 12 × 10 in
Rates from
Your UPS and FedEx accounts
Ships from your warehouse in Sparks, NV
1234567.app.netsuite.com/app/accounting/transactions/itemship.nl?id=1042
Item Fulfillment
IF-1042
PackedPrimary information
- Customer
- Harbor & Pine Outfitters
- Created from
- Sales Order #SO-5521
- Ship to
- 2140 NW Alder St, Portland, OR 97209
- Ship status
- Packed
- Ship method
- —
- Shipping cost
- —
Items
| Item | Description | Location | Quantity |
|---|---|---|---|
| TP-30L-GRN | Trail Pack 30L, Green | Main Warehouse | 2 |
Packages
| # | Weight | Dimensions | Tracking number |
|---|---|---|---|
| 1 | 6.5 lb | 16 × 12 × 10 in | — |
Simplified illustration of a NetSuite Item Fulfillment page. The Ship dialog is NesoTMS.
01The loop
What goes in. What comes back.
Starts here
NetSuite
An order is ready to ship. NesoTMS reads it on its own.
Your click
NesoTMS
Rates from your carriers, side by side. One click on Buy.
Your accounts
The carrier
The label is bought on your own carrier account, and prints.
UPS · FedEx · USPS · FedEx Freight
Ends here
NetSuite
Tracking, boxes, cost and status are written back.
In
From NetSuite
- Orders
- Item fulfillments or sales orders
- Status
- The ones ready to ship
- Address
- Where it’s going
- Boxes
- Package details, if you have them
Out
Back to NetSuite
Item Fulfillment
IF-1042
- Ship status
- Shippedwas
Packed - Back to Packed after a void
- Tracking number
- 1Z 999 AA1 01 2345 6784
- Package weight and size
- 6.5 lb · 16 × 12 × 10 in
- Shipping cost
- The label’s price, as the carrier billed it
Connected with NetSuite token-based auth. Your keys are encrypted and never shown again.
02Setup
Live in under 10 minutes. Three steps.
- 1
Connect NetSuite
Paste your keys. Your orders show up.
- 2
Connect your carriers
Add your UPS, FedEx, USPS or FedEx Freight account.
- 3
Start shipping
Click Buy. The label prints and NetSuite updates.
03In detail
The NetSuite TMS integration, field by field
NesoTMS connects to your NetSuite account, lists the orders that are ready to ship, buys the label with your own carrier account, and writes the result back to the item fulfillment: tracking numbers, package weights and sizes, shipping cost and ship status. This page says exactly what it reads, what it changes, and what happens when something goes wrong. It is written for NetSuite administrators and for the people who ship.
Last updated
On this page17 sections
What the integration does
A company connects NetSuite once. After that, NesoTMS shows the orders that are packed and ready to ship on its Clerk Station. Someone opens one, checks the boxes, picks a carrier service from the rate comparison, and clicks Buy & print. NesoTMS buys the label directly from the carrier, prints it (in the browser or on a shipping station), and then updates the same item fulfillment in NetSuite.
NetSuite stays your system of record for orders, customers, items and inventory. The carrier work happens in NesoTMS: rating, buying, voiding and keeping the label files. In the standard setup NetSuite supplies the orders and receives the write-back.
How NesoTMS signs in to NetSuite
NesoTMS uses NetSuite's token-based authentication. In NetSuite you create an integration record with token-based authentication turned on, and an access token for the user and role that will run NesoTMS. NesoTMS asks for your account ID, the RESTlet URL of the NesoTMS connector in your account, and four values: the consumer key and secret from the integration record, and the token ID and secret from the access token.
NesoTMS reaches your account only through the connector, signed with those four values. They are encrypted with AES-256-GCM before they are stored and can't be read back: after saving, the setup page shows only the last four characters of the consumer key and token ID. Only a company administrator can save or replace them.
The Test connection button sends a read-only request and reports the NetSuite account and environment, the user and role the token runs as, and the connector's version. When NetSuite refuses, NesoTMS shows NetSuite's error with a hint, such as a rejected login or a role that isn't allowed to run the connector. Troubleshooting lists the usual causes.
Installing the connector in your account
The connector is the part of NesoTMS that lives in your NetSuite account: a few scripts, the records they keep and the NesoTMS Connector role. NesoTMS installs it for you. You turn on six NetSuite features, add a certificate NesoTMS makes for your account in NetSuite, using the Administrator role, and paste the Certificate ID back. NesoTMS then installs the connector and, after a successful install, deletes the certificate's private key. The certificate is valid for seven days, and you can revoke it in NetSuite as soon as the install finishes.
Setup also has an Install the bundle choice, for a NesoTMS bundle in NetSuite's SuiteBundler. It shows as Coming soon until that bundle is published. If the connector is already in the account, the installer stops with a message instead of overwriting it. Before you connect lists what to prepare, and Connect NetSuite has every step.
Which records NesoTMS reads
The Clerk Station lists item fulfillments in Packed status, ready to ship. What the Packing Station lists follows the NetSuite setup: item fulfillments in Picked status, or sales orders in the statuses the company chose.
| Record type | Statuses you can import | What people see |
|---|---|---|
| Item fulfillments (the default) | Picked and Packed. Shipped, for the last 30 days, is an optional extra. | A list with search by number, customer, ship-to name or city, and a ship page for each fulfillment. |
| Sales orders | Pending Fulfillment, Partially Fulfilled, and Pending Billing/Partially Fulfilled. | A list of orders. An order shows its lines (ordered, fulfilled, remaining) and its item fulfillments. Packing an order makes its fulfillment, and labels are bought on the fulfillments. |
NoteBilled and closed orders stay out. Searching by number finds a fulfillment or sales order at any age, and a search with no status chosen also finds shipped fulfillments.
What it reads for one fulfillment
When someone opens a fulfillment, NesoTMS reads its ship-to address, the ship-from address from the fulfillment's location, the package lines already on it, the item quantities and weights, the current ship method, the customer name and the sales order it came from. When there is no location at all, it falls back to the subsidiary's address and then the company's. A location with an unusable address is never skipped: NesoTMS names what is wrong so it gets fixed in NetSuite instead of shipping from somewhere else.
For shipments from the US to Canada it also reads the sales order number, the PO number, the currency and each item's description, HS code and country of manufacture to prefill the commercial invoice. When the declared value option is on, it works out the order value from the fulfillment's quantities and the sales order's prices.
What NesoTMS writes to the item fulfillment
These are the only fields a label purchase or void touches. Packing an order at the Packing Station writes too: the boxes as package lines and the Packed status, or, for a sales order, a new Packed fulfillment. What NesoTMS changes in NetSuite has the details.
| NetSuite field | When a label is bought | When a label is voided |
|---|---|---|
| Shipping cost | Set to the label's price: the negotiated rate when the carrier returns one, otherwise the published rate. Left alone when the carrier doesn't return a price (FedEx Freight bookings). | Not changed. The cost stays as it was. |
| Package lines | Replaced with one line per package bought: weight, length, width and height (when all three are known), a description of the carrier and service cut to 35 characters (on package lists that have a description), and the tracking number. | Only the voided label's tracking numbers are blanked. Weights and sizes stay on the lines. |
| Ship status (Picked, Packed, Shipped) | Set to Shipped. | Set back to Packed, but only when the fulfillment is Shipped now and no other active label remains on it. |
| Ship method | Not changed. | Not changed. |
| Items, quantities, inventory detail, addresses, memo | Not changed. | Not changed. |
NoteA required custom field on your fulfillment form doesn't block the update. Workflows and user event scripts still run, and can still refuse a save. Recent versions of the connector also keep a record of each label in your account; the label files stay in NesoTMS.
Statuses and how shipping changes them
An item fulfillment moves through three ship statuses: Picked, Packed and Shipped. NesoTMS imports Picked and Packed by default, because those are the ones that still need a label. A purchase sets Shipped. Voiding the last active label sets Packed again. Voiding one label of several leaves the status at Shipped, because another label is still active.
Sometimes NetSuite accepts the new status value but refuses the save, for example when the fulfillment is dated in a closed period or a workflow guards the Shipped status. NesoTMS then saves the packages, tracking numbers and cost without the status and shows a warning that NetSuite refused the status change, so someone can set it by hand. The label is never lost over a status.
Several packages
Each box becomes one package line with its own tracking number. Identical boxes can be entered as one row with a quantity, and NesoTMS expands them into separate packages. UPS and FedEx labels support up to 10 packages in one purchase. NesoTMS replaces the lines in the package list the fulfillment uses: the UPS, FedEx, USPS or generic Package list.
If your fulfillments already carry package lines with sizes, the ship page starts with those boxes and rates load by themselves. If they don't, a packer enters each box once.
Partial shipments and sales orders
When part of an order ships, NetSuite makes one item fulfillment for that part. NesoTMS treats each fulfillment as its own shipment, with its own boxes, labels and write-back. In sales order mode, an order's page lists every line with the quantity ordered, fulfilled and remaining, and links to the order's fulfillments. A partial fulfillment's declared value is its own share: its quantity times the sales order line's rate.
In sales order mode, packing an order at the Packing Station makes its item fulfillment: one new fulfillment for everything left on the order, in Packed status, with the packed boxes. An order whose lines need inventory detail (bins, lots or serial numbers) is packed in NetSuite instead.
Item lines and inventory detail
NesoTMS never edits the item lines of a fulfillment, and it doesn't read or change inventory detail (lots, serial numbers or bins). It reads item quantities and weights to suggest a package weight, a line's location only to find the ship-from address when the fulfillment has none, and the sales order's prices for the declared value when you turn that option on.
Warehouses that pack with PackShip
If your warehouse packs with PackShip in NetSuite WMS, NesoTMS can start the ship page with the cartons PackShip recorded, with their sizes and weights, when the sales order has just that one fulfillment and it isn't shipped yet. The ship page then says Boxes from PackShip.
With several fulfillments on the order, a carton can't be matched to one of them, so NesoTMS keeps the fulfillment's own package lines. A size PackShip doesn't have stays blank and is never guessed. Other warehouse systems work through the standard package lines on the fulfillment: if your system fills those, the boxes prefill.
Voiding a label
A void goes to the carrier first, using the same carrier account and environment that bought the label. Only then does NesoTMS update NetSuite: it blanks that label's tracking numbers and, when no other active label is left, sets the status back to Packed. If the carrier refuses the void, the label stays active and NetSuite is not touched. FedEx Freight has no cancel service: an administrator cancels with FedEx Freight and records the carrier's confirmation in NesoTMS.
When something goes wrong
- The label was bought but NetSuite didn't update: the purchase stands. The label is saved in NesoTMS and marked Not in NetSuite yet, with a Retry NetSuite update button. The write-back sets values instead of adding to them, so a retry can't double anything.
- NetSuite gave no clear answer to the write-back: NesoTMS marks it unconfirmed and asks you to check the fulfillment in NetSuite before buying, voiding or syncing again.
- The carrier gave no clear answer to a purchase: the purchase stays guarded as unconfirmed and NesoTMS never retries it by itself, so it can't buy a second label. If only the reply was lost, the ship page settles the purchase by itself the next time it opens, without buying again.
- The fulfillment already has labels bought in NetSuite's own carrier records: NesoTMS refuses to buy, so one order is never shipped through both paths.
- Your NetSuite settings can't be loaded: the pages say so and offer Try again. They never switch to sample settings.
- A carrier account is set to Test: labels bought on it never change NetSuite.
Limitations
- It imports one record type per company: item fulfillments or sales orders, not both.
- It makes item fulfillments from sales orders only at the Packing Station, for everything left on the order. Partial packs and lines that need inventory detail are done in NetSuite.
- It reads standard NetSuite fields. The field mapping page saves a custom field choice, but the connector doesn't read it yet.
- It never edits addresses on your NetSuite records.
- Canada customs covers UPS and FedEx labels from the US to Canada. Other international lanes are rates only.
- Shipping from inside a dialog in NetSuite is a separate option that stays off unless NesoTMS turns it on for your company. The normal flow is the NesoTMS ship page.
- Removing the connector is done in NetSuite, by deleting its scripts and records. It can't be undone from NesoTMS.
Cost
The NetSuite integration is part of every plan. Basic is $99/month and Advanced is $499/month; both have every shipping feature and differ only in how many users, warehouse locations, shipping stations and carrier accounts they include. There is no charge per label: labels are bought on your own carrier accounts and the carrier bills you. See pricing for the full comparison.
Where to verify
The interactive demo runs in your browser with made-up orders and rates, so you can try the ship flow without connecting anything. It never calls NetSuite. Before you connect says what the NesoTMS Connector role can do, Connect NetSuite has every step, and the Test connection button and the preview of your first 10 records show what your account returns before anything is turned on.
NetSuite integration questions
Does NesoTMS change the ship method on my fulfillments?
No. The write-back sets the shipping cost, the package lines and the ship status. The ship method, items, quantities, inventory detail, addresses and memo are left as they are.
Link to this answerDoes it work with a NetSuite sandbox?
Yes. Sandbox account IDs such as 1234567_SB1 are accepted. Carrier accounts set to Test never update NetSuite, so you can try a purchase without touching a record.
Link to this answerCan I ship a sales order that has no item fulfillment?
Yes, from the Packing Station. Packing the order makes one Packed item fulfillment for everything left on it, which then ships from the Clerk Station. Labels are always bought on item fulfillments.
Link to this answerWhere are my NetSuite keys stored?
NesoTMS stores the four token values encrypted with AES-256-GCM, never shows them again and never returns them to the browser. Only company administrators can save, replace or test them.
Link to this answerKeep reading
Related pages
- DocumentationConnect NetSuite: step-by-step setup guideConnect NetSuite to NesoTMS: turn on the features, install the connector, create the access token, test the connection, choose what to import and turn it on.
- FeatureNetSuite label printing without a print dialogPrint NetSuite shipping labels with no print dialog: a shipping station runs NesoTMS Print on Windows or Mac and sends each label to your label printer.
- DocumentationWhat changes in NetSuite, field by fieldEvery change NesoTMS makes in NetSuite: what packing, buying and voiding a label write to the item fulfillment, what NesoTMS reads, and what it never touches.
- FeatureCarrier rate shopping for NetSuite ordersCompare UPS, FedEx, FedEx Freight and USPS rates on your own carrier accounts, side by side, for each NetSuite fulfillment, then buy the one you pick.
- PricingPricingBasic $99/month or Advanced $499/month, with every shipping feature in both plans.
NetSuite in. Labels out.
Set up in under 10 minutes. 15-day free trial. No card needed to start.
Or try the demo firstNo setup feeNo per-label feeNo long-term contract