Skip to content
NesoTMS

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.

1234567.app.netsuite.com/app/accounting/transactions/itemship.nl?id=1042

Item Fulfillment

IF-1042

Packed
← NesoTMS adds this button. Click it.

Primary 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

ItemDescriptionLocationQuantity
TP-30L-GRNTrail Pack 30L, GreenMain Warehouse2

Packages

#WeightDimensionsTracking number
16.5 lb16 × 12 × 10 in—

Simplified illustration of a NetSuite Item Fulfillment page. The Ship dialog is NesoTMS.

01The loop

What goes in. What comes back.

  1. Starts here

    NetSuite

    An order is ready to ship. NesoTMS reads it on its own.

  2. Your click

    NesoTMS

    Rates from your carriers, side by side. One click on Buy.

  3. Your accounts

    The carrier

    The label is bought on your own carrier account, and prints.

    UPS · FedEx · USPS · FedEx Freight

  4. 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

Shipped
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
Fields NesoTMS writes. Sample record, simplified; your fulfillment shows your own order.

Connected with NetSuite token-based auth. Your keys are encrypted and never shown again.

02Setup

Live in under 10 minutes. Three steps.

  1. 1

    Connect NetSuite

    Paste your keys. Your orders show up.

  2. 2

    Connect your carriers

    Add your UPS, FedEx, USPS or FedEx Freight account.

  3. 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

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.

Which records NesoTMS reads
Record typeStatuses you can importWhat 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 ordersPending 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.

What NesoTMS writes to the item fulfillment
NetSuite fieldWhen a label is boughtWhen a label is voided
Shipping costSet 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 linesReplaced 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 methodNot changed.Not changed.
Items, quantities, inventory detail, addresses, memoNot 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 answer

Does 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 answer

Can 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 answer

Where 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 answer

NetSuite in. Labels out.

Set up in under 10 minutes. 15-day free trial. No card needed to start.

Or try the demo first

No setup feeNo per-label feeNo long-term contract